mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-26 13:32:55 -04:00
24159 lines
357 KiB
ArmAsm
24159 lines
357 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80001DC
|
|
sub_80001DC:
|
|
mov r0, sp
|
|
bx lr
|
|
thumb_func_end sub_80001DC
|
|
|
|
thumb_func_start sub_80001E0
|
|
sub_80001E0:
|
|
ldr r0, _080001E4
|
|
bx lr
|
|
.align 2, 0
|
|
_080001E4: .4byte gUnknown_3004000
|
|
thumb_func_end sub_80001E0
|
|
|
|
arm_func_start sub_80001E8
|
|
sub_80001E8:
|
|
stmdb sp!, {r4-r11}
|
|
mov r12, 0x4000000
|
|
ldr r11, _08000224
|
|
add r10, r11, 0x40
|
|
mov r9, 0x1
|
|
mov r8, 0
|
|
strb r8, [r12, 0x208]
|
|
ldmia r10, {r0-r7}
|
|
stmia r10!, {r4-r7}
|
|
stmia r10!, {r0-r3}
|
|
ldr r0, [r11, 0x4]
|
|
str r8, [r11, 0x4]
|
|
strb r9, [r12, 0x208]
|
|
ldmia sp!, {r4-r11}
|
|
bx lr
|
|
.align 2, 0
|
|
_08000224: .4byte gUnknown_202DCF8
|
|
arm_func_end sub_80001E8
|
|
|
|
arm_func_start sub_8000228
|
|
sub_8000228:
|
|
mov r12, 0x4000000
|
|
add r12, r12, 0x120
|
|
ldmia r12, {r0,r1}
|
|
stmdb sp!, {r7-r11}
|
|
ldr r11, _08000340
|
|
mov r9, 0xFE
|
|
add r9, r9, 0xFE00
|
|
ldrh r3, [r12, 0x8]
|
|
and r3, r3, 0x40
|
|
strb r3, [r11, 0x9]
|
|
ldr r10, [r11, 0x14]
|
|
adds r3, r10, 0x1
|
|
blt _08000284
|
|
bne _08000278
|
|
strh r9, [r12, 0xA]
|
|
add r8, r11, 0x28
|
|
ldmia r8, {r2,r3}
|
|
mov r7, r2
|
|
stmia r8, {r3,r7}
|
|
b _08000284
|
|
_08000278:
|
|
ldr r3, [r11, 0x2C]
|
|
ldr r2, [r3, r10, lsl 1]
|
|
strh r2, [r12, 0xA]
|
|
_08000284:
|
|
cmp r10, 0xB
|
|
addlt r10, r10, 0x1
|
|
strlt r10, [r11, 0x14]
|
|
stmdb sp!, {r0,r1,r5,r6}
|
|
mov r6, 0x3
|
|
_08000298:
|
|
add r8, r11, 0x18
|
|
add r8, r8, r6, lsl 2
|
|
ldr r10, [r8]
|
|
mov r3, r6, lsl 1
|
|
ldrh r5, [sp, r3]
|
|
cmp r5, r9
|
|
bne _080002C8
|
|
cmp r10, 0x9
|
|
ble _080002C8
|
|
mov r0, 0x1
|
|
sub r10, r0, 0x2
|
|
b _080002F4
|
|
_080002C8:
|
|
ldr r0, [r8, 0x18]
|
|
mov r3, r10, lsl 1
|
|
strh r5, [r0, r3]
|
|
cmp r10, 0x9
|
|
bne _080002F4
|
|
ldr r1, [r8, 0x28]
|
|
str r0, [r8, 0x28]
|
|
str r1, [r8, 0x18]
|
|
add r3, r11, 0x4
|
|
mov r0, 0x1
|
|
strb r0, [r3, r6]
|
|
_080002F4:
|
|
cmp r10, 0xB
|
|
addlt r10, r10, 0x1
|
|
str r10, [r8]
|
|
subs r6, r6, 0x1
|
|
bge _08000298
|
|
ldrb r0, [r11]
|
|
cmp r0, 0
|
|
beq _08000334
|
|
ldr r7, _08000344
|
|
mov r0, 0
|
|
strh r0, [r7]
|
|
ldrh r0, [r12, 0x8]
|
|
orr r0, r0, 0x80
|
|
strh r0, [r12, 0x8]
|
|
mov r0, 0xC0
|
|
strh r0, [r7]
|
|
_08000334:
|
|
add sp, sp, 0x8
|
|
ldmia sp!, {r5-r11}
|
|
bx lr
|
|
.align 2, 0
|
|
_08000340: .4byte gUnknown_202DCF8
|
|
_08000344: .4byte 0x0400010e
|
|
arm_func_end sub_8000228
|
|
|
|
thumb_func_start GameLoop
|
|
GameLoop:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
bl InitHeap
|
|
bl sub_8011A38
|
|
bl sub_801180C
|
|
bl nullsub_1
|
|
bl sub_8014144
|
|
bl sub_808CDC0
|
|
bl sub_8097670
|
|
bl sub_8094F88
|
|
bl sub_8094980
|
|
bl sub_8094C14
|
|
bl sub_8097F5C
|
|
bl sub_80923A0
|
|
bl sub_8090998
|
|
bl sub_809207C
|
|
bl sub_8092848
|
|
bl sub_80950BC
|
|
bl sub_80958E8
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
movs r1, 0
|
|
bl sub_800CD64
|
|
bl sub_8012284
|
|
movs r0, 0x1
|
|
bl sub_8094998
|
|
ldr r0, _08000498
|
|
bl nullsub_22
|
|
bl sub_800DAAC
|
|
movs r0, 0
|
|
bl SetSavingIconCoords
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
bl sub_8011DAC
|
|
cmp r0, 0
|
|
beq _080003D2
|
|
bl sub_800135C
|
|
_080003D2:
|
|
movs r0, 0xE
|
|
bl sub_8001334
|
|
movs r0, 0xF
|
|
bl sub_8001334
|
|
movs r0, 0
|
|
movs r1, 0x39
|
|
bl sub_80015C0
|
|
movs r0, 0x10
|
|
bl sub_8001334
|
|
movs r0, 0
|
|
movs r1, 0x39
|
|
bl sub_8001658
|
|
cmp r0, 0
|
|
bne _080003FE
|
|
movs r0, 0x11
|
|
bl sub_8001334
|
|
_080003FE:
|
|
movs r1, 0
|
|
mov r10, r1
|
|
ldr r2, _0800049C
|
|
mov r8, r2
|
|
_08000406:
|
|
ldr r0, _080004A0
|
|
mov r1, r10
|
|
str r1, [r0]
|
|
movs r0, 0x2
|
|
bl sub_800A8F8
|
|
movs r0, 0x1
|
|
bl sub_8004D8C
|
|
movs r0, 0
|
|
bl xxx_update_some_bg_tiles
|
|
bl sub_80097B0
|
|
movs r0, 0x2
|
|
bl sub_800CDA8
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
ldr r1, _080004A4
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bl sub_8000634
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_800CCA0
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_800CCAC
|
|
mov r0, r10
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
_08000456:
|
|
mov r2, r8
|
|
ldr r0, [r2]
|
|
adds r0, 0x1
|
|
str r0, [r2]
|
|
movs r4, 0
|
|
_08000460:
|
|
ldr r0, _080004A8
|
|
ldr r0, [r0]
|
|
lsls r2, r4, 2
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r2
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r4, 0x1
|
|
cmp r4, 0xEF
|
|
ble _08000460
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
cmp r0, 0x1F
|
|
ble _08000456
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _080004C0
|
|
bl sub_8012468
|
|
b _080004B2
|
|
.align 2, 0
|
|
_08000498: .4byte gUnknown_80B69BC
|
|
_0800049C: .4byte gUnknown_2000A80
|
|
_080004A0: .4byte gUnknown_203B03C
|
|
_080004A4: .4byte gUnknown_2026E4E
|
|
_080004A8: .4byte gUnknown_203B038
|
|
_080004AC:
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
_080004B2:
|
|
bl sub_8012484
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080004AC
|
|
bl sub_8012558
|
|
_080004C0:
|
|
movs r0, 0x1
|
|
mov r9, r0
|
|
movs r0, 0x8
|
|
bl sub_800BDFC
|
|
movs r4, 0x1
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80095CC
|
|
bl InitMainMenu
|
|
_080004D8:
|
|
bl sub_80363E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08000522
|
|
ldr r3, _080004FC
|
|
ldrh r1, [r3, 0x2]
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08000500
|
|
movs r4, 0
|
|
movs r0, 0x13
|
|
bl SetBGOBJEnableFlags
|
|
b _08000516
|
|
.align 2, 0
|
|
_080004FC: .4byte gUnknown_20255F0
|
|
_08000500:
|
|
cmp r4, 0
|
|
bne _08000522
|
|
ldrh r1, [r3]
|
|
adds r0, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08000516
|
|
movs r4, 0x1
|
|
movs r0, 0
|
|
bl SetBGOBJEnableFlags
|
|
_08000516:
|
|
cmp r4, 0
|
|
bne _08000522
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
b _080004D8
|
|
_08000522:
|
|
bl SetUpMenu
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
bl UpdateMenu
|
|
adds r5, r0, 0
|
|
bl CleanUpMenu
|
|
cmp r5, 0x2
|
|
beq _08000542
|
|
cmp r5, 0x4
|
|
beq _08000542
|
|
cmp r5, 0x3
|
|
bne _080004D8
|
|
_08000542:
|
|
bl sub_80357D0
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
ble _08000580
|
|
ldr r7, _08000598
|
|
adds r6, r7, 0
|
|
_08000552:
|
|
ldr r0, [r6]
|
|
subs r0, 0x1
|
|
str r0, [r6]
|
|
movs r4, 0
|
|
_0800055A:
|
|
ldr r0, _0800059C
|
|
ldr r0, [r0]
|
|
lsls r2, r4, 2
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r2
|
|
ldr r2, [r6]
|
|
adds r0, r4, 0
|
|
movs r3, 0
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r4, 0x1
|
|
cmp r4, 0xEF
|
|
ble _0800055A
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
bgt _08000552
|
|
_08000580:
|
|
ldr r0, _0800059C
|
|
ldr r0, [r0]
|
|
bl sub_800AA14
|
|
cmp r5, 0x3
|
|
beq _080005CA
|
|
cmp r5, 0x3
|
|
bhi _080005A0
|
|
cmp r5, 0x2
|
|
beq _080005A6
|
|
b _08000406
|
|
.align 2, 0
|
|
_08000598: .4byte gUnknown_2000A80
|
|
_0800059C: .4byte gUnknown_203B038
|
|
_080005A0:
|
|
cmp r5, 0x4
|
|
beq _080005C6
|
|
b _08000406
|
|
_080005A6:
|
|
movs r0, 0x7
|
|
bl sub_80953D4
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080005C2
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
bl sub_8095240
|
|
movs r0, 0x2
|
|
b _080005D4
|
|
_080005C2:
|
|
movs r0, 0x1
|
|
b _080005D4
|
|
_080005C6:
|
|
movs r0, 0x3
|
|
b _080005D4
|
|
_080005CA:
|
|
bl sub_80122A8
|
|
bl nullsub_33
|
|
movs r0, 0
|
|
_080005D4:
|
|
bl sub_80009D0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
b _08000406
|
|
thumb_func_end GameLoop
|
|
|
|
thumb_func_start xxx_update_stuff
|
|
xxx_update_stuff:
|
|
push {lr}
|
|
bl sub_80144C4
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8005838
|
|
ldr r0, _08000630
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xA]
|
|
bl nullsub_8
|
|
bl sub_8005180
|
|
bl sub_80060EC
|
|
bl sub_8011860
|
|
bl sub_800CB20
|
|
bl sub_800485C
|
|
bl CopySpritesToOam
|
|
bl sub_8005304
|
|
bl TransferBGPaletteBuffer
|
|
bl xxx_call_update_bg_vram
|
|
bl sub_8009908
|
|
bl xxx_call_update_bg_sound_input
|
|
movs r0, 0
|
|
bl sub_8004D8C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08000630: .4byte gUnknown_203B46C
|
|
thumb_func_end xxx_update_stuff
|
|
|
|
thumb_func_start sub_8000634
|
|
sub_8000634:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x18
|
|
mov r1, sp
|
|
ldr r0, _08000708
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
add r5, sp, 0xC
|
|
adds r1, r5, 0
|
|
ldr r0, _0800070C
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, _08000710
|
|
movs r1, 0
|
|
bl MemoryAlloc
|
|
adds r7, r0, 0
|
|
movs r0, 0x3
|
|
bl RandomCapped
|
|
adds r4, r0, 0
|
|
lsls r4, 2
|
|
adds r5, r4
|
|
ldr r0, [r5]
|
|
ldr r5, _08000714
|
|
adds r1, r5, 0
|
|
bl sub_800A9EC
|
|
ldr r1, _08000718
|
|
str r0, [r1]
|
|
mov r1, sp
|
|
adds r0, r1, r4
|
|
ldr r0, [r0]
|
|
adds r1, r5, 0
|
|
bl sub_800A9EC
|
|
mov r8, r0
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
mov r2, r8
|
|
bl sub_800AAA8
|
|
movs r2, 0
|
|
ldr r0, _0800071C
|
|
movs r3, 0xC0
|
|
lsls r3, 5
|
|
adds r3, r0
|
|
mov r9, r3
|
|
movs r4, 0x80
|
|
lsls r4, 5
|
|
adds r4, r0
|
|
mov r12, r4
|
|
_080006A0:
|
|
movs r5, 0
|
|
lsls r1, r2, 6
|
|
adds r6, r2, 0x1
|
|
mov r0, r9
|
|
adds r4, r1, r0
|
|
mov r2, r12
|
|
adds r3, r1, r2
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r0, r7, r2
|
|
adds r2, r1, r0
|
|
adds r1, r7
|
|
_080006B8:
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
ldrh r0, [r2]
|
|
strh r0, [r4]
|
|
adds r4, 0x2
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
adds r5, 0x1
|
|
cmp r5, 0x1F
|
|
ble _080006B8
|
|
adds r2, r6, 0
|
|
cmp r2, 0x1F
|
|
ble _080006A0
|
|
movs r0, 0x2
|
|
bl sub_80098F8
|
|
movs r0, 0x3
|
|
bl sub_80098F8
|
|
ldr r0, _08000720
|
|
movs r3, 0x80
|
|
lsls r3, 5
|
|
adds r1, r7, r3
|
|
ldr r2, _08000724
|
|
bl CpuCopy
|
|
mov r0, r8
|
|
bl sub_800AA14
|
|
adds r0, r7, 0
|
|
bl MemoryFree
|
|
add sp, 0x18
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08000708: .4byte gUnknown_80B69F8
|
|
_0800070C: .4byte gUnknown_80B6A28
|
|
_08000710: .4byte 0x00005b20
|
|
_08000714: .4byte gUnknown_8380000
|
|
_08000718: .4byte gUnknown_203B038
|
|
_0800071C: .4byte gUnknown_202B038
|
|
_08000720: .4byte 0x06008000
|
|
_08000724: .4byte 0x00004b20
|
|
thumb_func_end sub_8000634
|
|
|
|
thumb_func_start sub_8000728
|
|
sub_8000728:
|
|
ldr r0, _08000730
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08000730: .4byte gUnknown_203B03C
|
|
thumb_func_end sub_8000728
|
|
|
|
thumb_func_start sub_8000734
|
|
sub_8000734:
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0
|
|
movs r0, 0
|
|
bl xxx_update_some_bg_tiles
|
|
bl sub_8014144
|
|
bl sub_80097B0
|
|
movs r0, 0x2
|
|
bl sub_800CDA8
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80095CC
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8009408
|
|
ldr r0, _080007AC
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
bl sub_8099648
|
|
bl sub_8094C14
|
|
movs r0, 0
|
|
bl sub_8099690
|
|
bl sub_8099744
|
|
bl sub_8099750
|
|
movs r0, 0x3
|
|
bl sub_80063D8
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8005838
|
|
bl sub_80060EC
|
|
ldr r0, _080007B0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x20
|
|
bl sub_80141B4
|
|
b _08000892
|
|
.align 2, 0
|
|
_080007AC: .4byte gUnknown_2026E4E
|
|
_080007B0: .4byte gUnknown_80B6A34
|
|
_080007B4:
|
|
cmp r4, 0x1
|
|
beq _0800086C
|
|
cmp r4, 0x1
|
|
bgt _080007C2
|
|
cmp r4, 0
|
|
beq _080007CC
|
|
b _0800088E
|
|
_080007C2:
|
|
cmp r4, 0x2
|
|
beq _08000884
|
|
cmp r4, 0x3
|
|
beq _08000892
|
|
b _0800088E
|
|
_080007CC:
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0x3F
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
bl sub_8097688
|
|
bl sub_80140DC
|
|
cmp r5, 0x3
|
|
bhi _080007EC
|
|
add r0, sp, 0x4
|
|
movs r1, 0x1
|
|
bl sub_801203C
|
|
adds r4, r0, 0
|
|
b _080007EE
|
|
_080007EC:
|
|
movs r4, 0x2
|
|
_080007EE:
|
|
cmp r4, 0
|
|
bne _080007FA
|
|
ldr r0, _08000818
|
|
bl sub_80121E0
|
|
adds r4, r0, 0
|
|
_080007FA:
|
|
bl sub_8014114
|
|
cmp r4, 0
|
|
bne _0800083C
|
|
cmp r5, 0x1
|
|
beq _08000812
|
|
cmp r5, 0x1
|
|
bcc _08000820
|
|
cmp r5, 0x2
|
|
beq _08000820
|
|
cmp r5, 0x3
|
|
bne _08000820
|
|
_08000812:
|
|
ldr r0, _0800081C
|
|
b _08000822
|
|
.align 2, 0
|
|
_08000818: .4byte 0x000f1206
|
|
_0800081C: .4byte gUnknown_80B6A7C
|
|
_08000820:
|
|
ldr r0, _08000834
|
|
_08000822:
|
|
movs r1, 0
|
|
movs r2, 0
|
|
ldr r3, _08000838
|
|
bl sub_80141B4
|
|
movs r6, 0x3C
|
|
movs r4, 0x1
|
|
b _08000892
|
|
.align 2, 0
|
|
_08000834: .4byte gUnknown_80B6AA0
|
|
_08000838: .4byte 0x00000321
|
|
_0800083C:
|
|
cmp r4, 0x1
|
|
bne _08000854
|
|
ldr r0, _08000850
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80141B4
|
|
movs r4, 0x3
|
|
b _08000892
|
|
.align 2, 0
|
|
_08000850: .4byte gUnknown_80B6B14
|
|
_08000854:
|
|
ldr r0, _08000864
|
|
movs r1, 0
|
|
movs r2, 0
|
|
ldr r3, _08000868
|
|
bl sub_80141B4
|
|
_08000860:
|
|
movs r4, 0x2
|
|
b _08000892
|
|
.align 2, 0
|
|
_08000864: .4byte gUnknown_80B6B78
|
|
_08000868: .4byte 0x00000301
|
|
_0800086C:
|
|
cmp r6, 0
|
|
ble _08000860
|
|
ldr r0, _08000880
|
|
ldrh r1, [r0, 0x2]
|
|
subs r6, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08000892
|
|
b _08000860
|
|
.align 2, 0
|
|
_08000880: .4byte gUnknown_20255F0
|
|
_08000884:
|
|
add r0, sp, 0x8
|
|
bl sub_80144A4
|
|
cmp r0, 0
|
|
bne _08000892
|
|
_0800088E:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
_08000892:
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
cmp r4, 0
|
|
bge _080007B4
|
|
bl sub_8014490
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8000734
|
|
|
|
thumb_func_start sub_80008C0
|
|
sub_80008C0:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0
|
|
movs r0, 0
|
|
bl xxx_update_some_bg_tiles
|
|
bl sub_8014144
|
|
bl sub_80097B0
|
|
movs r0, 0x2
|
|
bl sub_800CDA8
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80095CC
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8009408
|
|
ldr r1, _08000930
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bl sub_8099648
|
|
bl sub_8094C14
|
|
movs r0, 0
|
|
bl sub_8099690
|
|
bl sub_8099744
|
|
bl sub_8099750
|
|
movs r0, 0x3
|
|
bl sub_80063D8
|
|
cmp r5, 0x1
|
|
beq _08000948
|
|
cmp r5, 0x1
|
|
bcc _08000934
|
|
cmp r5, 0x2
|
|
beq _08000950
|
|
cmp r5, 0x3
|
|
beq _08000950
|
|
b _080009A2
|
|
.align 2, 0
|
|
_08000930: .4byte gUnknown_2026E4E
|
|
_08000934:
|
|
ldr r0, _08000944
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0x20
|
|
bl sub_80141B4
|
|
movs r4, 0x2
|
|
b _080009A2
|
|
.align 2, 0
|
|
_08000944: .4byte gUnknown_80B6B88
|
|
_08000948:
|
|
ldr r0, _0800094C
|
|
b _08000952
|
|
.align 2, 0
|
|
_0800094C: .4byte gUnknown_80B6BDC
|
|
_08000950:
|
|
ldr r0, _08000960
|
|
_08000952:
|
|
ldr r3, _08000964
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80141B4
|
|
_0800095C:
|
|
movs r4, 0x1
|
|
b _080009A2
|
|
.align 2, 0
|
|
_08000960: .4byte gUnknown_80B6CB8
|
|
_08000964: .4byte 0x00000301
|
|
_08000968:
|
|
cmp r4, 0x1
|
|
beq _08000994
|
|
cmp r4, 0x1
|
|
bgt _08000976
|
|
cmp r4, 0
|
|
beq _0800097C
|
|
b _0800099E
|
|
_08000976:
|
|
cmp r4, 0x2
|
|
beq _080009A2
|
|
b _0800099E
|
|
_0800097C:
|
|
cmp r6, 0
|
|
ble _0800095C
|
|
ldr r0, _08000990
|
|
ldrh r1, [r0, 0x2]
|
|
subs r6, 0x1
|
|
movs r0, 0x3
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080009A2
|
|
b _0800095C
|
|
.align 2, 0
|
|
_08000990: .4byte gUnknown_20255F0
|
|
_08000994:
|
|
mov r0, sp
|
|
bl sub_80144A4
|
|
cmp r0, 0
|
|
bne _080009A2
|
|
_0800099E:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
_080009A2:
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
cmp r4, 0
|
|
bge _08000968
|
|
bl sub_8014490
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80008C0
|
|
|
|
thumb_func_start sub_80009D0
|
|
sub_80009D0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _08000A04
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
bl sub_8001658
|
|
adds r7, r0, 0
|
|
movs r0, 0
|
|
mov r10, r0
|
|
bl sub_801180C
|
|
movs r0, 0x10
|
|
bl sub_80118C4
|
|
cmp r7, 0x7
|
|
bne _08000A30
|
|
cmp r4, 0x2
|
|
bne _08000A08
|
|
movs r7, 0x8
|
|
b _08000A3A
|
|
.align 2, 0
|
|
_08000A04: .4byte 0xfffffdd4
|
|
_08000A08:
|
|
cmp r4, 0x3
|
|
bne _08000A3A
|
|
movs r7, 0xB
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0xB
|
|
bl sub_80018D8
|
|
bl sub_8096BD0
|
|
movs r0, 0x3
|
|
bl sub_8000734
|
|
b _08000A3A
|
|
_08000A24:
|
|
movs r3, 0x1
|
|
mov r10, r3
|
|
b _08000EC6
|
|
_08000A2A:
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
b _08000EC6
|
|
_08000A30:
|
|
cmp r7, 0
|
|
beq _08000A3A
|
|
cmp r7, 0xB
|
|
beq _08000A3A
|
|
movs r7, 0x1
|
|
_08000A3A:
|
|
movs r0, 0
|
|
movs r1, 0x41
|
|
bl sub_80015C0
|
|
_08000A42:
|
|
cmp r7, 0x4
|
|
bne _08000AB6
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_8002658
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _08000A9C
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
str r0, [sp, 0x8]
|
|
mov r0, sp
|
|
strb r4, [r0, 0x4]
|
|
movs r0, 0x9
|
|
bl sub_80023E4
|
|
mov r1, sp
|
|
strb r0, [r1, 0x5]
|
|
mov r0, sp
|
|
bl sub_800F990
|
|
ldr r0, [sp, 0x8]
|
|
bl MemoryFree
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0xC]
|
|
cmp r0, 0x3A
|
|
beq _08000B70
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0xC]
|
|
cmp r0, 0
|
|
beq _08000AA0
|
|
bl sub_8002694
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
b _08000AA2
|
|
.align 2, 0
|
|
_08000A9C: .4byte 0x00004e30
|
|
_08000AA0:
|
|
movs r2, 0x9
|
|
_08000AA2:
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
b _08000B70
|
|
_08000AB6:
|
|
cmp r7, 0x5
|
|
bne _08000B9C
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
bl sub_80A2740
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r4, 0
|
|
ldr r5, _08000B18
|
|
add r5, sp
|
|
_08000AD6:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80A28F0
|
|
adds r1, r5, r4
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x3E
|
|
ble _08000AD6
|
|
cmp r6, 0x63
|
|
beq _08000B70
|
|
add r4, sp, 0xB8
|
|
movs r0, 0x3F
|
|
strb r0, [r4, 0x4]
|
|
add r0, sp, 0xC0
|
|
adds r1, r6, 0
|
|
bl sub_80011CC
|
|
ldrb r1, [r4, 0xD]
|
|
add r0, sp, 0x128
|
|
strb r1, [r0]
|
|
mov r0, r8
|
|
bl sub_80A2750
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r5, r4, 0
|
|
cmp r0, 0x1
|
|
beq _08000B1C
|
|
cmp r0, 0x2
|
|
beq _08000B3C
|
|
b _08000B50
|
|
.align 2, 0
|
|
_08000B18: .4byte 0x00000129
|
|
_08000B1C:
|
|
add r4, sp, 0x170
|
|
add r0, sp, 0x174
|
|
mov r1, r8
|
|
bl sub_80990EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08000B50
|
|
ldrb r0, [r4, 0x10]
|
|
strb r0, [r5, 0x14]
|
|
add r0, sp, 0xD0
|
|
add r1, sp, 0x18C
|
|
movs r2, 0x58
|
|
bl memcpy
|
|
b _08000B50
|
|
_08000B3C:
|
|
ldrb r0, [r5, 0x8]
|
|
add r1, sp, 0xD0
|
|
bl sub_8096A08
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _08000B4E
|
|
movs r0, 0x1
|
|
_08000B4E:
|
|
strb r0, [r5, 0x14]
|
|
_08000B50:
|
|
ldr r0, _08000B74
|
|
movs r1, 0x8
|
|
bl MemoryAlloc
|
|
add r4, sp, 0x168
|
|
str r0, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_8010268
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
add r0, sp, 0x16C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08000B78
|
|
_08000B70:
|
|
movs r7, 0x2
|
|
b _08000A42
|
|
.align 2, 0
|
|
_08000B74: .4byte 0x00006474
|
|
_08000B78:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
mov r2, r8
|
|
bl sub_80018D8
|
|
ldr r1, _08000B98
|
|
movs r0, 0x2
|
|
str r0, [r1]
|
|
movs r0, 0x4
|
|
bl sub_800A8F8
|
|
movs r0, 0x5
|
|
bl sub_8001334
|
|
adds r5, r0, 0
|
|
b _08000BEC
|
|
.align 2, 0
|
|
_08000B98: .4byte gUnknown_203B03C
|
|
_08000B9C:
|
|
cmp r7, 0x8
|
|
bne _08000BA4
|
|
movs r5, 0
|
|
b _08000BEC
|
|
_08000BA4:
|
|
cmp r7, 0x7
|
|
bne _08000BAC
|
|
movs r5, 0x2
|
|
b _08000BEC
|
|
_08000BAC:
|
|
cmp r7, 0xB
|
|
bne _08000BB6
|
|
bl sub_80012C0
|
|
b _08000BBE
|
|
_08000BB6:
|
|
cmp r7, 0xC
|
|
bne _08000BBE
|
|
bl sub_8001248
|
|
_08000BBE:
|
|
ldr r1, _08000BE0
|
|
movs r0, 0x2
|
|
str r0, [r1]
|
|
movs r0, 0x4
|
|
bl sub_800A8F8
|
|
adds r0, r7, 0
|
|
bl sub_8001334
|
|
adds r5, r0, 0
|
|
cmp r5, 0xE
|
|
bne _08000BD8
|
|
b _08000EC6
|
|
_08000BD8:
|
|
cmp r5, 0x5
|
|
bne _08000BE4
|
|
movs r7, 0x4
|
|
b _08000A42
|
|
.align 2, 0
|
|
_08000BE0: .4byte gUnknown_203B03C
|
|
_08000BE4:
|
|
cmp r5, 0x6
|
|
bne _08000BEC
|
|
movs r7, 0x5
|
|
b _08000A42
|
|
_08000BEC:
|
|
add r6, sp, 0x170
|
|
movs r4, 0
|
|
strb r4, [r6, 0x11]
|
|
strb r4, [r6, 0x10]
|
|
movs r3, 0xC6
|
|
lsls r3, 1
|
|
add r3, sp
|
|
mov r8, r3
|
|
mov r0, r8
|
|
movs r1, 0
|
|
movs r2, 0x58
|
|
bl MemoryFill8
|
|
movs r0, 0
|
|
mov r9, r0
|
|
strh r4, [r6, 0x24]
|
|
cmp r5, 0x7
|
|
beq _08000C3C
|
|
cmp r5, 0x8
|
|
bne _08000C38
|
|
add r0, sp, 0x174
|
|
add r1, sp, 0x228
|
|
bl sub_80991E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08000C4C
|
|
ldrb r0, [r6, 0x4]
|
|
mov r1, r8
|
|
bl sub_8096A08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08000C32
|
|
b _08000D98
|
|
_08000C32:
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0x10]
|
|
b _08000D98
|
|
_08000C38:
|
|
cmp r5, 0xA
|
|
bne _08000C52
|
|
_08000C3C:
|
|
add r0, sp, 0x174
|
|
add r1, sp, 0x228
|
|
bl sub_80991E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08000C4C
|
|
b _08000D98
|
|
_08000C4C:
|
|
movs r5, 0xD
|
|
movs r7, 0x9
|
|
b _08000D98
|
|
_08000C52:
|
|
cmp r5, 0x9
|
|
bne _08000C6C
|
|
add r0, sp, 0x174
|
|
add r1, sp, 0x228
|
|
bl sub_80991E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08000C66
|
|
b _08000D98
|
|
_08000C66:
|
|
movs r5, 0xB
|
|
movs r7, 0xC
|
|
b _08000D98
|
|
_08000C6C:
|
|
cmp r5, 0
|
|
bne _08000D04
|
|
bl sub_8011FA8
|
|
adds r1, r0, 0
|
|
ldr r0, _08000CA0
|
|
cmp r1, r0
|
|
bne _08000CC8
|
|
movs r2, 0x1
|
|
strb r2, [r6, 0x11]
|
|
strb r2, [r6, 0x8]
|
|
mov r3, r9
|
|
strb r3, [r6, 0xF]
|
|
ldr r0, _08000CA4
|
|
ldr r1, [r0]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
beq _08000CA8
|
|
strb r2, [r6, 0x10]
|
|
adds r1, 0x4
|
|
mov r0, r8
|
|
movs r2, 0x58
|
|
bl memcpy
|
|
b _08000CAC
|
|
.align 2, 0
|
|
_08000CA0: .4byte 0x000f1207
|
|
_08000CA4: .4byte gUnknown_203B484
|
|
_08000CA8:
|
|
mov r0, r9
|
|
strb r0, [r6, 0x10]
|
|
_08000CAC:
|
|
ldr r4, _08000CC4
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
movs r1, 0
|
|
movs r2, 0x58
|
|
bl MemoryFill8
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
strh r0, [r1, 0xC]
|
|
b _08000CE4
|
|
.align 2, 0
|
|
_08000CC4: .4byte gUnknown_203B484
|
|
_08000CC8:
|
|
ldr r0, _08000CD8
|
|
cmp r1, r0
|
|
bne _08000CDC
|
|
movs r5, 0x1
|
|
movs r7, 0xB
|
|
bl sub_8096BD0
|
|
b _08000CE4
|
|
.align 2, 0
|
|
_08000CD8: .4byte 0x000f1208
|
|
_08000CDC:
|
|
movs r5, 0x1
|
|
movs r7, 0xB
|
|
bl sub_8096BD0
|
|
_08000CE4:
|
|
cmp r5, 0x1
|
|
bne _08000D98
|
|
ldr r4, _08000D00
|
|
ldr r0, [r4]
|
|
adds r0, 0x4
|
|
movs r1, 0
|
|
movs r2, 0x58
|
|
bl MemoryFill8
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
strh r0, [r1, 0xC]
|
|
b _08000D98
|
|
.align 2, 0
|
|
_08000D00: .4byte gUnknown_203B484
|
|
_08000D04:
|
|
cmp r5, 0x2
|
|
bne _08000D98
|
|
bl sub_8011C1C
|
|
cmp r0, 0x2
|
|
bne _08000D34
|
|
bl sub_8011FA8
|
|
adds r1, r0, 0
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0x8]
|
|
mov r3, r9
|
|
strb r3, [r6, 0x11]
|
|
ldr r0, _08000D30
|
|
cmp r1, r0
|
|
beq _08000D36
|
|
adds r0, 0x1
|
|
movs r5, 0x1
|
|
movs r7, 0xB
|
|
bl sub_8096BD0
|
|
b _08000D36
|
|
.align 2, 0
|
|
_08000D30: .4byte 0x000f1207
|
|
_08000D34:
|
|
movs r5, 0x3
|
|
_08000D36:
|
|
cmp r5, 0x3
|
|
bne _08000D7A
|
|
bl sub_8001170
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r5, 0x1
|
|
movs r7, 0xB
|
|
bl sub_8096BD0
|
|
cmp r4, 0x3F
|
|
beq _08000D70
|
|
cmp r4, 0x63
|
|
beq _08000D70
|
|
adds r0, r4, 0
|
|
bl sub_80900E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08000D70
|
|
bl sub_8011C1C
|
|
cmp r0, 0x2
|
|
bne _08000D6C
|
|
movs r5, 0x3
|
|
movs r7, 0x7
|
|
b _08000D70
|
|
_08000D6C:
|
|
movs r5, 0xC
|
|
movs r7, 0xA
|
|
_08000D70:
|
|
cmp r5, 0x1
|
|
bne _08000D98
|
|
bl sub_8011C1C
|
|
b _08000D98
|
|
_08000D7A:
|
|
cmp r5, 0x4
|
|
bne _08000D8E
|
|
movs r5, 0x1
|
|
movs r7, 0xB
|
|
bl sub_8096BD0
|
|
movs r0, 0x1
|
|
bl sub_80008C0
|
|
b _08000D98
|
|
_08000D8E:
|
|
cmp r5, 0x1
|
|
bne _08000D98
|
|
movs r7, 0xB
|
|
bl sub_8096BD0
|
|
_08000D98:
|
|
subs r0, r5, 0x7
|
|
cmp r0, 0x3
|
|
bls _08000DAC
|
|
cmp r5, 0
|
|
beq _08000E1E
|
|
cmp r5, 0x2
|
|
beq _08000DAC
|
|
cmp r5, 0x3
|
|
beq _08000DAC
|
|
b _08000A42
|
|
_08000DAC:
|
|
cmp r5, 0
|
|
beq _08000E1E
|
|
cmp r5, 0x2
|
|
beq _08000E1E
|
|
cmp r5, 0x3
|
|
beq _08000E1E
|
|
bl sub_8001170
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
bl sub_8097758
|
|
cmp r5, 0x9
|
|
bne _08000E00
|
|
ldr r4, _08000DF4
|
|
add r4, sp
|
|
adds r0, r4, 0
|
|
bl sub_8099394
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08000E00
|
|
ldrb r0, [r4]
|
|
bl sub_8095228
|
|
adds r2, r0, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r0, 0x1
|
|
ble _08000DF8
|
|
subs r1, 0x1
|
|
b _08000DFA
|
|
.align 2, 0
|
|
_08000DF4: .4byte 0x0000022a
|
|
_08000DF8:
|
|
movs r1, 0
|
|
_08000DFA:
|
|
adds r0, r2, 0
|
|
adds r0, 0x2C
|
|
strb r1, [r0]
|
|
_08000E00:
|
|
cmp r6, 0x3F
|
|
bne _08000E0C
|
|
movs r0, 0
|
|
bl sub_8000734
|
|
b _08000E1E
|
|
_08000E0C:
|
|
adds r0, r6, 0
|
|
bl sub_80900E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08000E1E
|
|
movs r0, 0
|
|
bl sub_8000734
|
|
_08000E1E:
|
|
ldr r0, _08000E70
|
|
movs r4, 0x1
|
|
str r4, [r0]
|
|
movs r0, 0x3
|
|
bl sub_800A8F8
|
|
add r5, sp, 0x170
|
|
str r4, [r5]
|
|
add r0, sp, 0x174
|
|
bl sub_80011E8
|
|
adds r0, r5, 0
|
|
bl sub_8000EDC
|
|
add r4, sp, 0x1EC
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0x3
|
|
bne _08000E46
|
|
b _08000A24
|
|
_08000E46:
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _08000E50
|
|
b _08000A2A
|
|
_08000E50:
|
|
movs r0, 0
|
|
movs r1, 0x41
|
|
bl sub_80015C0
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x6
|
|
bhi _08000EBE
|
|
lsls r0, 2
|
|
ldr r1, _08000E74
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08000E70: .4byte gUnknown_203B03C
|
|
_08000E74: .4byte _08000E78
|
|
.align 2, 0
|
|
_08000E78:
|
|
.4byte _08000EB6
|
|
.4byte _08000EBE
|
|
.4byte _08000E94
|
|
.4byte _08000EB2
|
|
.4byte _08000EBE
|
|
.4byte _08000E94
|
|
.4byte _08000EBE
|
|
_08000E94:
|
|
movs r7, 0x9
|
|
movs r0, 0xF7
|
|
lsls r0, 1
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
movs r3, 0x1
|
|
cmp r0, 0
|
|
beq _08000EA6
|
|
movs r3, 0x2
|
|
_08000EA6:
|
|
movs r0, 0
|
|
movs r1, 0x41
|
|
movs r2, 0
|
|
bl sub_800199C
|
|
b _08000A42
|
|
_08000EB2:
|
|
movs r7, 0xA
|
|
b _08000A42
|
|
_08000EB6:
|
|
movs r7, 0xC
|
|
bl sub_8096BD0
|
|
b _08000A42
|
|
_08000EBE:
|
|
movs r7, 0xB
|
|
bl sub_8096BD0
|
|
b _08000A42
|
|
_08000EC6:
|
|
mov r0, r10
|
|
movs r3, 0x8B
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80009D0
|
|
|
|
thumb_func_start sub_8000EDC
|
|
sub_8000EDC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
movs r5, 0x1
|
|
ldr r0, _08000F24
|
|
str r5, [r0]
|
|
movs r0, 0x3
|
|
bl sub_800A8F8
|
|
bl sub_8014144
|
|
add r1, sp, 0x4
|
|
mov r0, sp
|
|
bl sub_8043D50
|
|
ldr r0, [sp]
|
|
movs r1, 0x7
|
|
bl MemoryAlloc
|
|
str r0, [r4, 0x74]
|
|
ldr r0, [sp, 0x4]
|
|
movs r1, 0x7
|
|
bl MemoryAlloc
|
|
str r0, [r4, 0x78]
|
|
ldrb r0, [r4, 0x8]
|
|
cmp r0, 0
|
|
beq _08000F68
|
|
ldr r0, [r4, 0x74]
|
|
ldr r1, [sp]
|
|
bl sub_801277C
|
|
adds r7, r4, 0
|
|
adds r7, 0x7C
|
|
b _08000F2E
|
|
.align 2, 0
|
|
_08000F24: .4byte gUnknown_203B03C
|
|
_08000F28:
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
_08000F2E:
|
|
bl sub_80127A8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08000F28
|
|
bl sub_8012828
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl sub_8012834
|
|
bl sub_8011830
|
|
cmp r5, 0
|
|
beq _08000F58
|
|
ldr r0, _08000F54
|
|
bl sub_80121E0
|
|
b _08000F5E
|
|
.align 2, 0
|
|
_08000F54: .4byte 0x000f1208
|
|
_08000F58:
|
|
ldr r0, _08000F64
|
|
bl sub_80121E0
|
|
_08000F5E:
|
|
bl sub_8011854
|
|
b _08000F78
|
|
.align 2, 0
|
|
_08000F64: .4byte 0x000f1209
|
|
_08000F68:
|
|
bl sub_809674C
|
|
bl sub_80961B4
|
|
bl sub_808ED00
|
|
adds r7, r4, 0
|
|
adds r7, 0x7C
|
|
_08000F78:
|
|
cmp r5, 0
|
|
beq _08000F92
|
|
adds r0, r4, 0
|
|
bl sub_8001340
|
|
bl sub_8099648
|
|
bl sub_8094C14
|
|
movs r0, 0
|
|
bl sub_8099690
|
|
b _08000F96
|
|
_08000F92:
|
|
movs r0, 0x5
|
|
strh r0, [r7]
|
|
_08000F96:
|
|
adds r5, r7, 0
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
movs r6, 0x2
|
|
negs r6, r6
|
|
cmp r0, r6
|
|
bne _08000FAC
|
|
adds r0, r4, 0
|
|
adds r0, 0x84
|
|
bl sub_809542C
|
|
_08000FAC:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x3
|
|
beq _08000FB8
|
|
cmp r0, r6
|
|
bne _0800100C
|
|
_08000FB8:
|
|
adds r0, r4, 0
|
|
adds r0, 0x80
|
|
bl sub_8097688
|
|
bl sub_8011924
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, r6
|
|
bne _08000FD8
|
|
ldr r0, [r4, 0x74]
|
|
ldr r1, [sp]
|
|
movs r2, 0x1
|
|
bl sub_8012850
|
|
b _08000FFA
|
|
_08000FD8:
|
|
ldr r0, [r4, 0x74]
|
|
ldr r1, [sp]
|
|
movs r2, 0
|
|
bl sub_8012850
|
|
b _08000FFA
|
|
_08000FE4:
|
|
cmp r0, 0x1
|
|
bne _08000FF4
|
|
ldr r0, [r4, 0x78]
|
|
bl MemoryFree
|
|
ldr r0, [r4, 0x74]
|
|
bl MemoryFree
|
|
_08000FF4:
|
|
movs r0, 0
|
|
bl xxx_update_stuff
|
|
_08000FFA:
|
|
bl sub_80128B0
|
|
cmp r0, 0x2
|
|
beq _08001006
|
|
cmp r0, 0x3
|
|
bne _08000FE4
|
|
_08001006:
|
|
bl sub_80129FC
|
|
b _0800101C
|
|
_0800100C:
|
|
bl sub_808ED00
|
|
ldr r0, [r4, 0x78]
|
|
bl MemoryFree
|
|
ldr r0, [r4, 0x74]
|
|
bl MemoryFree
|
|
_0800101C:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8000EDC
|
|
|
|
thumb_func_start sub_8001024
|
|
sub_8001024:
|
|
push {r4,lr}
|
|
ldr r1, _08001040
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08001040: .4byte gUnknown_203B040
|
|
thumb_func_end sub_8001024
|
|
|
|
thumb_func_start sub_8001044
|
|
sub_8001044:
|
|
push {r4,lr}
|
|
ldr r1, _08001060
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08001060: .4byte gUnknown_203B040
|
|
thumb_func_end sub_8001044
|
|
|
|
thumb_func_start sub_8001064
|
|
sub_8001064:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x28
|
|
bl sub_808D33C
|
|
cmp r0, 0
|
|
bne _080010AE
|
|
ldr r5, _0800109C
|
|
ldrb r0, [r5, 0x8]
|
|
cmp r0, 0
|
|
bne _080010A0
|
|
add r4, sp, 0x14
|
|
movs r0, 0x4
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl sub_808D8BC
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80922F4
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x1
|
|
mov r2, sp
|
|
bl sub_808CE74
|
|
b _080010AE
|
|
.align 2, 0
|
|
_0800109C: .4byte gUnknown_203B040
|
|
_080010A0:
|
|
movs r4, 0x4
|
|
ldrsh r0, [r5, r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x8
|
|
movs r1, 0x1
|
|
bl sub_808CE74
|
|
_080010AE:
|
|
bl sub_808D378
|
|
cmp r0, 0
|
|
bne _080010F2
|
|
ldr r5, _080010E0
|
|
ldrb r0, [r5, 0x1C]
|
|
cmp r0, 0
|
|
bne _080010E4
|
|
add r4, sp, 0x14
|
|
movs r0, 0x6
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r4, 0
|
|
bl sub_808D8BC
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80922F4
|
|
movs r1, 0x6
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_808CE74
|
|
b _080010F2
|
|
.align 2, 0
|
|
_080010E0: .4byte gUnknown_203B040
|
|
_080010E4:
|
|
movs r4, 0x6
|
|
ldrsh r0, [r5, r4]
|
|
adds r2, r5, 0
|
|
adds r2, 0x1C
|
|
movs r1, 0
|
|
bl sub_808CE74
|
|
_080010F2:
|
|
ldr r3, _08001164
|
|
movs r0, 0x4
|
|
ldrsh r1, [r3, r0]
|
|
cmp r1, 0
|
|
beq _08001126
|
|
ldr r2, _08001168
|
|
movs r4, 0x4
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
beq _0800111C
|
|
cmp r1, r0
|
|
beq _0800111C
|
|
_0800110A:
|
|
adds r2, 0x8
|
|
movs r0, 0x4
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
beq _0800111C
|
|
movs r4, 0x4
|
|
ldrsh r0, [r3, r4]
|
|
cmp r0, r1
|
|
bne _0800110A
|
|
_0800111C:
|
|
ldr r2, [r2]
|
|
movs r0, 0
|
|
movs r1, 0x27
|
|
bl sub_80018D8
|
|
_08001126:
|
|
ldr r3, _08001164
|
|
movs r0, 0x6
|
|
ldrsh r1, [r3, r0]
|
|
cmp r1, 0
|
|
beq _0800115A
|
|
ldr r2, _0800116C
|
|
movs r4, 0x4
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
beq _08001150
|
|
cmp r1, r0
|
|
beq _08001150
|
|
_0800113E:
|
|
adds r2, 0x8
|
|
movs r0, 0x4
|
|
ldrsh r1, [r2, r0]
|
|
cmp r1, 0
|
|
beq _08001150
|
|
movs r4, 0x6
|
|
ldrsh r0, [r3, r4]
|
|
cmp r0, r1
|
|
bne _0800113E
|
|
_08001150:
|
|
ldr r2, [r2]
|
|
movs r0, 0
|
|
movs r1, 0x26
|
|
bl sub_80018D8
|
|
_0800115A:
|
|
add sp, 0x28
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08001164: .4byte gUnknown_203B040
|
|
_08001168: .4byte gUnknown_80B690C
|
|
_0800116C: .4byte gUnknown_80B6994
|
|
thumb_func_end sub_8001064
|
|
|
|
thumb_func_start sub_8001170
|
|
sub_8001170:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
add r4, sp, 0x4
|
|
movs r0, 0x63
|
|
strb r0, [r4]
|
|
mov r1, sp
|
|
adds r1, 0x2
|
|
mov r0, sp
|
|
bl sub_80992E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001196
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A2740
|
|
b _080011BE
|
|
_08001196:
|
|
adds r0, r4, 0
|
|
bl sub_8099328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080011C0
|
|
adds r0, r4, 0
|
|
bl sub_8099360
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080011C0
|
|
mov r0, sp
|
|
adds r0, 0x5
|
|
bl sub_8099394
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080011C0
|
|
movs r0, 0x3F
|
|
_080011BE:
|
|
strb r0, [r4]
|
|
_080011C0:
|
|
ldrb r0, [r4]
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001170
|
|
|
|
thumb_func_start sub_80011CC
|
|
sub_80011CC:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
strb r1, [r4]
|
|
strb r5, [r4, 0x1]
|
|
bl sub_80011E8
|
|
strb r5, [r4, 0xB]
|
|
strb r5, [r4, 0x4]
|
|
strb r5, [r4, 0xC]
|
|
strb r5, [r4, 0xD]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80011CC
|
|
|
|
thumb_func_start sub_80011E8
|
|
sub_80011E8:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x8
|
|
bl sub_80023E4
|
|
strb r0, [r4, 0x5]
|
|
movs r0, 0x3
|
|
bl sub_80023E4
|
|
strb r0, [r4, 0x6]
|
|
movs r0, 0x7
|
|
bl sub_80023E4
|
|
strb r0, [r4, 0x8]
|
|
movs r0, 0
|
|
bl sub_80023E4
|
|
strb r0, [r4, 0x9]
|
|
movs r0, 0x5
|
|
bl sub_80023E4
|
|
strb r0, [r4, 0xA]
|
|
movs r0, 0x18
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800123C
|
|
movs r0, 0x19
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800123C
|
|
movs r0, 0x1A
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800123C
|
|
movs r0, 0x1
|
|
b _0800123E
|
|
_0800123C:
|
|
movs r0, 0
|
|
_0800123E:
|
|
strb r0, [r4, 0x7]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80011E8
|
|
|
|
thumb_func_start sub_8001248
|
|
sub_8001248:
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
movs r5, 0
|
|
_0800124E:
|
|
movs r0, 0x64
|
|
bl RandomCapped
|
|
cmp r0, 0x31
|
|
bgt _08001266
|
|
lsls r0, r4, 2
|
|
ldr r1, _080012B8
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
strb r5, [r0, 0x2]
|
|
strb r5, [r0, 0x1]
|
|
strb r5, [r0]
|
|
_08001266:
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _0800124E
|
|
bl sub_80910B4
|
|
movs r4, 0
|
|
ldr r5, _080012BC
|
|
movs r3, 0x1
|
|
_08001276:
|
|
movs r0, 0x58
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
ldr r0, [r5]
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1]
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08001298
|
|
lsrs r0, r2, 1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08001298
|
|
adds r1, 0x28
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_08001298:
|
|
adds r4, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
ble _08001276
|
|
ldr r0, _080012B8
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080012B8: .4byte gUnknown_203B460
|
|
_080012BC: .4byte gUnknown_203B45C
|
|
thumb_func_end sub_8001248
|
|
|
|
thumb_func_start sub_80012C0
|
|
sub_80012C0:
|
|
push {r4,r5,lr}
|
|
movs r3, 0
|
|
ldr r4, _08001324
|
|
movs r2, 0
|
|
_080012C8:
|
|
lsls r1, r3, 2
|
|
ldr r0, [r4]
|
|
adds r1, r0
|
|
strb r2, [r1, 0x2]
|
|
strb r2, [r1, 0x1]
|
|
strb r2, [r1]
|
|
adds r3, 0x1
|
|
cmp r3, 0x13
|
|
ble _080012C8
|
|
bl sub_80910B4
|
|
movs r3, 0
|
|
ldr r5, _08001328
|
|
movs r4, 0x1
|
|
_080012E4:
|
|
movs r0, 0x58
|
|
adds r1, r3, 0
|
|
muls r1, r0
|
|
ldr r0, [r5]
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08001306
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08001306
|
|
adds r1, 0x28
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_08001306:
|
|
adds r3, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r3, r0
|
|
ble _080012E4
|
|
ldr r0, _08001324
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08001324: .4byte gUnknown_203B460
|
|
_08001328: .4byte gUnknown_203B45C
|
|
thumb_func_end sub_80012C0
|
|
|
|
thumb_func_start nullsub_1
|
|
nullsub_1:
|
|
bx lr
|
|
thumb_func_end nullsub_1
|
|
|
|
thumb_func_start nullsub_2
|
|
nullsub_2:
|
|
bx lr
|
|
thumb_func_end nullsub_2
|
|
|
|
thumb_func_start sub_8001334
|
|
sub_8001334:
|
|
push {lr}
|
|
bl sub_8098468
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001334
|
|
|
|
thumb_func_start sub_8001340
|
|
sub_8001340:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl nullsub_2
|
|
adds r0, r4, 0
|
|
bl sub_8042F6C
|
|
bl nullsub_1
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8001340
|
|
|
|
thumb_func_start nullsub_3
|
|
nullsub_3:
|
|
bx lr
|
|
thumb_func_end nullsub_3
|
|
|
|
thumb_func_start sub_800135C
|
|
sub_800135C:
|
|
push {r4-r7,lr}
|
|
movs r1, 0
|
|
ldr r4, _0800138C
|
|
ldr r3, _08001390
|
|
movs r2, 0
|
|
_08001366:
|
|
adds r0, r1, r3
|
|
strb r2, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, r4
|
|
ble _08001366
|
|
movs r6, 0
|
|
_08001372:
|
|
lsls r1, r6, 4
|
|
ldr r0, _08001394
|
|
adds r5, r1, r0
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
adds r7, r6, 0x1
|
|
cmp r0, 0
|
|
beq _080013B4
|
|
cmp r0, 0x8
|
|
beq _080013B4
|
|
movs r4, 0
|
|
b _080013AC
|
|
.align 2, 0
|
|
_0800138C: .4byte 0x000003ff
|
|
_08001390: .4byte gUnknown_2000A88
|
|
_08001394: .4byte gUnknown_80B7394
|
|
_08001398:
|
|
movs r0, 0xA
|
|
ldrsh r3, [r5, r0]
|
|
movs r0, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
bl sub_800199C
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080013AC:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r4, r0
|
|
blt _08001398
|
|
_080013B4:
|
|
lsls r0, r7, 16
|
|
asrs r6, r0, 16
|
|
cmp r6, 0x50
|
|
ble _08001372
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_80015C0
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0x8
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0x9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0xB
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0xC
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
movs r2, 0xA2
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
movs r2, 0xA2
|
|
bl sub_80018D8
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
movs r2, 0x24
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x1B
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x1C
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x1D
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x1E
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x1F
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x24
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x25
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x26
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x27
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x29
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x2A
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x2B
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x2C
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x2D
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x2E
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x2F
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x30
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x31
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x41
|
|
bl sub_80015C0
|
|
bl sub_80972F4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800135C
|
|
|
|
thumb_func_start sub_8001564
|
|
sub_8001564:
|
|
push {lr}
|
|
bl nullsub_128
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8001564
|
|
|
|
thumb_func_start sub_8001570
|
|
sub_8001570:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
ldr r0, _08001584
|
|
cmp r6, r0
|
|
bgt _0800158C
|
|
lsls r1, r6, 4
|
|
ldr r0, _08001588
|
|
b _08001590
|
|
.align 2, 0
|
|
_08001584: .4byte 0x000003ff
|
|
_08001588: .4byte gUnknown_80B7394
|
|
_0800158C:
|
|
lsls r1, r6, 4
|
|
ldr r0, _08001598
|
|
_08001590:
|
|
adds r5, r1, r0
|
|
movs r4, 0
|
|
b _080015B0
|
|
.align 2, 0
|
|
_08001598: .4byte 0x080b2d30
|
|
_0800159C:
|
|
movs r0, 0xA
|
|
ldrsh r3, [r5, r0]
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
bl sub_800199C
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080015B0:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r4, r0
|
|
blt _0800159C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8001570
|
|
|
|
thumb_func_start sub_80015C0
|
|
sub_80015C0:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
ldr r0, _080015D4
|
|
cmp r6, r0
|
|
bgt _080015DC
|
|
lsls r1, r6, 4
|
|
ldr r0, _080015D8
|
|
b _080015E0
|
|
.align 2, 0
|
|
_080015D4: .4byte 0x000003ff
|
|
_080015D8: .4byte gUnknown_80B7394
|
|
_080015DC:
|
|
lsls r1, r6, 4
|
|
ldr r0, _080015E8
|
|
_080015E0:
|
|
adds r5, r1, r0
|
|
movs r4, 0
|
|
b _080015FE
|
|
.align 2, 0
|
|
_080015E8: .4byte 0x080b2d30
|
|
_080015EC:
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0
|
|
bl sub_800199C
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
_080015FE:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r4, r0
|
|
blt _080015EC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80015C0
|
|
|
|
thumb_func_start sub_800160C
|
|
sub_800160C:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 16
|
|
asrs r1, r2, 16
|
|
ldr r0, _08001630
|
|
cmp r1, r0
|
|
bgt _0800163C
|
|
lsls r1, 4
|
|
ldr r0, _08001634
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r1, r2]
|
|
ldr r1, _08001638
|
|
adds r0, r1
|
|
b _0800164C
|
|
.align 2, 0
|
|
_08001630: .4byte 0x000003ff
|
|
_08001634: .4byte gUnknown_80B7394
|
|
_08001638: .4byte gUnknown_2000A88
|
|
_0800163C:
|
|
lsls r1, 4
|
|
ldr r0, _08001654
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r1, r2]
|
|
lsls r0, 2
|
|
adds r0, r4, r0
|
|
_0800164C:
|
|
str r0, [r3, 0x4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08001654: .4byte 0x080b2d30
|
|
thumb_func_end sub_800160C
|
|
|
|
thumb_func_start sub_8001658
|
|
sub_8001658:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r2, r0, 0
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
mov r0, sp
|
|
adds r1, r2, 0
|
|
adds r2, r4, 0
|
|
bl sub_800160C
|
|
ldr r0, [sp]
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
bls _0800167C
|
|
b _08001778
|
|
_0800167C:
|
|
lsls r0, 2
|
|
ldr r1, _08001688
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08001688: .4byte _0800168C
|
|
.align 2, 0
|
|
_0800168C:
|
|
.4byte _080016AC
|
|
.4byte _080016C2
|
|
.4byte _080016C8
|
|
.4byte _080016D2
|
|
.4byte _080016D8
|
|
.4byte _080016E0
|
|
.4byte _080016C2
|
|
.4byte _080016E6
|
|
_080016AC:
|
|
ldr r0, [sp]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
lsls r1, r0
|
|
lsrs r1, 24
|
|
ldr r0, [sp, 0x4]
|
|
ldrb r0, [r0]
|
|
ands r1, r0
|
|
b _0800173E
|
|
_080016C2:
|
|
ldr r0, [sp, 0x4]
|
|
ldrb r0, [r0]
|
|
b _0800177A
|
|
_080016C8:
|
|
ldr r0, [sp, 0x4]
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
b _0800177A
|
|
_080016D2:
|
|
ldr r0, [sp, 0x4]
|
|
ldrh r0, [r0]
|
|
b _0800177A
|
|
_080016D8:
|
|
ldr r0, [sp, 0x4]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
b _0800177A
|
|
_080016E0:
|
|
ldr r0, [sp, 0x4]
|
|
ldr r0, [r0]
|
|
b _0800177A
|
|
_080016E6:
|
|
adds r0, r4, 0
|
|
subs r0, 0x17
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bhi _08001778
|
|
lsls r0, 2
|
|
ldr r1, _080016FC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080016FC: .4byte _08001700
|
|
.align 2, 0
|
|
_08001700:
|
|
.4byte _08001734
|
|
.4byte _08001778
|
|
.4byte _08001778
|
|
.4byte _08001778
|
|
.4byte _08001778
|
|
.4byte _08001778
|
|
.4byte _08001778
|
|
.4byte _08001778
|
|
.4byte _08001778
|
|
.4byte _08001746
|
|
.4byte _0800174C
|
|
.4byte _08001754
|
|
.4byte _08001764
|
|
_08001734:
|
|
bl sub_8098F94
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
_0800173E:
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
b _0800177A
|
|
_08001746:
|
|
bl sub_808D480
|
|
b _0800177A
|
|
_0800174C:
|
|
movs r0, 0
|
|
bl sub_808D544
|
|
b _0800177A
|
|
_08001754:
|
|
ldr r0, _08001760
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
b _0800176C
|
|
.align 2, 0
|
|
_08001760: .4byte gUnknown_203B460
|
|
_08001764:
|
|
ldr r0, _08001774
|
|
ldr r0, [r0]
|
|
movs r1, 0x99
|
|
lsls r1, 2
|
|
_0800176C:
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
b _0800177A
|
|
.align 2, 0
|
|
_08001774: .4byte gUnknown_203B460
|
|
_08001778:
|
|
movs r0, 0
|
|
_0800177A:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001658
|
|
|
|
thumb_func_start sub_8001784
|
|
sub_8001784:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
lsls r2, 16
|
|
lsrs r4, r2, 16
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
adds r2, r5, 0
|
|
bl sub_800160C
|
|
ldr r0, [sp]
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
bls _080017AC
|
|
b _080018CC
|
|
_080017AC:
|
|
lsls r0, 2
|
|
ldr r1, _080017B8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080017B8: .4byte _080017BC
|
|
.align 2, 0
|
|
_080017BC:
|
|
.4byte _080017DC
|
|
.4byte _08001800
|
|
.4byte _08001808
|
|
.4byte _08001814
|
|
.4byte _0800181E
|
|
.4byte _0800182A
|
|
.4byte _08001800
|
|
.4byte _08001834
|
|
_080017DC:
|
|
ldr r0, [sp]
|
|
ldrh r1, [r0, 0x6]
|
|
adds r1, r4, r1
|
|
lsls r1, 16
|
|
lsrs r0, r1, 19
|
|
ldr r2, [sp, 0x4]
|
|
adds r2, r0
|
|
movs r0, 0xE0
|
|
lsls r0, 11
|
|
ands r0, r1
|
|
lsrs r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
lsls r1, r0
|
|
lsrs r1, 24
|
|
ldrb r0, [r2]
|
|
ands r1, r0
|
|
b _0800188E
|
|
_08001800:
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
b _080018CE
|
|
_08001808:
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
b _080018CE
|
|
_08001814:
|
|
ldr r0, [sp, 0x4]
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
b _080018CE
|
|
_0800181E:
|
|
ldr r0, [sp, 0x4]
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
b _080018CE
|
|
_0800182A:
|
|
ldr r0, [sp, 0x4]
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
b _080018CE
|
|
_08001834:
|
|
adds r0, r5, 0
|
|
subs r0, 0x17
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bhi _080018CC
|
|
lsls r0, 2
|
|
ldr r1, _0800184C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0800184C: .4byte _08001850
|
|
.align 2, 0
|
|
_08001850:
|
|
.4byte _08001884
|
|
.4byte _080018CC
|
|
.4byte _080018CC
|
|
.4byte _080018CC
|
|
.4byte _080018CC
|
|
.4byte _080018CC
|
|
.4byte _080018CC
|
|
.4byte _080018CC
|
|
.4byte _080018CC
|
|
.4byte _08001896
|
|
.4byte _0800189C
|
|
.4byte _080018A4
|
|
.4byte _080018B8
|
|
_08001884:
|
|
bl sub_8098F94
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
_0800188E:
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
b _080018CE
|
|
_08001896:
|
|
bl sub_808D480
|
|
b _080018CE
|
|
_0800189C:
|
|
movs r0, 0
|
|
bl sub_808D544
|
|
b _080018CE
|
|
_080018A4:
|
|
ldr r0, _080018B4
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
b _080018CE
|
|
.align 2, 0
|
|
_080018B4: .4byte gUnknown_203B460
|
|
_080018B8:
|
|
ldr r0, _080018C8
|
|
ldr r0, [r0]
|
|
movs r2, 0x99
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
b _080018CE
|
|
.align 2, 0
|
|
_080018C8: .4byte gUnknown_203B460
|
|
_080018CC:
|
|
movs r0, 0
|
|
_080018CE:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001784
|
|
|
|
thumb_func_start sub_80018D8
|
|
sub_80018D8:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
adds r4, r2, 0
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
adds r2, r5, 0
|
|
bl sub_800160C
|
|
ldr r0, [sp]
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
bhi _08001990
|
|
lsls r0, 2
|
|
ldr r1, _08001908
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08001908: .4byte _0800190C
|
|
.align 2, 0
|
|
_0800190C:
|
|
.4byte _0800192C
|
|
.4byte _08001958
|
|
.4byte _08001958
|
|
.4byte _0800195E
|
|
.4byte _0800195E
|
|
.4byte _08001964
|
|
.4byte _08001958
|
|
.4byte _08001968
|
|
_0800192C:
|
|
ldr r0, [sp]
|
|
movs r2, 0x6
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
lsls r0, r1
|
|
lsrs r3, r0, 24
|
|
cmp r4, 0
|
|
beq _0800194A
|
|
ldr r2, [sp, 0x4]
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _08001990
|
|
_0800194A:
|
|
ldr r2, [sp, 0x4]
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
eors r0, r3
|
|
strb r0, [r2]
|
|
b _08001990
|
|
_08001958:
|
|
ldr r0, [sp, 0x4]
|
|
strb r4, [r0]
|
|
b _08001990
|
|
_0800195E:
|
|
ldr r0, [sp, 0x4]
|
|
strh r4, [r0]
|
|
b _08001990
|
|
_08001964:
|
|
ldr r0, [sp, 0x4]
|
|
b _0800198E
|
|
_08001968:
|
|
cmp r5, 0x22
|
|
beq _08001972
|
|
cmp r5, 0x23
|
|
beq _08001984
|
|
b _08001990
|
|
_08001972:
|
|
ldr r0, _08001980
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
b _0800198E
|
|
.align 2, 0
|
|
_08001980: .4byte gUnknown_203B460
|
|
_08001984:
|
|
ldr r0, _08001998
|
|
ldr r0, [r0]
|
|
movs r2, 0x99
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
_0800198E:
|
|
str r4, [r0]
|
|
_08001990:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08001998: .4byte gUnknown_203B460
|
|
thumb_func_end sub_80018D8
|
|
|
|
thumb_func_start sub_800199C
|
|
sub_800199C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r6, r3, 0
|
|
lsls r1, 16
|
|
asrs r7, r1, 16
|
|
lsls r2, 16
|
|
lsrs r5, r2, 16
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl sub_800160C
|
|
ldr r0, [sp]
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x7
|
|
bhi _08001A68
|
|
lsls r0, 2
|
|
ldr r1, _080019D0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080019D0: .4byte _080019D4
|
|
.align 2, 0
|
|
_080019D4:
|
|
.4byte _080019F4
|
|
.4byte _08001A2C
|
|
.4byte _08001A2C
|
|
.4byte _08001A34
|
|
.4byte _08001A34
|
|
.4byte _08001A3E
|
|
.4byte _08001A2C
|
|
.4byte _08001A44
|
|
_080019F4:
|
|
ldr r0, [sp]
|
|
ldrh r0, [r0, 0x6]
|
|
adds r0, r5, r0
|
|
lsls r0, 16
|
|
lsrs r2, r0, 19
|
|
ldr r1, [sp, 0x4]
|
|
adds r3, r1, r2
|
|
movs r1, 0xE0
|
|
lsls r1, 11
|
|
ands r1, r0
|
|
lsrs r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 17
|
|
lsls r0, r1
|
|
lsrs r2, r0, 24
|
|
cmp r6, 0
|
|
beq _08001A20
|
|
ldrb r1, [r3]
|
|
adds r0, r2, 0
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
b _08001A68
|
|
_08001A20:
|
|
ldrb r1, [r3]
|
|
adds r0, r2, 0
|
|
orrs r0, r1
|
|
eors r0, r2
|
|
strb r0, [r3]
|
|
b _08001A68
|
|
_08001A2C:
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, r5
|
|
strb r6, [r0]
|
|
b _08001A68
|
|
_08001A34:
|
|
ldr r1, [sp, 0x4]
|
|
lsls r0, r5, 1
|
|
adds r0, r1
|
|
strh r6, [r0]
|
|
b _08001A68
|
|
_08001A3E:
|
|
ldr r1, [sp, 0x4]
|
|
lsls r0, r5, 2
|
|
b _08001A64
|
|
_08001A44:
|
|
cmp r7, 0x22
|
|
beq _08001A4E
|
|
cmp r7, 0x23
|
|
beq _08001A5C
|
|
b _08001A68
|
|
_08001A4E:
|
|
ldr r0, _08001A58
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
b _08001A64
|
|
.align 2, 0
|
|
_08001A58: .4byte gUnknown_203B460
|
|
_08001A5C:
|
|
ldr r0, _08001A70
|
|
ldr r0, [r0]
|
|
movs r1, 0x99
|
|
lsls r1, 2
|
|
_08001A64:
|
|
adds r0, r1
|
|
str r6, [r0]
|
|
_08001A68:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08001A70: .4byte gUnknown_203B460
|
|
thumb_func_end sub_800199C
|
|
|
|
thumb_func_start sub_8001A74
|
|
sub_8001A74:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
movs r1, 0
|
|
bl sub_800160C
|
|
ldr r0, [sp, 0x4]
|
|
add sp, 0x8
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001A74
|
|
|
|
thumb_func_start sub_8001A90
|
|
sub_8001A90:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r0, sp
|
|
movs r1, 0
|
|
bl sub_800160C
|
|
ldr r0, [sp]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
add sp, 0x8
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001A90
|
|
|
|
thumb_func_start sub_8001AB0
|
|
sub_8001AB0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r7, r0, 0
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
movs r6, 0
|
|
mov r0, sp
|
|
movs r1, 0
|
|
adds r2, r5, 0
|
|
bl sub_800160C
|
|
movs r4, 0
|
|
ldr r0, [sp]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r6, r0
|
|
bge _08001AEC
|
|
_08001AD2:
|
|
lsls r2, r4, 16
|
|
lsrs r2, 16
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_8001784
|
|
adds r6, r0
|
|
adds r4, 0x1
|
|
ldr r0, [sp]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r0, r1]
|
|
cmp r4, r0
|
|
blt _08001AD2
|
|
_08001AEC:
|
|
adds r0, r6, 0
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001AB0
|
|
|
|
thumb_func_start sub_8001AF8
|
|
sub_8001AF8:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
mov r0, sp
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_800160C
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
b _08001B1C
|
|
_08001B16:
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
adds r2, 0x1
|
|
_08001B1C:
|
|
cmp r2, r5
|
|
bge _08001B28
|
|
ldrb r0, [r1]
|
|
adds r1, 0x1
|
|
cmp r0, 0
|
|
bne _08001B16
|
|
_08001B28:
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8001AF8
|
|
|
|
thumb_func_start sub_8001B34
|
|
sub_8001B34:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r3, r0, 0
|
|
adds r4, r2, 0
|
|
lsls r3, 16
|
|
asrs r3, 16
|
|
mov r0, sp
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_800160C
|
|
ldr r1, [sp, 0x4]
|
|
movs r2, 0
|
|
b _08001B56
|
|
_08001B50:
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r2, 0x1
|
|
_08001B56:
|
|
cmp r2, r4
|
|
bge _08001B62
|
|
ldrb r0, [r1]
|
|
adds r1, 0x1
|
|
cmp r0, 0
|
|
bne _08001B50
|
|
_08001B62:
|
|
ldr r0, [sp]
|
|
movs r3, 0x8
|
|
ldrsh r0, [r0, r3]
|
|
cmp r2, r0
|
|
bge _08001B7E
|
|
movs r3, 0
|
|
_08001B6E:
|
|
strb r3, [r1]
|
|
adds r1, 0x1
|
|
adds r2, 0x1
|
|
ldr r0, [sp]
|
|
movs r4, 0x8
|
|
ldrsh r0, [r0, r4]
|
|
cmp r2, r0
|
|
blt _08001B6E
|
|
_08001B7E:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8001B34
|
|
|
|
thumb_func_start sub_8001B88
|
|
sub_8001B88:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8001784
|
|
str r0, [r5]
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8001784
|
|
str r0, [r6]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8001B88
|
|
|
|
thumb_func_start sub_8001BB4
|
|
sub_8001BB4:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
add r2, sp, 0x10
|
|
adds r0, r4, 0
|
|
add r1, sp, 0xC
|
|
bl sub_8001B88
|
|
ldr r1, _08001C20
|
|
ldr r3, [sp, 0xC]
|
|
ldr r0, [sp, 0x10]
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0x6
|
|
adds r2, r4, 0
|
|
bl Log
|
|
cmp r4, 0x3
|
|
bne _08001BF8
|
|
ldr r0, [sp, 0xC]
|
|
cmp r5, r0
|
|
bne _08001BEE
|
|
ldr r0, [sp, 0x10]
|
|
cmp r6, r0
|
|
beq _08001BF8
|
|
_08001BEE:
|
|
movs r0, 0
|
|
movs r1, 0x19
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
_08001BF8:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
adds r3, r5, 0
|
|
bl sub_800199C
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
adds r3, r6, 0
|
|
bl sub_800199C
|
|
cmp r4, 0x4
|
|
beq _08001C76
|
|
cmp r4, 0x4
|
|
bgt _08001C24
|
|
cmp r4, 0x3
|
|
beq _08001C2A
|
|
b _08001CBA
|
|
.align 2, 0
|
|
_08001C20: .4byte gUnknown_80B72CC
|
|
_08001C24:
|
|
cmp r4, 0xC
|
|
beq _08001CA4
|
|
b _08001CBA
|
|
_08001C2A:
|
|
subs r0, r5, 0x1
|
|
cmp r0, 0x1A
|
|
bhi _08001CBA
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x8
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001C48
|
|
movs r0, 0
|
|
bl sub_80976F8
|
|
_08001C48:
|
|
movs r0, 0x3
|
|
movs r1, 0xB
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001C5E
|
|
movs r0, 0x1
|
|
bl sub_80976F8
|
|
_08001C5E:
|
|
movs r0, 0x3
|
|
movs r1, 0x11
|
|
movs r2, 0
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001CBA
|
|
movs r0, 0x2
|
|
bl sub_80976F8
|
|
b _08001CBA
|
|
_08001C76:
|
|
movs r0, 0x4
|
|
movs r1, 0x1F
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08001C8C
|
|
movs r0, 0x4
|
|
bl sub_80976F8
|
|
_08001C8C:
|
|
movs r0, 0x4
|
|
movs r1, 0x20
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08001CBA
|
|
movs r0, 0x5
|
|
bl sub_80976F8
|
|
b _08001CBA
|
|
_08001CA4:
|
|
movs r0, 0xC
|
|
movs r1, 0x37
|
|
movs r2, 0x2
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08001CBA
|
|
movs r0, 0x3
|
|
bl sub_80976F8
|
|
_08001CBA:
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8001BB4
|
|
|
|
thumb_func_start sub_8001CC4
|
|
sub_8001CC4:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8001784
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8001784
|
|
cmp r5, 0x3A
|
|
beq _08001CFE
|
|
cmp r5, r6
|
|
bcc _08001CFA
|
|
cmp r7, 0
|
|
blt _08001CFE
|
|
cmp r5, r6
|
|
bne _08001CFE
|
|
cmp r0, r7
|
|
bge _08001CFE
|
|
_08001CFA:
|
|
movs r0, 0x1
|
|
b _08001D00
|
|
_08001CFE:
|
|
movs r0, 0
|
|
_08001D00:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001CC4
|
|
|
|
thumb_func_start sub_8001D08
|
|
sub_8001D08:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8001784
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8001784
|
|
cmp r5, r6
|
|
bne _08001D3A
|
|
cmp r7, 0
|
|
blt _08001D36
|
|
cmp r0, r7
|
|
bne _08001D3A
|
|
_08001D36:
|
|
movs r0, 0x1
|
|
b _08001D3C
|
|
_08001D3A:
|
|
movs r0, 0
|
|
_08001D3C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001D08
|
|
|
|
thumb_func_start sub_8001D44
|
|
sub_8001D44:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8001784
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8001784
|
|
cmp r5, 0x3A
|
|
beq _08001D7E
|
|
cmp r5, r6
|
|
bhi _08001D7A
|
|
cmp r7, 0
|
|
blt _08001D7E
|
|
cmp r5, r6
|
|
bne _08001D7E
|
|
cmp r0, r7
|
|
ble _08001D7E
|
|
_08001D7A:
|
|
movs r0, 0x1
|
|
b _08001D80
|
|
_08001D7E:
|
|
movs r0, 0
|
|
_08001D80:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8001D44
|
|
|
|
thumb_func_start sub_8001D88
|
|
sub_8001D88:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
add r2, sp, 0x4
|
|
movs r0, 0x3
|
|
mov r1, sp
|
|
bl sub_8001B88
|
|
ldr r0, [sp]
|
|
subs r0, 0x1
|
|
cmp r0, 0x1A
|
|
bls _08001DA0
|
|
b _080020D4
|
|
_08001DA0:
|
|
movs r0, 0x4
|
|
movs r1, 0x1F
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001E08
|
|
movs r0, 0x3
|
|
movs r1, 0xF
|
|
movs r2, 0x7
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001DDE
|
|
movs r0, 0x4
|
|
movs r1, 0x1F
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
movs r0, 0xE
|
|
movs r1, 0x1
|
|
bl sub_8097418
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
movs r2, 0x2
|
|
bl sub_80018D8
|
|
b _08001E08
|
|
_08001DDE:
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001E08
|
|
movs r0, 0x3
|
|
movs r1, 0xF
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001E08
|
|
movs r0, 0x4
|
|
movs r1, 0x1D
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_08001E08:
|
|
movs r0, 0x4
|
|
movs r1, 0x1F
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001E36
|
|
movs r0, 0xE
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001E36
|
|
movs r0, 0x4
|
|
movs r1, 0x1F
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
movs r0, 0xF
|
|
movs r1, 0x1
|
|
bl sub_809733C
|
|
_08001E36:
|
|
ldr r0, [sp]
|
|
cmp r0, 0x11
|
|
bhi _08001E3E
|
|
b _080020D4
|
|
_08001E3E:
|
|
movs r0, 0x25
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
movs r0, 0xE7
|
|
bl sub_8091130
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _08001E72
|
|
ldr r0, _080020DC
|
|
ldr r0, [r0]
|
|
ldr r1, _080020E0
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
bne _08001E72
|
|
movs r0, 0x5
|
|
movs r1, 0x21
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001E7A
|
|
_08001E72:
|
|
movs r0, 0x22
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08001E7A:
|
|
movs r0, 0x2B
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001E8E
|
|
movs r0, 0x1F
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08001E8E:
|
|
movs r0, 0x24
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001EA2
|
|
movs r0, 0x20
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08001EA2:
|
|
movs r0, 0x23
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001EB6
|
|
movs r0, 0x21
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08001EB6:
|
|
movs r0, 0x19
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001ECA
|
|
movs r0, 0x23
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08001ECA:
|
|
movs r0, 0x3
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001EE6
|
|
movs r0, 0x24
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
movs r0, 0x28
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08001EE6:
|
|
movs r0, 0x2C
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001F06
|
|
movs r0, 0x2D
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001F06
|
|
movs r0, 0x26
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08001F06:
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001F20
|
|
movs r0, 0x5
|
|
movs r1, 0x21
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_08001F20:
|
|
movs r0, 0xE2
|
|
bl sub_8091130
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _08001F3E
|
|
ldr r0, _080020DC
|
|
ldr r0, [r0]
|
|
movs r1, 0x85
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
cmp r0, 0
|
|
beq _08001F7E
|
|
_08001F3E:
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001F58
|
|
movs r0, 0x7
|
|
movs r1, 0x26
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_08001F58:
|
|
movs r0, 0x9
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001F7E
|
|
movs r0, 0x37
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001F7E
|
|
movs r0, 0x9
|
|
movs r1, 0x2E
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_08001F7E:
|
|
movs r0, 0x9
|
|
movs r1, 0x30
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800202A
|
|
movs r0, 0x5
|
|
movs r1, 0x22
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001FCC
|
|
movs r0, 0x90
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001FCC
|
|
movs r0, 0x91
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001FCC
|
|
movs r0, 0x92
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08001FCC
|
|
movs r0, 0x5
|
|
movs r1, 0x22
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_08001FCC:
|
|
movs r0, 0xB
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08002002
|
|
movs r0, 0x5
|
|
movs r1, 0x21
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08002002
|
|
movs r0, 0xE
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08002002
|
|
movs r0, 0xB
|
|
movs r1, 0x33
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_08002002:
|
|
movs r0, 0xE
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08002016
|
|
movs r0, 0x27
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_08002016:
|
|
movs r0, 0xE
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800202A
|
|
movs r0, 0x29
|
|
movs r1, 0x1
|
|
bl sub_80973A8
|
|
_0800202A:
|
|
movs r0, 0x5
|
|
movs r1, 0x22
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08002086
|
|
movs r0, 0xA
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800205C
|
|
movs r0, 0xA
|
|
movs r1, 0x31
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
movs r0, 0x1B
|
|
movs r1, 0x1
|
|
bl sub_809733C
|
|
_0800205C:
|
|
movs r0, 0xC
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08002086
|
|
movs r0, 0xB
|
|
movs r1, 0x34
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08002086
|
|
movs r0, 0xC
|
|
movs r1, 0x35
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_08002086:
|
|
movs r0, 0x6
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080020AE
|
|
movs r0, 0x89
|
|
lsls r0, 1
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080020AE
|
|
movs r0, 0x6
|
|
movs r1, 0x24
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_080020AE:
|
|
movs r0, 0x8
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080020D4
|
|
ldr r0, _080020E4
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080020D4
|
|
movs r0, 0x8
|
|
movs r1, 0x2C
|
|
movs r2, 0x1
|
|
bl sub_8001BB4
|
|
_080020D4:
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080020DC: .4byte gUnknown_203B460
|
|
_080020E0: .4byte 0x0000021e
|
|
_080020E4: .4byte 0x00000113
|
|
thumb_func_end sub_8001D88
|
|
|
|
thumb_func_start sub_80020E8
|
|
sub_80020E8:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r2, 0xB
|
|
bhi _08002182
|
|
lsls r0, r2, 2
|
|
ldr r1, _080020FC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080020FC: .4byte _08002100
|
|
.align 2, 0
|
|
_08002100:
|
|
.4byte _08002130
|
|
.4byte _08002134
|
|
.4byte _08002138
|
|
.4byte _0800213C
|
|
.4byte _08002142
|
|
.4byte _0800214C
|
|
.4byte _08002156
|
|
.4byte _0800215C
|
|
.4byte _08002162
|
|
.4byte _08002168
|
|
.4byte _08002170
|
|
.4byte _0800217A
|
|
_08002130:
|
|
adds r0, r4, 0
|
|
b _08002194
|
|
_08002134:
|
|
subs r0, r3, r4
|
|
b _08002194
|
|
_08002138:
|
|
adds r0, r3, r4
|
|
b _08002194
|
|
_0800213C:
|
|
adds r0, r3, 0
|
|
muls r0, r4
|
|
b _08002194
|
|
_08002142:
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
bl __divsi3
|
|
b _08002194
|
|
_0800214C:
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
bl __modsi3
|
|
b _08002194
|
|
_08002156:
|
|
ands r3, r4
|
|
adds r0, r3, 0
|
|
b _08002194
|
|
_0800215C:
|
|
orrs r3, r4
|
|
adds r0, r3, 0
|
|
b _08002194
|
|
_08002162:
|
|
eors r3, r4
|
|
adds r0, r3, 0
|
|
b _08002194
|
|
_08002168:
|
|
movs r0, 0x1
|
|
lsls r0, r4
|
|
orrs r0, r3
|
|
b _08002194
|
|
_08002170:
|
|
movs r0, 0x1
|
|
lsls r0, r4
|
|
bics r3, r0
|
|
adds r0, r3, 0
|
|
b _08002194
|
|
_0800217A:
|
|
adds r0, r4, 0
|
|
bl sub_800451C
|
|
b _08002194
|
|
_08002182:
|
|
ldr r0, _0800218C
|
|
ldr r1, _08002190
|
|
bl FatalError
|
|
.align 2, 0
|
|
_0800218C: .4byte gUnknown_80B7318
|
|
_08002190: .4byte gUnknown_80B7324
|
|
_08002194:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80020E8
|
|
|
|
thumb_func_start sub_800219C
|
|
sub_800219C:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r2, 0xA
|
|
bhi _08002248
|
|
lsls r0, r2, 2
|
|
ldr r1, _080021B0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080021B0: .4byte _080021B4
|
|
.align 2, 0
|
|
_080021B4:
|
|
.4byte _080021E0
|
|
.4byte _080021E4
|
|
.4byte _080021E8
|
|
.4byte _080021FE
|
|
.4byte _08002212
|
|
.4byte _08002208
|
|
.4byte _0800221C
|
|
.4byte _080021F2
|
|
.4byte _08002226
|
|
.4byte _08002232
|
|
.4byte _0800223E
|
|
_080021E0:
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_080021E4:
|
|
movs r0, 0
|
|
b _08002258
|
|
_080021E8:
|
|
movs r0, 0
|
|
cmp r3, r4
|
|
bne _08002258
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_080021F2:
|
|
adds r1, r3, 0
|
|
eors r1, r4
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
b _08002258
|
|
_080021FE:
|
|
movs r0, 0
|
|
cmp r3, r4
|
|
ble _08002258
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_08002208:
|
|
movs r0, 0
|
|
cmp r3, r4
|
|
blt _08002258
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_08002212:
|
|
movs r0, 0
|
|
cmp r3, r4
|
|
bge _08002258
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_0800221C:
|
|
movs r0, 0
|
|
cmp r3, r4
|
|
bgt _08002258
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_08002226:
|
|
adds r0, r3, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08002258
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_08002232:
|
|
adds r0, r3, 0
|
|
eors r0, r4
|
|
cmp r0, 0
|
|
beq _08002258
|
|
movs r0, 0x1
|
|
b _08002258
|
|
_0800223E:
|
|
asrs r3, r4
|
|
movs r0, 0x1
|
|
ands r3, r0
|
|
adds r0, r3, 0
|
|
b _08002258
|
|
_08002248:
|
|
ldr r0, _08002250
|
|
ldr r1, _08002254
|
|
bl FatalError
|
|
.align 2, 0
|
|
_08002250: .4byte gUnknown_80B7350
|
|
_08002254: .4byte gUnknown_80B735C
|
|
_08002258:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800219C
|
|
|
|
thumb_func_start sub_8002260
|
|
sub_8002260:
|
|
push {lr}
|
|
bl sub_80020E8
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002260
|
|
|
|
thumb_func_start sub_800226C
|
|
sub_800226C:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r1, r4, 0
|
|
bl sub_8001658
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_80020E8
|
|
adds r2, r0, 0
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80018D8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800226C
|
|
|
|
thumb_func_start sub_80022A0
|
|
sub_80022A0:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
mov r9, r3
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r1, r5, 0
|
|
bl sub_8001658
|
|
adds r6, r0, 0
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_8001658
|
|
adds r1, r0, 0
|
|
adds r0, r6, 0
|
|
mov r2, r9
|
|
bl sub_80020E8
|
|
adds r2, r0, 0
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
bl sub_80018D8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80022A0
|
|
|
|
thumb_func_start sub_80022E8
|
|
sub_80022E8:
|
|
push {lr}
|
|
bl sub_800219C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80022E8
|
|
|
|
thumb_func_start sub_80022F8
|
|
sub_80022F8:
|
|
push {r4,r5,lr}
|
|
adds r4, r2, 0
|
|
adds r5, r3, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8001658
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_800219C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80022F8
|
|
|
|
thumb_func_start sub_8002318
|
|
sub_8002318:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
adds r6, r0, 0
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
bl sub_8001658
|
|
adds r5, r0, 0
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_8001658
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
mov r2, r8
|
|
bl sub_800219C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002318
|
|
|
|
thumb_func_start sub_8002354
|
|
sub_8002354:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0x3A
|
|
bls _08002362
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0800236C
|
|
_08002362:
|
|
ldr r0, _08002370
|
|
lsls r1, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_0800236C:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08002370: .4byte gUnknown_80B6D90
|
|
thumb_func_end sub_8002354
|
|
|
|
thumb_func_start sub_8002374
|
|
sub_8002374:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0x3A
|
|
bls _08002384
|
|
ldr r0, _08002380
|
|
b _0800238C
|
|
.align 2, 0
|
|
_08002380: .4byte gUnknown_80B7378
|
|
_08002384:
|
|
ldr r0, _08002390
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_0800238C:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08002390: .4byte gUnknown_80B6D90
|
|
thumb_func_end sub_8002374
|
|
|
|
thumb_func_start sub_8002394
|
|
sub_8002394:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
subs r1, 0x12
|
|
cmp r1, 0x8
|
|
bhi _080023AC
|
|
ldr r0, _080023A8
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
b _080023BA
|
|
.align 2, 0
|
|
_080023A8: .4byte gUnknown_80B714C
|
|
_080023AC:
|
|
cmp r0, 0xF
|
|
beq _080023B8
|
|
ldr r0, _080023B4
|
|
b _080023BA
|
|
.align 2, 0
|
|
_080023B4: .4byte gUnknown_80B7144
|
|
_080023B8:
|
|
ldr r0, _080023C0
|
|
_080023BA:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080023C0: .4byte gUnknown_80B7388
|
|
thumb_func_end sub_8002394
|
|
|
|
thumb_func_start sub_80023C4
|
|
sub_80023C4:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0x3
|
|
bls _080023D4
|
|
ldr r0, _080023D0
|
|
b _080023DC
|
|
.align 2, 0
|
|
_080023D0: .4byte gUnknown_80B7144
|
|
_080023D4:
|
|
ldr r0, _080023E0
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_080023DC:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080023E0: .4byte gUnknown_80B71A0
|
|
thumb_func_end sub_80023C4
|
|
|
|
thumb_func_start sub_80023E4
|
|
sub_80023E4:
|
|
push {r4,lr}
|
|
cmp r0, 0x1D
|
|
bls _080023EC
|
|
b _0800264E
|
|
_080023EC:
|
|
lsls r0, 2
|
|
ldr r1, _080023F8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080023F8: .4byte _080023FC
|
|
.align 2, 0
|
|
_080023FC:
|
|
.4byte _08002474
|
|
.4byte _08002482
|
|
.4byte _0800248E
|
|
.4byte _0800249A
|
|
.4byte _080024A6
|
|
.4byte _080024BE
|
|
.4byte _080024E6
|
|
.4byte _080024F4
|
|
.4byte _08002500
|
|
.4byte _0800250C
|
|
.4byte _0800251A
|
|
.4byte _08002526
|
|
.4byte _08002532
|
|
.4byte _0800255A
|
|
.4byte _08002566
|
|
.4byte _0800257A
|
|
.4byte _0800258E
|
|
.4byte _0800259C
|
|
.4byte _080025AA
|
|
.4byte _080025B8
|
|
.4byte _080025C6
|
|
.4byte _080025D4
|
|
.4byte _080025E2
|
|
.4byte _080025F0
|
|
.4byte _080025FE
|
|
.4byte _0800260C
|
|
.4byte _0800261A
|
|
.4byte _08002628
|
|
.4byte _08002630
|
|
.4byte _08002644
|
|
_08002474:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_08002482:
|
|
movs r0, 0x3
|
|
movs r1, 0x3
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_0800248E:
|
|
movs r0, 0x3
|
|
movs r1, 0x4
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_0800249A:
|
|
movs r0, 0x3
|
|
movs r1, 0x5
|
|
movs r2, 0
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080024A6:
|
|
movs r4, 0
|
|
movs r0, 0x3
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08002556
|
|
movs r0, 0x3
|
|
movs r1, 0xD
|
|
b _080024D4
|
|
_080024BE:
|
|
movs r4, 0
|
|
movs r0, 0x3
|
|
movs r1, 0xB
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08002556
|
|
movs r0, 0x3
|
|
movs r1, 0xF
|
|
_080024D4:
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r4, r1, 31
|
|
b _08002556
|
|
_080024E6:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x11
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080024F4:
|
|
movs r0, 0x3
|
|
movs r1, 0x12
|
|
movs r2, 0x2
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_08002500:
|
|
movs r0, 0x3
|
|
movs r1, 0x12
|
|
movs r2, 0x3
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_0800250C:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x12
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_0800251A:
|
|
movs r0, 0x3
|
|
movs r1, 0x5
|
|
movs r2, 0x4
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_08002526:
|
|
movs r0, 0x3
|
|
movs r1, 0x5
|
|
movs r2, 0x4
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_08002532:
|
|
movs r4, 0
|
|
movs r0, 0x3
|
|
movs r1, 0xB
|
|
movs r2, 0x2
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08002556
|
|
movs r0, 0x3
|
|
movs r1, 0xB
|
|
movs r2, 0x3
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08002556
|
|
movs r4, 0x1
|
|
_08002556:
|
|
adds r0, r4, 0
|
|
b _08002650
|
|
_0800255A:
|
|
movs r0, 0x3
|
|
movs r1, 0x10
|
|
movs r2, 0x2
|
|
bl sub_8001D08
|
|
b _08002648
|
|
_08002566:
|
|
movs r0, 0x3
|
|
movs r1, 0x5
|
|
movs r2, 0x7
|
|
bl sub_8001CC4
|
|
movs r1, 0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08002640
|
|
b _0800263E
|
|
_0800257A:
|
|
movs r0, 0x3
|
|
movs r1, 0xF
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
movs r1, 0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08002640
|
|
b _0800263E
|
|
_0800258E:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x7
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_0800259C:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0xC
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080025AA:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0xD
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080025B8:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0xF
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080025C6:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x10
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080025D4:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x5
|
|
movs r1, 0x21
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080025E2:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x5
|
|
movs r1, 0x22
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080025F0:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x6
|
|
movs r1, 0x24
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_080025FE:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x7
|
|
movs r1, 0x2A
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_0800260C:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x8
|
|
movs r1, 0x2C
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_0800261A:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0xA
|
|
movs r1, 0x31
|
|
bl sub_8001D44
|
|
b _08002648
|
|
_08002628:
|
|
movs r0, 0x29
|
|
bl sub_80973F4
|
|
b _08002648
|
|
_08002630:
|
|
bl sub_8092178
|
|
movs r1, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bne _08002640
|
|
_0800263E:
|
|
movs r1, 0x1
|
|
_08002640:
|
|
adds r0, r1, 0
|
|
b _08002650
|
|
_08002644:
|
|
bl sub_809761C
|
|
_08002648:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08002650
|
|
_0800264E:
|
|
movs r0, 0
|
|
_08002650:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80023E4
|
|
|
|
thumb_func_start sub_8002658
|
|
sub_8002658:
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
ldr r1, _0800267C
|
|
ldrh r2, [r1]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
cmp r0, r3
|
|
beq _0800268C
|
|
_0800266E:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, r4
|
|
bne _08002680
|
|
ldrb r0, [r1, 0x2]
|
|
b _0800268E
|
|
.align 2, 0
|
|
_0800267C: .4byte gUnknown_80B71E4
|
|
_08002680:
|
|
adds r1, 0x4
|
|
ldrh r2, [r1]
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, r3
|
|
bne _0800266E
|
|
_0800268C:
|
|
movs r0, 0
|
|
_0800268E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002658
|
|
|
|
thumb_func_start sub_8002694
|
|
sub_8002694:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
ldr r1, _080026B4
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r0, r2
|
|
beq _080026C2
|
|
_080026A8:
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, r3
|
|
bne _080026B8
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
b _080026C6
|
|
.align 2, 0
|
|
_080026B4: .4byte gUnknown_80B71E4
|
|
_080026B8:
|
|
adds r1, 0x4
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, r2
|
|
bne _080026A8
|
|
_080026C2:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080026C6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002694
|
|
|
|
thumb_func_start sub_80026CC
|
|
sub_80026CC:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_8002658
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80026CC
|
|
|
|
thumb_func_start sub_80026E8
|
|
sub_80026E8:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_8002658
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80925EC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80026E8
|
|
|
|
thumb_func_start sub_8002700
|
|
sub_8002700:
|
|
push {lr}
|
|
ldr r1, _08002714
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
bl MemoryCopy8
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08002714: .4byte gUnknown_2000A88
|
|
thumb_func_end sub_8002700
|
|
|
|
thumb_func_start sub_8002718
|
|
sub_8002718:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_800160C
|
|
ldr r0, _08002748
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r1, r4, 0
|
|
bl MemoryCopy8
|
|
ldr r0, [sp]
|
|
movs r2, 0xA
|
|
ldrsh r1, [r0, r2]
|
|
ldr r0, [sp, 0x4]
|
|
ldr r0, [r0]
|
|
cmp r1, r0
|
|
bne _0800274C
|
|
movs r0, 0x1
|
|
b _0800274E
|
|
.align 2, 0
|
|
_08002748: .4byte gUnknown_2000A88
|
|
_0800274C:
|
|
movs r0, 0
|
|
_0800274E:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002718
|
|
|
|
thumb_func_start sub_8002758
|
|
sub_8002758:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r3, 0x9
|
|
bl sub_800226C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8002758
|
|
|
|
thumb_func_start sub_800276C
|
|
sub_800276C:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_800276C
|
|
|
|
thumb_func_start nullsub_140
|
|
nullsub_140:
|
|
bx lr
|
|
thumb_func_end nullsub_140
|
|
|
|
thumb_func_start sub_8002774
|
|
sub_8002774:
|
|
sub sp, 0x4
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x2]
|
|
movs r0, 0xF8
|
|
adds r2, r0, 0
|
|
ands r2, r1
|
|
lsls r2, 7
|
|
mov r1, sp
|
|
ldrb r3, [r1, 0x1]
|
|
adds r1, r0, 0
|
|
ands r1, r3
|
|
lsls r1, 2
|
|
orrs r2, r1
|
|
mov r1, sp
|
|
ldrb r1, [r1]
|
|
ands r0, r1
|
|
lsrs r0, 3
|
|
orrs r0, r2
|
|
add sp, 0x4
|
|
bx lr
|
|
thumb_func_end sub_8002774
|
|
|
|
thumb_func_start sub_80027A0
|
|
sub_80027A0:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
adds r3, r2, 0
|
|
mov r4, sp
|
|
movs r0, 0x1F
|
|
ands r0, r2
|
|
lsls r1, r0, 3
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080027BE
|
|
movs r0, 0x7
|
|
orrs r1, r0
|
|
_080027BE:
|
|
strb r1, [r4]
|
|
mov r4, sp
|
|
movs r0, 0xF8
|
|
lsls r0, 2
|
|
ands r0, r2
|
|
lsrs r1, r0, 2
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080027D6
|
|
movs r0, 0x7
|
|
orrs r1, r0
|
|
_080027D6:
|
|
strb r1, [r4, 0x1]
|
|
mov r2, sp
|
|
movs r0, 0xF8
|
|
lsls r0, 7
|
|
ands r0, r3
|
|
lsrs r1, r0, 7
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _080027F0
|
|
movs r0, 0x7
|
|
orrs r1, r0
|
|
_080027F0:
|
|
strb r1, [r2, 0x2]
|
|
mov r0, sp
|
|
movs r1, 0
|
|
strb r1, [r0, 0x3]
|
|
ldr r0, [sp]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80027A0
|
|
|
|
thumb_func_start sub_8002804
|
|
sub_8002804:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r3, 0
|
|
_0800280C:
|
|
adds r1, r5, r3
|
|
adds r0, r2, r3
|
|
ldrb r0, [r0]
|
|
muls r0, r4
|
|
cmp r0, 0
|
|
bge _0800281A
|
|
adds r0, 0xFF
|
|
_0800281A:
|
|
asrs r0, 8
|
|
strb r0, [r1]
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _0800280C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8002804
|
|
|
|
thumb_func_start sub_800282C
|
|
sub_800282C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x38
|
|
mov r9, r0
|
|
str r1, [sp, 0x20]
|
|
adds r7, r2, 0
|
|
mov r8, r3
|
|
adds r0, r1, 0
|
|
bl __floatsisf
|
|
adds r1, r0, 0
|
|
ldr r0, _08002904
|
|
bl __divsf3
|
|
str r0, [sp, 0x24]
|
|
movs r5, 0
|
|
mov r0, sp
|
|
adds r0, 0x10
|
|
str r0, [sp, 0x2C]
|
|
str r0, [sp, 0x34]
|
|
mov r10, sp
|
|
_0800285C:
|
|
adds r6, r7, r5
|
|
movs r4, 0
|
|
ldrsb r4, [r6, r4]
|
|
adds r0, r4, 0
|
|
bl __floatsisf
|
|
cmp r4, 0
|
|
bge _08002872
|
|
ldr r1, _08002908
|
|
bl __addsf3
|
|
_08002872:
|
|
mov r1, r10
|
|
adds r1, 0x4
|
|
mov r10, r1
|
|
subs r1, 0x4
|
|
stm r1!, {r0}
|
|
mov r1, r8
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r6]
|
|
subs r0, r1
|
|
bl __floatsisf
|
|
ldr r1, [sp, 0x24]
|
|
bl __mulsf3
|
|
ldr r1, [sp, 0x34]
|
|
stm r1!, {r0}
|
|
str r1, [sp, 0x34]
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _0800285C
|
|
ldr r0, [r7]
|
|
mov r1, r9
|
|
adds r1, 0x4
|
|
mov r9, r1
|
|
subs r1, 0x4
|
|
stm r1!, {r0}
|
|
movs r5, 0x1
|
|
ldr r0, [sp, 0x20]
|
|
subs r0, 0x1
|
|
str r0, [sp, 0x28]
|
|
mov r1, r8
|
|
ldr r1, [r1]
|
|
str r1, [sp, 0x30]
|
|
cmp r5, r0
|
|
bge _080028EE
|
|
_080028BA:
|
|
movs r6, 0
|
|
adds r5, 0x1
|
|
mov r10, r5
|
|
movs r0, 0x4
|
|
add r0, r9
|
|
mov r8, r0
|
|
mov r5, sp
|
|
ldr r7, [sp, 0x2C]
|
|
_080028CA:
|
|
mov r1, r9
|
|
adds r4, r1, r6
|
|
ldr r0, [r5]
|
|
ldm r7!, {r1}
|
|
bl __addsf3
|
|
stm r5!, {r0}
|
|
bl __fixunssfsi
|
|
strb r0, [r4]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _080028CA
|
|
mov r9, r8
|
|
mov r5, r10
|
|
ldr r0, [sp, 0x28]
|
|
cmp r5, r0
|
|
blt _080028BA
|
|
_080028EE:
|
|
ldr r1, [sp, 0x30]
|
|
mov r0, r9
|
|
str r1, [r0]
|
|
add sp, 0x38
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08002904: .4byte 0x3f800000
|
|
_08002908: .4byte 0x43800000
|
|
thumb_func_end sub_800282C
|
|
|
|
thumb_func_start sub_800290C
|
|
sub_800290C:
|
|
push {lr}
|
|
ldr r3, [r0]
|
|
cmp r3, r1
|
|
ble _08002918
|
|
str r1, [r0]
|
|
b _08002920
|
|
_08002918:
|
|
negs r2, r1
|
|
cmp r3, r2
|
|
bge _08002920
|
|
str r2, [r0]
|
|
_08002920:
|
|
ldr r2, [r0, 0x4]
|
|
cmp r2, r1
|
|
bgt _0800292C
|
|
negs r1, r1
|
|
cmp r2, r1
|
|
bge _0800292E
|
|
_0800292C:
|
|
str r1, [r0, 0x4]
|
|
_0800292E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800290C
|
|
|
|
thumb_func_start sub_8002934
|
|
sub_8002934:
|
|
push {r4-r6,lr}
|
|
mov r6, r10
|
|
mov r5, r9
|
|
mov r4, r8
|
|
push {r4-r6}
|
|
mov r10, r0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
adds r4, r3, 0
|
|
ldr r5, [sp, 0x1C]
|
|
adds r0, r4, r5
|
|
mov r9, r0
|
|
ldr r0, [r6]
|
|
muls r0, r4
|
|
ldr r1, [r2]
|
|
muls r1, r5
|
|
adds r0, r1
|
|
mov r1, r9
|
|
bl __divsi3
|
|
mov r1, r10
|
|
str r0, [r1]
|
|
ldr r0, [r6, 0x4]
|
|
muls r0, r4
|
|
mov r2, r8
|
|
ldr r1, [r2, 0x4]
|
|
muls r1, r5
|
|
adds r0, r1
|
|
mov r1, r9
|
|
bl __divsi3
|
|
mov r1, r10
|
|
str r0, [r1, 0x4]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8002934
|
|
|
|
thumb_func_start sub_8002984
|
|
sub_8002984:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
asrs r4, r0, 24
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x8
|
|
bhi _08002A68
|
|
lsls r0, 2
|
|
ldr r1, _080029A0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080029A0: .4byte _080029A4
|
|
.align 2, 0
|
|
_080029A4:
|
|
.4byte _080029C8
|
|
.4byte _080029D0
|
|
.4byte _080029D8
|
|
.4byte _080029E0
|
|
.4byte _080029E8
|
|
.4byte _080029F4
|
|
.4byte _08002A34
|
|
.4byte _08002A4E
|
|
.4byte _08002A5E
|
|
_080029C8:
|
|
cmp r4, 0
|
|
blt _08002A68
|
|
adds r4, 0x7
|
|
b _080029EE
|
|
_080029D0:
|
|
cmp r4, 0
|
|
blt _08002A68
|
|
adds r4, 0x1
|
|
b _080029EE
|
|
_080029D8:
|
|
cmp r4, 0
|
|
blt _08002A68
|
|
adds r4, 0x6
|
|
b _080029EE
|
|
_080029E0:
|
|
cmp r4, 0
|
|
blt _08002A68
|
|
adds r4, 0x2
|
|
b _080029EE
|
|
_080029E8:
|
|
cmp r4, 0
|
|
blt _08002A68
|
|
adds r4, 0x4
|
|
_080029EE:
|
|
movs r0, 0x7
|
|
ands r4, r0
|
|
b _08002A68
|
|
_080029F4:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08002A18
|
|
movs r0, 0x2
|
|
bl sub_800451C
|
|
adds r1, r4, 0x7
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002A10
|
|
adds r0, r1, 0x7
|
|
_08002A10:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
b _08002A64
|
|
_08002A18:
|
|
movs r0, 0x3
|
|
bl sub_800451C
|
|
adds r1, r4, 0x6
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002A2C
|
|
adds r0, r1, 0x7
|
|
_08002A2C:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
b _08002A64
|
|
_08002A34:
|
|
movs r0, 0x3
|
|
bl sub_800451C
|
|
adds r1, r4, 0x7
|
|
adds r1, r0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002A46
|
|
adds r0, r1, 0x7
|
|
_08002A46:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
b _08002A64
|
|
_08002A4E:
|
|
movs r0, 0x8
|
|
bl sub_800451C
|
|
movs r2, 0x2
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
b _08002A64
|
|
_08002A5E:
|
|
movs r0, 0x8
|
|
bl sub_800451C
|
|
_08002A64:
|
|
lsls r0, 24
|
|
asrs r4, r0, 24
|
|
_08002A68:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002984
|
|
|
|
thumb_func_start sub_8002A70
|
|
sub_8002A70:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
asrs r3, r0, 24
|
|
lsls r1, 24
|
|
asrs r4, r1, 24
|
|
lsls r2, 24
|
|
lsrs r0, r2, 24
|
|
cmp r3, r4
|
|
beq _08002AFC
|
|
subs r0, 0x1
|
|
cmp r0, 0xA
|
|
bhi _08002AFC
|
|
lsls r0, 2
|
|
ldr r1, _08002A94
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08002A94: .4byte _08002A98
|
|
.align 2, 0
|
|
_08002A98:
|
|
.4byte _08002AC4
|
|
.4byte _08002ACC
|
|
.4byte _08002AD4
|
|
.4byte _08002ADC
|
|
.4byte _08002AFC
|
|
.4byte _08002AFC
|
|
.4byte _08002AFC
|
|
.4byte _08002AFC
|
|
.4byte _08002AFC
|
|
.4byte _08002AF2
|
|
.4byte _08002AE8
|
|
_08002AC4:
|
|
cmp r3, 0
|
|
blt _08002AFC
|
|
adds r3, 0x7
|
|
b _08002AE2
|
|
_08002ACC:
|
|
cmp r3, 0
|
|
blt _08002AFC
|
|
adds r3, 0x1
|
|
b _08002AE2
|
|
_08002AD4:
|
|
cmp r3, 0
|
|
blt _08002AFC
|
|
adds r3, 0x6
|
|
b _08002AE2
|
|
_08002ADC:
|
|
cmp r3, 0
|
|
blt _08002AFC
|
|
adds r3, 0x2
|
|
_08002AE2:
|
|
movs r0, 0x7
|
|
ands r3, r0
|
|
b _08002AFC
|
|
_08002AE8:
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
bl sub_8002B04
|
|
adds r3, r0, 0
|
|
_08002AF2:
|
|
adds r0, r3, 0
|
|
adds r1, r4, 0
|
|
bl sub_8002B04
|
|
adds r3, r0, 0
|
|
_08002AFC:
|
|
adds r0, r3, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002A70
|
|
|
|
thumb_func_start sub_8002B04
|
|
sub_8002B04:
|
|
push {lr}
|
|
lsls r0, 24
|
|
asrs r2, r0, 24
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08002B56
|
|
adds r0, r2, 0
|
|
subs r0, 0x8
|
|
subs r1, r0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002B24
|
|
adds r0, r1, 0x7
|
|
_08002B24:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
beq _08002B56
|
|
cmp r0, 0x3
|
|
bgt _08002B40
|
|
adds r1, r2, 0x1
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002B4C
|
|
adds r0, r2, 0
|
|
adds r0, 0x8
|
|
b _08002B4C
|
|
_08002B40:
|
|
adds r1, r2, 0x7
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002B4C
|
|
adds r0, r2, 0
|
|
adds r0, 0xE
|
|
_08002B4C:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
lsls r0, 24
|
|
asrs r2, r0, 24
|
|
_08002B56:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002B04
|
|
|
|
thumb_func_start sub_8002B5C
|
|
sub_8002B5C:
|
|
push {lr}
|
|
lsls r0, 24
|
|
asrs r2, r0, 24
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08002BAE
|
|
adds r0, r2, 0
|
|
subs r0, 0x8
|
|
subs r1, r0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002B7C
|
|
adds r0, r1, 0x7
|
|
_08002B7C:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
beq _08002BAE
|
|
cmp r0, 0x3
|
|
bgt _08002B98
|
|
adds r1, r2, 0x2
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002BA4
|
|
adds r0, r2, 0
|
|
adds r0, 0x9
|
|
b _08002BA4
|
|
_08002B98:
|
|
adds r1, r2, 0x6
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08002BA4
|
|
adds r0, r2, 0
|
|
adds r0, 0xD
|
|
_08002BA4:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
lsls r0, 24
|
|
asrs r2, r0, 24
|
|
_08002BAE:
|
|
movs r0, 0x6
|
|
ands r2, r0
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002B5C
|
|
|
|
thumb_func_start sub_8002BB8
|
|
sub_8002BB8:
|
|
push {r4,r5,lr}
|
|
lsls r1, 24
|
|
asrs r1, 21
|
|
ldr r3, _08002BD8
|
|
adds r1, r3
|
|
ldr r5, [r1]
|
|
adds r3, r5, 0
|
|
muls r3, r2
|
|
ldr r1, [r1, 0x4]
|
|
adds r4, r1, 0
|
|
muls r4, r2
|
|
str r3, [r0]
|
|
str r4, [r0, 0x4]
|
|
pop {r4,r5}
|
|
pop {r2}
|
|
bx r2
|
|
.align 2, 0
|
|
_08002BD8: .4byte gUnknown_80B7E3C
|
|
thumb_func_end sub_8002BB8
|
|
|
|
thumb_func_start sub_8002BDC
|
|
sub_8002BDC:
|
|
push {lr}
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bge _08002BFA
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bge _08002BEE
|
|
movs r0, 0x5
|
|
b _08002C2A
|
|
_08002BEE:
|
|
cmp r0, 0
|
|
ble _08002BF6
|
|
movs r0, 0x7
|
|
b _08002C2A
|
|
_08002BF6:
|
|
movs r0, 0x6
|
|
b _08002C2A
|
|
_08002BFA:
|
|
cmp r1, 0
|
|
ble _08002C14
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bge _08002C08
|
|
movs r0, 0x3
|
|
b _08002C2A
|
|
_08002C08:
|
|
cmp r0, 0
|
|
ble _08002C10
|
|
movs r0, 0x1
|
|
b _08002C2A
|
|
_08002C10:
|
|
movs r0, 0x2
|
|
b _08002C2A
|
|
_08002C14:
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bge _08002C1E
|
|
movs r0, 0x4
|
|
b _08002C2A
|
|
_08002C1E:
|
|
cmp r0, 0
|
|
bgt _08002C28
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08002C2A
|
|
_08002C28:
|
|
movs r0, 0
|
|
_08002C2A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002BDC
|
|
|
|
thumb_func_start sub_8002C30
|
|
sub_8002C30:
|
|
push {lr}
|
|
ldr r1, [r0, 0x4]
|
|
cmp r1, 0
|
|
bge _08002C3C
|
|
movs r0, 0x4
|
|
b _08002C5A
|
|
_08002C3C:
|
|
cmp r1, 0
|
|
ble _08002C44
|
|
movs r0, 0
|
|
b _08002C5A
|
|
_08002C44:
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bge _08002C4E
|
|
movs r0, 0x6
|
|
b _08002C5A
|
|
_08002C4E:
|
|
cmp r0, 0
|
|
bgt _08002C58
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08002C5A
|
|
_08002C58:
|
|
movs r0, 0x2
|
|
_08002C5A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002C30
|
|
|
|
thumb_func_start sub_8002C60
|
|
sub_8002C60:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bge _08002C6C
|
|
negs r0, r0
|
|
_08002C6C:
|
|
adds r1, r0, 0
|
|
ldr r3, [r4, 0x4]
|
|
adds r5, r3, 0
|
|
cmp r3, 0
|
|
bge _08002C78
|
|
negs r5, r3
|
|
_08002C78:
|
|
adds r2, r5, 0
|
|
ldr r4, [r4]
|
|
cmp r4, 0
|
|
bge _08002CA8
|
|
cmp r3, 0
|
|
bge _08002C94
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
bgt _08002CD8
|
|
lsls r0, r5, 1
|
|
cmp r1, r0
|
|
bgt _08002CA0
|
|
movs r0, 0x5
|
|
b _08002CE8
|
|
_08002C94:
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
bgt _08002CE6
|
|
lsls r0, r5, 1
|
|
cmp r1, r0
|
|
ble _08002CA4
|
|
_08002CA0:
|
|
movs r0, 0x6
|
|
b _08002CE8
|
|
_08002CA4:
|
|
movs r0, 0x7
|
|
b _08002CE8
|
|
_08002CA8:
|
|
cmp r4, 0
|
|
ble _08002CD4
|
|
cmp r3, 0
|
|
bge _08002CC0
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
bgt _08002CD8
|
|
lsls r0, r5, 1
|
|
cmp r1, r0
|
|
bgt _08002CCC
|
|
movs r0, 0x3
|
|
b _08002CE8
|
|
_08002CC0:
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
bgt _08002CE6
|
|
lsls r0, r5, 1
|
|
cmp r1, r0
|
|
ble _08002CD0
|
|
_08002CCC:
|
|
movs r0, 0x2
|
|
b _08002CE8
|
|
_08002CD0:
|
|
movs r0, 0x1
|
|
b _08002CE8
|
|
_08002CD4:
|
|
cmp r3, 0
|
|
bge _08002CDC
|
|
_08002CD8:
|
|
movs r0, 0x4
|
|
b _08002CE8
|
|
_08002CDC:
|
|
cmp r3, 0
|
|
bgt _08002CE6
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08002CE8
|
|
_08002CE6:
|
|
movs r0, 0
|
|
_08002CE8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002C60
|
|
|
|
thumb_func_start sub_8002CF0
|
|
sub_8002CF0:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r3, [r4]
|
|
cmp r3, 0
|
|
bge _08002CFC
|
|
negs r3, r3
|
|
_08002CFC:
|
|
adds r1, r3, 0
|
|
ldr r3, [r4, 0x4]
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _08002D08
|
|
negs r0, r3
|
|
_08002D08:
|
|
adds r2, r0, 0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bge _08002D22
|
|
cmp r3, 0
|
|
bge _08002D1A
|
|
cmp r2, r1
|
|
bgt _08002D3C
|
|
b _08002D1E
|
|
_08002D1A:
|
|
cmp r2, r1
|
|
bgt _08002D4A
|
|
_08002D1E:
|
|
movs r0, 0x6
|
|
b _08002D4C
|
|
_08002D22:
|
|
cmp r0, 0
|
|
ble _08002D38
|
|
cmp r3, 0
|
|
bge _08002D30
|
|
cmp r2, r1
|
|
bgt _08002D3C
|
|
b _08002D34
|
|
_08002D30:
|
|
cmp r2, r1
|
|
bgt _08002D4A
|
|
_08002D34:
|
|
movs r0, 0x2
|
|
b _08002D4C
|
|
_08002D38:
|
|
cmp r3, 0
|
|
bge _08002D40
|
|
_08002D3C:
|
|
movs r0, 0x4
|
|
b _08002D4C
|
|
_08002D40:
|
|
cmp r3, 0
|
|
bgt _08002D4A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _08002D4C
|
|
_08002D4A:
|
|
movs r0, 0
|
|
_08002D4C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002CF0
|
|
|
|
thumb_func_start sub_8002D54
|
|
sub_8002D54:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r4, r1, 0
|
|
adds r5, r3, 0
|
|
ldr r3, [r2]
|
|
ldr r1, [r0]
|
|
subs r3, r1
|
|
str r3, [sp]
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r0, 0x4]
|
|
subs r1, r0
|
|
str r1, [sp, 0x4]
|
|
adds r2, r3, 0
|
|
cmp r2, 0
|
|
blt _08002D8A
|
|
adds r2, 0x1
|
|
ldr r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
subs r2, r0
|
|
str r2, [sp]
|
|
cmp r2, 0
|
|
bge _08002DA4
|
|
b _08002DA0
|
|
_08002D8A:
|
|
subs r2, r3, 0x1
|
|
ldr r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r2, r0
|
|
str r2, [sp]
|
|
cmp r2, 0
|
|
ble _08002DA4
|
|
_08002DA0:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
_08002DA4:
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
blt _08002DC2
|
|
adds r2, 0x1
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x4]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
subs r2, r0
|
|
str r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
bge _08002DDC
|
|
b _08002DD8
|
|
_08002DC2:
|
|
subs r2, 0x1
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x4]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r2, r0
|
|
str r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
ble _08002DDC
|
|
_08002DD8:
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
_08002DDC:
|
|
mov r0, sp
|
|
bl sub_8002CF0
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002D54
|
|
|
|
thumb_func_start sub_8002DF0
|
|
sub_8002DF0:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r4, r1, 0
|
|
adds r5, r3, 0
|
|
ldr r3, [r2]
|
|
ldr r1, [r0]
|
|
subs r3, r1
|
|
str r3, [sp]
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r0, 0x4]
|
|
subs r1, r0
|
|
str r1, [sp, 0x4]
|
|
adds r2, r3, 0
|
|
cmp r2, 0
|
|
blt _08002E26
|
|
adds r2, 0x1
|
|
ldr r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
subs r2, r0
|
|
str r2, [sp]
|
|
cmp r2, 0
|
|
bge _08002E40
|
|
b _08002E3C
|
|
_08002E26:
|
|
subs r2, r3, 0x1
|
|
ldr r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r2, r0
|
|
str r2, [sp]
|
|
cmp r2, 0
|
|
ble _08002E40
|
|
_08002E3C:
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
_08002E40:
|
|
ldr r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
blt _08002E5E
|
|
adds r2, 0x1
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x4]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
subs r2, r0
|
|
str r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
bge _08002E78
|
|
b _08002E74
|
|
_08002E5E:
|
|
subs r2, 0x1
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x4]
|
|
adds r0, r1
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
adds r2, r0
|
|
str r2, [sp, 0x4]
|
|
cmp r2, 0
|
|
ble _08002E78
|
|
_08002E74:
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
_08002E78:
|
|
mov r0, sp
|
|
bl sub_8002C60
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8002DF0
|
|
|
|
thumb_func_start InitHeap
|
|
InitHeap:
|
|
push {lr}
|
|
bl InitHeapInternal
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end InitHeap
|
|
|
|
thumb_func_start MemoryClear8
|
|
MemoryClear8:
|
|
push {lr}
|
|
cmp r1, 0
|
|
ble _08002EAA
|
|
movs r2, 0
|
|
_08002EA0:
|
|
subs r1, 0x1
|
|
strb r2, [r0]
|
|
adds r0, 0x1
|
|
cmp r1, 0
|
|
bgt _08002EA0
|
|
_08002EAA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryClear8
|
|
|
|
thumb_func_start MemoryClear16
|
|
MemoryClear16:
|
|
push {lr}
|
|
cmp r1, 0
|
|
ble _08002EC2
|
|
movs r2, 0
|
|
_08002EB8:
|
|
subs r1, 0x2
|
|
strh r2, [r0]
|
|
adds r0, 0x2
|
|
cmp r1, 0
|
|
bgt _08002EB8
|
|
_08002EC2:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryClear16
|
|
|
|
thumb_func_start MemoryClear32
|
|
MemoryClear32:
|
|
push {lr}
|
|
bl CpuClear
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryClear32
|
|
|
|
thumb_func_start MemoryFill8
|
|
MemoryFill8:
|
|
push {lr}
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
cmp r2, 0
|
|
ble _08002EE8
|
|
_08002EDE:
|
|
subs r2, 0x1
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
cmp r2, 0
|
|
bgt _08002EDE
|
|
_08002EE8:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryFill8
|
|
|
|
thumb_func_start MemoryFill16
|
|
MemoryFill16:
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
cmp r2, 0
|
|
ble _08002F00
|
|
_08002EF6:
|
|
subs r2, 0x2
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
cmp r2, 0
|
|
bgt _08002EF6
|
|
_08002F00:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryFill16
|
|
|
|
thumb_func_start MemoryFill32
|
|
MemoryFill32:
|
|
push {lr}
|
|
cmp r2, 0
|
|
ble _08002F12
|
|
_08002F0A:
|
|
subs r2, 0x4
|
|
stm r0!, {r1}
|
|
cmp r2, 0
|
|
bgt _08002F0A
|
|
_08002F12:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryFill32
|
|
|
|
thumb_func_start MemoryCopy8
|
|
MemoryCopy8:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
cmp r2, 0
|
|
ble _08002F2E
|
|
_08002F20:
|
|
subs r2, 0x1
|
|
ldrb r0, [r1]
|
|
strb r0, [r3]
|
|
adds r1, 0x1
|
|
adds r3, 0x1
|
|
cmp r2, 0
|
|
bgt _08002F20
|
|
_08002F2E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryCopy8
|
|
|
|
thumb_func_start MemoryCopy16
|
|
MemoryCopy16:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
cmp r2, 0
|
|
ble _08002F4A
|
|
_08002F3C:
|
|
subs r2, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
cmp r2, 0
|
|
bgt _08002F3C
|
|
_08002F4A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryCopy16
|
|
|
|
thumb_func_start MemoryCopy32
|
|
MemoryCopy32:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
cmp r2, 0
|
|
ble _08002F62
|
|
_08002F58:
|
|
subs r2, 0x4
|
|
ldm r1!, {r0}
|
|
stm r3!, {r0}
|
|
cmp r2, 0
|
|
bgt _08002F58
|
|
_08002F62:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end MemoryCopy32
|
|
|
|
thumb_func_start InitHeapInternal
|
|
InitHeapInternal:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
ldr r0, _08002F90
|
|
str r0, [sp]
|
|
movs r0, 0x90
|
|
lsls r0, 10
|
|
str r0, [sp, 0x4]
|
|
ldr r1, _08002F94
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, _08002F98
|
|
ldr r2, _08002F9C
|
|
mov r1, sp
|
|
movs r3, 0x20
|
|
bl DoInitHeap
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08002F90: .4byte gUnknown_20011D0
|
|
_08002F94: .4byte gUnknown_2000EA8
|
|
_08002F98: .4byte gUnknown_2000EB0
|
|
_08002F9C: .4byte gUnknown_2000ED0
|
|
thumb_func_end InitHeapInternal
|
|
|
|
thumb_func_start DoInitHeap
|
|
DoInitHeap:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
ldr r4, [r1, 0x4]
|
|
mov r9, r4
|
|
movs r4, 0x4
|
|
negs r4, r4
|
|
mov r5, r9
|
|
ands r5, r4
|
|
mov r9, r5
|
|
ldr r6, _08002FFC
|
|
ldr r4, _08003000
|
|
mov r8, r4
|
|
ldr r5, [r4]
|
|
lsls r4, r5, 2
|
|
adds r4, r6
|
|
str r0, [r4]
|
|
adds r5, 0x1
|
|
mov r4, r8
|
|
str r5, [r4]
|
|
ldr r5, [r1]
|
|
str r5, [r0, 0x14]
|
|
mov r1, r9
|
|
str r1, [r0, 0x18]
|
|
movs r1, 0x2
|
|
str r1, [r0]
|
|
movs r4, 0
|
|
str r4, [r0, 0x4]
|
|
str r2, [r0, 0x8]
|
|
movs r1, 0x1
|
|
str r1, [r0, 0xC]
|
|
str r3, [r0, 0x10]
|
|
str r4, [r2]
|
|
str r4, [r2, 0x4]
|
|
str r5, [r2, 0xC]
|
|
mov r5, r9
|
|
str r5, [r2, 0x10]
|
|
str r4, [r2, 0x14]
|
|
str r4, [r2, 0x8]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08002FFC: .4byte gUnknown_2000E88
|
|
_08003000: .4byte gUnknown_2000EA8
|
|
thumb_func_end DoInitHeap
|
|
|
|
thumb_func_start InitSubHeap
|
|
InitSubHeap:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r3, r2, 0
|
|
lsls r4, r3, 1
|
|
adds r4, r3
|
|
movs r2, 0x4
|
|
negs r2, r2
|
|
lsls r4, 3
|
|
ldr r5, [r1, 0x4]
|
|
subs r5, r4
|
|
ands r5, r2
|
|
ldr r2, [r1]
|
|
adds r4, r2, r4
|
|
str r4, [sp]
|
|
str r5, [sp, 0x4]
|
|
mov r1, sp
|
|
bl DoInitHeap
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end InitSubHeap
|
|
|
|
thumb_func_start xxx_memory_attr_related
|
|
xxx_memory_attr_related:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _0800303C
|
|
movs r0, 0
|
|
b _08003060
|
|
_0800303C:
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08003048
|
|
movs r0, 0x4
|
|
b _08003060
|
|
_08003048:
|
|
movs r2, 0x7
|
|
ands r2, r1
|
|
movs r0, 0x1
|
|
cmp r2, 0x7
|
|
beq _08003060
|
|
movs r0, 0x2
|
|
cmp r2, 0x1
|
|
beq _08003060
|
|
movs r0, 0x5
|
|
cmp r2, 0x3
|
|
bne _08003060
|
|
movs r0, 0x3
|
|
_08003060:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end xxx_memory_attr_related
|
|
|
|
thumb_func_start MemorySearchFromFront
|
|
MemorySearchFromFront:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r2, 0
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080030CC
|
|
movs r4, 0
|
|
ldr r3, [r5, 0x8]
|
|
ldr r2, [r5, 0xC]
|
|
cmp r4, r2
|
|
bge _08003104
|
|
ldr r0, [r3, 0x4]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08003090
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, r6
|
|
blt _080030AC
|
|
movs r0, 0
|
|
b _08003108
|
|
_08003090:
|
|
adds r4, 0x1
|
|
adds r3, 0x18
|
|
cmp r4, r2
|
|
bge _08003104
|
|
ldr r0, [r3, 0x4]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08003090
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, r6
|
|
blt _080030AC
|
|
_080030A8:
|
|
adds r0, r4, 0
|
|
b _08003108
|
|
_080030AC:
|
|
cmp r4, r2
|
|
bge _08003104
|
|
movs r5, 0x1
|
|
adds r1, r2, 0
|
|
_080030B4:
|
|
ldr r0, [r3, 0x4]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _080030C2
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, r6
|
|
bge _080030A8
|
|
_080030C2:
|
|
adds r4, 0x1
|
|
adds r3, 0x18
|
|
cmp r4, r1
|
|
blt _080030B4
|
|
b _08003104
|
|
_080030CC:
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
ldr r1, _08003100
|
|
movs r4, 0
|
|
ldr r3, [r5, 0x8]
|
|
ldr r2, [r5, 0xC]
|
|
cmp r4, r2
|
|
bge _080030FC
|
|
movs r5, 0x1
|
|
_080030DE:
|
|
ldr r0, [r3, 0x4]
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _080030F4
|
|
ldr r0, [r3, 0x10]
|
|
cmp r0, r6
|
|
blt _080030F4
|
|
cmp r0, r1
|
|
bge _080030F4
|
|
adds r7, r4, 0
|
|
adds r1, r0, 0
|
|
_080030F4:
|
|
adds r4, 0x1
|
|
adds r3, 0x18
|
|
cmp r4, r2
|
|
blt _080030DE
|
|
_080030FC:
|
|
adds r0, r7, 0
|
|
b _08003108
|
|
.align 2, 0
|
|
_08003100: .4byte 0x00024001
|
|
_08003104:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_08003108:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end MemorySearchFromFront
|
|
|
|
thumb_func_start MemorySearchFromBack
|
|
MemorySearchFromBack:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08003168
|
|
ldr r0, [r4, 0xC]
|
|
subs r3, r0, 0x1
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
ldr r1, [r4, 0x8]
|
|
adds r2, r1, r0
|
|
b _08003132
|
|
_0800312E:
|
|
subs r3, 0x1
|
|
subs r2, 0x18
|
|
_08003132:
|
|
cmp r3, 0
|
|
blt _080031A8
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0800312E
|
|
ldr r0, [r2, 0x10]
|
|
cmp r0, r5
|
|
blt _0800314A
|
|
_08003146:
|
|
adds r0, r3, 0
|
|
b _080031AC
|
|
_0800314A:
|
|
cmp r3, 0
|
|
blt _080031A8
|
|
movs r1, 0x1
|
|
_08003150:
|
|
ldr r0, [r2, 0x4]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0800315E
|
|
ldr r0, [r2, 0x10]
|
|
cmp r0, r5
|
|
bge _08003146
|
|
_0800315E:
|
|
subs r3, 0x1
|
|
subs r2, 0x18
|
|
cmp r3, 0
|
|
bge _08003150
|
|
b _080031A8
|
|
_08003168:
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
ldr r6, _080031A4
|
|
ldr r0, [r4, 0xC]
|
|
subs r3, r0, 0x1
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
ldr r1, [r4, 0x8]
|
|
adds r2, r1, r0
|
|
cmp r3, 0
|
|
blt _080031A0
|
|
movs r1, 0x1
|
|
_08003182:
|
|
ldr r0, [r2, 0x4]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08003198
|
|
ldr r0, [r2, 0x10]
|
|
cmp r0, r5
|
|
blt _08003198
|
|
cmp r0, r6
|
|
bge _08003198
|
|
adds r7, r3, 0
|
|
adds r6, r0, 0
|
|
_08003198:
|
|
subs r3, 0x1
|
|
subs r2, 0x18
|
|
cmp r3, 0
|
|
bge _08003182
|
|
_080031A0:
|
|
adds r0, r7, 0
|
|
b _080031AC
|
|
.align 2, 0
|
|
_080031A4: .4byte 0x00024001
|
|
_080031A8:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080031AC:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end MemorySearchFromBack
|
|
|
|
thumb_func_start MemorySplitFront
|
|
MemorySplitFront:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
adds r0, r3, 0
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ldr r1, [sp, 0x10]
|
|
ands r1, r0
|
|
str r1, [sp, 0x10]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 1
|
|
mov r12, r2
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r12
|
|
lsls r0, 3
|
|
ldr r5, [sp, 0x8]
|
|
ldr r2, [r5, 0x8]
|
|
adds r4, r2, r0
|
|
ldr r0, [r4, 0x10]
|
|
cmp r0, r1
|
|
ble _08003260
|
|
ldr r3, [r5, 0xC]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
mov r9, r12
|
|
mov r10, r2
|
|
mov r12, r3
|
|
ldr r6, [r5, 0x10]
|
|
mov r8, r6
|
|
ldr r7, [sp, 0xC]
|
|
cmp r12, r7
|
|
ble _08003222
|
|
_0800320A:
|
|
adds r2, r1, 0
|
|
subs r2, 0x18
|
|
adds r0, r2, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
subs r3, 0x1
|
|
adds r1, r2, 0
|
|
ldr r0, [sp, 0xC]
|
|
cmp r3, r0
|
|
bgt _0800320A
|
|
_08003222:
|
|
mov r2, r12
|
|
adds r2, 0x1
|
|
ldr r1, [sp, 0x8]
|
|
str r2, [r1, 0xC]
|
|
cmp r2, r8
|
|
ble _08003240
|
|
ldr r0, _08003238
|
|
ldr r1, _0800323C
|
|
mov r3, r8
|
|
bl FatalError
|
|
.align 2, 0
|
|
_08003238: .4byte gUnknown_80B7EB8
|
|
_0800323C: .4byte gUnknown_80B7EC4
|
|
_08003240:
|
|
ldr r0, [sp, 0xC]
|
|
add r0, r9
|
|
lsls r0, 3
|
|
adds r0, 0x18
|
|
mov r2, r10
|
|
adds r1, r2, r0
|
|
ldr r0, [r1, 0xC]
|
|
ldr r5, [sp, 0x10]
|
|
adds r0, r5
|
|
str r0, [r1, 0xC]
|
|
ldr r0, [r1, 0x10]
|
|
subs r0, r5
|
|
str r0, [r1, 0x10]
|
|
str r5, [r4, 0x10]
|
|
ldr r6, [sp, 0x4]
|
|
str r6, [r4, 0x14]
|
|
_08003260:
|
|
ldr r0, [sp]
|
|
bl xxx_memory_attr_related
|
|
str r0, [r4]
|
|
ldr r7, [sp]
|
|
str r7, [r4, 0x4]
|
|
ldr r0, [sp, 0x34]
|
|
str r0, [r4, 0x8]
|
|
adds r0, r4, 0
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end MemorySplitFront
|
|
|
|
thumb_func_start MemorySplitBack
|
|
MemorySplitBack:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
adds r0, r3, 0
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0x4
|
|
negs r0, r0
|
|
ldr r1, [sp, 0x10]
|
|
ands r1, r0
|
|
str r1, [sp, 0x10]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 3
|
|
ldr r5, [sp, 0x8]
|
|
ldr r1, [r5, 0x8]
|
|
adds r4, r1, r0
|
|
ldr r0, [r4, 0x10]
|
|
ldr r6, [sp, 0x10]
|
|
cmp r0, r6
|
|
ble _08003328
|
|
ldr r3, [r5, 0xC]
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
mov r12, r3
|
|
ldr r7, [r5, 0x10]
|
|
mov r8, r7
|
|
ldr r0, [r4, 0xC]
|
|
mov r9, r0
|
|
movs r2, 0x18
|
|
adds r2, r4
|
|
mov r10, r2
|
|
ldr r5, [sp, 0xC]
|
|
cmp r12, r5
|
|
ble _080032F6
|
|
_080032DE:
|
|
adds r2, r1, 0
|
|
subs r2, 0x18
|
|
adds r0, r2, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
subs r3, 0x1
|
|
adds r1, r2, 0
|
|
ldr r6, [sp, 0xC]
|
|
cmp r3, r6
|
|
bgt _080032DE
|
|
_080032F6:
|
|
mov r2, r12
|
|
adds r2, 0x1
|
|
ldr r7, [sp, 0x8]
|
|
str r2, [r7, 0xC]
|
|
cmp r2, r8
|
|
ble _08003314
|
|
ldr r0, _0800330C
|
|
ldr r1, _08003310
|
|
mov r3, r8
|
|
bl FatalError
|
|
.align 2, 0
|
|
_0800330C: .4byte gUnknown_80B7EFC
|
|
_08003310: .4byte gUnknown_80B7EC4
|
|
_08003314:
|
|
ldr r0, [r4, 0x10]
|
|
ldr r1, [sp, 0x10]
|
|
subs r0, r1
|
|
str r0, [r4, 0x10]
|
|
add r0, r9
|
|
mov r4, r10
|
|
str r0, [r4, 0xC]
|
|
str r1, [r4, 0x10]
|
|
ldr r2, [sp, 0x4]
|
|
str r2, [r4, 0x14]
|
|
_08003328:
|
|
ldr r0, [sp]
|
|
bl xxx_memory_attr_related
|
|
str r0, [r4]
|
|
ldr r5, [sp]
|
|
str r5, [r4, 0x4]
|
|
ldr r0, [sp, 0x34]
|
|
str r0, [r4, 0x8]
|
|
adds r0, r4, 0
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end MemorySplitBack
|
|
|
|
thumb_func_start MemoryLocateSet
|
|
MemoryLocateSet:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
adds r6, r2, 0
|
|
cmp r5, 0
|
|
bne _0800335C
|
|
ldr r5, _08003390
|
|
_0800335C:
|
|
asrs r4, r6, 8
|
|
movs r0, 0x1
|
|
orrs r4, r0
|
|
movs r0, 0xFF
|
|
ands r6, r0
|
|
movs r0, 0x2
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08003394
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl MemorySearchFromFront
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
blt _080033B4
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
adds r3, r7, 0
|
|
bl MemorySplitFront
|
|
ldr r0, [r0, 0xC]
|
|
b _080033CC
|
|
.align 2, 0
|
|
_08003390: .4byte gUnknown_2000EB0
|
|
_08003394:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl MemorySearchFromBack
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
blt _080033B4
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
adds r3, r7, 0
|
|
bl MemorySplitBack
|
|
ldr r0, [r0, 0xC]
|
|
b _080033CC
|
|
_080033B4:
|
|
ldr r0, _080033C4
|
|
ldr r1, _080033C8
|
|
str r4, [sp]
|
|
str r6, [sp, 0x4]
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080033C4: .4byte gUnknown_80B7F14
|
|
_080033C8: .4byte gUnknown_80B7F20
|
|
_080033CC:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end MemoryLocateSet
|
|
|
|
thumb_func_start MemoryAlloc
|
|
MemoryAlloc:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r0, _080033E8
|
|
adds r1, r3, 0
|
|
bl DoAlloc
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080033E8: .4byte gUnknown_2000EB0
|
|
thumb_func_end MemoryAlloc
|
|
|
|
thumb_func_start MemoryFree
|
|
MemoryFree:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _080033FC
|
|
bl DoFree
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080033FC: .4byte gUnknown_2000EB0
|
|
thumb_func_end MemoryFree
|
|
|
|
thumb_func_start CreateSubHeap
|
|
CreateSubHeap:
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r7, r2, 0
|
|
adds r6, r3, 0
|
|
cmp r4, 0
|
|
bne _08003412
|
|
ldr r4, _0800342C
|
|
_08003412:
|
|
adds r0, r4, 0
|
|
movs r1, 0x9
|
|
adds r2, r5, 0
|
|
bl MemorySearchFromBack
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _08003438
|
|
ldr r0, _08003430
|
|
ldr r1, _08003434
|
|
adds r2, r5, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_0800342C: .4byte gUnknown_2000EB0
|
|
_08003430: .4byte gUnknown_80B7F88
|
|
_08003434: .4byte gUnknown_80B7F94
|
|
_08003438:
|
|
str r6, [sp]
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
adds r3, r5, 0
|
|
bl MemorySplitBack
|
|
ldr r1, [r0, 0xC]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r0, 0x10]
|
|
str r0, [sp, 0x8]
|
|
add r0, sp, 0x4
|
|
adds r1, r7, 0
|
|
bl DoCreateSubHeap
|
|
str r4, [r0, 0x4]
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end CreateSubHeap
|
|
|
|
thumb_func_start DoCreateSubHeap
|
|
DoCreateSubHeap:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r2, r1, 0
|
|
ldr r4, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
str r1, [sp]
|
|
ldr r0, [r0, 0x4]
|
|
subs r0, 0x1C
|
|
str r0, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl InitSubHeap
|
|
adds r0, r4, 0
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end DoCreateSubHeap
|
|
|
|
thumb_func_start xxx_unused_memory_free
|
|
xxx_unused_memory_free:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _08003504
|
|
movs r1, 0
|
|
ldr r0, [r4, 0xC]
|
|
cmp r0, 0x1
|
|
bne _080034A2
|
|
ldr r0, [r4, 0x8]
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _080034A2
|
|
movs r1, 0x1
|
|
_080034A2:
|
|
cmp r1, 0
|
|
beq _08003504
|
|
movs r0, 0
|
|
mov r12, r0
|
|
movs r3, 0
|
|
ldr r6, _080034E0
|
|
ldr r0, [r6]
|
|
cmp r12, r0
|
|
bge _080034F2
|
|
ldr r5, _080034E4
|
|
adds r1, r6, 0
|
|
adds r7, r5, 0
|
|
movs r2, 0
|
|
_080034BC:
|
|
adds r0, r2, r5
|
|
ldr r0, [r0]
|
|
cmp r0, r4
|
|
bne _080034E8
|
|
ldr r0, [r1]
|
|
subs r0, 0x1
|
|
str r0, [r1]
|
|
cmp r3, r0
|
|
bge _080034F8
|
|
ldr r1, _080034E0
|
|
adds r2, r7
|
|
_080034D2:
|
|
ldr r0, [r2, 0x4]
|
|
stm r2!, {r0}
|
|
adds r3, 0x1
|
|
ldr r0, [r1]
|
|
cmp r3, r0
|
|
blt _080034D2
|
|
b _080034F8
|
|
.align 2, 0
|
|
_080034E0: .4byte gUnknown_2000EA8
|
|
_080034E4: .4byte gUnknown_2000E88
|
|
_080034E8:
|
|
adds r2, 0x4
|
|
adds r3, 0x1
|
|
ldr r0, [r6]
|
|
cmp r3, r0
|
|
blt _080034BC
|
|
_080034F2:
|
|
mov r0, r12
|
|
cmp r0, 0
|
|
beq _08003504
|
|
_080034F8:
|
|
ldr r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
beq _08003504
|
|
adds r1, r4, 0
|
|
bl DoFree
|
|
_08003504:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end xxx_unused_memory_free
|
|
|
|
thumb_func_start DoAlloc
|
|
DoAlloc:
|
|
push {lr}
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
orrs r3, r2
|
|
adds r2, r3, 0
|
|
bl MemoryLocateSet
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end DoAlloc
|
|
|
|
thumb_func_start DoFree
|
|
DoFree:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _0800352E
|
|
ldr r4, _080035D4
|
|
_0800352E:
|
|
cmp r1, 0
|
|
beq _080035E4
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r3, [r4, 0x8]
|
|
mov r12, r3
|
|
ldr r3, [r4, 0xC]
|
|
cmp r8, r3
|
|
bge _080035E4
|
|
movs r2, 0
|
|
_08003542:
|
|
mov r5, r12
|
|
ldr r0, [r5, 0xC]
|
|
cmp r0, r1
|
|
bne _080035D8
|
|
str r2, [r5]
|
|
str r2, [r5, 0x4]
|
|
str r2, [r5, 0x14]
|
|
str r2, [r5, 0x8]
|
|
ldr r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
cmp r8, r0
|
|
bge _08003592
|
|
mov r2, r12
|
|
adds r2, 0x18
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, 0
|
|
bne _08003592
|
|
ldr r0, [r5, 0x10]
|
|
ldr r1, [r2, 0x10]
|
|
adds r0, r1
|
|
str r0, [r5, 0x10]
|
|
ldr r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
str r0, [r4, 0xC]
|
|
mov r3, r8
|
|
adds r3, 0x1
|
|
cmp r3, r0
|
|
bge _08003592
|
|
_0800357A:
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x18
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
adds r3, 0x1
|
|
adds r2, 0x18
|
|
ldr r0, [r4, 0xC]
|
|
cmp r3, r0
|
|
blt _0800357A
|
|
_08003592:
|
|
mov r6, r8
|
|
cmp r6, 0
|
|
ble _080035E4
|
|
mov r2, r12
|
|
subs r2, 0x18
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, 0
|
|
bne _080035E4
|
|
ldr r0, [r2, 0x10]
|
|
mov r7, r12
|
|
ldr r1, [r7, 0x10]
|
|
adds r0, r1
|
|
str r0, [r2, 0x10]
|
|
ldr r0, [r4, 0xC]
|
|
subs r0, 0x1
|
|
str r0, [r4, 0xC]
|
|
mov r2, r12
|
|
mov r3, r8
|
|
cmp r3, r0
|
|
bge _080035E4
|
|
_080035BA:
|
|
adds r0, r2, 0
|
|
adds r1, r2, 0
|
|
adds r1, 0x18
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
ldm r1!, {r5-r7}
|
|
stm r0!, {r5-r7}
|
|
adds r3, 0x1
|
|
adds r2, 0x18
|
|
ldr r0, [r4, 0xC]
|
|
cmp r3, r0
|
|
blt _080035BA
|
|
b _080035E4
|
|
.align 2, 0
|
|
_080035D4: .4byte gUnknown_2000EB0
|
|
_080035D8:
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
movs r5, 0x18
|
|
add r12, r5
|
|
cmp r8, r3
|
|
blt _08003542
|
|
_080035E4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end DoFree
|
|
|
|
thumb_func_start nullsub_141
|
|
nullsub_141:
|
|
bx lr
|
|
thumb_func_end nullsub_141
|
|
|
|
thumb_func_start nullsub_142
|
|
nullsub_142:
|
|
bx lr
|
|
thumb_func_end nullsub_142
|
|
|
|
thumb_func_start sub_80035F8
|
|
sub_80035F8:
|
|
push {lr}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80035F8
|
|
|
|
thumb_func_start sub_8003600
|
|
sub_8003600:
|
|
push {r4-r6,lr}
|
|
ldr r1, _08003650
|
|
ldr r6, _08003654
|
|
movs r2, 0
|
|
ldr r0, _08003658
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
_0800360E:
|
|
strb r2, [r0]
|
|
strb r2, [r0, 0x1]
|
|
strb r2, [r0, 0x2]
|
|
strb r2, [r0, 0x3]
|
|
adds r0, 0x4
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _0800360E
|
|
movs r0, 0
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
ldr r4, _0800365C
|
|
movs r3, 0x20
|
|
ldr r2, _08003660
|
|
_0800362A:
|
|
strb r0, [r1]
|
|
strh r5, [r1, 0x2]
|
|
strb r0, [r1, 0x4]
|
|
strb r0, [r1, 0x5]
|
|
strb r0, [r1, 0x6]
|
|
strb r0, [r1, 0x7]
|
|
str r0, [r1, 0x8]
|
|
str r4, [r1, 0xC]
|
|
str r2, [r1, 0x10]
|
|
subs r3, 0x1
|
|
adds r1, 0x14
|
|
cmp r3, 0
|
|
bge _0800362A
|
|
movs r0, 0x1
|
|
strb r0, [r6]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08003650: .4byte gUnknown_3000C00
|
|
_08003654: .4byte gUnknown_3001B58
|
|
_08003658: .4byte gUnknown_3000400
|
|
_0800365C: .4byte sub_8003A34
|
|
_08003660: .4byte sub_8003A74
|
|
thumb_func_end sub_8003600
|
|
|
|
thumb_func_start sub_8003664
|
|
sub_8003664:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _0800369C
|
|
adds r2, r0
|
|
movs r3, 0
|
|
movs r4, 0x1
|
|
strb r4, [r2]
|
|
movs r0, 0
|
|
strh r1, [r2, 0x2]
|
|
strb r0, [r2, 0x4]
|
|
strb r0, [r2, 0x5]
|
|
strb r0, [r2, 0x6]
|
|
strb r0, [r2, 0x7]
|
|
str r3, [r2, 0x8]
|
|
ldr r0, _080036A0
|
|
str r0, [r2, 0xC]
|
|
ldr r0, _080036A4
|
|
str r0, [r2, 0x10]
|
|
ldr r0, _080036A8
|
|
strb r4, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800369C: .4byte gUnknown_3000C00
|
|
_080036A0: .4byte sub_8003AC0
|
|
_080036A4: .4byte sub_8003B50
|
|
_080036A8: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_8003664
|
|
|
|
thumb_func_start sub_80036AC
|
|
sub_80036AC:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
str r2, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _080036E4
|
|
adds r2, r0
|
|
movs r3, 0
|
|
movs r4, 0x1
|
|
strb r4, [r2]
|
|
strh r1, [r2, 0x2]
|
|
ldr r0, [sp]
|
|
str r0, [r2, 0x4]
|
|
str r3, [r2, 0x8]
|
|
ldr r0, _080036E8
|
|
str r0, [r2, 0xC]
|
|
ldr r0, _080036EC
|
|
str r0, [r2, 0x10]
|
|
ldr r0, _080036F0
|
|
strb r4, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080036E4: .4byte gUnknown_3000C00
|
|
_080036E8: .4byte sub_8003C18
|
|
_080036EC: .4byte sub_8003D00
|
|
_080036F0: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_80036AC
|
|
|
|
thumb_func_start sub_80036F4
|
|
sub_80036F4:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
str r2, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _0800372C
|
|
adds r2, r0
|
|
movs r3, 0
|
|
movs r4, 0x1
|
|
strb r4, [r2]
|
|
strh r1, [r2, 0x2]
|
|
ldr r0, [sp]
|
|
str r0, [r2, 0x4]
|
|
str r3, [r2, 0x8]
|
|
ldr r0, _08003730
|
|
str r0, [r2, 0xC]
|
|
ldr r0, _08003734
|
|
str r0, [r2, 0x10]
|
|
ldr r0, _08003738
|
|
strb r4, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800372C: .4byte gUnknown_3000C00
|
|
_08003730: .4byte sub_8003E2C
|
|
_08003734: .4byte sub_8003EC0
|
|
_08003738: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_80036F4
|
|
|
|
thumb_func_start sub_800373C
|
|
sub_800373C:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r3, r0, 2
|
|
adds r3, r0
|
|
lsls r3, 2
|
|
ldr r0, _08003770
|
|
adds r3, r0
|
|
movs r4, 0x1
|
|
strb r4, [r3]
|
|
movs r0, 0
|
|
strh r1, [r3, 0x2]
|
|
strb r0, [r3, 0x4]
|
|
strb r0, [r3, 0x5]
|
|
strb r0, [r3, 0x6]
|
|
strb r0, [r3, 0x7]
|
|
str r2, [r3, 0x8]
|
|
ldr r0, _08003774
|
|
str r0, [r3, 0xC]
|
|
ldr r0, _08003778
|
|
str r0, [r3, 0x10]
|
|
ldr r0, _0800377C
|
|
strb r4, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08003770: .4byte gUnknown_3000C00
|
|
_08003774: .4byte sub_8003F60
|
|
_08003778: .4byte sub_8004034
|
|
_0800377C: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_800373C
|
|
|
|
thumb_func_start sub_8003780
|
|
sub_8003780:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
str r2, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _080037B8
|
|
adds r2, r0
|
|
movs r3, 0
|
|
movs r4, 0x1
|
|
strb r4, [r2]
|
|
strh r1, [r2, 0x2]
|
|
ldr r0, [sp]
|
|
str r0, [r2, 0x4]
|
|
str r3, [r2, 0x8]
|
|
ldr r0, _080037BC
|
|
str r0, [r2, 0xC]
|
|
ldr r0, _080037C0
|
|
str r0, [r2, 0x10]
|
|
ldr r0, _080037C4
|
|
strb r4, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080037B8: .4byte gUnknown_3000C00
|
|
_080037BC: .4byte sub_8004170
|
|
_080037C0: .4byte sub_8004264
|
|
_080037C4: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_8003780
|
|
|
|
thumb_func_start sub_80037C8
|
|
sub_80037C8:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
str r2, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _08003800
|
|
adds r2, r0
|
|
movs r3, 0
|
|
movs r4, 0x1
|
|
strb r4, [r2]
|
|
strh r1, [r2, 0x2]
|
|
ldr r0, [sp]
|
|
str r0, [r2, 0x4]
|
|
str r3, [r2, 0x8]
|
|
ldr r0, _08003804
|
|
str r0, [r2, 0xC]
|
|
ldr r0, _08003808
|
|
str r0, [r2, 0x10]
|
|
ldr r0, _0800380C
|
|
strb r4, [r0]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08003800: .4byte gUnknown_3000C00
|
|
_08003804: .4byte sub_8004388
|
|
_08003808: .4byte sub_8004434
|
|
_0800380C: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_80037C8
|
|
|
|
thumb_func_start sub_8003810
|
|
sub_8003810:
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
lsls r0, 16
|
|
lsrs r2, r0, 20
|
|
lsls r1, r2, 2
|
|
adds r1, r2
|
|
lsls r1, 2
|
|
ldr r2, _08003838
|
|
adds r1, r2
|
|
movs r2, 0x1
|
|
strb r2, [r1]
|
|
ldr r1, _0800383C
|
|
lsrs r0, 14
|
|
adds r0, r1
|
|
ldr r1, [sp]
|
|
str r1, [r0]
|
|
ldr r0, _08003840
|
|
strb r2, [r0]
|
|
add sp, 0x4
|
|
bx lr
|
|
.align 2, 0
|
|
_08003838: .4byte gUnknown_3000C00
|
|
_0800383C: .4byte gUnknown_3000400
|
|
_08003840: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_8003810
|
|
|
|
thumb_func_start sub_8003844
|
|
sub_8003844:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
lsrs r0, 20
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
ldr r0, _08003880
|
|
adds r2, r0
|
|
movs r5, 0x1
|
|
strb r5, [r2]
|
|
adds r0, r1, 0
|
|
bl sub_80027A0
|
|
str r0, [sp]
|
|
ldr r0, _08003884
|
|
lsls r4, 2
|
|
adds r4, r0
|
|
ldr r0, [sp]
|
|
str r0, [r4]
|
|
ldr r0, _08003888
|
|
strb r5, [r0]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08003880: .4byte gUnknown_3000C00
|
|
_08003884: .4byte gUnknown_3000400
|
|
_08003888: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_8003844
|
|
|
|
thumb_func_start sub_800388C
|
|
sub_800388C:
|
|
push {r4-r7,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
lsrs r4, r0, 20
|
|
adds r3, r1, r2
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0
|
|
bge _080038A0
|
|
adds r0, 0xF
|
|
_080038A0:
|
|
lsls r0, 12
|
|
lsrs r3, r0, 16
|
|
lsls r1, 2
|
|
ldr r0, _080038E4
|
|
adds r1, r0
|
|
lsls r5, r4, 2
|
|
ldr r7, _080038E8
|
|
ldr r0, _080038EC
|
|
mov r12, r0
|
|
cmp r2, 0
|
|
ble _080038C0
|
|
_080038B6:
|
|
ldm r6!, {r0}
|
|
stm r1!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080038B6
|
|
_080038C0:
|
|
adds r0, r5, r4
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
adds r2, r4, 0
|
|
cmp r2, r3
|
|
bgt _080038D8
|
|
movs r1, 0x1
|
|
_080038CE:
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
adds r0, 0x14
|
|
cmp r2, r3
|
|
ble _080038CE
|
|
_080038D8:
|
|
movs r0, 0x1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080038E4: .4byte gUnknown_3000400
|
|
_080038E8: .4byte gUnknown_3000C00
|
|
_080038EC: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_800388C
|
|
|
|
thumb_func_start sub_80038F0
|
|
sub_80038F0:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x4
|
|
adds r5, r1, 0
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
lsrs r6, r0, 20
|
|
adds r3, r1, r2
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0
|
|
bge _0800390C
|
|
adds r0, 0xF
|
|
_0800390C:
|
|
lsls r0, 12
|
|
lsrs r7, r0, 16
|
|
lsls r1, 2
|
|
ldr r0, _0800396C
|
|
adds r1, r0
|
|
mov r8, r1
|
|
lsls r0, r6, 2
|
|
mov r9, r0
|
|
cmp r2, 0
|
|
ble _0800393C
|
|
adds r4, r2, 0
|
|
_08003922:
|
|
ldrh r0, [r5]
|
|
adds r5, 0x2
|
|
bl sub_80027A0
|
|
str r0, [sp]
|
|
mov r1, r8
|
|
adds r1, 0x4
|
|
mov r8, r1
|
|
subs r1, 0x4
|
|
stm r1!, {r0}
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08003922
|
|
_0800393C:
|
|
mov r1, r9
|
|
adds r0, r1, r6
|
|
lsls r0, 2
|
|
ldr r1, _08003970
|
|
adds r0, r1
|
|
adds r4, r6, 0
|
|
ldr r2, _08003974
|
|
cmp r4, r7
|
|
bgt _0800395A
|
|
movs r1, 0x1
|
|
_08003950:
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
adds r0, 0x14
|
|
cmp r4, r7
|
|
ble _08003950
|
|
_0800395A:
|
|
movs r0, 0x1
|
|
strb r0, [r2]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800396C: .4byte gUnknown_3000400
|
|
_08003970: .4byte gUnknown_3000C00
|
|
_08003974: .4byte gUnknown_3001B58
|
|
thumb_func_end sub_80038F0
|
|
|
|
thumb_func_start sub_8003978
|
|
sub_8003978:
|
|
lsls r0, 16
|
|
ldr r1, _08003984
|
|
lsrs r0, 14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08003984: .4byte gUnknown_3000400
|
|
thumb_func_end sub_8003978
|
|
|
|
thumb_func_start sub_8003988
|
|
sub_8003988:
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r1, _080039A0
|
|
lsrs r0, 14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl sub_8002774
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080039A0: .4byte gUnknown_3000400
|
|
thumb_func_end sub_8003988
|
|
|
|
thumb_func_start sub_80039A4
|
|
sub_80039A4:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _080039B4
|
|
ldrh r1, [r2]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080039B4: .4byte gUnknown_3001B5A
|
|
thumb_func_end sub_80039A4
|
|
|
|
thumb_func_start sub_80039B8
|
|
sub_80039B8:
|
|
push {r4,r5,lr}
|
|
ldr r0, _08003A28
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08003A20
|
|
ldr r4, _08003A2C
|
|
movs r1, 0x96
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080039DA
|
|
movs r0, 0xA0
|
|
lsls r0, 2
|
|
adds r1, r4, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080039DA:
|
|
movs r5, 0
|
|
_080039DC:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _080039F0
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
ldr r1, [r4, 0x10]
|
|
bl _call_via_r1
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_080039F0:
|
|
adds r5, 0x1
|
|
adds r4, 0x14
|
|
cmp r5, 0x1F
|
|
ble _080039DC
|
|
ldr r0, _08003A2C
|
|
movs r1, 0xA0
|
|
lsls r1, 2
|
|
adds r5, r0, r1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08003A14
|
|
ldr r2, [r4, 0xC]
|
|
movs r0, 0x20
|
|
movs r1, 0xF0
|
|
bl _call_via_r2
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
_08003A14:
|
|
ldr r1, _08003A30
|
|
movs r0, 0x3
|
|
strh r0, [r1]
|
|
ldr r1, _08003A28
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_08003A20:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08003A28: .4byte gUnknown_3001B58
|
|
_08003A2C: .4byte gUnknown_3000C00
|
|
_08003A30: .4byte gUnknown_3001B5A
|
|
thumb_func_end sub_80039B8
|
|
|
|
thumb_func_start sub_8003A34
|
|
sub_8003A34:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
lsls r0, r1, 16
|
|
lsrs r0, 16
|
|
lsls r5, r0, 2
|
|
ldr r1, _08003A70
|
|
adds r5, r1
|
|
ldrb r1, [r5, 0x2]
|
|
movs r2, 0xF8
|
|
adds r3, r2, 0
|
|
ands r3, r1
|
|
lsls r3, 7
|
|
ldrb r4, [r5, 0x1]
|
|
adds r1, r2, 0
|
|
ands r1, r4
|
|
lsls r1, 2
|
|
orrs r3, r1
|
|
ldrb r1, [r5]
|
|
ands r2, r1
|
|
lsrs r2, 3
|
|
orrs r2, r3
|
|
mov r1, sp
|
|
strh r2, [r1]
|
|
bl SetBGPaletteBufferColor
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08003A70: .4byte gUnknown_3000400
|
|
thumb_func_end sub_8003A34
|
|
|
|
thumb_func_start sub_8003A74
|
|
sub_8003A74:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 20
|
|
lsrs r6, r0, 16
|
|
lsls r1, r6, 2
|
|
ldr r0, _08003ABC
|
|
adds r4, r1, r0
|
|
movs r5, 0
|
|
movs r7, 0xF8
|
|
_08003A86:
|
|
ldrb r0, [r4, 0x2]
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r4, 0x1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
lsls r0, 2
|
|
orrs r1, r0
|
|
ldrb r2, [r4]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
lsrs r0, 3
|
|
orrs r0, r1
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r6, r5
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08003A86
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08003ABC: .4byte gUnknown_3000400
|
|
thumb_func_end sub_8003A74
|
|
|
|
thumb_func_start sub_8003AC0
|
|
sub_8003AC0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08003B04
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2]
|
|
adds r6, r2, 0
|
|
lsls r1, r7, 2
|
|
ldr r0, _08003B08
|
|
adds r4, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _08003B0C
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
ldrb r3, [r4, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
ldrb r0, [r4]
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
b _08003B3A
|
|
.align 2, 0
|
|
_08003B04: .4byte gUnknown_3000C00
|
|
_08003B08: .4byte gUnknown_3000400
|
|
_08003B0C:
|
|
cmp r2, 0
|
|
bne _08003B16
|
|
mov r0, sp
|
|
strh r2, [r0]
|
|
b _08003B3E
|
|
_08003B16:
|
|
ldrb r0, [r4, 0x2]
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r5, r0, 7
|
|
ldrb r0, [r4, 0x1]
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 2
|
|
orrs r1, r5
|
|
ldrb r0, [r4]
|
|
muls r0, r6
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r1, r0
|
|
_08003B3A:
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
_08003B3E:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl SetBGPaletteBufferColor
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8003AC0
|
|
|
|
thumb_func_start sub_8003B50
|
|
sub_8003B50:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _08003BAC
|
|
adds r1, r2
|
|
ldrh r6, [r1, 0x2]
|
|
lsls r0, 20
|
|
lsrs r7, r0, 16
|
|
lsls r1, r7, 2
|
|
ldr r0, _08003BB0
|
|
adds r4, r1, r0
|
|
cmp r6, 0xFF
|
|
bls _08003BB4
|
|
movs r5, 0
|
|
movs r6, 0xF8
|
|
_08003B7A:
|
|
ldrb r0, [r4, 0x2]
|
|
adds r1, r6, 0
|
|
ands r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r4, 0x1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
lsls r0, 2
|
|
orrs r1, r0
|
|
ldrb r2, [r4]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
lsrs r0, 3
|
|
orrs r0, r1
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
adds r0, r7, r5
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08003B7A
|
|
b _08003C0A
|
|
.align 2, 0
|
|
_08003BAC: .4byte gUnknown_3000C00
|
|
_08003BB0: .4byte gUnknown_3000400
|
|
_08003BB4:
|
|
cmp r6, 0
|
|
bne _08003BCE
|
|
mov r0, sp
|
|
strh r6, [r0]
|
|
movs r5, 0
|
|
_08003BBE:
|
|
adds r0, r7, r5
|
|
mov r1, sp
|
|
bl SetBGPaletteBufferColor
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08003BBE
|
|
b _08003C0A
|
|
_08003BCE:
|
|
movs r5, 0
|
|
mov r8, sp
|
|
_08003BD2:
|
|
ldrb r0, [r4, 0x2]
|
|
muls r0, r6
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r2, r0, 7
|
|
ldrb r0, [r4, 0x1]
|
|
muls r0, r6
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 2
|
|
orrs r1, r2
|
|
ldrb r0, [r4]
|
|
muls r0, r6
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r1, r0
|
|
mov r0, r8
|
|
strh r1, [r0]
|
|
adds r0, r7, r5
|
|
mov r1, sp
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08003BD2
|
|
_08003C0A:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8003B50
|
|
|
|
thumb_func_start sub_8003C18
|
|
sub_8003C18:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r8, r1
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08003C68
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2]
|
|
mov r12, r2
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
lsls r1, r0, 2
|
|
ldr r0, _08003C6C
|
|
adds r4, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _08003C70
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
ldrb r3, [r4, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
ldrb r0, [r4]
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
b _08003CE8
|
|
.align 2, 0
|
|
_08003C68: .4byte gUnknown_3000C00
|
|
_08003C6C: .4byte gUnknown_3000400
|
|
_08003C70:
|
|
cmp r2, 0
|
|
bne _08003C98
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
mov r0, sp
|
|
ldrb r3, [r0, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
b _08003CE8
|
|
_08003C98:
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
subs r0, r2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
ldrb r1, [r1]
|
|
adds r7, r1, 0
|
|
muls r7, r0
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x1]
|
|
adds r6, r1, 0
|
|
muls r6, r0
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x2]
|
|
muls r1, r0
|
|
ldrb r0, [r4, 0x2]
|
|
muls r0, r2
|
|
adds r0, r1
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r5, r0, 7
|
|
ldrb r0, [r4, 0x1]
|
|
muls r0, r2
|
|
adds r0, r6
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 2
|
|
orrs r1, r5
|
|
ldrb r0, [r4]
|
|
mov r2, r12
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r7
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r1, r0
|
|
_08003CE8:
|
|
add r0, sp, 0x4
|
|
strh r1, [r0]
|
|
adds r1, r0, 0
|
|
mov r0, r8
|
|
bl SetBGPaletteBufferColor
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8003C18
|
|
|
|
thumb_func_start sub_8003D00
|
|
sub_8003D00:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _08003D68
|
|
adds r1, r2
|
|
ldrh r6, [r1, 0x2]
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [sp]
|
|
lsls r0, 20
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
lsls r1, r0, 2
|
|
ldr r0, _08003D6C
|
|
adds r4, r1, r0
|
|
cmp r6, 0xFF
|
|
bls _08003D70
|
|
movs r5, 0
|
|
movs r7, 0xF8
|
|
add r6, sp, 0x4
|
|
_08003D36:
|
|
ldrb r0, [r4, 0x2]
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r4, 0x1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
lsls r0, 2
|
|
orrs r1, r0
|
|
ldrb r2, [r4]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
lsrs r0, 3
|
|
orrs r0, r1
|
|
strh r0, [r6]
|
|
mov r1, r8
|
|
adds r0, r1, r5
|
|
adds r1, r6, 0
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08003D36
|
|
b _08003E1C
|
|
.align 2, 0
|
|
_08003D68: .4byte gUnknown_3000C00
|
|
_08003D6C: .4byte gUnknown_3000400
|
|
_08003D70:
|
|
cmp r6, 0
|
|
bne _08003DAE
|
|
add r4, sp, 0x4
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
mov r0, sp
|
|
ldrb r3, [r0, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
strh r1, [r4]
|
|
movs r5, 0
|
|
_08003D9C:
|
|
mov r2, r8
|
|
adds r0, r2, r5
|
|
adds r1, r4, 0
|
|
bl SetBGPaletteBufferColor
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08003D9C
|
|
b _08003E1C
|
|
_08003DAE:
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
subs r0, r6
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r1, sp
|
|
ldrb r1, [r1]
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
str r2, [sp, 0x8]
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x1]
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
mov r10, r2
|
|
mov r1, sp
|
|
ldrb r1, [r1, 0x2]
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
mov r9, r2
|
|
movs r5, 0
|
|
add r7, sp, 0x4
|
|
_08003DDC:
|
|
ldrb r0, [r4, 0x2]
|
|
muls r0, r6
|
|
add r0, r9
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r2, r0, 7
|
|
ldrb r0, [r4, 0x1]
|
|
muls r0, r6
|
|
add r0, r10
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 2
|
|
orrs r1, r2
|
|
ldrb r0, [r4]
|
|
muls r0, r6
|
|
ldr r2, [sp, 0x8]
|
|
adds r0, r2
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r1, r0
|
|
strh r1, [r7]
|
|
mov r1, r8
|
|
adds r0, r1, r5
|
|
adds r1, r7, 0
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08003DDC
|
|
_08003E1C:
|
|
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_8003D00
|
|
|
|
thumb_func_start sub_8003E2C
|
|
sub_8003E2C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08003E74
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2]
|
|
adds r5, r2, 0
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [sp]
|
|
cmp r2, 0xFF
|
|
bls _08003E78
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
mov r0, sp
|
|
ldrb r3, [r0, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
b _08003EAC
|
|
.align 2, 0
|
|
_08003E74: .4byte gUnknown_3000C00
|
|
_08003E78:
|
|
cmp r2, 0
|
|
bne _08003E82
|
|
add r0, sp, 0x4
|
|
strh r2, [r0]
|
|
b _08003EB0
|
|
_08003E82:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r4, r0, 7
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 2
|
|
orrs r1, r4
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
muls r0, r5
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r1, r0
|
|
_08003EAC:
|
|
add r0, sp, 0x4
|
|
strh r1, [r0]
|
|
_08003EB0:
|
|
adds r1, r0, 0
|
|
adds r0, r6, 0
|
|
bl SetBGPaletteBufferColor
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8003E2C
|
|
|
|
thumb_func_start sub_8003EC0
|
|
sub_8003EC0:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _08003F08
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x2]
|
|
adds r5, r2, 0
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [sp]
|
|
lsls r0, 20
|
|
lsrs r6, r0, 16
|
|
cmp r2, 0xFF
|
|
bls _08003F0C
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
mov r0, sp
|
|
ldrb r3, [r0, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
b _08003F40
|
|
.align 2, 0
|
|
_08003F08: .4byte gUnknown_3000C00
|
|
_08003F0C:
|
|
cmp r2, 0
|
|
bne _08003F16
|
|
add r0, sp, 0x4
|
|
strh r2, [r0]
|
|
b _08003F44
|
|
_08003F16:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r4, r0, 7
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
muls r0, r2
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 2
|
|
orrs r1, r4
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
muls r0, r5
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r1, r0
|
|
_08003F40:
|
|
add r0, sp, 0x4
|
|
strh r1, [r0]
|
|
_08003F44:
|
|
adds r5, r0, 0
|
|
movs r4, 0
|
|
_08003F48:
|
|
adds r0, r6, r4
|
|
adds r1, r5, 0
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _08003F48
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8003EC0
|
|
|
|
thumb_func_start sub_8003F60
|
|
sub_8003F60:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _08003FA8
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2]
|
|
adds r3, r2, 0
|
|
movs r0, 0xF
|
|
ands r0, r7
|
|
lsls r0, 2
|
|
ldr r1, [r1, 0x8]
|
|
adds r5, r1, r0
|
|
lsls r1, r7, 2
|
|
ldr r0, _08003FAC
|
|
adds r4, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _08003FB0
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
ldrb r3, [r4, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
ldrb r0, [r4]
|
|
b _08003FCA
|
|
.align 2, 0
|
|
_08003FA8: .4byte gUnknown_3000C00
|
|
_08003FAC: .4byte gUnknown_3000400
|
|
_08003FB0:
|
|
cmp r2, 0
|
|
bne _08003FD6
|
|
ldrb r0, [r5, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
ldrb r3, [r5, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
ldrb r0, [r5]
|
|
_08003FCA:
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
b _08004024
|
|
_08003FD6:
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1, 0
|
|
subs r0, r3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r5]
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
ldrb r1, [r4]
|
|
muls r1, r3
|
|
adds r6, r2, r1
|
|
ldrb r1, [r5, 0x1]
|
|
adds r2, r1, 0
|
|
muls r2, r0
|
|
ldrb r1, [r4, 0x1]
|
|
muls r1, r3
|
|
adds r2, r1
|
|
ldrb r1, [r5, 0x2]
|
|
muls r1, r0
|
|
ldrb r0, [r4, 0x2]
|
|
muls r0, r3
|
|
adds r0, r1, r0
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r1, r0, 7
|
|
adds r0, r2, 0
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r2, r0, 2
|
|
orrs r2, r1
|
|
adds r0, r6, 0
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r2, r0
|
|
mov r0, sp
|
|
strh r2, [r0]
|
|
_08004024:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl SetBGPaletteBufferColor
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8003F60
|
|
|
|
thumb_func_start sub_8004034
|
|
sub_8004034:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _0800409C
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x2]
|
|
mov r8, r2
|
|
ldr r5, [r1, 0x8]
|
|
lsls r0, 20
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
lsls r1, r0, 2
|
|
ldr r0, _080040A0
|
|
adds r4, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _080040A4
|
|
movs r7, 0
|
|
movs r5, 0xF8
|
|
_08004068:
|
|
ldrb r0, [r4, 0x2]
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
lsls r0, 2
|
|
orrs r1, r0
|
|
ldrb r2, [r4]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
lsrs r0, 3
|
|
orrs r0, r1
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r1, r10
|
|
adds r0, r1, r7
|
|
mov r1, sp
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x4
|
|
adds r7, 0x1
|
|
cmp r7, 0xF
|
|
ble _08004068
|
|
b _0800415E
|
|
.align 2, 0
|
|
_0800409C: .4byte gUnknown_3000C00
|
|
_080040A0: .4byte gUnknown_3000400
|
|
_080040A4:
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _080040E2
|
|
movs r7, 0
|
|
mov r6, sp
|
|
movs r4, 0xF8
|
|
_080040B0:
|
|
ldrb r0, [r5, 0x2]
|
|
adds r1, r4, 0
|
|
ands r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r5, 0x1]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
lsls r0, 2
|
|
orrs r1, r0
|
|
ldrb r2, [r5]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
lsrs r0, 3
|
|
orrs r0, r1
|
|
strh r0, [r6]
|
|
mov r1, r10
|
|
adds r0, r1, r7
|
|
mov r1, sp
|
|
bl SetBGPaletteBufferColor
|
|
adds r5, 0x4
|
|
adds r7, 0x1
|
|
cmp r7, 0xF
|
|
ble _080040B0
|
|
b _0800415E
|
|
_080040E2:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r0, r2, 0
|
|
mov r1, r8
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
movs r7, 0
|
|
mov r2, sp
|
|
str r2, [sp, 0x4]
|
|
_080040F8:
|
|
ldrb r0, [r5]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
ldrb r0, [r4]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r1, r0
|
|
mov r12, r1
|
|
ldrb r0, [r5, 0x1]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
ldrb r0, [r4, 0x1]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r6, r1, r0
|
|
ldrb r0, [r5, 0x2]
|
|
mov r1, r9
|
|
muls r1, r0
|
|
ldrb r0, [r4, 0x2]
|
|
mov r2, r8
|
|
muls r2, r0
|
|
adds r0, r2, 0
|
|
adds r0, r1, r0
|
|
asrs r0, 8
|
|
movs r3, 0xF8
|
|
ands r0, r3
|
|
lsls r2, r0, 7
|
|
adds r0, r6, 0
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 2
|
|
orrs r1, r2
|
|
mov r0, r12
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsrs r0, 3
|
|
orrs r1, r0
|
|
ldr r0, [sp, 0x4]
|
|
strh r1, [r0]
|
|
mov r1, r10
|
|
adds r0, r1, r7
|
|
mov r1, sp
|
|
bl SetBGPaletteBufferColor
|
|
adds r4, 0x4
|
|
adds r5, 0x4
|
|
adds r7, 0x1
|
|
cmp r7, 0xF
|
|
ble _080040F8
|
|
_0800415E:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8004034
|
|
|
|
thumb_func_start sub_8004170
|
|
sub_8004170:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r9, r1
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _080041C4
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2]
|
|
adds r4, r2, 0
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [sp]
|
|
mov r0, r9
|
|
lsls r1, r0, 2
|
|
ldr r0, _080041C8
|
|
adds r6, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _080041CC
|
|
ldrb r0, [r6, 0x2]
|
|
movs r1, 0xF8
|
|
adds r2, r1, 0
|
|
ands r2, r0
|
|
lsls r2, 7
|
|
ldrb r3, [r6, 0x1]
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
lsls r0, 2
|
|
orrs r2, r0
|
|
ldrb r0, [r6]
|
|
ands r1, r0
|
|
lsrs r1, 3
|
|
orrs r1, r2
|
|
add r0, sp, 0x4
|
|
strh r1, [r0]
|
|
b _0800424C
|
|
.align 2, 0
|
|
_080041C4: .4byte gUnknown_3000C00
|
|
_080041C8: .4byte gUnknown_3000400
|
|
_080041CC:
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r3, 0xFF
|
|
subs r0, r3, r1
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080041DC
|
|
adds r0, 0xFF
|
|
_080041DC:
|
|
asrs r0, 8
|
|
adds r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x1]
|
|
subs r0, r3, r1
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080041F4
|
|
adds r0, 0xFF
|
|
_080041F4:
|
|
asrs r0, 8
|
|
adds r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x2]
|
|
subs r0, r3, r1
|
|
muls r0, r4
|
|
cmp r0, 0
|
|
bge _0800420A
|
|
adds r0, 0xFF
|
|
_0800420A:
|
|
asrs r0, 8
|
|
adds r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldrb r1, [r6, 0x2]
|
|
muls r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
movs r5, 0xF8
|
|
ands r4, r5
|
|
lsls r4, 7
|
|
ldrb r0, [r6, 0x1]
|
|
muls r0, r7
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
orrs r4, r0
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
ands r0, r5
|
|
lsrs r0, 3
|
|
orrs r4, r0
|
|
add r0, sp, 0x4
|
|
strh r4, [r0]
|
|
_0800424C:
|
|
adds r1, r0, 0
|
|
mov r0, r9
|
|
bl SetBGPaletteBufferColor
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8004170
|
|
|
|
thumb_func_start sub_8004264
|
|
sub_8004264:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _080042CC
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x2]
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [sp]
|
|
lsls r0, 20
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
lsls r1, r0, 2
|
|
ldr r0, _080042D0
|
|
adds r5, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _080042D4
|
|
movs r6, 0
|
|
movs r7, 0xF8
|
|
add r4, sp, 0x4
|
|
_0800429A:
|
|
ldrb r0, [r5, 0x2]
|
|
adds r1, r7, 0
|
|
ands r1, r0
|
|
lsls r1, 7
|
|
ldrb r2, [r5, 0x1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
lsls r0, 2
|
|
orrs r1, r0
|
|
ldrb r2, [r5]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
lsrs r0, 3
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
mov r1, r9
|
|
adds r0, r1, r6
|
|
adds r1, r4, 0
|
|
bl SetBGPaletteBufferColor
|
|
adds r5, 0x4
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
ble _0800429A
|
|
b _08004378
|
|
.align 2, 0
|
|
_080042CC: .4byte gUnknown_3000C00
|
|
_080042D0: .4byte gUnknown_3000400
|
|
_080042D4:
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r3, 0xFF
|
|
subs r0, r3, r1
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080042E4
|
|
adds r0, 0xFF
|
|
_080042E4:
|
|
asrs r0, 8
|
|
adds r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x1]
|
|
subs r0, r3, r1
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080042FC
|
|
adds r0, 0xFF
|
|
_080042FC:
|
|
asrs r0, 8
|
|
adds r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0xC]
|
|
mov r0, sp
|
|
ldrb r1, [r0, 0x2]
|
|
subs r0, r3, r1
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _08004314
|
|
adds r0, 0xFF
|
|
_08004314:
|
|
asrs r0, 8
|
|
adds r0, r1, r0
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
movs r6, 0
|
|
add r7, sp, 0x4
|
|
movs r0, 0xF8
|
|
mov r8, r0
|
|
_08004326:
|
|
ldrb r0, [r5, 0x2]
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
ands r4, r0
|
|
lsls r4, 7
|
|
ldrb r0, [r5, 0x1]
|
|
ldr r1, [sp, 0xC]
|
|
muls r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
mov r1, r8
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
orrs r4, r0
|
|
ldrb r0, [r5]
|
|
ldr r1, [sp, 0x8]
|
|
muls r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
mov r1, r8
|
|
ands r0, r1
|
|
lsrs r0, 3
|
|
orrs r4, r0
|
|
strh r4, [r7]
|
|
mov r1, r9
|
|
adds r0, r1, r6
|
|
adds r1, r7, 0
|
|
bl SetBGPaletteBufferColor
|
|
adds r5, 0x4
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
ble _08004326
|
|
_08004378:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8004264
|
|
|
|
thumb_func_start sub_8004388
|
|
sub_8004388:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r9, r1
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0800442C
|
|
adds r1, r0
|
|
ldrh r2, [r1, 0x2]
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [sp]
|
|
mov r0, r9
|
|
lsls r1, r0, 2
|
|
ldr r0, _08004430
|
|
adds r6, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _080043BC
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
_080043BC:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
mov r8, r0
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
muls r0, r2
|
|
lsls r0, 8
|
|
lsrs r7, r0, 16
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
muls r0, r2
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
ldrb r1, [r6, 0x2]
|
|
muls r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
movs r5, 0xF8
|
|
ands r4, r5
|
|
lsls r4, 7
|
|
ldrb r0, [r6, 0x1]
|
|
muls r0, r7
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
orrs r4, r0
|
|
ldrb r0, [r6]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
ands r0, r5
|
|
lsrs r0, 3
|
|
orrs r4, r0
|
|
add r1, sp, 0x4
|
|
strh r4, [r1]
|
|
mov r0, r9
|
|
bl SetBGPaletteBufferColor
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800442C: .4byte gUnknown_3000C00
|
|
_08004430: .4byte gUnknown_3000400
|
|
thumb_func_end sub_8004388
|
|
|
|
thumb_func_start sub_8004434
|
|
sub_8004434:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r2, _080044F8
|
|
adds r1, r2
|
|
ldrh r2, [r1, 0x2]
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [sp]
|
|
lsls r0, 20
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
lsls r1, r0, 2
|
|
ldr r0, _080044FC
|
|
adds r5, r1, r0
|
|
cmp r2, 0xFF
|
|
bls _08004468
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
_08004468:
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x8]
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x1]
|
|
muls r0, r2
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
str r0, [sp, 0xC]
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
muls r0, r2
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
movs r6, 0
|
|
movs r0, 0xF8
|
|
mov r8, r0
|
|
add r7, sp, 0x4
|
|
_08004494:
|
|
ldrb r0, [r5, 0x2]
|
|
mov r1, r10
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
mov r0, r8
|
|
ands r4, r0
|
|
lsls r4, 7
|
|
ldrb r0, [r5, 0x1]
|
|
ldr r1, [sp, 0xC]
|
|
muls r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
mov r1, r8
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
orrs r4, r0
|
|
ldrb r0, [r5]
|
|
ldr r1, [sp, 0x8]
|
|
muls r0, r1
|
|
movs r1, 0xFF
|
|
bl __divsi3
|
|
mov r1, r8
|
|
ands r0, r1
|
|
lsrs r0, 3
|
|
orrs r4, r0
|
|
strh r4, [r7]
|
|
mov r1, r9
|
|
adds r0, r1, r6
|
|
adds r1, r7, 0
|
|
bl SetBGPaletteBufferColor
|
|
adds r5, 0x4
|
|
adds r6, 0x1
|
|
cmp r6, 0xF
|
|
ble _08004494
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080044F8: .4byte gUnknown_3000C00
|
|
_080044FC: .4byte gUnknown_3000400
|
|
thumb_func_end sub_8004434
|
|
|
|
thumb_func_start sub_8004500
|
|
sub_8004500:
|
|
ldr r1, _08004514
|
|
ldrh r2, [r1]
|
|
movs r0, 0x6D
|
|
muls r0, r2
|
|
ldr r2, _08004518
|
|
adds r0, r2
|
|
strh r0, [r1]
|
|
ldrh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08004514: .4byte gUnknown_203B070
|
|
_08004518: .4byte 0x000003fd
|
|
thumb_func_end sub_8004500
|
|
|
|
thumb_func_start sub_800451C
|
|
sub_800451C:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8004500
|
|
muls r0, r4
|
|
asrs r0, 16
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800451C
|
|
|
|
thumb_func_start sub_8004530
|
|
sub_8004530:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
subs r0, r1, r4
|
|
bl sub_800451C
|
|
adds r0, r4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8004530
|
|
|
|
thumb_func_start sub_8004544
|
|
sub_8004544:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
subs r4, r1, 0x1
|
|
adds r2, r3, r4
|
|
movs r5, 0
|
|
cmp r5, r4
|
|
bge _08004566
|
|
_08004552:
|
|
ldrb r1, [r3]
|
|
ldrb r0, [r2]
|
|
strb r0, [r3]
|
|
adds r3, 0x1
|
|
strb r1, [r2]
|
|
subs r2, 0x1
|
|
adds r5, 0x1
|
|
subs r4, 0x1
|
|
cmp r5, r4
|
|
blt _08004552
|
|
_08004566:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8004544
|
|
|
|
thumb_func_start sub_800456C
|
|
sub_800456C:
|
|
push {r4-r7,lr}
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
ble _08004578
|
|
movs r7, 0x1
|
|
b _0800457E
|
|
_08004578:
|
|
negs r4, r4
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
_0800457E:
|
|
cmp r2, 0
|
|
ble _080045A0
|
|
adds r6, r0, 0
|
|
adds r5, r2, 0
|
|
_08004586:
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
stm r6!, {r0}
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _08004586
|
|
_080045A0:
|
|
adds r0, r7, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800456C
|
|
|
|
thumb_func_start sub_80045A8
|
|
sub_80045A8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldm r4!, {r1}
|
|
movs r3, 0xA
|
|
cmp r2, 0x1
|
|
ble _080045CA
|
|
subs r2, 0x1
|
|
_080045B8:
|
|
ldm r4!, {r0}
|
|
muls r0, r3
|
|
adds r1, r0
|
|
subs r2, 0x1
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r3, r0, 1
|
|
cmp r2, 0
|
|
bne _080045B8
|
|
_080045CA:
|
|
adds r0, r1, 0
|
|
cmp r5, 0
|
|
bge _080045D2
|
|
negs r0, r0
|
|
_080045D2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80045A8
|
|
|
|
thumb_func_start ConvertFromBCD
|
|
ConvertFromBCD:
|
|
push {r4,lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x1
|
|
movs r3, 0
|
|
cmp r1, 0
|
|
ble _080045FA
|
|
movs r4, 0xF
|
|
_080045E6:
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
muls r0, r2
|
|
adds r3, r0
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r2, r0, 1
|
|
asrs r1, 4
|
|
cmp r1, 0
|
|
bgt _080045E6
|
|
_080045FA:
|
|
adds r0, r3, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ConvertFromBCD
|
|
|
|
thumb_func_start ConvertToBCD
|
|
ConvertToBCD:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
movs r6, 0
|
|
cmp r4, 0
|
|
ble _0800462C
|
|
_08004610:
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __modsi3
|
|
lsls r0, r5
|
|
adds r6, r0
|
|
adds r5, 0x4
|
|
adds r0, r4, 0
|
|
movs r1, 0xA
|
|
bl __divsi3
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bgt _08004610
|
|
_0800462C:
|
|
adds r0, r6, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ConvertToBCD
|
|
|
|
thumb_func_start InitBGPaletteBuffer
|
|
InitBGPaletteBuffer:
|
|
push {lr}
|
|
movs r2, 0
|
|
ldr r1, _0800465C
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
_0800463E:
|
|
strh r2, [r1]
|
|
adds r1, 0x2
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bne _0800463E
|
|
ldr r1, _08004660
|
|
movs r2, 0x1
|
|
adds r0, r1, 0
|
|
adds r0, 0x1F
|
|
_08004650:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _08004650
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800465C: .4byte gUnknown_20251F0
|
|
_08004660: .4byte gUnknown_20251D0
|
|
thumb_func_end InitBGPaletteBuffer
|
|
|
|
thumb_func_start SetBGPaletteBufferColorRGB
|
|
SetBGPaletteBufferColorRGB:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
cmp r2, 0
|
|
bge _08004670
|
|
movs r2, 0
|
|
_08004670:
|
|
cmp r2, 0x1F
|
|
ble _08004676
|
|
movs r2, 0x1F
|
|
_08004676:
|
|
ldr r1, _080046CC
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08004680
|
|
adds r0, 0xF
|
|
_08004680:
|
|
asrs r0, 4
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
cmp r3, 0
|
|
bne _080046D4
|
|
ldr r0, _080046D0
|
|
lsls r1, r4, 1
|
|
adds r6, r1, r0
|
|
ldrb r0, [r5, 0x2]
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _0800469C
|
|
adds r0, 0xFF
|
|
_0800469C:
|
|
asrs r0, 8
|
|
movs r3, 0x1F
|
|
ands r0, r3
|
|
lsls r4, r0, 10
|
|
ldrb r0, [r5, 0x1]
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080046AE
|
|
adds r0, 0xFF
|
|
_080046AE:
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
lsls r1, r0, 5
|
|
orrs r1, r4
|
|
ldrb r0, [r5]
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080046C0
|
|
adds r0, 0xFF
|
|
_080046C0:
|
|
asrs r0, 8
|
|
ands r0, r3
|
|
orrs r1, r0
|
|
strh r1, [r6]
|
|
b _08004722
|
|
.align 2, 0
|
|
_080046CC: .4byte gUnknown_20251D0
|
|
_080046D0: .4byte gUnknown_20251F0
|
|
_080046D4:
|
|
ldr r1, _08004728
|
|
lsls r0, r4, 1
|
|
adds r7, r0, r1
|
|
ldrb r0, [r5, 0x2]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x2]
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _080046EA
|
|
adds r0, 0xFF
|
|
_080046EA:
|
|
asrs r0, 8
|
|
movs r4, 0x1F
|
|
ands r0, r4
|
|
lsls r6, r0, 10
|
|
ldrb r0, [r5, 0x1]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0, 0x1]
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _08004702
|
|
adds r0, 0xFF
|
|
_08004702:
|
|
asrs r0, 8
|
|
ands r0, r4
|
|
lsls r1, r0, 5
|
|
orrs r1, r6
|
|
ldrb r0, [r5]
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
muls r0, r2
|
|
cmp r0, 0
|
|
bge _0800471A
|
|
adds r0, 0xFF
|
|
_0800471A:
|
|
asrs r0, 8
|
|
ands r0, r4
|
|
orrs r1, r0
|
|
strh r1, [r7]
|
|
_08004722:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08004728: .4byte gUnknown_20251F0
|
|
thumb_func_end SetBGPaletteBufferColorRGB
|
|
|
|
thumb_func_start SetBGPaletteBufferColorArray
|
|
SetBGPaletteBufferColorArray:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
ldr r1, _08004764
|
|
cmp r2, 0
|
|
bge _0800473A
|
|
adds r0, 0xF
|
|
_0800473A:
|
|
asrs r0, 4
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _08004768
|
|
lsls r2, 1
|
|
adds r2, r0
|
|
ldrb r1, [r3, 0x2]
|
|
lsrs r1, 3
|
|
lsls r1, 10
|
|
ldrb r0, [r3, 0x1]
|
|
lsrs r0, 3
|
|
lsls r0, 5
|
|
orrs r1, r0
|
|
ldrb r0, [r3]
|
|
lsrs r0, 3
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08004764: .4byte gUnknown_20251D0
|
|
_08004768: .4byte gUnknown_20251F0
|
|
thumb_func_end SetBGPaletteBufferColorArray
|
|
|
|
thumb_func_start SetBGPaletteBufferColor
|
|
SetBGPaletteBufferColor:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
ldr r1, _08004790
|
|
cmp r2, 0
|
|
bge _0800477A
|
|
adds r0, 0xF
|
|
_0800477A:
|
|
asrs r0, 4
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r1, _08004794
|
|
lsls r0, r2, 1
|
|
adds r0, r1
|
|
ldrh r1, [r3]
|
|
strh r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08004790: .4byte gUnknown_20251D0
|
|
_08004794: .4byte gUnknown_20251F0
|
|
thumb_func_end SetBGPaletteBufferColor
|
|
|
|
thumb_func_start nullsub_4
|
|
nullsub_4:
|
|
bx lr
|
|
thumb_func_end nullsub_4
|
|
|
|
thumb_func_start nullsub_5
|
|
nullsub_5:
|
|
bx lr
|
|
thumb_func_end nullsub_5
|
|
|
|
thumb_func_start nullsub_143
|
|
nullsub_143:
|
|
bx lr
|
|
thumb_func_end nullsub_143
|
|
|
|
thumb_func_start TransferBGPaletteBuffer
|
|
TransferBGPaletteBuffer:
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
movs r4, 0
|
|
movs r5, 0xA0
|
|
lsls r5, 19
|
|
_080047AE:
|
|
ldr r0, _080047DC
|
|
adds r1, r6, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080047CA
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
lsls r1, r4, 1
|
|
ldr r0, _080047E0
|
|
adds r1, r0
|
|
adds r0, r5, 0
|
|
movs r2, 0x20
|
|
bl CpuCopy
|
|
_080047CA:
|
|
adds r6, 0x1
|
|
adds r5, 0x20
|
|
adds r4, 0x10
|
|
ldr r0, _080047E4
|
|
cmp r4, r0
|
|
ble _080047AE
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080047DC: .4byte gUnknown_20251D0
|
|
_080047E0: .4byte gUnknown_20251F0
|
|
_080047E4: .4byte 0x000001ff
|
|
thumb_func_end TransferBGPaletteBuffer
|
|
|
|
thumb_func_start sub_80047E8
|
|
sub_80047E8:
|
|
ldr r0, _08004840
|
|
movs r3, 0
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
strh r2, [r0, 0x2]
|
|
strh r2, [r0, 0x4]
|
|
strh r2, [r0, 0x6]
|
|
ldr r0, _08004844
|
|
strh r2, [r0]
|
|
strh r2, [r0, 0x2]
|
|
strh r2, [r0, 0x4]
|
|
strh r2, [r0, 0x6]
|
|
ldr r1, _08004848
|
|
ldr r0, _0800484C
|
|
str r0, [r1]
|
|
ldr r0, _08004850
|
|
str r2, [r0, 0x20]
|
|
ldr r1, _08004854
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
strh r1, [r0, 0x4]
|
|
strh r1, [r0, 0x6]
|
|
strh r1, [r0, 0x1C]
|
|
strh r1, [r0, 0x1E]
|
|
strh r1, [r0, 0x8]
|
|
strh r1, [r0, 0xA]
|
|
strh r1, [r0, 0xC]
|
|
strh r1, [r0, 0xE]
|
|
strh r1, [r0, 0x10]
|
|
strh r1, [r0, 0x12]
|
|
strh r1, [r0, 0x14]
|
|
strh r1, [r0, 0x16]
|
|
adds r1, r0, 0
|
|
adds r1, 0x28
|
|
strb r3, [r1]
|
|
adds r0, 0x29
|
|
strb r3, [r0]
|
|
ldr r0, _08004858
|
|
strh r2, [r0]
|
|
strh r2, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08004840: .4byte gUnknown_20255F0
|
|
_08004844: .4byte gUnknown_2025638
|
|
_08004848: .4byte gUnknown_202562C
|
|
_0800484C: .4byte 0x004a14c1
|
|
_08004850: .4byte gUnknown_2025600
|
|
_08004854: .4byte 0x0000ffff
|
|
_08004858: .4byte gUnknown_2025668
|
|
thumb_func_end sub_80047E8
|
|
|
|
thumb_func_start sub_800485C
|
|
sub_800485C:
|
|
push {r4,r5,lr}
|
|
ldr r2, _080048A8
|
|
ldr r1, _080048AC
|
|
adds r0, r2, 0
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r3, 0
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
strh r0, [r2, 0x2]
|
|
strh r0, [r2, 0x4]
|
|
strh r0, [r2, 0x6]
|
|
ldr r0, _080048B0
|
|
ldr r1, _080048B4
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
strh r1, [r0, 0x4]
|
|
strh r1, [r0, 0x6]
|
|
strh r1, [r0, 0x8]
|
|
strh r1, [r0, 0xA]
|
|
strh r1, [r0, 0xC]
|
|
strh r1, [r0, 0xE]
|
|
strh r1, [r0, 0x10]
|
|
strh r1, [r0, 0x12]
|
|
strh r1, [r0, 0x14]
|
|
strh r1, [r0, 0x16]
|
|
adds r1, r0, 0
|
|
adds r1, 0x28
|
|
strb r3, [r1]
|
|
adds r0, 0x29
|
|
strb r3, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080048A8: .4byte gUnknown_2025638
|
|
_080048AC: .4byte gUnknown_20255F0
|
|
_080048B0: .4byte gUnknown_2025600
|
|
_080048B4: .4byte 0x0000ffff
|
|
thumb_func_end sub_800485C
|
|
|
|
thumb_func_start sub_80048B8
|
|
sub_80048B8:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80048B8
|
|
|
|
thumb_func_start sub_80048BC
|
|
sub_80048BC:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80048BC
|
|
|
|
thumb_func_start sub_80048C0
|
|
sub_80048C0:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80048C0
|
|
|
|
thumb_func_start sub_80048C4
|
|
sub_80048C4:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80048C4
|
|
|
|
thumb_func_start sub_80048C8
|
|
sub_80048C8:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80048C8
|
|
|
|
thumb_func_start sub_80048CC
|
|
sub_80048CC:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80048CC
|
|
|
|
thumb_func_start sub_80048D0
|
|
sub_80048D0:
|
|
ldr r1, _080048E8
|
|
movs r0, 0
|
|
strh r0, [r1, 0x4]
|
|
ldr r1, _080048EC
|
|
str r0, [r1, 0xC]
|
|
strh r0, [r1, 0x8]
|
|
ldr r1, _080048F0
|
|
ldr r0, _080048F4
|
|
strh r0, [r1]
|
|
strh r0, [r1, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080048E8: .4byte gUnknown_20255F0
|
|
_080048EC: .4byte gUnknown_2025648
|
|
_080048F0: .4byte gUnknown_2025668
|
|
_080048F4: .4byte 0x000003e7
|
|
thumb_func_end sub_80048D0
|
|
|
|
thumb_func_start sub_80048F8
|
|
sub_80048F8:
|
|
ldr r0, _08004908
|
|
movs r1, 0
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, _0800490C
|
|
strh r1, [r0, 0x2]
|
|
ldr r0, _08004910
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08004908: .4byte gUnknown_20255F0
|
|
_0800490C: .4byte gUnknown_2025638
|
|
_08004910: .4byte gUnknown_2025648
|
|
thumb_func_end sub_80048F8
|
|
|
|
thumb_func_start sub_8004914
|
|
sub_8004914:
|
|
ldr r0, _0800494C
|
|
movs r1, 0x5
|
|
str r1, [r0, 0x20]
|
|
movs r2, 0
|
|
movs r1, 0
|
|
strh r1, [r0, 0x24]
|
|
ldr r1, _08004950
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
strh r1, [r0, 0x4]
|
|
strh r1, [r0, 0x6]
|
|
strh r1, [r0, 0x8]
|
|
strh r1, [r0, 0xA]
|
|
strh r1, [r0, 0xC]
|
|
strh r1, [r0, 0xE]
|
|
strh r1, [r0, 0x10]
|
|
strh r1, [r0, 0x12]
|
|
strh r1, [r0, 0x14]
|
|
strh r1, [r0, 0x16]
|
|
adds r1, r0, 0
|
|
adds r1, 0x28
|
|
strb r2, [r1]
|
|
adds r0, 0x29
|
|
strb r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0800494C: .4byte gUnknown_2025600
|
|
_08004950: .4byte 0x0000ffff
|
|
thumb_func_end sub_8004914
|
|
|
|
thumb_func_start UpdateInput
|
|
UpdateInput:
|
|
push {r4-r6,lr}
|
|
ldr r4, _08004998
|
|
ldr r5, _0800499C
|
|
adds r1, r4, 0
|
|
adds r0, r5, 0
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r0, r5, 0
|
|
bl ReadKeyInput
|
|
ldrh r0, [r4]
|
|
ldrh r3, [r5]
|
|
eors r0, r3
|
|
ands r0, r3
|
|
strh r0, [r5, 0x2]
|
|
lsls r0, r3, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0
|
|
beq _080049A8
|
|
ldrh r1, [r5, 0x8]
|
|
movs r0, 0xF0
|
|
adds r2, r0, 0
|
|
ands r2, r3
|
|
ands r0, r1
|
|
cmp r0, r2
|
|
bne _080049A0
|
|
ldr r0, [r5, 0xC]
|
|
cmp r0, 0x31
|
|
bgt _080049AC
|
|
adds r0, 0x1
|
|
str r0, [r5, 0xC]
|
|
b _080049AC
|
|
.align 2, 0
|
|
_08004998: .4byte gUnknown_2025658
|
|
_0800499C: .4byte gUnknown_2025648
|
|
_080049A0:
|
|
strh r2, [r5, 0x8]
|
|
movs r0, 0x1
|
|
str r0, [r5, 0xC]
|
|
b _080049AC
|
|
_080049A8:
|
|
str r0, [r5, 0xC]
|
|
strh r0, [r5, 0x8]
|
|
_080049AC:
|
|
ldr r0, _080049C4
|
|
ldr r2, [r0, 0xC]
|
|
adds r3, r0, 0
|
|
cmp r2, 0x1
|
|
bne _080049C8
|
|
ldrh r0, [r3, 0x8]
|
|
movs r1, 0xF0
|
|
ands r1, r0
|
|
ldrh r0, [r3, 0x2]
|
|
orrs r1, r0
|
|
strh r1, [r3, 0x4]
|
|
b _080049E0
|
|
.align 2, 0
|
|
_080049C4: .4byte gUnknown_2025648
|
|
_080049C8:
|
|
cmp r2, 0x30
|
|
bne _080049DC
|
|
movs r0, 0x2B
|
|
str r0, [r3, 0xC]
|
|
ldrh r1, [r3, 0x8]
|
|
movs r0, 0xF0
|
|
ands r0, r1
|
|
ldrh r1, [r3, 0x2]
|
|
orrs r0, r1
|
|
b _080049DE
|
|
_080049DC:
|
|
movs r0, 0
|
|
_080049DE:
|
|
strh r0, [r3, 0x4]
|
|
_080049E0:
|
|
movs r0, 0
|
|
strh r0, [r3, 0x6]
|
|
ldrh r1, [r3]
|
|
movs r5, 0x2
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08004A0C
|
|
ldr r0, _08004A08
|
|
ldrh r2, [r0]
|
|
movs r4, 0
|
|
ldrsh r1, [r0, r4]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x63
|
|
bgt _08004A20
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4]
|
|
b _08004A20
|
|
.align 2, 0
|
|
_08004A08: .4byte gUnknown_2025668
|
|
_08004A0C:
|
|
ldr r1, _08004A44
|
|
ldrh r0, [r1]
|
|
subs r0, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
adds r4, r1, 0
|
|
cmp r0, 0x9
|
|
bhi _08004A1E
|
|
strh r5, [r3, 0x6]
|
|
_08004A1E:
|
|
strh r2, [r4]
|
|
_08004A20:
|
|
ldrh r1, [r3]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _08004A48
|
|
ldrh r1, [r4, 0x2]
|
|
movs r6, 0x2
|
|
ldrsh r0, [r4, r6]
|
|
cmp r0, 0x63
|
|
bgt _08004A5E
|
|
adds r0, r1, 0x1
|
|
strh r0, [r4, 0x2]
|
|
b _08004A5E
|
|
.align 2, 0
|
|
_08004A44: .4byte gUnknown_2025668
|
|
_08004A48:
|
|
ldrh r0, [r4, 0x2]
|
|
subs r0, 0x2
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x9
|
|
bhi _08004A5C
|
|
ldrh r1, [r3, 0x6]
|
|
adds r0, r5, 0
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x6]
|
|
_08004A5C:
|
|
strh r2, [r4, 0x2]
|
|
_08004A5E:
|
|
ldr r2, _08004A94
|
|
ldrh r0, [r2]
|
|
ldrh r1, [r3]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r1, [r3, 0x2]
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x2]
|
|
ldrh r0, [r2, 0x4]
|
|
ldrh r1, [r3, 0x4]
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x4]
|
|
ldrh r0, [r2, 0x6]
|
|
ldrh r1, [r3, 0x6]
|
|
orrs r0, r1
|
|
strh r0, [r2, 0x6]
|
|
ldr r2, _08004A98
|
|
ldrh r0, [r3]
|
|
ldr r1, _08004A9C
|
|
orrs r0, r1
|
|
ldr r1, [r2]
|
|
muls r0, r1
|
|
str r0, [r2]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08004A94: .4byte gUnknown_2025638
|
|
_08004A98: .4byte gUnknown_202562C
|
|
_08004A9C: .4byte 0x054a1c41
|
|
thumb_func_end UpdateInput
|
|
|
|
thumb_func_start nullsub_6
|
|
nullsub_6:
|
|
bx lr
|
|
thumb_func_end nullsub_6
|
|
|
|
thumb_func_start sub_8004AA4
|
|
sub_8004AA4:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
ldr r4, [r1, 0x4]
|
|
cmp r2, 0
|
|
ble _08004AE8
|
|
_08004AAE:
|
|
ldm r4!, {r1}
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0
|
|
beq _08004ADE
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
str r0, [r3]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r3, 0x6]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r3, 0x4]
|
|
adds r0, r1, 0x4
|
|
str r0, [r3, 0x8]
|
|
str r0, [r3, 0xC]
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
lsls r0, 2
|
|
adds r0, 0x4
|
|
adds r0, r1, r0
|
|
str r0, [r3, 0x10]
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [r3, 0x14]
|
|
b _08004AE0
|
|
_08004ADE:
|
|
str r0, [r3]
|
|
_08004AE0:
|
|
adds r3, 0x18
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _08004AAE
|
|
_08004AE8:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8004AA4
|
|
|
|
thumb_func_start sub_8004AF0
|
|
sub_8004AF0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r7, 0
|
|
cmp r7, r3
|
|
bge _08004B6A
|
|
adds r5, r3, 0
|
|
_08004B08:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08004B60
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D40
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08004B60
|
|
mov r1, r8
|
|
ldrh r0, [r4, 0x6]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x6]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _08004B4E
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r4, 0x6]
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bcc _08004B42
|
|
ldr r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
_08004B42:
|
|
ldr r1, [r4, 0xC]
|
|
ldm r1!, {r0}
|
|
str r0, [r4, 0x14]
|
|
str r1, [r4, 0xC]
|
|
movs r1, 0x1
|
|
movs r7, 0x1
|
|
_08004B4E:
|
|
cmp r1, 0
|
|
beq _08004B60
|
|
adds r1, r4, 0
|
|
adds r1, 0x14
|
|
adds r0, r6, 0
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
bl SetBGPaletteBufferColorRGB
|
|
_08004B60:
|
|
subs r5, 0x1
|
|
adds r4, 0x18
|
|
adds r6, 0x1
|
|
cmp r5, 0
|
|
bne _08004B08
|
|
_08004B6A:
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8004AF0
|
|
|
|
thumb_func_start sub_8004B78
|
|
sub_8004B78:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
movs r7, 0
|
|
cmp r7, r3
|
|
bge _08004BF2
|
|
adds r5, r3, 0
|
|
_08004B90:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08004BE8
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D40
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08004BE8
|
|
mov r1, r8
|
|
ldrh r0, [r4, 0x6]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x6]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _08004BD6
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r4, 0x6]
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bcc _08004BCA
|
|
ldr r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
_08004BCA:
|
|
ldr r1, [r4, 0xC]
|
|
ldm r1!, {r0}
|
|
str r0, [r4, 0x14]
|
|
str r1, [r4, 0xC]
|
|
movs r1, 0x1
|
|
movs r7, 0x1
|
|
_08004BD6:
|
|
cmp r1, 0
|
|
beq _08004BE8
|
|
adds r1, r4, 0
|
|
adds r1, 0x14
|
|
adds r0, r6, 0
|
|
ldr r2, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
bl nullsub_4
|
|
_08004BE8:
|
|
subs r5, 0x1
|
|
adds r4, 0x18
|
|
adds r6, 0x1
|
|
cmp r5, 0
|
|
bne _08004B90
|
|
_08004BF2:
|
|
adds r0, r7, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8004B78
|
|
|
|
thumb_func_start sub_8004C00
|
|
sub_8004C00:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
mov r10, r3
|
|
ldr r0, [sp, 0x28]
|
|
mov r8, r0
|
|
movs r1, 0
|
|
mov r9, r1
|
|
cmp r9, r2
|
|
bge _08004CDC
|
|
adds r6, r2, 0
|
|
_08004C20:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08004CD2
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D40
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08004CD2
|
|
ldrh r0, [r4, 0x6]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x6]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _08004C64
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r4, 0x6]
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bcc _08004C58
|
|
ldr r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
_08004C58:
|
|
ldr r1, [r4, 0xC]
|
|
ldm r1!, {r0}
|
|
str r0, [r4, 0x14]
|
|
str r1, [r4, 0xC]
|
|
movs r2, 0x1
|
|
mov r9, r2
|
|
_08004C64:
|
|
mov r3, r8
|
|
movs r5, 0
|
|
ldrsh r0, [r3, r5]
|
|
ldrb r2, [r4, 0x14]
|
|
adds r1, r0, r2
|
|
movs r5, 0x2
|
|
ldrsh r0, [r3, r5]
|
|
ldrb r2, [r4, 0x15]
|
|
adds r3, r0, r2
|
|
mov r5, r8
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
ldrb r2, [r4, 0x16]
|
|
adds r5, r0, r2
|
|
cmp r1, 0xFF
|
|
ble _08004C86
|
|
movs r1, 0xFF
|
|
_08004C86:
|
|
cmp r3, 0xFF
|
|
ble _08004C8C
|
|
movs r3, 0xFF
|
|
_08004C8C:
|
|
cmp r5, 0xFF
|
|
ble _08004C92
|
|
movs r5, 0xFF
|
|
_08004C92:
|
|
cmp r1, 0
|
|
bge _08004C98
|
|
movs r1, 0
|
|
_08004C98:
|
|
cmp r3, 0
|
|
bge _08004C9E
|
|
movs r3, 0
|
|
_08004C9E:
|
|
cmp r5, 0
|
|
bge _08004CA4
|
|
movs r5, 0
|
|
_08004CA4:
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _08004CF0
|
|
ldr r0, [sp]
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
lsls r2, r3, 24
|
|
lsrs r2, 16
|
|
ldr r1, _08004CF4
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
lsls r2, r5, 24
|
|
lsrs r2, 8
|
|
ldr r1, _08004CF8
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
mov r2, r10
|
|
ldr r3, [sp, 0x24]
|
|
bl SetBGPaletteBufferColorRGB
|
|
_08004CD2:
|
|
subs r6, 0x1
|
|
adds r4, 0x18
|
|
adds r7, 0x1
|
|
cmp r6, 0
|
|
bne _08004C20
|
|
_08004CDC:
|
|
mov r0, r9
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08004CF0: .4byte 0xffffff00
|
|
_08004CF4: .4byte 0xffff00ff
|
|
_08004CF8: .4byte 0xff00ffff
|
|
thumb_func_end sub_8004C00
|
|
|
|
thumb_func_start sub_8004CFC
|
|
sub_8004CFC:
|
|
push {lr}
|
|
cmp r1, 0
|
|
ble _08004D0E
|
|
movs r2, 0
|
|
_08004D04:
|
|
str r2, [r0]
|
|
adds r0, 0x18
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _08004D04
|
|
_08004D0E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8004CFC
|
|
|
|
thumb_func_start sub_8004D14
|
|
sub_8004D14:
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
movs r3, 0
|
|
cmp r3, r1
|
|
bge _08004D36
|
|
movs r4, 0x80
|
|
lsls r4, 24
|
|
_08004D22:
|
|
ldr r0, [r2]
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08004D2E
|
|
movs r0, 0x1
|
|
b _08004D38
|
|
_08004D2E:
|
|
adds r2, 0x18
|
|
adds r3, 0x1
|
|
cmp r3, r1
|
|
blt _08004D22
|
|
_08004D36:
|
|
movs r0, 0
|
|
_08004D38:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8004D14
|
|
|
|
thumb_func_start sub_8004D40
|
|
sub_8004D40:
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
movs r1, 0
|
|
cmp r1, r4
|
|
bge _08004D70
|
|
movs r6, 0x80
|
|
lsls r6, 24
|
|
movs r5, 0x80
|
|
lsls r5, 22
|
|
_08004D54:
|
|
ldr r2, [r3]
|
|
adds r0, r2, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08004D6A
|
|
ands r2, r5
|
|
cmp r2, 0
|
|
bne _08004D68
|
|
movs r0, 0
|
|
b _08004D72
|
|
_08004D68:
|
|
adds r3, 0x18
|
|
_08004D6A:
|
|
adds r1, 0x1
|
|
cmp r1, r4
|
|
blt _08004D54
|
|
_08004D70:
|
|
movs r0, 0x1
|
|
_08004D72:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8004D40
|
|
|
|
thumb_func_start sub_8004D78
|
|
sub_8004D78:
|
|
push {lr}
|
|
movs r0, 0x1
|
|
bl sub_8004D8C
|
|
movs r0, 0
|
|
bl SetSavingIconCoords
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8004D78
|
|
|
|
thumb_func_start sub_8004D8C
|
|
sub_8004D8C:
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r1, _08004E68
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r1, _08004E6C
|
|
ldr r0, _08004E70
|
|
str r0, [r1]
|
|
ldr r1, _08004E74
|
|
ldr r0, _08004E78
|
|
str r0, [r1]
|
|
ldr r0, _08004E7C
|
|
adds r1, r0, 0
|
|
adds r1, 0x8
|
|
adds r5, r0, 0
|
|
movs r2, 0
|
|
movs r3, 0xF0
|
|
_08004DB0:
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
adds r1, 0x8
|
|
subs r3, 0x10
|
|
cmp r3, 0
|
|
bge _08004DB0
|
|
cmp r4, 0
|
|
beq _08004E50
|
|
movs r2, 0
|
|
ldr r1, _08004E80
|
|
ldr r0, _08004E84
|
|
movs r3, 0x7F
|
|
_08004E42:
|
|
str r2, [r0]
|
|
str r1, [r0, 0x4]
|
|
adds r1, 0x8
|
|
adds r0, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08004E42
|
|
_08004E50:
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
adds r0, r5, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r2, _08004E88
|
|
adds r0, r5, r2
|
|
str r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08004E68: .4byte gUnknown_20266A8
|
|
_08004E6C: .4byte gUnknown_2026E30
|
|
_08004E70: .4byte 0x06010000
|
|
_08004E74: .4byte gUnknown_203B074
|
|
_08004E78: .4byte gUnknown_20266B0
|
|
_08004E7C: .4byte gUnknown_20256A0
|
|
_08004E80: .4byte gUnknown_20262A8
|
|
_08004E84: .4byte gUnknown_2025EA8
|
|
_08004E88: .4byte 0x00000804
|
|
thumb_func_end sub_8004D8C
|
|
|
|
thumb_func_start sub_8004E8C
|
|
sub_8004E8C:
|
|
ldr r1, _08004EA4
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
strh r1, [r0, 0x4]
|
|
movs r1, 0
|
|
strh r1, [r0, 0x6]
|
|
strh r1, [r0, 0x8]
|
|
strh r1, [r0, 0xA]
|
|
bx lr
|
|
.align 2, 0
|
|
_08004EA4: .4byte 0x0000ffff
|
|
thumb_func_end sub_8004E8C
|
|
|
|
thumb_func_start sub_8004EA8
|
|
sub_8004EA8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0xC
|
|
adds r5, r0, 0
|
|
mov r8, r1
|
|
adds r0, r2, 0
|
|
adds r6, r3, 0
|
|
cmp r0, 0
|
|
beq _08004EC2
|
|
bl sub_80052BC
|
|
_08004EC2:
|
|
ldr r0, _08004F40
|
|
ldr r7, [r0]
|
|
mov r12, r0
|
|
cmp r7, 0x7F
|
|
ble _08004ECE
|
|
b _08005082
|
|
_08004ECE:
|
|
mov r2, sp
|
|
ldrh r0, [r5]
|
|
strh r0, [r2]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r2, 0x2]
|
|
ldrh r4, [r5, 0x4]
|
|
ldr r0, _08004F44
|
|
ands r0, r4
|
|
strh r0, [r2, 0x4]
|
|
ldrh r3, [r5, 0x6]
|
|
ldr r0, _08004F48
|
|
ands r0, r3
|
|
strh r0, [r2, 0x6]
|
|
ldrh r0, [r5, 0x8]
|
|
strh r0, [r2, 0x8]
|
|
movs r1, 0xE0
|
|
lsls r1, 4
|
|
ands r1, r3
|
|
lsrs r1, 9
|
|
ldr r0, _08004F4C
|
|
ands r0, r4
|
|
lsls r0, 4
|
|
orrs r1, r0
|
|
strh r1, [r2, 0xA]
|
|
lsls r1, r7, 3
|
|
ldr r0, _08004F50
|
|
adds r3, r1, r0
|
|
mov r0, r8
|
|
movs r2, 0x16
|
|
ldrsh r1, [r0, r2]
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x3]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
adds r7, r1, r0
|
|
cmp r7, 0
|
|
bge _08004F1A
|
|
movs r7, 0
|
|
_08004F1A:
|
|
cmp r7, 0xFF
|
|
ble _08004F20
|
|
movs r7, 0xFF
|
|
_08004F20:
|
|
cmp r6, 0
|
|
bne _08004F54
|
|
add r2, sp, 0x4
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3, 0x2]
|
|
adds r2, 0x2
|
|
adds r1, r3, 0x4
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r1, 0x2]
|
|
b _08004F86
|
|
.align 2, 0
|
|
_08004F40: .4byte gUnknown_20266A8
|
|
_08004F44: .4byte 0x0000fcff
|
|
_08004F48: .4byte 0x0000f1ff
|
|
_08004F4C: .4byte 0x000003ff
|
|
_08004F50: .4byte gUnknown_20262A8
|
|
_08004F54:
|
|
add r4, sp, 0x4
|
|
ldrh r1, [r4]
|
|
ldrh r0, [r6]
|
|
ands r0, r1
|
|
ldrh r1, [r6, 0x6]
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
adds r4, 0x2
|
|
ldrh r1, [r4]
|
|
ldrh r0, [r6, 0x2]
|
|
ands r0, r1
|
|
ldrh r1, [r6, 0x8]
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x2]
|
|
adds r4, 0x2
|
|
adds r2, r3, 0x4
|
|
ldrh r1, [r4]
|
|
ldrh r0, [r6, 0x4]
|
|
ands r0, r1
|
|
ldrh r1, [r6, 0xA]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
adds r4, 0x2
|
|
ldrh r0, [r4]
|
|
strh r0, [r2, 0x2]
|
|
_08004F86:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _08004FB0
|
|
ldr r1, _08004FA8
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 1
|
|
adds r1, r0, r1
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
beq _08004FB0
|
|
adds r1, r0, 0
|
|
ldr r0, _08004FAC
|
|
ands r1, r0
|
|
b _08004FC0
|
|
.align 2, 0
|
|
_08004FA8: .4byte gUnknown_2025672
|
|
_08004FAC: .4byte 0x000003ff
|
|
_08004FB0:
|
|
ldrh r1, [r3, 0x4]
|
|
ldr r2, _08005090
|
|
ands r1, r2
|
|
mov r6, r8
|
|
movs r4, 0x14
|
|
ldrsh r0, [r6, r4]
|
|
adds r1, r0
|
|
ands r1, r2
|
|
_08004FC0:
|
|
ldrh r2, [r3, 0x4]
|
|
movs r0, 0xFC
|
|
lsls r0, 8
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
ldrh r4, [r3, 0x2]
|
|
ldr r5, _08005094
|
|
adds r2, r5, 0
|
|
ands r2, r4
|
|
ldr r6, _08005098
|
|
adds r1, r2, r6
|
|
mov r2, r8
|
|
movs r6, 0
|
|
ldrsh r0, [r2, r6]
|
|
adds r2, r1, r0
|
|
movs r0, 0x40
|
|
negs r0, r0
|
|
mov r9, r0
|
|
cmp r2, r9
|
|
blt _08005082
|
|
cmp r2, 0xEF
|
|
bgt _08005082
|
|
ands r2, r5
|
|
movs r0, 0xFE
|
|
lsls r0, 8
|
|
ands r0, r4
|
|
orrs r0, r2
|
|
strh r0, [r3, 0x2]
|
|
ldrh r0, [r3, 0x6]
|
|
lsls r4, r0, 16
|
|
ldr r1, _0800509C
|
|
adds r5, r1, 0
|
|
lsrs r2, r4, 20
|
|
ldr r6, _080050A0
|
|
adds r1, r2, r6
|
|
mov r2, r8
|
|
movs r6, 0x2
|
|
ldrsh r0, [r2, r6]
|
|
adds r2, r1, r0
|
|
cmp r2, r9
|
|
blt _08005082
|
|
cmp r2, 0x9F
|
|
bgt _08005082
|
|
movs r0, 0xFF
|
|
ands r2, r0
|
|
ldrh r1, [r3]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strh r0, [r3]
|
|
lsrs r0, r4, 17
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08005044
|
|
mov r0, r8
|
|
ldrb r1, [r0, 0x1E]
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
lsls r1, 12
|
|
ldrh r0, [r3, 0x4]
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
_08005044:
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _08005068
|
|
ldr r1, _080050A4
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0xF
|
|
ands r1, r0
|
|
lsls r1, 12
|
|
ldrh r0, [r3, 0x4]
|
|
ands r0, r5
|
|
orrs r0, r1
|
|
strh r0, [r3, 0x4]
|
|
_08005068:
|
|
ldr r0, _080050A8
|
|
mov r4, r12
|
|
ldr r3, [r4]
|
|
lsls r2, r3, 3
|
|
adds r2, r0
|
|
ldr r1, _080050AC
|
|
lsls r0, r7, 3
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
str r1, [r2]
|
|
str r2, [r0]
|
|
adds r3, 0x1
|
|
str r3, [r4]
|
|
_08005082:
|
|
add sp, 0xC
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08005090: .4byte 0x000003ff
|
|
_08005094: .4byte 0x000001ff
|
|
_08005098: .4byte 0xffffff00
|
|
_0800509C: .4byte 0x00000fff
|
|
_080050A0: .4byte 0xfffffe00
|
|
_080050A4: .4byte gUnknown_2025682
|
|
_080050A8: .4byte gUnknown_2025EA8
|
|
_080050AC: .4byte gUnknown_20256A0
|
|
thumb_func_end sub_8004EA8
|
|
|
|
thumb_func_start AddSprite
|
|
AddSprite:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r2
|
|
adds r4, r3, 0
|
|
ldr r0, _080050F4
|
|
ldr r0, [r0]
|
|
cmp r0, 0x7F
|
|
bgt _08005168
|
|
lsls r1, r0, 3
|
|
ldr r0, _080050F8
|
|
adds r5, r1, r0
|
|
cmp r7, 0
|
|
bge _080050D2
|
|
movs r7, 0
|
|
_080050D2:
|
|
cmp r7, 0xFF
|
|
ble _080050D8
|
|
movs r7, 0xFF
|
|
_080050D8:
|
|
cmp r4, 0
|
|
bne _080050FC
|
|
ldrh r0, [r6]
|
|
strh r0, [r5]
|
|
ldrh r0, [r6, 0x2]
|
|
strh r0, [r5, 0x2]
|
|
adds r1, r6, 0x4
|
|
adds r2, r5, 0x4
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r2, 0x2]
|
|
b _08005128
|
|
.align 2, 0
|
|
_080050F4: .4byte gUnknown_20266A8
|
|
_080050F8: .4byte gUnknown_20262A8
|
|
_080050FC:
|
|
ldrh r1, [r6]
|
|
ldrh r0, [r4]
|
|
ands r0, r1
|
|
ldrh r1, [r4, 0x6]
|
|
orrs r0, r1
|
|
strh r0, [r5]
|
|
ldrh r1, [r6, 0x2]
|
|
ldrh r0, [r4, 0x2]
|
|
ands r0, r1
|
|
ldrh r1, [r4, 0x8]
|
|
orrs r0, r1
|
|
strh r0, [r5, 0x2]
|
|
adds r2, r6, 0x4
|
|
adds r3, r5, 0x4
|
|
ldrh r1, [r2]
|
|
ldrh r0, [r4, 0x4]
|
|
ands r0, r1
|
|
ldrh r1, [r4, 0xA]
|
|
orrs r0, r1
|
|
strh r0, [r3]
|
|
ldrh r0, [r2, 0x2]
|
|
strh r0, [r3, 0x2]
|
|
_08005128:
|
|
ldrh r4, [r5, 0x6]
|
|
lsrs r4, 4
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl nullsub_3
|
|
movs r0, 0xFF
|
|
ands r4, r0
|
|
ldrh r1, [r5]
|
|
movs r0, 0xFF
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
strh r0, [r5]
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0800514E
|
|
bl sub_80052BC
|
|
_0800514E:
|
|
ldr r0, _08005174
|
|
ldr r4, _08005178
|
|
ldr r3, [r4]
|
|
lsls r2, r3, 3
|
|
adds r2, r0
|
|
ldr r1, _0800517C
|
|
lsls r0, r7, 3
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
str r1, [r2]
|
|
str r2, [r0]
|
|
adds r3, 0x1
|
|
str r3, [r4]
|
|
_08005168:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08005174: .4byte gUnknown_2025EA8
|
|
_08005178: .4byte gUnknown_20266A8
|
|
_0800517C: .4byte gUnknown_20256A0
|
|
thumb_func_end AddSprite
|
|
|
|
thumb_func_start sub_8005180
|
|
sub_8005180:
|
|
push {lr}
|
|
ldr r2, _080051A8
|
|
adds r1, r2, 0
|
|
cmp r2, 0
|
|
beq _0800519E
|
|
_0800518A:
|
|
ldr r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _08005198
|
|
cmp r2, 0
|
|
beq _08005196
|
|
str r1, [r2]
|
|
_08005196:
|
|
adds r2, r1, 0
|
|
_08005198:
|
|
ldr r1, [r1]
|
|
cmp r1, 0
|
|
bne _0800518A
|
|
_0800519E:
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080051A8: .4byte gUnknown_20256A0
|
|
thumb_func_end sub_8005180
|
|
|
|
thumb_func_start CopySpritesToOam
|
|
CopySpritesToOam:
|
|
push {r4-r6,lr}
|
|
ldr r3, _08005204
|
|
ldr r2, _08005208
|
|
movs r4, 0
|
|
ldr r6, _0800520C
|
|
cmp r3, 0
|
|
beq _080051E0
|
|
ldr r5, _08005210
|
|
_080051BC:
|
|
ldr r1, [r3, 0x4]
|
|
cmp r1, 0
|
|
beq _080051D6
|
|
subs r2, 0x4
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r2]
|
|
subs r2, 0x2
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r2]
|
|
subs r2, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
adds r4, 0x1
|
|
_080051D6:
|
|
ldr r3, [r3]
|
|
cmp r3, 0
|
|
beq _080051E0
|
|
cmp r2, r5
|
|
bhi _080051BC
|
|
_080051E0:
|
|
ldr r1, _08005210
|
|
cmp r2, r1
|
|
bls _080051FA
|
|
movs r0, 0
|
|
movs r3, 0xA0
|
|
_080051EA:
|
|
subs r2, 0x4
|
|
strh r0, [r2]
|
|
subs r2, 0x2
|
|
strh r0, [r2]
|
|
subs r2, 0x2
|
|
strh r3, [r2]
|
|
cmp r2, r1
|
|
bhi _080051EA
|
|
_080051FA:
|
|
strh r4, [r6]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08005204: .4byte gUnknown_20256A0
|
|
_08005208: .4byte 0x07000400
|
|
_0800520C: .4byte gUnknown_2025670
|
|
_08005210: .4byte 0x07000008
|
|
thumb_func_end CopySpritesToOam
|
|
|
|
thumb_func_start SetSavingIconCoords
|
|
SetSavingIconCoords:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
bne _0800522C
|
|
ldr r1, _08005228
|
|
strh r3, [r1]
|
|
movs r0, 0xA0
|
|
strh r0, [r1, 0x2]
|
|
b _0800523C
|
|
.align 2, 0
|
|
_08005228: .4byte gUnknown_2025694
|
|
_0800522C:
|
|
ldr r1, _08005240
|
|
ldrh r0, [r3]
|
|
movs r2, 0
|
|
strh r0, [r1]
|
|
ldrh r0, [r3, 0x2]
|
|
strh r0, [r1, 0x2]
|
|
ldr r0, _08005244
|
|
str r2, [r0]
|
|
_0800523C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08005240: .4byte gUnknown_2025694
|
|
_08005244: .4byte gUnknown_2025698
|
|
thumb_func_end SetSavingIconCoords
|
|
|
|
thumb_func_start BlinkSavingIcon
|
|
BlinkSavingIcon:
|
|
push {r4,lr}
|
|
movs r2, 0xE0
|
|
lsls r2, 19
|
|
ldr r0, _08005280
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r1, 0x1
|
|
str r1, [r0]
|
|
movs r0, 0x10
|
|
ands r3, r0
|
|
cmp r3, 0
|
|
beq _08005288
|
|
movs r0, 0xA0
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
movs r1, 0x80
|
|
lsls r1, 7
|
|
adds r0, r1, 0
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
ldr r4, _08005284
|
|
adds r0, r4, 0
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
b _080052A8
|
|
.align 2, 0
|
|
_08005280: .4byte gUnknown_2025698
|
|
_08005284: .4byte 0x0000f3fc
|
|
_08005288:
|
|
ldr r1, _080052B0
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r2]
|
|
ldr r2, _080052B4
|
|
movs r4, 0x80
|
|
lsls r4, 7
|
|
adds r0, r4, 0
|
|
ldrh r1, [r1]
|
|
adds r0, r1
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
ldr r1, _080052B8
|
|
adds r0, r1, 0
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
strh r3, [r2]
|
|
_080052A8:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080052B0: .4byte gUnknown_2025694
|
|
_080052B4: .4byte 0x07000002
|
|
_080052B8: .4byte 0x0000f3fc
|
|
thumb_func_end BlinkSavingIcon
|
|
|
|
thumb_func_start sub_80052BC
|
|
sub_80052BC:
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
ldr r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
beq _080052F2
|
|
ldr r5, _080052F8
|
|
ldr r6, _080052FC
|
|
ldr r4, _08005300
|
|
_080052CC:
|
|
ldr r2, [r5]
|
|
cmp r2, r6
|
|
bcs _080052F2
|
|
ldr r0, [r3, 0x4]
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
str r0, [r2, 0x4]
|
|
ldr r1, [r4]
|
|
str r1, [r2, 0x8]
|
|
ldr r0, [r3, 0x4]
|
|
adds r1, r0
|
|
str r1, [r4]
|
|
adds r0, r2, 0
|
|
adds r0, 0xC
|
|
str r0, [r5]
|
|
adds r3, 0x8
|
|
ldr r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
bne _080052CC
|
|
_080052F2:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080052F8: .4byte gUnknown_203B074
|
|
_080052FC: .4byte gUnknown_2026E30
|
|
_08005300: .4byte gUnknown_2026E30
|
|
thumb_func_end sub_80052BC
|
|
|
|
thumb_func_start sub_8005304
|
|
sub_8005304:
|
|
push {r4,lr}
|
|
ldr r4, _0800530C
|
|
b _0800532A
|
|
.align 2, 0
|
|
_0800530C: .4byte gUnknown_20266B0
|
|
_08005310:
|
|
ldr r1, [r4, 0x4]
|
|
cmp r1, 0
|
|
beq _08005320
|
|
ldr r0, [r4, 0x8]
|
|
ldr r2, [r4]
|
|
bl CpuCopy
|
|
b _08005328
|
|
_08005320:
|
|
ldr r0, [r4, 0x8]
|
|
ldr r1, [r4]
|
|
bl CpuClear
|
|
_08005328:
|
|
adds r4, 0xC
|
|
_0800532A:
|
|
ldr r0, _08005338
|
|
ldr r0, [r0]
|
|
cmp r4, r0
|
|
bcc _08005310
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08005338: .4byte gUnknown_203B074
|
|
thumb_func_end sub_8005304
|
|
|
|
thumb_func_start sub_800533C
|
|
sub_800533C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r1
|
|
adds r5, r2, 0
|
|
adds r7, r3, 0
|
|
ldr r1, [sp, 0x18]
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
movs r2, 0x18
|
|
ldrsh r1, [r5, r2]
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r4, [r1]
|
|
ldr r1, _08005368
|
|
movs r2, 0x14
|
|
ldrsh r0, [r5, r2]
|
|
lsls r0, 5
|
|
ldr r2, _0800536C
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
b _0800538E
|
|
.align 2, 0
|
|
_08005368: .4byte gUnknown_2026E30
|
|
_0800536C: .4byte 0x06010000
|
|
_08005370:
|
|
cmp r6, 0
|
|
beq _08005382
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
blt _08005382
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r2, [r0]
|
|
_08005382:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8004EA8
|
|
adds r4, 0xA
|
|
_0800538E:
|
|
movs r2, 0
|
|
ldrh r1, [r4]
|
|
ldr r0, _080053A8
|
|
cmp r1, r0
|
|
bne _08005370
|
|
ldrh r0, [r4, 0x2]
|
|
cmp r0, r1
|
|
bne _08005370
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080053A8: .4byte 0x0000ffff
|
|
thumb_func_end sub_800533C
|
|
|
|
thumb_func_start sub_80053AC
|
|
sub_80053AC:
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
ldr r5, [sp, 0x1C]
|
|
ldr r6, [sp, 0x20]
|
|
ldr r4, [sp, 0x24]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, [r1, 0x4]
|
|
str r5, [sp]
|
|
str r6, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
bl sub_80053D0
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80053AC
|
|
|
|
thumb_func_start sub_80053D0
|
|
sub_80053D0:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
ldr r0, [sp, 0x1C]
|
|
lsls r0, 24
|
|
movs r2, 0
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
strh r3, [r4]
|
|
cmp r0, 0
|
|
beq _080053F6
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
adds r1, r0, 0
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
_080053F6:
|
|
strh r2, [r4, 0x2]
|
|
ldr r0, [sp, 0x18]
|
|
strh r0, [r4, 0x4]
|
|
strh r2, [r4, 0xC]
|
|
strh r2, [r4, 0xE]
|
|
ldr r0, [sp, 0x14]
|
|
strh r0, [r4, 0x1C]
|
|
ldr r0, _08005438
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strh r0, [r4, 0x22]
|
|
str r2, [r4, 0x14]
|
|
str r2, [r4, 0x18]
|
|
strh r2, [r4, 0x6]
|
|
ldr r1, [r5, 0x4]
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r4, 0x28]
|
|
str r0, [r4, 0x2C]
|
|
ldr r0, [r5]
|
|
str r0, [r4, 0x34]
|
|
ldr r0, [r5, 0xC]
|
|
str r0, [r4, 0x38]
|
|
ldr r0, [r5, 0x10]
|
|
str r0, [r4, 0x30]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08005438: .4byte 0x0000ffff
|
|
thumb_func_end sub_80053D0
|
|
|
|
thumb_func_start sub_800543C
|
|
sub_800543C:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
ldr r5, [sp, 0x14]
|
|
ldr r4, [sp, 0x18]
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r1, [r1, 0x4]
|
|
str r5, [sp]
|
|
str r4, [sp, 0x4]
|
|
bl sub_800545C
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800543C
|
|
|
|
thumb_func_start sub_800545C
|
|
sub_800545C:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
adds r5, r3, 0
|
|
ldr r0, [sp, 0x18]
|
|
lsls r0, 24
|
|
movs r2, 0
|
|
movs r3, 0x80
|
|
lsls r3, 8
|
|
strh r3, [r4]
|
|
cmp r0, 0
|
|
beq _08005482
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
adds r1, r0, 0
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
_08005482:
|
|
strh r2, [r4, 0x2]
|
|
ldr r0, [sp, 0x14]
|
|
strh r0, [r4, 0x4]
|
|
strh r2, [r4, 0xC]
|
|
strh r2, [r4, 0xE]
|
|
strh r5, [r4, 0x1C]
|
|
ldr r0, _080054B8
|
|
strh r0, [r4, 0x20]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strh r0, [r4, 0x22]
|
|
str r2, [r4, 0x14]
|
|
str r2, [r4, 0x18]
|
|
strh r2, [r4, 0x6]
|
|
ldr r1, [r6, 0x4]
|
|
lsls r0, r7, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
str r0, [r4, 0x28]
|
|
str r0, [r4, 0x2C]
|
|
ldr r0, [r6]
|
|
str r0, [r4, 0x34]
|
|
str r2, [r4, 0x30]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080054B8: .4byte 0x0000ffff
|
|
thumb_func_end sub_800545C
|
|
|
|
thumb_func_start sub_80054BC
|
|
sub_80054BC:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrh r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080054D0
|
|
movs r0, 0
|
|
b _080054D2
|
|
_080054D0:
|
|
lsrs r0, r1, 15
|
|
_080054D2:
|
|
cmp r0, 0
|
|
beq _08005586
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r3, [r4]
|
|
cmp r0, 0
|
|
blt _08005524
|
|
movs r0, 0x80
|
|
lsls r0, 7
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08005586
|
|
ldrh r2, [r4, 0x6]
|
|
movs r0, 0x6
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, _0800550C
|
|
cmp r1, r0
|
|
bgt _080054FA
|
|
adds r0, r2, 0x1
|
|
strh r0, [r4, 0x6]
|
|
_080054FA:
|
|
ldrh r1, [r4, 0x4]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08005510
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x4]
|
|
b _08005586
|
|
.align 2, 0
|
|
_0800550C: .4byte 0x0000752f
|
|
_08005510:
|
|
ldrh r1, [r4, 0x2]
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08005524
|
|
subs r0, r1, 0x1
|
|
strh r0, [r4, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _08005586
|
|
_08005524:
|
|
ldr r0, [r4, 0x2C]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08005550
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08005542
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
adds r0, r1, 0
|
|
orrs r0, r3
|
|
strh r0, [r4]
|
|
b _08005586
|
|
_08005542:
|
|
ldr r0, [r4, 0x28]
|
|
str r0, [r4, 0x2C]
|
|
bl Random
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
strh r0, [r4, 0x4]
|
|
_08005550:
|
|
ldrh r1, [r4]
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r0, r2, 0
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
ldr r1, [r4, 0x2C]
|
|
ldrb r0, [r1]
|
|
strh r0, [r4, 0x2]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r4, 0x20]
|
|
ldrh r0, [r1, 0x4]
|
|
strh r0, [r4, 0xC]
|
|
ldrh r0, [r1, 0x6]
|
|
strh r0, [r4, 0xE]
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r4, 0x10]
|
|
ldrh r0, [r1, 0xA]
|
|
strh r0, [r4, 0x12]
|
|
ldrb r0, [r1, 0x1]
|
|
str r0, [r4, 0x14]
|
|
ldrb r2, [r1, 0x1]
|
|
ldr r0, [r4, 0x18]
|
|
orrs r0, r2
|
|
str r0, [r4, 0x18]
|
|
adds r1, 0xC
|
|
str r1, [r4, 0x2C]
|
|
_08005586:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80054BC
|
|
|
|
thumb_func_start sub_800558C
|
|
sub_800558C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
ldrh r0, [r5]
|
|
lsrs r0, 15
|
|
cmp r0, 0
|
|
beq _08005602
|
|
movs r1, 0x20
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bge _080055AE
|
|
adds r0, r5, 0
|
|
bl sub_80054BC
|
|
_080055AE:
|
|
ldrh r0, [r5]
|
|
lsrs r0, 15
|
|
cmp r0, 0
|
|
beq _08005602
|
|
ldrh r0, [r5, 0xC]
|
|
adds r0, r4
|
|
strh r0, [r5, 0x8]
|
|
ldrh r0, [r5, 0xE]
|
|
adds r0, r6
|
|
strh r0, [r5, 0xA]
|
|
adds r1, r5, 0
|
|
adds r1, 0x26
|
|
ldr r0, [sp, 0x18]
|
|
strb r0, [r1]
|
|
strh r7, [r5, 0x1E]
|
|
ldr r0, [r5, 0x34]
|
|
ldr r1, [r5, 0x38]
|
|
adds r2, r5, 0
|
|
adds r2, 0x8
|
|
movs r3, 0x22
|
|
ldrsh r4, [r5, r3]
|
|
movs r6, 0x20
|
|
ldrsh r3, [r5, r6]
|
|
eors r4, r3
|
|
negs r3, r4
|
|
orrs r3, r4
|
|
lsrs r3, 31
|
|
str r3, [sp]
|
|
ldr r3, [sp, 0x1C]
|
|
bl sub_800533C
|
|
ldrh r0, [r5, 0x20]
|
|
strh r0, [r5, 0x22]
|
|
ldrh r1, [r5]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08005602
|
|
ldr r0, _0800560C
|
|
ands r0, r1
|
|
strh r0, [r5]
|
|
_08005602:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800560C: .4byte 0x0000f7ff
|
|
thumb_func_end sub_800558C
|
|
|
|
thumb_func_start sub_8005610
|
|
sub_8005610:
|
|
push {lr}
|
|
ldr r0, [r0, 0x4]
|
|
bl sub_800561C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8005610
|
|
|
|
thumb_func_start sub_800561C
|
|
sub_800561C:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
adds r7, r2, 0
|
|
adds r6, r3, 0
|
|
ldr r1, [r5, 0x14]
|
|
cmp r1, 0
|
|
beq _0800563A
|
|
lsls r0, 5
|
|
ldr r2, _08005664
|
|
adds r0, r2
|
|
ldr r2, [r5, 0x1C]
|
|
lsls r2, 5
|
|
bl CpuCopy
|
|
_0800563A:
|
|
ldr r0, [r5, 0x18]
|
|
cmp r0, 0
|
|
beq _0800565C
|
|
movs r4, 0
|
|
_08005642:
|
|
movs r1, 0xF0
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
lsls r2, r4, 2
|
|
ldr r1, [r5, 0x18]
|
|
adds r1, r2
|
|
adds r2, r7, 0
|
|
adds r3, r6, 0
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _08005642
|
|
_0800565C:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08005664: .4byte 0x06010000
|
|
thumb_func_end sub_800561C
|
|
|
|
thumb_func_start sub_8005668
|
|
sub_8005668:
|
|
push {lr}
|
|
ldr r0, [r0, 0x4]
|
|
bl sub_8005674
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8005668
|
|
|
|
thumb_func_start sub_8005674
|
|
sub_8005674:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r3, [r4, 0x14]
|
|
cmp r3, 0
|
|
beq _0800568E
|
|
lsls r0, r1, 5
|
|
ldr r1, _08005698
|
|
adds r0, r1
|
|
ldr r2, [r4, 0x1C]
|
|
lsls r2, 5
|
|
adds r1, r3, 0
|
|
bl CpuCopy
|
|
_0800568E:
|
|
ldr r0, [r4, 0x18]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08005698: .4byte 0x06010000
|
|
thumb_func_end sub_8005674
|
|
|
|
thumb_func_start sub_800569C
|
|
sub_800569C:
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0
|
|
strh r0, [r3]
|
|
strh r0, [r3, 0x2]
|
|
ldrh r0, [r4]
|
|
lsrs r0, 15
|
|
cmp r0, 0
|
|
beq _080056F8
|
|
cmp r2, 0x3
|
|
bhi _080056F8
|
|
ldr r1, [r4, 0x30]
|
|
cmp r1, 0
|
|
beq _080056F2
|
|
movs r5, 0x20
|
|
ldrsh r0, [r4, r5]
|
|
lsls r0, 4
|
|
adds r5, r1, r0
|
|
lsls r0, r2, 2
|
|
adds r2, r5, r0
|
|
movs r6, 0
|
|
ldrsh r1, [r2, r6]
|
|
cmp r1, 0x63
|
|
bne _080056E0
|
|
movs r6, 0x2
|
|
ldrsh r1, [r2, r6]
|
|
cmp r1, 0x63
|
|
bne _080056E0
|
|
strh r1, [r3]
|
|
strh r1, [r3, 0x2]
|
|
b _080056F8
|
|
_080056E0:
|
|
adds r0, r5, r0
|
|
ldrh r1, [r0]
|
|
ldrh r2, [r4, 0xC]
|
|
adds r1, r2
|
|
strh r1, [r3]
|
|
ldrh r0, [r0, 0x2]
|
|
ldrh r4, [r4, 0xE]
|
|
adds r0, r4
|
|
b _080056F6
|
|
_080056F2:
|
|
movs r0, 0x63
|
|
strh r0, [r3]
|
|
_080056F6:
|
|
strh r0, [r3, 0x2]
|
|
_080056F8:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800569C
|
|
|
|
thumb_func_start sub_8005700
|
|
sub_8005700:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
ldrh r0, [r1]
|
|
lsrs r0, 15
|
|
cmp r0, 0
|
|
beq _0800575C
|
|
ldr r2, [r1, 0x30]
|
|
cmp r2, 0
|
|
beq _0800574C
|
|
movs r4, 0x20
|
|
ldrsh r0, [r1, r4]
|
|
lsls r0, 4
|
|
adds r2, r0
|
|
adds r4, r2, 0
|
|
adds r4, 0xC
|
|
_0800571E:
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0x63
|
|
bne _08005732
|
|
movs r5, 0x2
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, 0x63
|
|
bne _08005732
|
|
strh r0, [r3]
|
|
b _08005740
|
|
_08005732:
|
|
ldrh r0, [r2]
|
|
ldrh r5, [r1, 0xC]
|
|
adds r0, r5
|
|
strh r0, [r3]
|
|
ldrh r0, [r2, 0x2]
|
|
ldrh r5, [r1, 0xE]
|
|
adds r0, r5
|
|
_08005740:
|
|
strh r0, [r3, 0x2]
|
|
adds r3, 0x4
|
|
adds r2, 0x4
|
|
cmp r2, r4
|
|
ble _0800571E
|
|
b _0800575C
|
|
_0800574C:
|
|
movs r1, 0x63
|
|
movs r0, 0x3
|
|
_08005750:
|
|
strh r1, [r3]
|
|
strh r1, [r3, 0x2]
|
|
adds r3, 0x4
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bge _08005750
|
|
_0800575C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8005700
|
|
|
|
thumb_func_start sub_8005764
|
|
sub_8005764:
|
|
push {lr}
|
|
ldr r1, [r1, 0x4]
|
|
bl sub_8005770
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8005764
|
|
|
|
thumb_func_start sub_8005770
|
|
sub_8005770:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r2
|
|
adds r7, r3, 0
|
|
movs r5, 0
|
|
adds r0, 0x10
|
|
lsls r6, r0, 4
|
|
adds r4, r1, 0
|
|
_08005782:
|
|
adds r0, r6, r5
|
|
adds r1, r4, 0
|
|
mov r2, r8
|
|
adds r3, r7, 0
|
|
bl SetBGPaletteBufferColorRGB
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08005782
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8005770
|
|
|
|
thumb_func_start nullsub_7
|
|
nullsub_7:
|
|
bx lr
|
|
thumb_func_end nullsub_7
|
|
|
|
thumb_func_start nullsub_8
|
|
nullsub_8:
|
|
bx lr
|
|
thumb_func_end nullsub_8
|
|
|
|
thumb_func_start nullsub_9
|
|
nullsub_9:
|
|
bx lr
|
|
thumb_func_end nullsub_9
|
|
|
|
thumb_func_start nullsub_10
|
|
nullsub_10:
|
|
bx lr
|
|
thumb_func_end nullsub_10
|
|
|
|
thumb_func_start nullsub_144
|
|
nullsub_144:
|
|
bx lr
|
|
thumb_func_end nullsub_144
|
|
|
|
thumb_func_start nullsub_11
|
|
nullsub_11:
|
|
bx lr
|
|
thumb_func_end nullsub_11
|
|
|
|
thumb_func_start nullsub_12
|
|
nullsub_12:
|
|
bx lr
|
|
thumb_func_end nullsub_12
|
|
|
|
thumb_func_start nullsub_13
|
|
nullsub_13:
|
|
bx lr
|
|
thumb_func_end nullsub_13
|
|
|
|
thumb_func_start nullsub_145
|
|
nullsub_145:
|
|
bx lr
|
|
thumb_func_end nullsub_145
|
|
|
|
thumb_func_start nullsub_14
|
|
nullsub_14:
|
|
bx lr
|
|
thumb_func_end nullsub_14
|
|
|
|
thumb_func_start nullsub_146
|
|
nullsub_146:
|
|
bx lr
|
|
thumb_func_end nullsub_146
|
|
|
|
thumb_func_start nullsub_147
|
|
nullsub_147:
|
|
bx lr
|
|
thumb_func_end nullsub_147
|
|
|
|
thumb_func_start nullsub_148
|
|
nullsub_148:
|
|
bx lr
|
|
thumb_func_end nullsub_148
|
|
|
|
thumb_func_start nullsub_149
|
|
nullsub_149:
|
|
bx lr
|
|
thumb_func_end nullsub_149
|
|
|
|
thumb_func_start sub_80057D8
|
|
sub_80057D8:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80057D8
|
|
|
|
thumb_func_start sub_80057DC
|
|
sub_80057DC:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_80057DC
|
|
|
|
thumb_func_start nullsub_150
|
|
nullsub_150:
|
|
bx lr
|
|
thumb_func_end nullsub_150
|
|
|
|
thumb_func_start nullsub_151
|
|
nullsub_151:
|
|
bx lr
|
|
thumb_func_end nullsub_151
|
|
|
|
thumb_func_start sub_80057E8
|
|
sub_80057E8:
|
|
ldr r1, _08005814
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r0, _08005818
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
ldr r1, _0800581C
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r0, _08005820
|
|
str r2, [r0]
|
|
ldr r0, _08005824
|
|
str r2, [r0]
|
|
ldr r0, _08005828
|
|
strb r2, [r0]
|
|
ldr r1, _0800582C
|
|
ldr r3, _08005830
|
|
adds r0, r3, 0
|
|
strh r0, [r1]
|
|
ldr r0, _08005834
|
|
str r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08005814: .4byte gUnknown_2026E4C
|
|
_08005818: .4byte gUnknown_2026E54
|
|
_0800581C: .4byte gUnknown_2026E50
|
|
_08005820: .4byte gUnknown_2026E58
|
|
_08005824: .4byte gUnknown_2026E3C
|
|
_08005828: .4byte gUnknown_2026E38
|
|
_0800582C: .4byte gUnknown_2026E4E
|
|
_08005830: .4byte 0x0000060c
|
|
_08005834: .4byte gUnknown_203B078
|
|
thumb_func_end sub_80057E8
|
|
|
|
thumb_func_start sub_8005838
|
|
sub_8005838:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r0, _08005880
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08005854
|
|
movs r1, 0
|
|
_08005854:
|
|
ldr r0, _08005884
|
|
ldr r0, [r0]
|
|
ldr r3, _08005888
|
|
cmp r0, 0
|
|
bne _08005860
|
|
ldr r3, _0800588C
|
|
_08005860:
|
|
ldr r0, _08005890
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
bne _0800586A
|
|
ldr r2, _08005894
|
|
_0800586A:
|
|
ldr r0, _08005898
|
|
str r3, [r0]
|
|
cmp r1, 0x5
|
|
bls _08005876
|
|
bl _08006094
|
|
_08005876:
|
|
lsls r0, r1, 2
|
|
ldr r1, _0800589C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08005880: .4byte gUnknown_2026E4C
|
|
_08005884: .4byte gUnknown_2026E54
|
|
_08005888: .4byte gUnknown_20270E8
|
|
_0800588C: .4byte gUnknown_2026E60
|
|
_08005890: .4byte gUnknown_203B078
|
|
_08005894: .4byte gUnknown_80B83EA
|
|
_08005898: .4byte gUnknown_2026E58
|
|
_0800589C: .4byte _080058A0
|
|
.align 2, 0
|
|
_080058A0:
|
|
.4byte _080058B8
|
|
.4byte _08005984
|
|
.4byte _08005A98
|
|
.4byte _08005BAC
|
|
.4byte _08005D46
|
|
.4byte _08005E58
|
|
_080058B8:
|
|
movs r1, 0
|
|
movs r7, 0x9
|
|
_080058BC:
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _080058BC
|
|
b _08006094
|
|
_08005984:
|
|
ldr r1, _08005A94
|
|
movs r7, 0x9
|
|
_08005988:
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
blt _08005A90
|
|
b _08005988
|
|
_08005A90:
|
|
b _08006094
|
|
.align 2, 0
|
|
_08005A94: .4byte gUnknown_80B816A
|
|
_08005A98:
|
|
ldr r1, _08005BA8
|
|
movs r7, 0x9
|
|
_08005A9C:
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
blt _08005BA4
|
|
b _08005A9C
|
|
_08005BA4:
|
|
b _08006094
|
|
.align 2, 0
|
|
_08005BA8: .4byte gUnknown_80B802A
|
|
_08005BAC:
|
|
ldr r0, [r5]
|
|
mov r10, r0
|
|
cmp r0, 0
|
|
bge _08005BBA
|
|
ldr r0, [r5, 0x8]
|
|
cmp r0, 0
|
|
blt _08005BDC
|
|
_08005BBA:
|
|
ldr r1, [r5, 0x4]
|
|
cmp r1, 0
|
|
bge _08005BC6
|
|
ldr r0, [r5, 0xC]
|
|
cmp r0, 0
|
|
blt _08005BDC
|
|
_08005BC6:
|
|
mov r4, r10
|
|
cmp r4, 0xEF
|
|
ble _08005BD2
|
|
ldr r0, [r5, 0x8]
|
|
cmp r0, 0xEF
|
|
bgt _08005BDC
|
|
_08005BD2:
|
|
cmp r1, 0x9F
|
|
ble _08005CA8
|
|
ldr r0, [r5, 0xC]
|
|
cmp r0, 0x9F
|
|
ble _08005CA8
|
|
_08005BDC:
|
|
movs r1, 0xF0
|
|
movs r7, 0x9
|
|
_08005BE0:
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _08005BE0
|
|
b _08006094
|
|
_08005CA8:
|
|
movs r7, 0
|
|
mov r8, r1
|
|
movs r6, 0x80
|
|
lsls r6, 1
|
|
mov r12, r6
|
|
lsls r0, r1, 1
|
|
ldr r1, _08005CCC
|
|
subs r6, r1, r0
|
|
mov r9, r10
|
|
_08005CBA:
|
|
cmp r8, r7
|
|
ble _08005CD0
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
mov r4, r12
|
|
strh r4, [r3]
|
|
b _08005D3A
|
|
.align 2, 0
|
|
_08005CCC: .4byte gUnknown_80B8008
|
|
_08005CD0:
|
|
ldr r1, [r5, 0xC]
|
|
cmp r1, r7
|
|
bgt _08005CE2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
mov r0, r12
|
|
b _08005D38
|
|
_08005CE2:
|
|
mov r4, r8
|
|
subs r0, r7, r4
|
|
cmp r0, 0xF
|
|
bgt _08005CF0
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
b _08005D00
|
|
_08005CF0:
|
|
subs r0, r1, r7
|
|
cmp r0, 0xF
|
|
bgt _08005D10
|
|
lsls r0, 1
|
|
ldr r1, _08005D0C
|
|
adds r0, r1
|
|
movs r4, 0
|
|
ldrsh r1, [r0, r4]
|
|
_08005D00:
|
|
mov r0, r9
|
|
adds r4, r0, r1
|
|
ldr r0, [r5, 0x8]
|
|
subs r1, r0, r1
|
|
b _08005D14
|
|
.align 2, 0
|
|
_08005D0C: .4byte gUnknown_80B8008
|
|
_08005D10:
|
|
mov r4, r10
|
|
ldr r1, [r5, 0x8]
|
|
_08005D14:
|
|
cmp r4, 0
|
|
bge _08005D1A
|
|
movs r4, 0
|
|
_08005D1A:
|
|
cmp r4, 0xEF
|
|
ble _08005D20
|
|
movs r4, 0xEF
|
|
_08005D20:
|
|
cmp r1, 0
|
|
bgt _08005D26
|
|
movs r1, 0x1
|
|
_08005D26:
|
|
cmp r1, 0xF0
|
|
ble _08005D2C
|
|
movs r1, 0xF0
|
|
_08005D2C:
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
lsls r0, r1, 8
|
|
orrs r0, r4
|
|
_08005D38:
|
|
strh r0, [r3]
|
|
_08005D3A:
|
|
adds r3, 0x2
|
|
adds r6, 0x2
|
|
adds r7, 0x1
|
|
cmp r7, 0x9F
|
|
ble _08005CBA
|
|
b _08006094
|
|
_08005D46:
|
|
ldr r1, _08005E54
|
|
movs r7, 0xE
|
|
_08005D4A:
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
ldrh r0, [r1]
|
|
strh r0, [r3]
|
|
adds r1, 0x2
|
|
adds r3, 0x2
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
blt _08005E52
|
|
b _08005D4A
|
|
_08005E52:
|
|
b _08006094
|
|
.align 2, 0
|
|
_08005E54: .4byte gUnknown_80B82AA
|
|
_08005E58:
|
|
ldr r4, _08005FF4
|
|
ldr r5, _08005FF8
|
|
ldr r6, _08005FFC
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r1, r0, 0
|
|
movs r7, 0xE
|
|
_08005E66:
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r3]
|
|
adds r2, 0x2
|
|
adds r3, 0x2
|
|
strh r1, [r3]
|
|
adds r3, 0x2
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _08005E66
|
|
ldr r4, [r4]
|
|
str r4, [sp]
|
|
ldr r5, [r5]
|
|
str r5, [sp, 0x4]
|
|
ldr r6, [r6]
|
|
str r6, [sp, 0x8]
|
|
adds r1, r6, 0
|
|
cmp r6, 0
|
|
bge _08005F40
|
|
adds r1, 0xFF
|
|
_08005F40:
|
|
asrs r1, 8
|
|
adds r1, 0x1
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
bl __divsi3
|
|
str r0, [sp, 0xC]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0
|
|
bge _08005F56
|
|
adds r0, 0xFF
|
|
_08005F56:
|
|
asrs r4, r0, 8
|
|
adds r5, r4, 0
|
|
movs r3, 0
|
|
lsls r0, r4, 2
|
|
adds r7, r0, 0x2
|
|
mov r9, r7
|
|
_08005F62:
|
|
adds r0, r3, 0
|
|
str r3, [sp, 0x10]
|
|
bl sub_8009C7C
|
|
ldr r1, [sp, 0x8]
|
|
muls r0, r1
|
|
ldr r3, [sp, 0x10]
|
|
cmp r0, 0
|
|
bge _08005F76
|
|
adds r0, 0xFF
|
|
_08005F76:
|
|
asrs r0, 8
|
|
ldr r2, [sp, 0x4]
|
|
adds r1, r2, r0
|
|
cmp r1, 0
|
|
bge _08005F82
|
|
adds r1, 0xFF
|
|
_08005F82:
|
|
asrs r1, 8
|
|
str r1, [sp, 0x14]
|
|
ldr r6, [sp, 0x4]
|
|
subs r0, r6, r0
|
|
cmp r0, 0
|
|
bge _08005F90
|
|
adds r0, 0xFF
|
|
_08005F90:
|
|
asrs r0, 8
|
|
mov r8, r0
|
|
ldr r0, [sp, 0x14]
|
|
cmp r5, r0
|
|
blt _08005FA4
|
|
ldr r1, [sp, 0xC]
|
|
adds r1, r3
|
|
mov r10, r1
|
|
cmp r4, r8
|
|
ble _0800608A
|
|
_08005FA4:
|
|
adds r0, r3, 0
|
|
str r3, [sp, 0x10]
|
|
bl sub_8009D04
|
|
ldr r2, [sp, 0x8]
|
|
muls r0, r2
|
|
ldr r3, [sp, 0x10]
|
|
cmp r0, 0
|
|
bge _08005FB8
|
|
adds r0, 0xFF
|
|
_08005FB8:
|
|
asrs r0, 8
|
|
ldr r6, [sp]
|
|
subs r1, r6, r0
|
|
cmp r1, 0
|
|
bge _08005FC4
|
|
adds r1, 0xFF
|
|
_08005FC4:
|
|
asrs r1, 8
|
|
ldr r2, [sp]
|
|
adds r0, r2, r0
|
|
cmp r0, 0
|
|
bge _08005FD0
|
|
adds r0, 0xFF
|
|
_08005FD0:
|
|
asrs r0, 8
|
|
cmp r1, 0
|
|
bge _08005FD8
|
|
movs r1, 0
|
|
_08005FD8:
|
|
cmp r0, 0
|
|
bge _08005FDE
|
|
movs r0, 0
|
|
_08005FDE:
|
|
cmp r1, 0xEF
|
|
ble _08005FE4
|
|
movs r1, 0x9F
|
|
_08005FE4:
|
|
cmp r0, 0xEF
|
|
ble _08005FEA
|
|
movs r0, 0x9F
|
|
_08005FEA:
|
|
cmp r1, r0
|
|
ble _08006000
|
|
lsls r2, r1, 8
|
|
orrs r2, r0
|
|
b _08006004
|
|
.align 2, 0
|
|
_08005FF4: .4byte gUnknown_2026E40
|
|
_08005FF8: .4byte gUnknown_2026E44
|
|
_08005FFC: .4byte gUnknown_2026E48
|
|
_08006000:
|
|
lsls r2, r0, 8
|
|
orrs r2, r1
|
|
_08006004:
|
|
ldr r6, [sp, 0xC]
|
|
adds r3, r6
|
|
mov r10, r3
|
|
ldr r0, [sp, 0x14]
|
|
cmp r5, r0
|
|
bge _0800604E
|
|
ldr r1, _08006030
|
|
mov r12, r1
|
|
ldr r3, _08006034
|
|
add r3, r9
|
|
ldr r1, _08006038
|
|
add r1, r9
|
|
_0800601C:
|
|
cmp r5, 0
|
|
blt _0800603E
|
|
cmp r5, 0x9F
|
|
bgt _0800603E
|
|
mov r6, r12
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
bne _0800603C
|
|
strh r2, [r1]
|
|
b _0800603E
|
|
.align 2, 0
|
|
_08006030: .4byte gUnknown_2026E54
|
|
_08006034: .4byte gUnknown_20270E8
|
|
_08006038: .4byte gUnknown_2026E60
|
|
_0800603C:
|
|
strh r2, [r3]
|
|
_0800603E:
|
|
adds r3, 0x4
|
|
adds r1, 0x4
|
|
movs r0, 0x4
|
|
add r9, r0
|
|
adds r5, 0x1
|
|
ldr r6, [sp, 0x14]
|
|
cmp r5, r6
|
|
blt _0800601C
|
|
_0800604E:
|
|
cmp r4, r8
|
|
ble _0800608A
|
|
ldr r6, _08006070
|
|
ldr r0, _08006074
|
|
adds r3, r7, r0
|
|
ldr r0, _08006078
|
|
adds r1, r7, r0
|
|
_0800605C:
|
|
cmp r4, 0
|
|
blt _0800607E
|
|
cmp r4, 0x9F
|
|
bgt _0800607E
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
bne _0800607C
|
|
strh r2, [r1]
|
|
b _0800607E
|
|
.align 2, 0
|
|
_08006070: .4byte gUnknown_2026E54
|
|
_08006074: .4byte gUnknown_20270E8
|
|
_08006078: .4byte gUnknown_2026E60
|
|
_0800607C:
|
|
strh r2, [r3]
|
|
_0800607E:
|
|
subs r3, 0x4
|
|
subs r1, 0x4
|
|
subs r7, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, r8
|
|
bgt _0800605C
|
|
_0800608A:
|
|
mov r3, r10
|
|
ldr r0, _080060A4
|
|
cmp r3, r0
|
|
bgt _08006094
|
|
b _08005F62
|
|
_08006094:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080060A4: .4byte 0x000003ff
|
|
thumb_func_end sub_8005838
|
|
|
|
thumb_func_start sub_80060A8
|
|
sub_80060A8:
|
|
push {lr}
|
|
ldr r1, _080060D8
|
|
ldr r0, _080060DC
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r2, _080060E0
|
|
movs r1, 0
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bne _080060BE
|
|
movs r1, 0x1
|
|
_080060BE:
|
|
str r1, [r2]
|
|
ldr r2, _080060E4
|
|
movs r1, 0
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bne _080060CC
|
|
movs r1, 0x1
|
|
_080060CC:
|
|
str r1, [r2]
|
|
ldr r1, _080060E8
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080060D8: .4byte gUnknown_2026E3C
|
|
_080060DC: .4byte gUnknown_2026E58
|
|
_080060E0: .4byte gUnknown_2026E54
|
|
_080060E4: .4byte gUnknown_2026E50
|
|
_080060E8: .4byte gUnknown_2026E38
|
|
thumb_func_end sub_80060A8
|
|
|
|
thumb_func_start sub_80060EC
|
|
sub_80060EC:
|
|
push {lr}
|
|
ldr r1, _08006130
|
|
ldr r0, _08006134
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r2, _08006138
|
|
movs r1, 0
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bne _08006102
|
|
movs r1, 0x1
|
|
_08006102:
|
|
str r1, [r2]
|
|
ldr r2, _0800613C
|
|
movs r1, 0
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
bne _08006110
|
|
movs r1, 0x1
|
|
_08006110:
|
|
str r1, [r2]
|
|
ldr r0, _08006140
|
|
ldrh r2, [r0]
|
|
movs r0, 0xF8
|
|
lsls r0, 5
|
|
ands r0, r2
|
|
lsrs r0, 8
|
|
movs r1, 0x1F
|
|
ands r1, r2
|
|
bl sub_800CC44
|
|
ldr r1, _08006144
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006130: .4byte gUnknown_2026E3C
|
|
_08006134: .4byte gUnknown_2026E58
|
|
_08006138: .4byte gUnknown_2026E54
|
|
_0800613C: .4byte gUnknown_2026E50
|
|
_08006140: .4byte gUnknown_2026E4E
|
|
_08006144: .4byte gUnknown_2026E38
|
|
thumb_func_end sub_80060EC
|
|
|
|
thumb_func_start SeedRng
|
|
SeedRng:
|
|
push {r4,lr}
|
|
ldr r4, _08006170
|
|
ldrb r2, [r0]
|
|
ldrb r1, [r0, 0x1]
|
|
muls r2, r1
|
|
ldrb r3, [r0, 0x2]
|
|
ldrb r1, [r0, 0x3]
|
|
muls r1, r3
|
|
ldr r3, _08006174
|
|
adds r1, r3
|
|
adds r2, r1
|
|
ldrb r1, [r0, 0x4]
|
|
ldrb r0, [r0, 0x5]
|
|
muls r0, r1
|
|
adds r2, r0
|
|
str r2, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006170: .4byte gUnknown_203B07C
|
|
_08006174: .4byte 0x0000d305
|
|
thumb_func_end SeedRng
|
|
|
|
thumb_func_start Random16
|
|
Random16:
|
|
ldr r2, _08006188
|
|
ldr r1, [r2]
|
|
ldr r0, _0800618C
|
|
muls r0, r1
|
|
adds r0, 0x1
|
|
str r0, [r2]
|
|
asrs r0, 16
|
|
bx lr
|
|
.align 2, 0
|
|
_08006188: .4byte gUnknown_203B07C
|
|
_0800618C: .4byte 0x5d588b65
|
|
thumb_func_end Random16
|
|
|
|
thumb_func_start Random
|
|
Random:
|
|
push {r4,lr}
|
|
bl Random16
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
bl Random16
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r4, 16
|
|
orrs r4, r0
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end Random
|
|
|
|
thumb_func_start RandomCapped
|
|
RandomCapped:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl Random
|
|
ldr r1, _080061C8
|
|
ands r0, r1
|
|
muls r0, r4
|
|
asrs r0, 16
|
|
ands r0, r1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080061C8: .4byte 0x0000ffff
|
|
thumb_func_end RandomCapped
|
|
|
|
thumb_func_start RandomRange
|
|
RandomRange:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r5, r4
|
|
beq _080061EC
|
|
cmp r5, r4
|
|
blt _080061E4
|
|
subs r0, r5, r4
|
|
bl RandomCapped
|
|
adds r0, r4
|
|
b _080061EC
|
|
_080061E4:
|
|
subs r0, r4, r5
|
|
bl RandomCapped
|
|
adds r0, r5
|
|
_080061EC:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end RandomRange
|
|
|
|
thumb_func_start GetRngState
|
|
GetRngState:
|
|
ldr r0, _080061FC
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080061FC: .4byte gUnknown_203B07C
|
|
thumb_func_end GetRngState
|
|
|
|
thumb_func_start ReseedRng
|
|
ReseedRng:
|
|
push {r4,lr}
|
|
ldr r4, _08006214
|
|
str r0, [r4]
|
|
bl Random
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006214: .4byte gUnknown_203B07C
|
|
thumb_func_end ReseedRng
|
|
|
|
thumb_func_start sub_8006218
|
|
sub_8006218:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r1, _080062F4
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, _080062F8
|
|
ldr r5, _080062FC
|
|
adds r1, r5, 0
|
|
bl sub_800A9EC
|
|
ldr r4, _08006300
|
|
str r0, [r4]
|
|
ldr r0, _08006304
|
|
adds r1, r5, 0
|
|
bl sub_800A9EC
|
|
str r0, [r4, 0x4]
|
|
ldr r2, _08006308
|
|
ldr r1, [r4]
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [r2]
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r2, 0x4]
|
|
ldr r1, _0800630C
|
|
movs r0, 0xB
|
|
str r0, [r1]
|
|
movs r0, 0xC
|
|
str r0, [r1, 0x4]
|
|
ldr r0, _08006310
|
|
movs r4, 0
|
|
movs r3, 0
|
|
adds r2, r0, 0
|
|
adds r2, 0x46
|
|
adds r0, 0x4
|
|
movs r1, 0x3
|
|
_08006264:
|
|
strh r3, [r0]
|
|
strh r3, [r0, 0x4]
|
|
strb r4, [r2]
|
|
adds r2, 0x48
|
|
adds r0, 0x48
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08006264
|
|
ldr r1, _08006314
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
movs r3, 0
|
|
ldr r0, _08006318
|
|
mov r9, r0
|
|
ldr r1, _0800631C
|
|
mov r10, r1
|
|
ldr r7, _08006320
|
|
ldr r2, _08006324
|
|
mov r8, r2
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r6, r7, r0
|
|
ldr r4, _08006328
|
|
movs r5, 0
|
|
mov r12, r6
|
|
_08006296:
|
|
lsls r0, r3, 6
|
|
adds r2, r0, r7
|
|
mov r1, r8
|
|
strh r1, [r2]
|
|
adds r1, r0, r6
|
|
strh r4, [r1]
|
|
adds r3, 0x1
|
|
add r0, r12
|
|
adds r0, 0x2
|
|
adds r2, 0x2
|
|
movs r1, 0x1E
|
|
_080062AC:
|
|
strh r5, [r2]
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080062AC
|
|
cmp r3, 0x13
|
|
ble _08006296
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
mov r2, r9
|
|
strb r0, [r2]
|
|
ldr r0, _0800632C
|
|
mov r2, r10
|
|
str r0, [r2]
|
|
ldr r0, _08006330
|
|
str r1, [r0]
|
|
ldr r2, _08006334
|
|
strb r1, [r2]
|
|
movs r0, 0x1
|
|
ldr r1, _08006338
|
|
str r0, [r1]
|
|
movs r0, 0x14
|
|
ldr r2, _0800633C
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
bl xxx_update_some_bg_tiles
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080062F4: .4byte gUnknown_20274AC
|
|
_080062F8: .4byte gUnknown_80B87B4
|
|
_080062FC: .4byte gUnknown_8300500
|
|
_08006300: .4byte gUnknown_202AFB4
|
|
_08006304: .4byte gUnknown_80B87BC
|
|
_08006308: .4byte gUnknown_2027490
|
|
_0800630C: .4byte gUnknown_202B028
|
|
_08006310: .4byte gUnknown_2027370
|
|
_08006314: .4byte gUnknown_2027498
|
|
_08006318: .4byte gUnknown_202B034
|
|
_0800631C: .4byte gUnknown_202B030
|
|
_08006320: .4byte gUnknown_202B038
|
|
_08006324: .4byte 0x0000f279
|
|
_08006328: .4byte 0x0000f27a
|
|
_0800632C: .4byte 0x88888888
|
|
_08006330: .4byte gUnknown_203B078
|
|
_08006334: .4byte gUnknown_20274A5
|
|
_08006338: .4byte gUnknown_202B020
|
|
_0800633C: .4byte gUnknown_202B024
|
|
thumb_func_end sub_8006218
|
|
|
|
thumb_func_start xxx_update_some_bg_tiles
|
|
xxx_update_some_bg_tiles:
|
|
push {r4,r5,lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _08006360
|
|
ldr r5, [r0]
|
|
ldr r4, _08006364
|
|
str r1, [r0]
|
|
cmp r1, 0
|
|
beq _08006354
|
|
cmp r1, 0x2
|
|
bne _0800636C
|
|
_08006354:
|
|
movs r0, 0x2
|
|
bl sub_800CDA8
|
|
ldr r2, _08006368
|
|
b _08006374
|
|
.align 2, 0
|
|
_08006360: .4byte gUnknown_20274B0
|
|
_08006364: .4byte 0x06004f40
|
|
_08006368: .4byte gUnknown_80B87C4
|
|
_0800636C:
|
|
movs r0, 0x1
|
|
bl sub_800CDA8
|
|
ldr r2, _080063A4
|
|
_08006374:
|
|
ldr r1, _080063A8
|
|
ldr r0, _080063AC
|
|
str r0, [r1]
|
|
ldm r2!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r4!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r4!, {r0}
|
|
ldr r0, [r2]
|
|
str r0, [r4]
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080063A4: .4byte gUnknown_80B87E4
|
|
_080063A8: .4byte gUnknown_202B030
|
|
_080063AC: .4byte 0x88888888
|
|
thumb_func_end xxx_update_some_bg_tiles
|
|
|
|
thumb_func_start sub_80063B0
|
|
sub_80063B0:
|
|
ldr r0, _080063B8
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080063B8: .4byte gUnknown_20274B0
|
|
thumb_func_end sub_80063B0
|
|
|
|
thumb_func_start sub_80063BC
|
|
sub_80063BC:
|
|
ldr r1, _080063C8
|
|
ldrb r2, [r1]
|
|
strb r0, [r1]
|
|
adds r0, r2, 0
|
|
bx lr
|
|
.align 2, 0
|
|
_080063C8: .4byte gUnknown_202B034
|
|
thumb_func_end sub_80063BC
|
|
|
|
thumb_func_start sub_80063CC
|
|
sub_80063CC:
|
|
ldr r1, _080063D4
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080063D4: .4byte gUnknown_20274AC
|
|
thumb_func_end sub_80063CC
|
|
|
|
thumb_func_start sub_80063D8
|
|
sub_80063D8:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _080063F0
|
|
ldr r0, _080063E8
|
|
ldr r0, [r0]
|
|
ldr r2, _080063EC
|
|
b _08006410
|
|
.align 2, 0
|
|
_080063E8: .4byte gUnknown_20274B0
|
|
_080063EC: .4byte 0x88888888
|
|
_080063F0:
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
lsls r2, r0, 4
|
|
orrs r2, r0
|
|
lsls r1, r0, 8
|
|
orrs r2, r1
|
|
lsls r1, r0, 12
|
|
orrs r2, r1
|
|
lsls r1, r0, 16
|
|
orrs r2, r1
|
|
lsls r1, r0, 20
|
|
orrs r2, r1
|
|
lsls r1, r0, 24
|
|
orrs r2, r1
|
|
lsls r0, 28
|
|
orrs r2, r0
|
|
_08006410:
|
|
ldr r0, _08006418
|
|
str r2, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006418: .4byte gUnknown_202B030
|
|
thumb_func_end sub_80063D8
|
|
|
|
thumb_func_start sub_800641C
|
|
sub_800641C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r3, 0
|
|
str r3, [sp]
|
|
mov r3, sp
|
|
bl sub_8006438
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800641C
|
|
|
|
thumb_func_start sub_8006438
|
|
sub_8006438:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1C
|
|
adds r4, r0, 0
|
|
mov r8, r3
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r10, r1
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
movs r0, 0x2
|
|
mov r9, r0
|
|
cmp r4, 0
|
|
bne _0800645C
|
|
ldr r4, _080064F0
|
|
_0800645C:
|
|
cmp r2, 0
|
|
beq _08006464
|
|
bl sub_8009388
|
|
_08006464:
|
|
bl sub_800898C
|
|
movs r6, 0
|
|
adds r5, r4, 0
|
|
adds r5, 0xC
|
|
ldr r1, _080064F4
|
|
str r1, [sp, 0x18]
|
|
_08006472:
|
|
ldr r0, [sp, 0x18]
|
|
adds r1, r4, 0
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080064C4
|
|
ldr r1, _080064F8
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
str r4, [sp, 0x4]
|
|
mov r2, r10
|
|
str r2, [sp, 0x8]
|
|
mov r3, r9
|
|
str r3, [sp, 0xC]
|
|
mov r7, r8
|
|
str r7, [sp, 0x10]
|
|
movs r0, 0
|
|
str r0, [sp, 0x14]
|
|
ldr r0, _080064FC
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
ldr r2, _08006500
|
|
ldr r3, _08006504
|
|
bl sub_8006554
|
|
adds r0, r4, 0
|
|
mov r1, r8
|
|
bl sub_80089AC
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
muls r0, r1
|
|
add r9, r0
|
|
_080064C4:
|
|
adds r5, 0x18
|
|
adds r4, 0x18
|
|
ldr r3, [sp, 0x18]
|
|
adds r3, 0x18
|
|
str r3, [sp, 0x18]
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08006472
|
|
ldr r2, _08006508
|
|
ldr r0, _0800650C
|
|
ldr r1, _08006510
|
|
str r0, [r2]
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
add sp, 0x1C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080064F0: .4byte gUnknown_80B857C
|
|
_080064F4: .4byte gUnknown_202AFC0
|
|
_080064F8: .4byte gUnknown_80B8804
|
|
_080064FC: .4byte gUnknown_2027370
|
|
_08006500: .4byte gUnknown_20274B4
|
|
_08006504: .4byte gUnknown_202B038
|
|
_08006508: .4byte gUnknown_203B078
|
|
_0800650C: .4byte gUnknown_3000E94
|
|
_08006510: .4byte gUnknown_20274A5
|
|
thumb_func_end sub_8006438
|
|
|
|
thumb_func_start nullsub_152
|
|
nullsub_152:
|
|
bx lr
|
|
thumb_func_end nullsub_152
|
|
|
|
thumb_func_start sub_8006518
|
|
sub_8006518:
|
|
push {r4-r7,lr}
|
|
ldr r4, _0800653C
|
|
adds r2, r0, 0
|
|
movs r3, 0x3
|
|
_08006520:
|
|
adds r1, r2, 0
|
|
adds r0, r4, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
adds r4, 0x18
|
|
adds r2, 0x18
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08006520
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800653C: .4byte gUnknown_202AFC0
|
|
thumb_func_end sub_8006518
|
|
|
|
thumb_func_start nullsub_153
|
|
nullsub_153:
|
|
bx lr
|
|
thumb_func_end nullsub_153
|
|
|
|
thumb_func_start sub_8006544
|
|
sub_8006544:
|
|
ldr r1, _08006550
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08006550: .4byte gUnknown_80B8814
|
|
thumb_func_end sub_8006544
|
|
|
|
thumb_func_start sub_8006554
|
|
sub_8006554:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
str r0, [sp, 0x4]
|
|
adds r7, r1, 0
|
|
adds r6, r2, 0
|
|
str r3, [sp, 0x8]
|
|
ldr r1, [sp, 0x4C]
|
|
ldr r3, [sp, 0x50]
|
|
ldr r2, [sp, 0x54]
|
|
ldr r0, [sp, 0x58]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
str r1, [sp, 0xC]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [sp, 0x10]
|
|
ldr r1, [sp, 0x44]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
ldr r4, [sp, 0x4]
|
|
adds r5, r4, r0
|
|
ldr r0, [sp, 0x48]
|
|
movs r4, 0x8
|
|
ldrsh r1, [r0, r4]
|
|
movs r4, 0
|
|
ldrsh r0, [r2, r4]
|
|
adds r1, r0
|
|
str r1, [sp, 0x14]
|
|
ldr r0, [sp, 0x48]
|
|
movs r4, 0xA
|
|
ldrsh r1, [r0, r4]
|
|
movs r4, 0x2
|
|
ldrsh r0, [r2, r4]
|
|
adds r4, r1, r0
|
|
mov r0, sp
|
|
ldrh r0, [r0, 0x14]
|
|
strh r0, [r5]
|
|
strh r4, [r5, 0x2]
|
|
ldr r1, [sp, 0x48]
|
|
ldrh r0, [r1, 0xC]
|
|
strh r0, [r5, 0x4]
|
|
ldrh r0, [r1, 0x10]
|
|
strh r0, [r5, 0x8]
|
|
ldrh r0, [r1, 0xE]
|
|
strh r0, [r5, 0x6]
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [r5, 0xC]
|
|
str r3, [r5, 0x10]
|
|
cmp r0, 0x6
|
|
bne _080065C6
|
|
str r3, [r5, 0x14]
|
|
b _080065D6
|
|
_080065C6:
|
|
ldr r2, [sp, 0x48]
|
|
movs r0, 0x12
|
|
ldrsh r1, [r2, r0]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
muls r0, r1
|
|
adds r0, r3, r0
|
|
str r0, [r5, 0x14]
|
|
_080065D6:
|
|
ldr r0, [r5, 0x10]
|
|
lsls r0, 5
|
|
adds r0, r6, r0
|
|
str r0, [r5, 0x18]
|
|
ldr r0, [r5, 0x14]
|
|
lsls r0, 5
|
|
adds r1, r6, r0
|
|
str r1, [r5, 0x1C]
|
|
ldr r3, [sp, 0x48]
|
|
movs r6, 0x12
|
|
ldrsh r1, [r3, r6]
|
|
str r1, [r5, 0x24]
|
|
adds r0, r7, r0
|
|
str r0, [r5, 0x28]
|
|
ldr r3, [r5, 0xC]
|
|
cmp r3, 0x6
|
|
bne _0800660C
|
|
movs r7, 0x4
|
|
ldrsh r2, [r5, r7]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r5, r1]
|
|
ldr r6, [sp, 0x48]
|
|
movs r7, 0x12
|
|
ldrsh r1, [r6, r7]
|
|
adds r0, r1
|
|
muls r0, r2
|
|
b _08006616
|
|
_0800660C:
|
|
movs r0, 0x4
|
|
ldrsh r1, [r5, r0]
|
|
movs r2, 0x6
|
|
ldrsh r0, [r5, r2]
|
|
muls r0, r1
|
|
_08006616:
|
|
lsls r0, 5
|
|
str r0, [r5, 0x2C]
|
|
movs r0, 0
|
|
str r0, [r5, 0x30]
|
|
str r0, [r5, 0x34]
|
|
str r0, [r5, 0x38]
|
|
movs r6, 0x4
|
|
ldrsh r0, [r5, r6]
|
|
lsls r0, 3
|
|
subs r0, 0x8
|
|
str r0, [r5, 0x20]
|
|
movs r1, 0
|
|
cmp r3, 0
|
|
bne _08006634
|
|
movs r1, 0x1
|
|
_08006634:
|
|
adds r0, r5, 0
|
|
adds r0, 0x45
|
|
strb r1, [r0]
|
|
movs r7, 0x8
|
|
ldrsh r0, [r5, r7]
|
|
cmp r0, 0
|
|
bne _08006644
|
|
b _0800676C
|
|
_08006644:
|
|
ldr r0, [sp, 0x48]
|
|
ldrb r1, [r0]
|
|
movs r0, 0xA0
|
|
ands r0, r1
|
|
adds r1, r5, 0
|
|
adds r1, 0x46
|
|
str r1, [sp, 0x1C]
|
|
cmp r0, 0x80
|
|
beq _08006752
|
|
subs r7, r4, 0x1
|
|
ldr r0, [r5, 0xC]
|
|
cmp r0, 0x6
|
|
bne _080066A8
|
|
movs r2, 0
|
|
mov r8, r2
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0
|
|
beq _0800666C
|
|
ldr r6, [r5, 0x14]
|
|
mov r8, r6
|
|
_0800666C:
|
|
ldr r0, [sp, 0x48]
|
|
ldr r3, [r0, 0x14]
|
|
ldr r1, [sp, 0x8]
|
|
str r1, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl sub_8006E94
|
|
adds r7, r4, 0x2
|
|
ldr r2, [sp, 0xC]
|
|
cmp r2, 0
|
|
beq _0800669A
|
|
movs r3, 0x4
|
|
ldrsh r1, [r5, r3]
|
|
ldr r4, [sp, 0x48]
|
|
movs r6, 0x12
|
|
ldrsh r0, [r4, r6]
|
|
adds r0, 0x2
|
|
muls r1, r0
|
|
ldr r0, [r5, 0x14]
|
|
adds r0, r1
|
|
b _0800669C
|
|
_0800669A:
|
|
movs r0, 0
|
|
_0800669C:
|
|
mov r8, r0
|
|
movs r1, 0x6
|
|
ldrsh r0, [r5, r1]
|
|
subs r0, 0x2
|
|
str r0, [sp, 0x18]
|
|
b _080066CA
|
|
_080066A8:
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
ldr r2, [sp, 0x8]
|
|
ldr r3, [sp, 0x10]
|
|
bl sub_800677C
|
|
adds r7, r4, 0
|
|
movs r2, 0
|
|
mov r8, r2
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0
|
|
beq _080066C4
|
|
ldr r4, [r5, 0x14]
|
|
mov r8, r4
|
|
_080066C4:
|
|
movs r0, 0x6
|
|
ldrsh r6, [r5, r0]
|
|
str r6, [sp, 0x18]
|
|
_080066CA:
|
|
movs r1, 0
|
|
mov r9, r1
|
|
adds r2, r5, 0
|
|
adds r2, 0x46
|
|
str r2, [sp, 0x1C]
|
|
ldr r3, [sp, 0x18]
|
|
cmp r9, r3
|
|
bge _08006746
|
|
_080066DA:
|
|
ldr r4, [sp, 0x14]
|
|
subs r4, 0x1
|
|
ldr r6, [sp, 0x8]
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
mov r3, r9
|
|
bl sub_80069CC
|
|
ldr r4, [sp, 0x14]
|
|
movs r6, 0
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
adds r2, r7, 0x1
|
|
mov r10, r2
|
|
mov r3, r9
|
|
adds r3, 0x1
|
|
str r3, [sp, 0x20]
|
|
cmp r6, r0
|
|
bge _0800672A
|
|
_08006704:
|
|
ldr r0, [sp, 0x8]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
mov r3, r8
|
|
bl sub_8006AC4
|
|
adds r4, 0x1
|
|
ldr r1, [sp, 0xC]
|
|
cmp r1, 0
|
|
beq _08006720
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
_08006720:
|
|
adds r6, 0x1
|
|
movs r3, 0x4
|
|
ldrsh r0, [r5, r3]
|
|
cmp r6, r0
|
|
blt _08006704
|
|
_0800672A:
|
|
ldr r6, [sp, 0x8]
|
|
str r6, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
mov r3, r9
|
|
bl sub_8006B70
|
|
mov r7, r10
|
|
ldr r0, [sp, 0x20]
|
|
mov r9, r0
|
|
ldr r1, [sp, 0x18]
|
|
cmp r9, r1
|
|
blt _080066DA
|
|
_08006746:
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
ldr r2, [sp, 0x8]
|
|
ldr r3, [sp, 0x10]
|
|
bl sub_8006C44
|
|
_08006752:
|
|
ldr r2, [sp, 0x48]
|
|
ldrb r1, [r2]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08006766
|
|
ldr r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x44]
|
|
bl sub_8008C6C
|
|
_08006766:
|
|
movs r0, 0
|
|
ldr r3, [sp, 0x1C]
|
|
strb r0, [r3]
|
|
_0800676C:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8006554
|
|
|
|
thumb_func_start sub_800677C
|
|
sub_800677C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
str r2, [sp]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
subs r3, r0, 0x1
|
|
cmp r4, 0x1C
|
|
ble _080067A0
|
|
b _080069AE
|
|
_080067A0:
|
|
cmp r4, 0
|
|
bge _080067A6
|
|
b _080069AE
|
|
_080067A6:
|
|
ldr r0, [r6, 0xC]
|
|
cmp r0, 0x7
|
|
bls _080067AE
|
|
b _080069AE
|
|
_080067AE:
|
|
lsls r0, 2
|
|
ldr r1, _080067B8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080067B8: .4byte _080067BC
|
|
.align 2, 0
|
|
_080067BC:
|
|
.4byte _080069AE
|
|
.4byte _080069AE
|
|
.4byte _080069AE
|
|
.4byte _080067DC
|
|
.4byte _0800689C
|
|
.4byte _08006920
|
|
.4byte _080069AE
|
|
.4byte _0800696C
|
|
_080067DC:
|
|
lsls r1, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r4, [sp]
|
|
adds r0, r2, r4
|
|
adds r1, r0
|
|
ldr r7, _08006800
|
|
adds r0, r7, 0
|
|
strh r0, [r1]
|
|
adds r5, r2, 0
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08006808
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r1, r2
|
|
ldr r4, _08006804
|
|
adds r0, r4, 0
|
|
b _08006812
|
|
.align 2, 0
|
|
_08006800: .4byte 0x0000f2d8
|
|
_08006804: .4byte 0x0000f293
|
|
_08006808:
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
adds r1, r7
|
|
ldr r2, _08006878
|
|
adds r0, r2, 0
|
|
_08006812:
|
|
strh r0, [r1]
|
|
adds r3, 0x1
|
|
movs r4, 0
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
cmp r4, r0
|
|
bge _08006856
|
|
ldr r0, _0800687C
|
|
mov r8, r0
|
|
lsls r0, r3, 1
|
|
ldr r2, [sp]
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
adds r1, r2, r7
|
|
adds r1, r5, r1
|
|
adds r2, r0, r1
|
|
ldr r7, [sp]
|
|
adds r1, r5, r7
|
|
adds r1, r0, r1
|
|
ldr r0, _08006878
|
|
mov r12, r0
|
|
_0800683C:
|
|
mov r7, r8
|
|
strh r7, [r1]
|
|
mov r0, r12
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
movs r0, 0x4
|
|
ldrsh r7, [r6, r0]
|
|
mov r10, r7
|
|
cmp r4, r10
|
|
blt _0800683C
|
|
_08006856:
|
|
lsls r0, r3, 1
|
|
ldr r2, [sp]
|
|
adds r1, r5, r2
|
|
adds r1, r0, r1
|
|
ldr r4, _08006880
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
mov r7, r9
|
|
cmp r7, 0
|
|
beq _08006888
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r2, _08006884
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _080069AE
|
|
.align 2, 0
|
|
_08006878: .4byte 0x0000f2db
|
|
_0800687C: .4byte 0x0000f2d9
|
|
_08006880: .4byte 0x0000f6d8
|
|
_08006884: .4byte 0x0000f693
|
|
_08006888:
|
|
movs r4, 0x80
|
|
lsls r4, 4
|
|
adds r1, r4
|
|
ldr r7, _08006898
|
|
adds r0, r7, 0
|
|
strh r0, [r1]
|
|
b _080069AE
|
|
.align 2, 0
|
|
_08006898: .4byte 0x0000f2db
|
|
_0800689C:
|
|
lsls r1, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r0, [sp]
|
|
adds r0, r2
|
|
mov r12, r0
|
|
add r1, r12
|
|
ldr r4, _08006910
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
mov r8, r7
|
|
add r1, r8
|
|
ldr r0, _08006914
|
|
mov r9, r0
|
|
strh r0, [r1]
|
|
adds r3, 0x1
|
|
movs r4, 0
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
adds r5, r2, 0
|
|
cmp r4, r0
|
|
bge _080068F6
|
|
ldr r2, _08006918
|
|
mov r10, r2
|
|
lsls r1, r3, 1
|
|
ldr r0, [sp]
|
|
add r0, r8
|
|
adds r0, r5, r0
|
|
adds r2, r1, r0
|
|
add r1, r12
|
|
mov r12, r9
|
|
_080068DC:
|
|
mov r7, r10
|
|
strh r7, [r1]
|
|
mov r0, r12
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
movs r0, 0x4
|
|
ldrsh r7, [r6, r0]
|
|
mov r8, r7
|
|
cmp r4, r8
|
|
blt _080068DC
|
|
_080068F6:
|
|
lsls r0, r3, 1
|
|
ldr r2, [sp]
|
|
adds r1, r5, r2
|
|
adds r0, r1
|
|
ldr r4, _0800691C
|
|
adds r1, r4, 0
|
|
strh r1, [r0]
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
adds r0, r7
|
|
ldr r2, _08006914
|
|
adds r1, r2, 0
|
|
b _080069AC
|
|
.align 2, 0
|
|
_08006910: .4byte 0x0000f2e8
|
|
_08006914: .4byte 0x0000f2db
|
|
_08006918: .4byte 0x0000f2e9
|
|
_0800691C: .4byte 0x0000f6e8
|
|
_08006920:
|
|
lsls r0, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r4, [sp]
|
|
adds r4, r2
|
|
mov r12, r4
|
|
add r0, r12
|
|
ldr r7, _08006960
|
|
adds r1, r7, 0
|
|
strh r1, [r0]
|
|
adds r3, 0x1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
ble _08006954
|
|
ldr r2, _08006964
|
|
adds r1, r2, 0
|
|
adds r4, r0, 0
|
|
lsls r0, r3, 1
|
|
add r0, r12
|
|
_08006948:
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
adds r3, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08006948
|
|
_08006954:
|
|
lsls r0, r3, 1
|
|
ldr r4, [sp]
|
|
adds r1, r5, r4
|
|
adds r0, r1
|
|
ldr r7, _08006968
|
|
b _080069AA
|
|
.align 2, 0
|
|
_08006960: .4byte 0x0000f2dc
|
|
_08006964: .4byte 0x0000f2dd
|
|
_08006968: .4byte 0x0000f6dc
|
|
_0800696C:
|
|
lsls r0, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r1, [sp]
|
|
adds r1, r2
|
|
mov r12, r1
|
|
add r0, r12
|
|
ldr r4, _080069C0
|
|
adds r1, r4, 0
|
|
strh r1, [r0]
|
|
adds r3, 0x1
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
ble _080069A0
|
|
ldr r2, _080069C4
|
|
adds r1, r2, 0
|
|
adds r4, r0, 0
|
|
lsls r0, r3, 1
|
|
add r0, r12
|
|
_08006994:
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
adds r3, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08006994
|
|
_080069A0:
|
|
lsls r0, r3, 1
|
|
ldr r4, [sp]
|
|
adds r1, r5, r4
|
|
adds r0, r1
|
|
ldr r7, _080069C8
|
|
_080069AA:
|
|
adds r1, r7, 0
|
|
_080069AC:
|
|
strh r1, [r0]
|
|
_080069AE:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080069C0: .4byte 0x0000f293
|
|
_080069C4: .4byte 0x0000f297
|
|
_080069C8: .4byte 0x0000f693
|
|
thumb_func_end sub_800677C
|
|
|
|
thumb_func_start sub_80069CC
|
|
sub_80069CC:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r3, 0
|
|
ldr r3, [sp, 0x10]
|
|
cmp r2, 0x1C
|
|
bgt _08006ABA
|
|
cmp r2, 0
|
|
blt _08006ABA
|
|
ldr r0, [r6, 0xC]
|
|
cmp r0, 0x7
|
|
bhi _08006ABA
|
|
lsls r0, 2
|
|
ldr r1, _080069F0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080069F0: .4byte _080069F4
|
|
.align 2, 0
|
|
_080069F4:
|
|
.4byte _08006A14
|
|
.4byte _08006ABA
|
|
.4byte _08006ABA
|
|
.4byte _08006A60
|
|
.4byte _08006A7C
|
|
.4byte _08006A9C
|
|
.4byte _08006A60
|
|
.4byte _08006AAC
|
|
_08006A14:
|
|
cmp r5, 0
|
|
bne _08006A34
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006A30
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
adds r2, 0x44
|
|
b _08006A92
|
|
.align 2, 0
|
|
_08006A30: .4byte 0x0000f297
|
|
_08006A34:
|
|
movs r1, 0x6
|
|
ldrsh r0, [r6, r1]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
bne _08006A60
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006A58
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r2, _08006A5C
|
|
b _08006A92
|
|
.align 2, 0
|
|
_08006A58: .4byte 0x0000fa97
|
|
_08006A5C: .4byte 0x0000f2db
|
|
_08006A60:
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006A78
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
adds r2, 0x1
|
|
b _08006A92
|
|
.align 2, 0
|
|
_08006A78: .4byte 0x0000f2da
|
|
_08006A7C:
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006A98
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
subs r2, 0xF
|
|
_08006A92:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _08006ABA
|
|
.align 2, 0
|
|
_08006A98: .4byte 0x0000f2ea
|
|
_08006A9C:
|
|
lsls r0, r4, 1
|
|
lsls r1, r2, 6
|
|
adds r1, r3
|
|
adds r0, r1
|
|
ldr r2, _08006AA8
|
|
b _08006AB6
|
|
.align 2, 0
|
|
_08006AA8: .4byte 0x0000f2de
|
|
_08006AAC:
|
|
lsls r0, r4, 1
|
|
lsls r1, r2, 6
|
|
adds r1, r3
|
|
adds r0, r1
|
|
ldr r2, _08006AC0
|
|
_08006AB6:
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
_08006ABA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006AC0: .4byte 0x0000f2b6
|
|
thumb_func_end sub_80069CC
|
|
|
|
thumb_func_start sub_8006AC4
|
|
sub_8006AC4:
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
ldr r5, [sp, 0xC]
|
|
cmp r2, 0x1C
|
|
bgt _08006B64
|
|
cmp r2, 0
|
|
blt _08006B64
|
|
ldr r0, [r0, 0xC]
|
|
cmp r0, 0x7
|
|
bhi _08006B64
|
|
lsls r0, 2
|
|
ldr r1, _08006AE4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08006AE4: .4byte _08006AE8
|
|
.align 2, 0
|
|
_08006AE8:
|
|
.4byte _08006B2C
|
|
.4byte _08006B2C
|
|
.4byte _08006B08
|
|
.4byte _08006B2C
|
|
.4byte _08006B2C
|
|
.4byte _08006B54
|
|
.4byte _08006B2C
|
|
.4byte _08006B54
|
|
_08006B08:
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r5
|
|
adds r1, r0
|
|
ldr r2, _08006B24
|
|
adds r0, r2, 0
|
|
orrs r3, r0
|
|
strh r3, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r2, _08006B28
|
|
b _08006B44
|
|
.align 2, 0
|
|
_08006B24: .4byte 0xfffff000
|
|
_08006B28: .4byte 0x0000f278
|
|
_08006B2C:
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r5
|
|
adds r1, r0
|
|
ldr r2, _08006B4C
|
|
adds r0, r2, 0
|
|
orrs r3, r0
|
|
strh r3, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r2, _08006B50
|
|
_08006B44:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _08006B64
|
|
.align 2, 0
|
|
_08006B4C: .4byte 0xfffff000
|
|
_08006B50: .4byte 0x0000f2db
|
|
_08006B54:
|
|
lsls r0, r4, 1
|
|
lsls r1, r2, 6
|
|
adds r1, r5
|
|
adds r0, r1
|
|
ldr r2, _08006B6C
|
|
adds r1, r2, 0
|
|
orrs r3, r1
|
|
strh r3, [r0]
|
|
_08006B64:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006B6C: .4byte 0xfffff000
|
|
thumb_func_end sub_8006AC4
|
|
|
|
thumb_func_start sub_8006B70
|
|
sub_8006B70:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r3, 0
|
|
ldr r3, [sp, 0x10]
|
|
cmp r2, 0x1C
|
|
bgt _08006C3A
|
|
cmp r2, 0
|
|
blt _08006C3A
|
|
ldr r0, [r6, 0xC]
|
|
cmp r0, 0x7
|
|
bhi _08006C3A
|
|
lsls r0, 2
|
|
ldr r1, _08006B94
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08006B94: .4byte _08006B98
|
|
.align 2, 0
|
|
_08006B98:
|
|
.4byte _08006BB8
|
|
.4byte _08006C3A
|
|
.4byte _08006C3A
|
|
.4byte _08006BE8
|
|
.4byte _08006BF8
|
|
.4byte _08006C1C
|
|
.4byte _08006BE8
|
|
.4byte _08006C2C
|
|
_08006BB8:
|
|
cmp r5, 0
|
|
bne _08006BCC
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006BC8
|
|
b _08006C02
|
|
.align 2, 0
|
|
_08006BC8: .4byte 0x0000f697
|
|
_08006BCC:
|
|
movs r1, 0x6
|
|
ldrsh r0, [r6, r1]
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
bne _08006BE8
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006BE4
|
|
b _08006C02
|
|
.align 2, 0
|
|
_08006BE4: .4byte 0x0000fe97
|
|
_08006BE8:
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006BF4
|
|
b _08006C02
|
|
.align 2, 0
|
|
_08006BF4: .4byte 0x0000f6da
|
|
_08006BF8:
|
|
lsls r1, r4, 1
|
|
lsls r0, r2, 6
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldr r2, _08006C14
|
|
_08006C02:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r2, _08006C18
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _08006C3A
|
|
.align 2, 0
|
|
_08006C14: .4byte 0x0000f6ea
|
|
_08006C18: .4byte 0x0000f2db
|
|
_08006C1C:
|
|
lsls r0, r4, 1
|
|
lsls r1, r2, 6
|
|
adds r1, r3
|
|
adds r0, r1
|
|
ldr r2, _08006C28
|
|
b _08006C36
|
|
.align 2, 0
|
|
_08006C28: .4byte 0x0000f6de
|
|
_08006C2C:
|
|
lsls r0, r4, 1
|
|
lsls r1, r2, 6
|
|
adds r1, r3
|
|
adds r0, r1
|
|
ldr r2, _08006C40
|
|
_08006C36:
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
_08006C3A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006C40: .4byte 0x0000f6b6
|
|
thumb_func_end sub_8006B70
|
|
|
|
thumb_func_start sub_8006C44
|
|
sub_8006C44:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
str r2, [sp]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r9, r3
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
subs r3, r0, 0x1
|
|
cmp r4, 0x1C
|
|
ble _08006C68
|
|
b _08006E76
|
|
_08006C68:
|
|
cmp r4, 0
|
|
bge _08006C6E
|
|
b _08006E76
|
|
_08006C6E:
|
|
ldr r0, [r6, 0xC]
|
|
cmp r0, 0x7
|
|
bls _08006C76
|
|
b _08006E76
|
|
_08006C76:
|
|
lsls r0, 2
|
|
ldr r1, _08006C80
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08006C80: .4byte _08006C84
|
|
.align 2, 0
|
|
_08006C84:
|
|
.4byte _08006E76
|
|
.4byte _08006E76
|
|
.4byte _08006E76
|
|
.4byte _08006CA4
|
|
.4byte _08006D64
|
|
.4byte _08006DE8
|
|
.4byte _08006CA4
|
|
.4byte _08006E34
|
|
_08006CA4:
|
|
lsls r1, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r4, [sp]
|
|
adds r0, r2, r4
|
|
adds r1, r0
|
|
ldr r7, _08006CC8
|
|
adds r0, r7, 0
|
|
strh r0, [r1]
|
|
adds r5, r2, 0
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08006CD0
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r1, r2
|
|
ldr r4, _08006CCC
|
|
adds r0, r4, 0
|
|
b _08006CDA
|
|
.align 2, 0
|
|
_08006CC8: .4byte 0x0000fad8
|
|
_08006CCC: .4byte 0x0000fa93
|
|
_08006CD0:
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
adds r1, r7
|
|
ldr r2, _08006D40
|
|
adds r0, r2, 0
|
|
_08006CDA:
|
|
strh r0, [r1]
|
|
adds r3, 0x1
|
|
movs r4, 0
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
cmp r4, r0
|
|
bge _08006D1E
|
|
ldr r0, _08006D44
|
|
mov r8, r0
|
|
lsls r0, r3, 1
|
|
ldr r2, [sp]
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
adds r1, r2, r7
|
|
adds r1, r5, r1
|
|
adds r2, r0, r1
|
|
ldr r7, [sp]
|
|
adds r1, r5, r7
|
|
adds r1, r0, r1
|
|
ldr r0, _08006D40
|
|
mov r12, r0
|
|
_08006D04:
|
|
mov r7, r8
|
|
strh r7, [r1]
|
|
mov r0, r12
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
movs r0, 0x4
|
|
ldrsh r7, [r6, r0]
|
|
mov r10, r7
|
|
cmp r4, r10
|
|
blt _08006D04
|
|
_08006D1E:
|
|
lsls r0, r3, 1
|
|
ldr r2, [sp]
|
|
adds r1, r5, r2
|
|
adds r1, r0, r1
|
|
ldr r4, _08006D48
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
mov r7, r9
|
|
cmp r7, 0
|
|
beq _08006D50
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r2, _08006D4C
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _08006E76
|
|
.align 2, 0
|
|
_08006D40: .4byte 0x0000f2db
|
|
_08006D44: .4byte 0x0000fad9
|
|
_08006D48: .4byte 0x0000fed8
|
|
_08006D4C: .4byte 0x0000fe93
|
|
_08006D50:
|
|
movs r4, 0x80
|
|
lsls r4, 4
|
|
adds r1, r4
|
|
ldr r7, _08006D60
|
|
adds r0, r7, 0
|
|
strh r0, [r1]
|
|
b _08006E76
|
|
.align 2, 0
|
|
_08006D60: .4byte 0x0000f2db
|
|
_08006D64:
|
|
lsls r1, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r0, [sp]
|
|
adds r0, r2
|
|
mov r12, r0
|
|
add r1, r12
|
|
ldr r4, _08006DD8
|
|
adds r0, r4, 0
|
|
strh r0, [r1]
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
mov r8, r7
|
|
add r1, r8
|
|
ldr r0, _08006DDC
|
|
mov r9, r0
|
|
strh r0, [r1]
|
|
adds r3, 0x1
|
|
movs r4, 0
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
adds r5, r2, 0
|
|
cmp r4, r0
|
|
bge _08006DBE
|
|
ldr r2, _08006DE0
|
|
mov r10, r2
|
|
lsls r1, r3, 1
|
|
ldr r0, [sp]
|
|
add r0, r8
|
|
adds r0, r5, r0
|
|
adds r2, r1, r0
|
|
add r1, r12
|
|
mov r12, r9
|
|
_08006DA4:
|
|
mov r7, r10
|
|
strh r7, [r1]
|
|
mov r0, r12
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
movs r0, 0x4
|
|
ldrsh r7, [r6, r0]
|
|
mov r8, r7
|
|
cmp r4, r8
|
|
blt _08006DA4
|
|
_08006DBE:
|
|
lsls r0, r3, 1
|
|
ldr r2, [sp]
|
|
adds r1, r5, r2
|
|
adds r0, r1
|
|
ldr r4, _08006DE4
|
|
adds r1, r4, 0
|
|
strh r1, [r0]
|
|
movs r7, 0x80
|
|
lsls r7, 4
|
|
adds r0, r7
|
|
ldr r2, _08006DDC
|
|
adds r1, r2, 0
|
|
b _08006E74
|
|
.align 2, 0
|
|
_08006DD8: .4byte 0x0000fae8
|
|
_08006DDC: .4byte 0x0000f2db
|
|
_08006DE0: .4byte 0x0000fae9
|
|
_08006DE4: .4byte 0x0000fee8
|
|
_08006DE8:
|
|
lsls r0, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r4, [sp]
|
|
adds r4, r2
|
|
mov r12, r4
|
|
add r0, r12
|
|
ldr r7, _08006E28
|
|
adds r1, r7, 0
|
|
strh r1, [r0]
|
|
adds r3, 0x1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
ble _08006E1C
|
|
ldr r2, _08006E2C
|
|
adds r1, r2, 0
|
|
adds r4, r0, 0
|
|
lsls r0, r3, 1
|
|
add r0, r12
|
|
_08006E10:
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
adds r3, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08006E10
|
|
_08006E1C:
|
|
lsls r0, r3, 1
|
|
ldr r4, [sp]
|
|
adds r1, r5, r4
|
|
adds r0, r1
|
|
ldr r7, _08006E30
|
|
b _08006E72
|
|
.align 2, 0
|
|
_08006E28: .4byte 0x0000fadc
|
|
_08006E2C: .4byte 0x0000fadd
|
|
_08006E30: .4byte 0x0000fedc
|
|
_08006E34:
|
|
lsls r0, r3, 1
|
|
lsls r2, r4, 6
|
|
ldr r1, [sp]
|
|
adds r1, r2
|
|
mov r12, r1
|
|
add r0, r12
|
|
ldr r4, _08006E88
|
|
adds r1, r4, 0
|
|
strh r1, [r0]
|
|
adds r3, 0x1
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
ble _08006E68
|
|
ldr r2, _08006E8C
|
|
adds r1, r2, 0
|
|
adds r4, r0, 0
|
|
lsls r0, r3, 1
|
|
add r0, r12
|
|
_08006E5C:
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
adds r3, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _08006E5C
|
|
_08006E68:
|
|
lsls r0, r3, 1
|
|
ldr r4, [sp]
|
|
adds r1, r5, r4
|
|
adds r0, r1
|
|
ldr r7, _08006E90
|
|
_08006E72:
|
|
adds r1, r7, 0
|
|
_08006E74:
|
|
strh r1, [r0]
|
|
_08006E76:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08006E88: .4byte 0x0000fa93
|
|
_08006E8C: .4byte 0x0000fa97
|
|
_08006E90: .4byte 0x0000fe93
|
|
thumb_func_end sub_8006C44
|
|
|
|
thumb_func_start sub_8006E94
|
|
sub_8006E94:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
str r0, [sp]
|
|
adds r4, r1, 0
|
|
adds r7, r2, 0
|
|
str r3, [sp, 0x4]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
mov r10, r0
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
add r2, r10
|
|
movs r3, 0
|
|
str r3, [sp, 0x8]
|
|
cmp r4, 0x1C
|
|
ble _08006EBE
|
|
b _080072FE
|
|
_08006EBE:
|
|
cmp r4, 0
|
|
bge _08006EC4
|
|
b _080072FE
|
|
_08006EC4:
|
|
lsls r1, r2, 1
|
|
lsls r4, 6
|
|
ldr r6, [sp, 0x50]
|
|
adds r5, r4, r6
|
|
adds r1, r5
|
|
ldr r0, _08006F9C
|
|
adds r3, r0, 0
|
|
strh r3, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r0, r1, r2
|
|
ldr r6, _08006FA0
|
|
adds r2, r6, 0
|
|
strh r2, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
strh r3, [r0]
|
|
movs r0, 0x84
|
|
lsls r0, 4
|
|
adds r0, r1, r0
|
|
strh r2, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
ldr r3, _08006FA4
|
|
adds r0, r3, 0
|
|
strh r0, [r2]
|
|
movs r6, 0x88
|
|
lsls r6, 4
|
|
adds r1, r6
|
|
ldr r2, _08006FA8
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
mov r12, r10
|
|
movs r3, 0
|
|
str r4, [sp, 0x18]
|
|
ldr r4, [sp, 0x4]
|
|
ldrb r4, [r4]
|
|
cmp r3, r4
|
|
blt _08006F14
|
|
b _08007238
|
|
_08006F14:
|
|
adds r2, r5, 0
|
|
mov r5, r12
|
|
lsls r1, r5, 1
|
|
ldr r0, [sp, 0x50]
|
|
adds r0, 0x80
|
|
ldr r6, [sp, 0x18]
|
|
adds r0, r6, r0
|
|
adds r0, r1
|
|
mov r9, r0
|
|
ldr r0, [sp, 0x50]
|
|
adds r0, 0x40
|
|
adds r0, r6, r0
|
|
adds r0, r1
|
|
mov r8, r0
|
|
ldr r4, [sp, 0x50]
|
|
movs r5, 0x80
|
|
lsls r5, 4
|
|
adds r0, r4, r5
|
|
adds r0, r6, r0
|
|
adds r0, r1, r0
|
|
str r0, [sp, 0x20]
|
|
movs r6, 0x84
|
|
lsls r6, 4
|
|
adds r0, r4, r6
|
|
ldr r4, [sp, 0x18]
|
|
adds r0, r4, r0
|
|
adds r0, r1
|
|
mov r10, r0
|
|
adds r4, r1, r2
|
|
ldr r5, [sp, 0x18]
|
|
str r5, [sp, 0x10]
|
|
str r2, [sp, 0x1C]
|
|
str r1, [sp, 0x24]
|
|
_08006F56:
|
|
ldr r6, [sp, 0x4]
|
|
ldrb r6, [r6, 0x1]
|
|
cmp r3, r6
|
|
bne _08006F60
|
|
b _080070C8
|
|
_08006F60:
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, 0
|
|
bne _08007008
|
|
ldr r1, [sp, 0x4]
|
|
ldrb r0, [r1, 0x3]
|
|
asrs r0, r3
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08006FB8
|
|
movs r1, 0x1F
|
|
cmp r3, 0
|
|
bne _08006F7C
|
|
movs r1, 0x1B
|
|
_08006F7C:
|
|
movs r2, 0x9E
|
|
lsls r2, 2
|
|
adds r0, r1, r2
|
|
ldr r5, _08006FAC
|
|
adds r1, r5, 0
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
ldr r6, _08006FB0
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
strh r0, [r1]
|
|
ldr r5, _08006FB4
|
|
mov r2, r9
|
|
strh r5, [r2]
|
|
b _08006FDC
|
|
.align 2, 0
|
|
_08006F9C: .4byte 0x0000f278
|
|
_08006FA0: .4byte 0x0000f27a
|
|
_08006FA4: .4byte 0x0000f2d8
|
|
_08006FA8: .4byte 0x0000f2db
|
|
_08006FAC: .4byte 0xfffff400
|
|
_08006FB0: .4byte 0x0000f2b6
|
|
_08006FB4: .4byte 0x0000f2d9
|
|
_08006FB8:
|
|
movs r1, 0x6B
|
|
cmp r3, 0
|
|
bne _08006FC0
|
|
movs r1, 0x67
|
|
_08006FC0:
|
|
movs r6, 0x9E
|
|
lsls r6, 2
|
|
adds r0, r1, r6
|
|
ldr r2, _08006FF4
|
|
adds r1, r2, 0
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
ldr r5, _08006FF8
|
|
adds r0, r5, 0
|
|
mov r6, r8
|
|
strh r0, [r6]
|
|
ldr r1, _08006FFC
|
|
mov r0, r9
|
|
strh r1, [r0]
|
|
_08006FDC:
|
|
ldr r2, _08007000
|
|
adds r0, r2, 0
|
|
ldr r5, [sp, 0x20]
|
|
strh r0, [r5]
|
|
ldr r0, _08007004
|
|
mov r6, r10
|
|
strh r0, [r6]
|
|
movs r1, 0x88
|
|
lsls r1, 4
|
|
adds r0, r4, r1
|
|
adds r2, 0x61
|
|
b _0800708E
|
|
.align 2, 0
|
|
_08006FF4: .4byte 0xfffff400
|
|
_08006FF8: .4byte 0x0000f2ef
|
|
_08006FFC: .4byte 0x0000f2d9
|
|
_08007000: .4byte 0x0000f27a
|
|
_08007004: .4byte 0x0000f2db
|
|
_08007008:
|
|
ldr r5, [sp, 0x4]
|
|
ldrb r0, [r5, 0x3]
|
|
asrs r0, r3
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800704C
|
|
ldrb r0, [r5]
|
|
subs r0, 0x1
|
|
movs r1, 0x1F
|
|
cmp r3, r0
|
|
bne _08007022
|
|
movs r1, 0x1B
|
|
_08007022:
|
|
movs r6, 0x9E
|
|
lsls r6, 2
|
|
adds r0, r1, r6
|
|
ldr r2, _08007040
|
|
adds r1, r2, 0
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
ldr r5, _08007044
|
|
adds r0, r5, 0
|
|
mov r6, r8
|
|
strh r0, [r6]
|
|
ldr r1, _08007048
|
|
mov r0, r9
|
|
strh r1, [r0]
|
|
b _08007076
|
|
.align 2, 0
|
|
_08007040: .4byte 0xfffff000
|
|
_08007044: .4byte 0x0000f6b6
|
|
_08007048: .4byte 0x0000f2d9
|
|
_0800704C:
|
|
ldr r2, [sp, 0x4]
|
|
ldrb r0, [r2]
|
|
subs r0, 0x1
|
|
movs r1, 0x6B
|
|
cmp r3, r0
|
|
bne _0800705A
|
|
movs r1, 0x67
|
|
_0800705A:
|
|
movs r5, 0x9E
|
|
lsls r5, 2
|
|
adds r0, r1, r5
|
|
ldr r6, _080070B0
|
|
adds r1, r6, 0
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
ldr r1, _080070B4
|
|
adds r0, r1, 0
|
|
mov r2, r8
|
|
strh r0, [r2]
|
|
ldr r6, _080070B8
|
|
mov r5, r9
|
|
strh r6, [r5]
|
|
_08007076:
|
|
ldr r1, _080070BC
|
|
adds r0, r1, 0
|
|
ldr r2, [sp, 0x20]
|
|
strh r0, [r2]
|
|
ldr r5, _080070C0
|
|
adds r0, r5, 0
|
|
mov r6, r10
|
|
strh r0, [r6]
|
|
movs r1, 0x88
|
|
lsls r1, 4
|
|
adds r0, r4, r1
|
|
ldr r2, _080070C4
|
|
_0800708E:
|
|
strh r2, [r0]
|
|
movs r5, 0x2
|
|
add r9, r5
|
|
add r8, r5
|
|
ldr r6, [sp, 0x20]
|
|
adds r6, 0x2
|
|
str r6, [sp, 0x20]
|
|
add r10, r5
|
|
adds r4, 0x2
|
|
ldr r0, [sp, 0x24]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x24]
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
adds r3, 0x1
|
|
str r3, [sp, 0x14]
|
|
b _08007226
|
|
.align 2, 0
|
|
_080070B0: .4byte 0xfffff000
|
|
_080070B4: .4byte 0x0000f6ef
|
|
_080070B8: .4byte 0x0000f2d9
|
|
_080070BC: .4byte 0x0000f27a
|
|
_080070C0: .4byte 0x0000f6db
|
|
_080070C4: .4byte 0x0000f2db
|
|
_080070C8:
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x8]
|
|
ldr r5, _08007128
|
|
adds r0, r5, 0
|
|
strh r0, [r4]
|
|
ldr r6, _0800712C
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0x20]
|
|
strh r0, [r1]
|
|
ldr r2, _08007130
|
|
adds r0, r2, 0
|
|
mov r5, r8
|
|
strh r0, [r5]
|
|
ldr r0, _08007134
|
|
mov r6, r10
|
|
strh r0, [r6]
|
|
ldr r1, _08007138
|
|
adds r0, r1, 0
|
|
mov r2, r9
|
|
strh r0, [r2]
|
|
movs r5, 0x88
|
|
lsls r5, 4
|
|
adds r0, r4, r5
|
|
ldr r6, _08007134
|
|
strh r6, [r0]
|
|
movs r0, 0x2
|
|
add r9, r0
|
|
add r8, r0
|
|
ldr r1, [sp, 0x20]
|
|
adds r1, 0x2
|
|
str r1, [sp, 0x20]
|
|
add r10, r0
|
|
adds r4, 0x2
|
|
ldr r2, [sp, 0x24]
|
|
adds r2, 0x2
|
|
str r2, [sp, 0x24]
|
|
movs r5, 0x1
|
|
add r12, r5
|
|
cmp r7, 0
|
|
beq _0800713C
|
|
adds r7, 0x1
|
|
cmp r7, 0
|
|
beq _0800713C
|
|
ldr r6, [sp]
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
adds r2, r7, r0
|
|
b _0800713E
|
|
.align 2, 0
|
|
_08007128: .4byte 0x0000f2e0
|
|
_0800712C: .4byte 0x0000f2e2
|
|
_08007130: .4byte 0x0000f2da
|
|
_08007134: .4byte 0x0000f2db
|
|
_08007138: .4byte 0x0000f6e7
|
|
_0800713C:
|
|
movs r2, 0
|
|
_0800713E:
|
|
movs r5, 0
|
|
str r5, [sp, 0xC]
|
|
adds r3, 0x1
|
|
str r3, [sp, 0x14]
|
|
ldr r6, [sp, 0x4]
|
|
ldrb r6, [r6, 0x2]
|
|
cmp r5, r6
|
|
bge _080071E0
|
|
ldr r0, [sp, 0x50]
|
|
adds r0, 0x80
|
|
ldr r1, [sp, 0x10]
|
|
adds r0, r1, r0
|
|
ldr r3, [sp, 0x24]
|
|
adds r0, r3, r0
|
|
str r0, [sp, 0x2C]
|
|
ldr r0, [sp, 0x50]
|
|
adds r0, 0x40
|
|
adds r0, r1, r0
|
|
adds r5, r3, r0
|
|
ldr r6, [sp, 0x1C]
|
|
adds r3, r6
|
|
_08007168:
|
|
ldr r1, _08007310
|
|
adds r0, r1, 0
|
|
strh r0, [r3]
|
|
movs r6, 0x80
|
|
lsls r6, 4
|
|
adds r6, r3, r6
|
|
str r6, [sp, 0x28]
|
|
adds r1, 0x1
|
|
adds r0, r1, 0
|
|
strh r0, [r6]
|
|
adds r0, r7, 0
|
|
ldr r6, _08007314
|
|
orrs r0, r6
|
|
strh r0, [r5]
|
|
movs r1, 0x84
|
|
lsls r1, 4
|
|
adds r0, r3, r1
|
|
ldr r6, _08007318
|
|
strh r6, [r0]
|
|
adds r0, r2, 0
|
|
ldr r1, _08007314
|
|
orrs r0, r1
|
|
ldr r6, [sp, 0x2C]
|
|
strh r0, [r6]
|
|
movs r1, 0x88
|
|
lsls r1, 4
|
|
adds r0, r3, r1
|
|
ldr r6, _08007318
|
|
strh r6, [r0]
|
|
ldr r0, [sp, 0x2C]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x2C]
|
|
adds r5, 0x2
|
|
adds r3, 0x2
|
|
movs r1, 0x2
|
|
add r9, r1
|
|
add r8, r1
|
|
ldr r6, [sp, 0x20]
|
|
adds r6, 0x2
|
|
str r6, [sp, 0x20]
|
|
add r10, r1
|
|
adds r4, 0x2
|
|
ldr r0, [sp, 0x24]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x24]
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r7, 0
|
|
beq _080071CC
|
|
adds r7, 0x1
|
|
_080071CC:
|
|
cmp r2, 0
|
|
beq _080071D2
|
|
adds r2, 0x1
|
|
_080071D2:
|
|
ldr r6, [sp, 0xC]
|
|
adds r6, 0x1
|
|
str r6, [sp, 0xC]
|
|
ldr r0, [sp, 0x4]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r6, r0
|
|
blt _08007168
|
|
_080071E0:
|
|
ldr r1, _0800731C
|
|
adds r0, r1, 0
|
|
strh r0, [r4]
|
|
ldr r2, _08007320
|
|
adds r0, r2, 0
|
|
ldr r3, [sp, 0x20]
|
|
strh r0, [r3]
|
|
ldr r5, _08007324
|
|
adds r0, r5, 0
|
|
mov r6, r8
|
|
strh r0, [r6]
|
|
ldr r1, _08007318
|
|
mov r0, r10
|
|
strh r1, [r0]
|
|
adds r2, 0x5
|
|
adds r0, r2, 0
|
|
mov r3, r9
|
|
strh r0, [r3]
|
|
movs r5, 0x88
|
|
lsls r5, 4
|
|
adds r0, r4, r5
|
|
strh r1, [r0]
|
|
movs r6, 0x2
|
|
add r9, r6
|
|
add r8, r6
|
|
ldr r0, [sp, 0x20]
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x20]
|
|
add r10, r6
|
|
adds r4, 0x2
|
|
ldr r1, [sp, 0x24]
|
|
adds r1, 0x2
|
|
str r1, [sp, 0x24]
|
|
movs r2, 0x1
|
|
add r12, r2
|
|
_08007226:
|
|
cmp r7, 0
|
|
beq _0800722C
|
|
adds r7, 0x1
|
|
_0800722C:
|
|
ldr r3, [sp, 0x14]
|
|
ldr r5, [sp, 0x4]
|
|
ldrb r5, [r5]
|
|
cmp r3, r5
|
|
bge _08007238
|
|
b _08006F56
|
|
_08007238:
|
|
ldr r6, [sp]
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r6, r2]
|
|
adds r0, r1, r0
|
|
cmp r12, r0
|
|
bge _080072BC
|
|
ldr r3, _08007328
|
|
adds r4, r3, 0
|
|
mov r8, r0
|
|
mov r5, r12
|
|
lsls r1, r5, 1
|
|
ldr r0, [sp, 0x50]
|
|
adds r0, 0x80
|
|
ldr r6, [sp, 0x18]
|
|
adds r0, r6, r0
|
|
adds r5, r1, r0
|
|
ldr r0, [sp, 0x50]
|
|
adds r0, 0x40
|
|
adds r0, r6, r0
|
|
adds r3, r1, r0
|
|
ldr r0, [sp, 0x50]
|
|
adds r6, r0
|
|
adds r2, r1, r6
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
mov r10, r1
|
|
movs r6, 0x84
|
|
lsls r6, 4
|
|
mov r9, r6
|
|
mov r0, r8
|
|
mov r1, r12
|
|
subs r0, r1
|
|
mov r12, r0
|
|
_0800727E:
|
|
strh r4, [r2]
|
|
mov r6, r10
|
|
adds r0, r2, r6
|
|
ldr r1, _0800732C
|
|
strh r1, [r0]
|
|
strh r4, [r3]
|
|
mov r6, r9
|
|
adds r0, r2, r6
|
|
strh r1, [r0]
|
|
adds r1, 0x5F
|
|
adds r0, r1, 0
|
|
strh r0, [r5]
|
|
movs r6, 0x88
|
|
lsls r6, 4
|
|
adds r1, r2, r6
|
|
ldr r6, _08007318
|
|
adds r0, r6, 0
|
|
strh r0, [r1]
|
|
adds r5, 0x2
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r12, r0
|
|
cmp r7, 0
|
|
beq _080072B4
|
|
adds r7, 0x1
|
|
_080072B4:
|
|
mov r1, r12
|
|
cmp r1, 0
|
|
bne _0800727E
|
|
mov r12, r8
|
|
_080072BC:
|
|
mov r2, r12
|
|
lsls r1, r2, 1
|
|
ldr r3, [sp, 0x18]
|
|
ldr r4, [sp, 0x50]
|
|
adds r0, r3, r4
|
|
adds r1, r0
|
|
ldr r5, _08007328
|
|
adds r3, r5, 0
|
|
strh r3, [r1]
|
|
movs r6, 0x80
|
|
lsls r6, 4
|
|
adds r0, r1, r6
|
|
ldr r4, _0800732C
|
|
adds r2, r4, 0
|
|
strh r2, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
strh r3, [r0]
|
|
movs r5, 0x84
|
|
lsls r5, 4
|
|
adds r0, r1, r5
|
|
strh r2, [r0]
|
|
adds r2, r1, 0
|
|
adds r2, 0x80
|
|
ldr r6, _08007330
|
|
adds r0, r6, 0
|
|
strh r0, [r2]
|
|
movs r0, 0x88
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
ldr r2, _08007318
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_080072FE:
|
|
add sp, 0x30
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007310: .4byte 0x0000f2e1
|
|
_08007314: .4byte 0xfffff000
|
|
_08007318: .4byte 0x0000f2db
|
|
_0800731C: .4byte 0x0000f6e0
|
|
_08007320: .4byte 0x0000f2e2
|
|
_08007324: .4byte 0x0000f6da
|
|
_08007328: .4byte 0x0000f278
|
|
_0800732C: .4byte 0x0000f27a
|
|
_08007330: .4byte 0x0000f6d8
|
|
thumb_func_end sub_8006E94
|
|
|
|
thumb_func_start sub_8007334
|
|
sub_8007334:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080073AC
|
|
adds r3, r1, r0
|
|
ldr r5, [r3, 0x14]
|
|
movs r0, 0x2
|
|
ldrsh r6, [r3, r0]
|
|
movs r2, 0
|
|
movs r1, 0x6
|
|
ldrsh r0, [r3, r1]
|
|
cmp r2, r0
|
|
bge _080073A0
|
|
ldr r7, _080073B0
|
|
mov r9, r7
|
|
_0800735A:
|
|
movs r0, 0
|
|
ldrsh r1, [r3, r0]
|
|
movs r4, 0
|
|
movs r7, 0x4
|
|
ldrsh r0, [r3, r7]
|
|
adds r7, r6, 0x1
|
|
adds r2, 0x1
|
|
mov r12, r2
|
|
cmp r4, r0
|
|
bge _08007394
|
|
movs r0, 0xFC
|
|
lsls r0, 8
|
|
mov r8, r0
|
|
lsls r1, 1
|
|
lsls r0, r6, 6
|
|
add r0, r9
|
|
adds r2, r1, r0
|
|
_0800737C:
|
|
ldrh r0, [r2]
|
|
mov r1, r8
|
|
ands r1, r0
|
|
orrs r1, r5
|
|
strh r1, [r2]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
adds r4, 0x1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r3, r1]
|
|
cmp r4, r0
|
|
blt _0800737C
|
|
_08007394:
|
|
adds r6, r7, 0
|
|
mov r2, r12
|
|
movs r7, 0x6
|
|
ldrsh r0, [r3, r7]
|
|
cmp r2, r0
|
|
blt _0800735A
|
|
_080073A0:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080073AC: .4byte gUnknown_2027370
|
|
_080073B0: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8007334
|
|
|
|
thumb_func_start nullsub_154
|
|
nullsub_154:
|
|
bx lr
|
|
thumb_func_end nullsub_154
|
|
|
|
thumb_func_start sub_80073B8
|
|
sub_80073B8:
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080073D8
|
|
adds r1, r0
|
|
ldr r0, [r1, 0x2C]
|
|
lsrs r0, 2
|
|
lsls r0, 2
|
|
ldr r2, [r1, 0x1C]
|
|
adds r0, r2, r0
|
|
str r0, [r1, 0x3C]
|
|
str r2, [r1, 0x40]
|
|
adds r1, 0x46
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080073D8: .4byte gUnknown_2027370
|
|
thumb_func_end sub_80073B8
|
|
|
|
thumb_func_start nullsub_155
|
|
nullsub_155:
|
|
bx lr
|
|
thumb_func_end nullsub_155
|
|
|
|
thumb_func_start sub_80073E0
|
|
sub_80073E0:
|
|
push {r4,lr}
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08007434
|
|
adds r3, r1, r0
|
|
adds r0, r3, 0
|
|
adds r0, 0x44
|
|
ldrb r4, [r0]
|
|
cmp r4, 0
|
|
bne _08007424
|
|
ldr r2, [r3, 0x3C]
|
|
ldr r0, [r3, 0x1C]
|
|
subs r0, r2, r0
|
|
asrs r0, 2
|
|
lsls r0, 2
|
|
ldr r1, [r3, 0x28]
|
|
adds r1, r0
|
|
str r1, [r3, 0x30]
|
|
str r2, [r3, 0x34]
|
|
ldr r0, [r3, 0x40]
|
|
subs r0, r2
|
|
asrs r0, 2
|
|
adds r0, 0x1
|
|
lsls r0, 2
|
|
str r0, [r3, 0x38]
|
|
ldr r1, [r3, 0x2C]
|
|
cmp r0, r1
|
|
blt _0800741C
|
|
str r1, [r3, 0x38]
|
|
_0800741C:
|
|
ldr r0, [r3, 0x38]
|
|
cmp r0, 0
|
|
bge _08007424
|
|
str r4, [r3, 0x38]
|
|
_08007424:
|
|
adds r1, r3, 0
|
|
adds r1, 0x46
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007434: .4byte gUnknown_2027370
|
|
thumb_func_end sub_80073E0
|
|
|
|
thumb_func_start nullsub_156
|
|
nullsub_156:
|
|
bx lr
|
|
thumb_func_end nullsub_156
|
|
|
|
thumb_func_start sub_800743C
|
|
sub_800743C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, _08007460
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl xxx_draw_char
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08007460: .4byte gUnknown_2027370
|
|
thumb_func_end sub_800743C
|
|
|
|
thumb_func_start sub_8007464
|
|
sub_8007464:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8007464
|
|
|
|
thumb_func_start xxx_draw_char
|
|
xxx_draw_char:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
adds r6, r1, 0
|
|
mov r10, r2
|
|
adds r4, r3, 0
|
|
ldr r2, [sp, 0x48]
|
|
ldr r3, [sp, 0x4C]
|
|
lsls r1, r3, 3
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
adds r5, r0, r1
|
|
ldr r1, _080074B8
|
|
movs r0, 0xF
|
|
ands r2, r0
|
|
lsls r2, 2
|
|
adds r2, r1
|
|
ldr r2, [r2]
|
|
str r2, [sp, 0x18]
|
|
ldr r0, _080074BC
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _080074CC
|
|
cmp r4, 0x70
|
|
beq _080074B0
|
|
cmp r4, 0x6A
|
|
beq _080074B0
|
|
cmp r4, 0x71
|
|
beq _080074B0
|
|
cmp r4, 0x79
|
|
beq _080074B0
|
|
cmp r4, 0x67
|
|
bne _080074C0
|
|
_080074B0:
|
|
movs r0, 0x2
|
|
add r10, r0
|
|
b _080074CC
|
|
.align 2, 0
|
|
_080074B8: .4byte gUnknown_80B853C
|
|
_080074BC: .4byte gUnknown_20274AC
|
|
_080074C0:
|
|
ldr r0, _080074F8
|
|
cmp r4, r0
|
|
bne _080074CC
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
add r10, r1
|
|
_080074CC:
|
|
adds r0, r4, 0
|
|
bl sub_8008584
|
|
str r0, [sp]
|
|
ldr r2, [r0]
|
|
str r2, [sp, 0x4]
|
|
str r2, [sp, 0xC]
|
|
adds r3, r2, 0
|
|
subs r3, 0x6
|
|
str r3, [sp, 0x8]
|
|
ldr r0, _080074FC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08007500
|
|
ldr r4, [sp]
|
|
ldrb r1, [r4, 0xA]
|
|
lsrs r7, r1, 1
|
|
movs r0, 0x1
|
|
adds r2, r7, 0
|
|
ands r2, r0
|
|
str r2, [sp, 0x1C]
|
|
b _08007508
|
|
.align 2, 0
|
|
_080074F8: .4byte 0x00008199
|
|
_080074FC: .4byte gUnknown_202B034
|
|
_08007500:
|
|
movs r3, 0
|
|
str r3, [sp, 0x1C]
|
|
ldr r4, [sp]
|
|
ldrb r1, [r4, 0xA]
|
|
_08007508:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08007512
|
|
b _08007670
|
|
_08007512:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bge _0800751A
|
|
adds r0, 0x7
|
|
_0800751A:
|
|
asrs r4, r0, 3
|
|
movs r7, 0x4
|
|
ldrsh r0, [r5, r7]
|
|
muls r0, r4
|
|
adds r2, r6, 0
|
|
cmp r6, 0
|
|
bge _0800752A
|
|
adds r2, r6, 0x7
|
|
_0800752A:
|
|
asrs r2, 3
|
|
adds r0, r2
|
|
lsls r0, 5
|
|
ldr r1, [r5, 0x18]
|
|
adds r3, r1, r0
|
|
lsls r0, r4, 3
|
|
mov r1, r10
|
|
subs r0, r1, r0
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
lsls r0, r2, 3
|
|
subs r0, r6, r0
|
|
lsls r0, 4
|
|
ldr r1, _08007664
|
|
adds r0, r1
|
|
mov r12, r0
|
|
mov r9, r2
|
|
str r4, [sp, 0x14]
|
|
movs r2, 0x8
|
|
ldrsh r0, [r5, r2]
|
|
cmp r4, r0
|
|
blt _08007558
|
|
b _0800786C
|
|
_08007558:
|
|
movs r4, 0
|
|
str r4, [sp, 0x10]
|
|
ldr r2, _08007668
|
|
ldr r1, _0800766C
|
|
ldr r0, [r1]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r4, r0
|
|
blt _0800756E
|
|
b _0800786C
|
|
_0800756E:
|
|
adds r4, r2, 0
|
|
_08007570:
|
|
ldr r6, [sp, 0x4]
|
|
ldrh r0, [r6, 0x2]
|
|
lsls r2, r0, 16
|
|
ldrh r0, [r6]
|
|
orrs r2, r0
|
|
cmp r2, 0
|
|
beq _080075CC
|
|
movs r7, 0x4
|
|
ldrsh r0, [r5, r7]
|
|
cmp r9, r0
|
|
bge _080075A6
|
|
mov r0, r12
|
|
ldr r1, [r0]
|
|
ands r1, r2
|
|
ldr r0, [r0, 0x8]
|
|
lsls r1, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x3C]
|
|
cmp r0, r3
|
|
bls _0800759E
|
|
str r3, [r5, 0x3C]
|
|
_0800759E:
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _080075A6
|
|
str r3, [r5, 0x40]
|
|
_080075A6:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
subs r0, 0x1
|
|
cmp r9, r0
|
|
bge _080075CC
|
|
adds r3, 0x20
|
|
mov r6, r12
|
|
ldr r0, [r6, 0x4]
|
|
ands r2, r0
|
|
ldr r0, [r6, 0xC]
|
|
lsrs r2, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r2
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _080075CA
|
|
str r3, [r5, 0x40]
|
|
_080075CA:
|
|
subs r3, 0x20
|
|
_080075CC:
|
|
ldr r7, [sp, 0x4]
|
|
ldrh r2, [r7, 0x4]
|
|
cmp r2, 0
|
|
beq _08007620
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
subs r0, 0x1
|
|
cmp r9, r0
|
|
bge _080075FA
|
|
adds r3, 0x20
|
|
mov r6, r12
|
|
ldr r1, [r6]
|
|
ands r1, r2
|
|
ldr r0, [r6, 0x8]
|
|
lsls r1, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _080075F8
|
|
str r3, [r5, 0x40]
|
|
_080075F8:
|
|
subs r3, 0x20
|
|
_080075FA:
|
|
movs r7, 0x4
|
|
ldrsh r0, [r5, r7]
|
|
subs r0, 0x2
|
|
cmp r9, r0
|
|
bge _08007620
|
|
adds r3, 0x40
|
|
mov r1, r12
|
|
ldr r0, [r1, 0x4]
|
|
ands r2, r0
|
|
ldr r0, [r1, 0xC]
|
|
lsrs r2, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r2
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _0800761E
|
|
str r3, [r5, 0x40]
|
|
_0800761E:
|
|
subs r3, 0x40
|
|
_08007620:
|
|
ldr r2, [sp, 0x4]
|
|
adds r2, 0x6
|
|
str r2, [sp, 0x4]
|
|
adds r3, 0x4
|
|
movs r6, 0x1
|
|
add r10, r6
|
|
movs r0, 0x7
|
|
mov r7, r10
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
bne _0800764E
|
|
ldr r0, [r5, 0x20]
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
ldr r0, [sp, 0x14]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x14]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
ldr r2, [sp, 0x14]
|
|
cmp r2, r0
|
|
blt _0800764E
|
|
b _0800786C
|
|
_0800764E:
|
|
ldr r6, [sp, 0x10]
|
|
adds r6, 0x1
|
|
str r6, [sp, 0x10]
|
|
ldr r7, _0800766C
|
|
ldr r0, [r7]
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
blt _08007570
|
|
b _0800786C
|
|
.align 2, 0
|
|
_08007664: .4byte gUnknown_80B85DC
|
|
_08007668: .4byte gUnknown_202B028
|
|
_0800766C: .4byte gUnknown_20274AC
|
|
_08007670:
|
|
movs r0, 0
|
|
str r0, [sp, 0x20]
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bge _0800767C
|
|
adds r0, 0x7
|
|
_0800767C:
|
|
asrs r4, r0, 3
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
adds r0, r6, 0
|
|
cmp r6, 0
|
|
bge _0800768E
|
|
adds r0, r6, 0x7
|
|
_0800768E:
|
|
asrs r2, r0, 3
|
|
adds r0, r1, r2
|
|
lsls r0, 5
|
|
ldr r1, [r5, 0x18]
|
|
adds r3, r1, r0
|
|
lsls r0, r4, 3
|
|
mov r7, r10
|
|
subs r0, r7, r0
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
lsls r0, r2, 3
|
|
subs r0, r6, r0
|
|
lsls r0, 4
|
|
ldr r1, _0800788C
|
|
adds r0, r1
|
|
mov r12, r0
|
|
mov r9, r2
|
|
str r4, [sp, 0x14]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r4, r0
|
|
blt _080076BC
|
|
b _0800786C
|
|
_080076BC:
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
ldr r2, _08007890
|
|
ldr r1, _08007894
|
|
ldr r0, [r1]
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r4, [sp, 0x10]
|
|
cmp r4, r0
|
|
blt _080076D4
|
|
b _0800786C
|
|
_080076D4:
|
|
ldr r6, [sp, 0x4]
|
|
ldrh r0, [r6, 0x2]
|
|
lsls r4, r0, 16
|
|
ldrh r0, [r6]
|
|
orrs r4, r0
|
|
ldr r1, _08007898
|
|
ands r1, r4
|
|
ldr r0, [sp, 0x18]
|
|
ands r0, r4
|
|
adds r2, r1, r0
|
|
ldr r7, [sp, 0x1C]
|
|
cmp r7, 0
|
|
beq _08007724
|
|
ldr r1, [sp, 0xC]
|
|
ldrh r0, [r1, 0x2]
|
|
lsls r0, 16
|
|
ldrh r1, [r1]
|
|
orrs r0, r1
|
|
lsls r1, r0, 4
|
|
mvns r6, r4
|
|
mov r8, r6
|
|
bics r1, r4
|
|
ldr r7, _0800789C
|
|
ldr r6, [r7]
|
|
ands r1, r6
|
|
orrs r2, r1
|
|
ldr r0, [sp, 0x20]
|
|
cmp r0, 0
|
|
beq _08007724
|
|
ldr r1, [sp, 0x8]
|
|
ldrh r0, [r1, 0x2]
|
|
lsls r0, 16
|
|
ldrh r1, [r1]
|
|
orrs r0, r1
|
|
lsls r1, r0, 4
|
|
eors r1, r4
|
|
mov r4, r8
|
|
ands r1, r4
|
|
ands r1, r6
|
|
orrs r2, r1
|
|
_08007724:
|
|
cmp r2, 0
|
|
beq _08007776
|
|
movs r6, 0x4
|
|
ldrsh r0, [r5, r6]
|
|
cmp r9, r0
|
|
bge _08007750
|
|
mov r7, r12
|
|
ldr r1, [r7]
|
|
ands r1, r2
|
|
ldr r0, [r7, 0x8]
|
|
lsls r1, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x3C]
|
|
cmp r0, r3
|
|
bls _08007748
|
|
str r3, [r5, 0x3C]
|
|
_08007748:
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _08007750
|
|
str r3, [r5, 0x40]
|
|
_08007750:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
subs r0, 0x1
|
|
cmp r9, r0
|
|
bge _08007776
|
|
adds r3, 0x20
|
|
mov r4, r12
|
|
ldr r0, [r4, 0x4]
|
|
ands r2, r0
|
|
ldr r0, [r4, 0xC]
|
|
lsrs r2, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r2
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _08007774
|
|
str r3, [r5, 0x40]
|
|
_08007774:
|
|
subs r3, 0x20
|
|
_08007776:
|
|
ldr r6, [sp, 0x4]
|
|
ldrh r4, [r6, 0x4]
|
|
ldr r1, _08007898
|
|
ands r1, r4
|
|
ldr r0, [sp, 0x18]
|
|
ands r0, r4
|
|
adds r2, r1, r0
|
|
ldr r7, [sp, 0x1C]
|
|
cmp r7, 0
|
|
beq _080077CC
|
|
ldr r1, [sp, 0xC]
|
|
ldrh r0, [r1, 0x4]
|
|
lsls r1, r0, 4
|
|
ldr r6, [sp, 0xC]
|
|
ldrh r0, [r6, 0x2]
|
|
movs r7, 0xF
|
|
mov r8, r7
|
|
lsrs r0, 12
|
|
orrs r1, r0
|
|
mvns r0, r4
|
|
str r0, [sp, 0x24]
|
|
bics r1, r4
|
|
ldr r7, _0800789C
|
|
ldr r6, [r7]
|
|
ands r1, r6
|
|
orrs r2, r1
|
|
ldr r0, [sp, 0x20]
|
|
cmp r0, 0
|
|
beq _080077CC
|
|
ldr r1, [sp, 0x8]
|
|
ldrh r0, [r1, 0x4]
|
|
lsls r1, r0, 4
|
|
ldr r7, [sp, 0x8]
|
|
ldrh r0, [r7, 0x2]
|
|
lsrs r0, 12
|
|
mov r7, r8
|
|
ands r0, r7
|
|
orrs r1, r0
|
|
eors r1, r4
|
|
ldr r0, [sp, 0x24]
|
|
ands r1, r0
|
|
ands r1, r6
|
|
orrs r2, r1
|
|
_080077CC:
|
|
cmp r2, 0
|
|
beq _0800781C
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
subs r0, 0x1
|
|
cmp r9, r0
|
|
bge _080077F6
|
|
adds r3, 0x20
|
|
mov r4, r12
|
|
ldr r1, [r4]
|
|
ands r1, r2
|
|
ldr r0, [r4, 0x8]
|
|
lsls r1, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _080077F4
|
|
str r3, [r5, 0x40]
|
|
_080077F4:
|
|
subs r3, 0x20
|
|
_080077F6:
|
|
movs r6, 0x4
|
|
ldrsh r0, [r5, r6]
|
|
subs r0, 0x2
|
|
cmp r9, r0
|
|
bge _0800781C
|
|
adds r3, 0x40
|
|
mov r7, r12
|
|
ldr r0, [r7, 0x4]
|
|
ands r2, r0
|
|
ldr r0, [r7, 0xC]
|
|
lsrs r2, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r2
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _0800781A
|
|
str r3, [r5, 0x40]
|
|
_0800781A:
|
|
subs r3, 0x40
|
|
_0800781C:
|
|
movs r0, 0x1
|
|
str r0, [sp, 0x20]
|
|
ldr r1, [sp, 0x4]
|
|
adds r1, 0x6
|
|
str r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
adds r2, 0x6
|
|
str r2, [sp, 0x8]
|
|
ldr r4, [sp, 0xC]
|
|
adds r4, 0x6
|
|
str r4, [sp, 0xC]
|
|
adds r3, 0x4
|
|
add r10, r0
|
|
movs r0, 0x7
|
|
mov r6, r10
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _08007854
|
|
ldr r0, [r5, 0x20]
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
ldr r7, [sp, 0x14]
|
|
adds r7, 0x1
|
|
str r7, [sp, 0x14]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r7, r0
|
|
bge _0800786C
|
|
_08007854:
|
|
ldr r2, [sp, 0x10]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x10]
|
|
ldr r4, _08007894
|
|
ldr r0, [r4]
|
|
lsls r0, 2
|
|
ldr r6, _08007890
|
|
adds r0, r6
|
|
ldr r0, [r0]
|
|
cmp r2, r0
|
|
bge _0800786C
|
|
b _080076D4
|
|
_0800786C:
|
|
ldr r7, [sp]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r7, r1]
|
|
ldr r2, _080078A0
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0800788C: .4byte gUnknown_80B85DC
|
|
_08007890: .4byte gUnknown_202B028
|
|
_08007894: .4byte gUnknown_20274AC
|
|
_08007898: .4byte 0x11111111
|
|
_0800789C: .4byte gUnknown_202B030
|
|
_080078A0: .4byte gUnknown_2027498
|
|
thumb_func_end xxx_draw_char
|
|
|
|
thumb_func_start sub_80078A4
|
|
sub_80078A4:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
bl sub_800792C
|
|
adds r4, 0x1
|
|
ldr r0, _080078E4
|
|
ldr r0, [r0]
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
mov r3, r8
|
|
bl sub_800792C
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080078E4: .4byte gUnknown_202B030
|
|
thumb_func_end sub_80078A4
|
|
|
|
thumb_func_start sub_80078E8
|
|
sub_80078E8:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r2, 0
|
|
mov r8, r3
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
bl nullsub_129
|
|
adds r4, 0x1
|
|
ldr r0, _08007928
|
|
ldr r0, [r0]
|
|
movs r1, 0xF
|
|
ands r0, r1
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
mov r3, r8
|
|
bl nullsub_129
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007928: .4byte gUnknown_202B030
|
|
thumb_func_end sub_80078E8
|
|
|
|
thumb_func_start sub_800792C
|
|
sub_800792C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, _08007950
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8007958
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007950: .4byte gUnknown_2027370
|
|
thumb_func_end sub_800792C
|
|
|
|
thumb_func_start nullsub_129
|
|
nullsub_129:
|
|
bx lr
|
|
thumb_func_end nullsub_129
|
|
|
|
thumb_func_start sub_8007958
|
|
sub_8007958:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x24
|
|
mov r8, r2
|
|
adds r7, r3, 0
|
|
ldr r2, [sp, 0x40]
|
|
mov r12, r2
|
|
ldr r3, [sp, 0x44]
|
|
lsls r2, r1, 3
|
|
adds r2, r1
|
|
lsls r2, 3
|
|
adds r5, r0, r2
|
|
ldr r1, _08007A68
|
|
movs r0, 0xF
|
|
ands r3, r0
|
|
lsls r3, 2
|
|
adds r3, r1
|
|
ldr r3, [r3]
|
|
mov r9, r3
|
|
adds r0, r7, 0
|
|
cmp r7, 0
|
|
bge _0800798A
|
|
adds r0, r7, 0x7
|
|
_0800798A:
|
|
asrs r4, r0, 3
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
muls r0, r4
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bge _0800799A
|
|
adds r2, 0x7
|
|
_0800799A:
|
|
asrs r2, 3
|
|
adds r0, r2
|
|
lsls r0, 5
|
|
ldr r1, [r5, 0x18]
|
|
adds r3, r1, r0
|
|
lsls r0, r4, 3
|
|
subs r0, r7, r0
|
|
lsls r0, 2
|
|
adds r3, r0
|
|
adds r6, r2, 0
|
|
movs r2, 0x8
|
|
ldrsh r0, [r5, r2]
|
|
cmp r4, r0
|
|
bge _08007A58
|
|
mov r1, sp
|
|
ldr r0, _08007A6C
|
|
ldm r0!, {r2,r4,r7}
|
|
stm r1!, {r2,r4,r7}
|
|
ldm r0!, {r2,r4,r7}
|
|
stm r1!, {r2,r4,r7}
|
|
ldm r0!, {r2,r4,r7}
|
|
stm r1!, {r2,r4,r7}
|
|
mov r4, r12
|
|
cmp r4, 0
|
|
ble _08007A58
|
|
ldr r7, _08007A70
|
|
_080079CE:
|
|
mov r1, r12
|
|
cmp r1, 0x7
|
|
ble _080079D6
|
|
movs r1, 0x8
|
|
_080079D6:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bge _080079DE
|
|
adds r0, 0x7
|
|
_080079DE:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
mov r2, r8
|
|
subs r0, r2, r0
|
|
lsls r0, 4
|
|
adds r4, r0, r7
|
|
lsls r0, r1, 2
|
|
add r0, sp
|
|
ldr r2, [r0]
|
|
ldr r1, _08007A74
|
|
ands r1, r2
|
|
mov r0, r9
|
|
ands r0, r2
|
|
adds r2, r1, r0
|
|
cmp r2, 0
|
|
beq _08007A48
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
cmp r6, r0
|
|
bge _08007A24
|
|
ldr r1, [r4]
|
|
ands r1, r2
|
|
ldr r0, [r4, 0x8]
|
|
lsls r1, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x3C]
|
|
cmp r0, r3
|
|
bls _08007A1C
|
|
str r3, [r5, 0x3C]
|
|
_08007A1C:
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _08007A24
|
|
str r3, [r5, 0x40]
|
|
_08007A24:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r5, r1]
|
|
subs r0, 0x1
|
|
cmp r6, r0
|
|
bge _08007A48
|
|
adds r3, 0x20
|
|
ldr r0, [r4, 0x4]
|
|
ands r2, r0
|
|
ldr r0, [r4, 0xC]
|
|
lsrs r2, r0
|
|
ldr r0, [r3]
|
|
orrs r0, r2
|
|
str r0, [r3]
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r3
|
|
bcs _08007A46
|
|
str r3, [r5, 0x40]
|
|
_08007A46:
|
|
subs r3, 0x20
|
|
_08007A48:
|
|
adds r6, 0x1
|
|
adds r3, 0x20
|
|
movs r2, 0x8
|
|
negs r2, r2
|
|
add r12, r2
|
|
mov r4, r12
|
|
cmp r4, 0
|
|
bgt _080079CE
|
|
_08007A58:
|
|
add sp, 0x24
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007A68: .4byte gUnknown_80B853C
|
|
_08007A6C: .4byte gUnknown_80B8824
|
|
_08007A70: .4byte gUnknown_80B85DC
|
|
_08007A74: .4byte 0x11111111
|
|
thumb_func_end sub_8007958
|
|
|
|
thumb_func_start sub_8007A78
|
|
sub_8007A78:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, _08007A9C
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8007AA4
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007A9C: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8007A78
|
|
|
|
thumb_func_start nullsub_157
|
|
nullsub_157:
|
|
bx lr
|
|
thumb_func_end nullsub_157
|
|
|
|
thumb_func_start sub_8007AA4
|
|
sub_8007AA4:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x20
|
|
mov r9, r2
|
|
adds r5, r3, 0
|
|
ldr r7, [sp, 0x3C]
|
|
ldr r3, [sp, 0x40]
|
|
lsls r2, r1, 3
|
|
adds r2, r1
|
|
lsls r2, 3
|
|
adds r4, r0, r2
|
|
ldr r1, _08007B28
|
|
movs r0, 0xF
|
|
ands r3, r0
|
|
lsls r3, 2
|
|
adds r3, r1
|
|
ldr r0, [r3]
|
|
ldr r1, _08007B2C
|
|
adds r1, r0
|
|
mov r12, r1
|
|
mov r1, sp
|
|
ldr r0, _08007B30
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldm r0!, {r2,r3}
|
|
stm r1!, {r2,r3}
|
|
adds r0, r5, 0
|
|
cmp r5, 0
|
|
bge _08007AE8
|
|
adds r0, r5, 0x7
|
|
_08007AE8:
|
|
asrs r3, r0, 3
|
|
movs r0, 0x4
|
|
ldrsh r6, [r4, r0]
|
|
mov r8, r6
|
|
mov r0, r8
|
|
muls r0, r3
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bge _08007AFC
|
|
adds r2, 0x7
|
|
_08007AFC:
|
|
asrs r2, 3
|
|
adds r0, r2
|
|
lsls r0, 5
|
|
ldr r1, [r4, 0x18]
|
|
adds r1, r0
|
|
lsls r0, r3, 3
|
|
subs r0, r5, r0
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
movs r0, 0x7
|
|
mov r6, r9
|
|
ands r0, r6
|
|
lsls r0, 2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
mov r6, r12
|
|
ands r6, r0
|
|
mov r12, r6
|
|
cmp r2, r8
|
|
bge _08007B6E
|
|
b _08007B48
|
|
.align 2, 0
|
|
_08007B28: .4byte gUnknown_80B853C
|
|
_08007B2C: .4byte 0x11111111
|
|
_08007B30: .4byte gUnknown_80B8848
|
|
_08007B34:
|
|
adds r5, 0x1
|
|
adds r1, 0x4
|
|
movs r0, 0x7
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _08007B46
|
|
ldr r0, [r4, 0x20]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
_08007B46:
|
|
subs r7, 0x1
|
|
_08007B48:
|
|
cmp r7, 0
|
|
ble _08007B6E
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
cmp r3, r0
|
|
bge _08007B6E
|
|
ldr r0, [r1]
|
|
mov r6, r12
|
|
orrs r0, r6
|
|
str r0, [r1]
|
|
ldr r0, [r4, 0x3C]
|
|
cmp r0, r1
|
|
bls _08007B64
|
|
str r1, [r4, 0x3C]
|
|
_08007B64:
|
|
ldr r0, [r4, 0x40]
|
|
cmp r0, r1
|
|
bcs _08007B34
|
|
str r1, [r4, 0x40]
|
|
b _08007B34
|
|
_08007B6E:
|
|
add sp, 0x20
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8007AA4
|
|
|
|
thumb_func_start sub_8007B7C
|
|
sub_8007B7C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, _08007BA0
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8007BA8
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007BA0: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8007B7C
|
|
|
|
thumb_func_start nullsub_158
|
|
nullsub_158:
|
|
bx lr
|
|
thumb_func_end nullsub_158
|
|
|
|
thumb_func_start sub_8007BA8
|
|
sub_8007BA8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
str r2, [sp]
|
|
lsls r2, r1, 3
|
|
adds r2, r1
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
mov r12, r0
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _08007BC8
|
|
adds r0, r3, 0x7
|
|
_08007BC8:
|
|
asrs r0, 3
|
|
str r0, [sp, 0x8]
|
|
mov r1, r12
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
ldr r4, [sp, 0x8]
|
|
cmp r4, r0
|
|
bge _08007CC4
|
|
movs r7, 0x4
|
|
ldrsh r0, [r1, r7]
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bge _08007BE8
|
|
adds r0, 0x7
|
|
_08007BE8:
|
|
asrs r0, 3
|
|
adds r0, r1, r0
|
|
lsls r0, 5
|
|
mov r2, r12
|
|
ldr r1, [r2, 0x18]
|
|
adds r4, r1, r0
|
|
ldr r7, [sp, 0x8]
|
|
lsls r0, r7, 3
|
|
subs r0, r3, r0
|
|
lsls r0, 2
|
|
adds r4, r0
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x44]
|
|
cmp r0, r1
|
|
bge _08007CC4
|
|
_08007C08:
|
|
adds r2, r4, 0
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bge _08007C12
|
|
adds r0, 0x7
|
|
_08007C12:
|
|
asrs r1, r0, 3
|
|
movs r7, 0
|
|
mov r8, r7
|
|
adds r3, 0x1
|
|
str r3, [sp, 0xC]
|
|
adds r4, 0x4
|
|
str r4, [sp, 0x14]
|
|
ldr r0, [sp, 0x40]
|
|
cmp r8, r0
|
|
bge _08007C94
|
|
_08007C26:
|
|
mov r3, r12
|
|
movs r4, 0x4
|
|
ldrsh r0, [r3, r4]
|
|
cmp r1, r0
|
|
bge _08007C94
|
|
movs r6, 0xF0
|
|
lsls r6, 24
|
|
movs r5, 0xE0
|
|
lsls r5, 24
|
|
movs r7, 0
|
|
str r7, [sp, 0x1C]
|
|
ldr r4, [r2]
|
|
adds r3, r4, 0
|
|
mov r0, r12
|
|
ldr r0, [r0, 0x3C]
|
|
mov r9, r0
|
|
mov r7, r12
|
|
ldr r7, [r7, 0x40]
|
|
mov r10, r7
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x10]
|
|
adds r0, r2, 0
|
|
adds r0, 0x20
|
|
str r0, [sp, 0x18]
|
|
movs r1, 0x8
|
|
add r8, r1
|
|
movs r1, 0x7
|
|
_08007C5C:
|
|
adds r0, r4, 0
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
bne _08007C6A
|
|
ldr r7, [sp, 0x1C]
|
|
orrs r7, r5
|
|
str r7, [sp, 0x1C]
|
|
_08007C6A:
|
|
lsrs r6, 4
|
|
lsrs r5, 4
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08007C5C
|
|
ldr r0, [sp, 0x1C]
|
|
orrs r3, r0
|
|
str r3, [r2]
|
|
cmp r9, r2
|
|
bls _08007C82
|
|
mov r1, r12
|
|
str r2, [r1, 0x3C]
|
|
_08007C82:
|
|
cmp r10, r2
|
|
bcs _08007C8A
|
|
mov r3, r12
|
|
str r2, [r3, 0x40]
|
|
_08007C8A:
|
|
ldr r1, [sp, 0x10]
|
|
ldr r2, [sp, 0x18]
|
|
ldr r4, [sp, 0x40]
|
|
cmp r8, r4
|
|
blt _08007C26
|
|
_08007C94:
|
|
ldr r3, [sp, 0xC]
|
|
ldr r4, [sp, 0x14]
|
|
movs r0, 0x7
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08007CB8
|
|
mov r7, r12
|
|
ldr r0, [r7, 0x20]
|
|
lsls r0, 2
|
|
adds r4, r0
|
|
ldr r0, [sp, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r7, r1]
|
|
ldr r2, [sp, 0x8]
|
|
cmp r2, r0
|
|
bge _08007CC4
|
|
_08007CB8:
|
|
ldr r7, [sp, 0x4]
|
|
adds r7, 0x1
|
|
str r7, [sp, 0x4]
|
|
ldr r0, [sp, 0x44]
|
|
cmp r7, r0
|
|
blt _08007C08
|
|
_08007CC4:
|
|
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_8007BA8
|
|
|
|
thumb_func_start sub_8007CD4
|
|
sub_8007CD4:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, _08007CF8
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8007D00
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007CF8: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8007CD4
|
|
|
|
thumb_func_start nullsub_159
|
|
nullsub_159:
|
|
bx lr
|
|
thumb_func_end nullsub_159
|
|
|
|
thumb_func_start sub_8007D00
|
|
sub_8007D00:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
str r2, [sp]
|
|
lsls r2, r1, 3
|
|
adds r2, r1
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
mov r12, r0
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _08007D20
|
|
adds r0, r3, 0x7
|
|
_08007D20:
|
|
asrs r0, 3
|
|
str r0, [sp, 0x8]
|
|
mov r1, r12
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
ldr r4, [sp, 0x8]
|
|
cmp r4, r0
|
|
bge _08007E0E
|
|
movs r5, 0x4
|
|
ldrsh r0, [r1, r5]
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bge _08007D40
|
|
adds r0, 0x7
|
|
_08007D40:
|
|
asrs r0, 3
|
|
adds r0, r1, r0
|
|
lsls r0, 5
|
|
mov r2, r12
|
|
ldr r1, [r2, 0x18]
|
|
adds r4, r1, r0
|
|
ldr r5, [sp, 0x8]
|
|
lsls r0, r5, 3
|
|
subs r0, r3, r0
|
|
lsls r0, 2
|
|
adds r4, r0
|
|
movs r0, 0
|
|
b _08007E06
|
|
_08007D5A:
|
|
adds r2, r4, 0
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bge _08007D64
|
|
adds r0, 0x7
|
|
_08007D64:
|
|
asrs r1, r0, 3
|
|
movs r5, 0
|
|
mov r8, r5
|
|
adds r3, 0x1
|
|
str r3, [sp, 0xC]
|
|
adds r4, 0x4
|
|
str r4, [sp, 0x14]
|
|
ldr r0, [sp, 0x40]
|
|
cmp r8, r0
|
|
bge _08007DE0
|
|
_08007D78:
|
|
mov r3, r12
|
|
movs r4, 0x4
|
|
ldrsh r0, [r3, r4]
|
|
cmp r1, r0
|
|
bge _08007DE0
|
|
movs r4, 0xF0
|
|
lsls r4, 24
|
|
movs r6, 0xE0
|
|
lsls r6, 24
|
|
movs r7, 0
|
|
ldr r5, [r2]
|
|
str r5, [sp, 0x1C]
|
|
adds r3, r5, 0
|
|
mov r0, r12
|
|
ldr r0, [r0, 0x3C]
|
|
mov r9, r0
|
|
mov r5, r12
|
|
ldr r5, [r5, 0x40]
|
|
mov r10, r5
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x10]
|
|
adds r0, r2, 0
|
|
adds r0, 0x20
|
|
str r0, [sp, 0x18]
|
|
movs r1, 0x8
|
|
add r8, r1
|
|
movs r1, 0x7
|
|
_08007DAE:
|
|
ldr r0, [sp, 0x1C]
|
|
ands r0, r4
|
|
cmp r0, r6
|
|
bne _08007DB8
|
|
orrs r7, r4
|
|
_08007DB8:
|
|
lsrs r4, 4
|
|
lsrs r6, 4
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08007DAE
|
|
bics r3, r7
|
|
str r3, [r2]
|
|
cmp r9, r2
|
|
bls _08007DCE
|
|
mov r3, r12
|
|
str r2, [r3, 0x3C]
|
|
_08007DCE:
|
|
cmp r10, r2
|
|
bcs _08007DD6
|
|
mov r4, r12
|
|
str r2, [r4, 0x40]
|
|
_08007DD6:
|
|
ldr r1, [sp, 0x10]
|
|
ldr r2, [sp, 0x18]
|
|
ldr r5, [sp, 0x40]
|
|
cmp r8, r5
|
|
blt _08007D78
|
|
_08007DE0:
|
|
ldr r3, [sp, 0xC]
|
|
ldr r4, [sp, 0x14]
|
|
movs r0, 0x7
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08007E02
|
|
mov r1, r12
|
|
ldr r0, [r1, 0x20]
|
|
lsls r0, 2
|
|
adds r4, r0
|
|
ldr r2, [sp, 0x8]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x8]
|
|
movs r5, 0x8
|
|
ldrsh r0, [r1, r5]
|
|
cmp r2, r0
|
|
bge _08007E0E
|
|
_08007E02:
|
|
ldr r0, [sp, 0x4]
|
|
adds r0, 0x1
|
|
_08007E06:
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x44]
|
|
cmp r0, r1
|
|
blt _08007D5A
|
|
_08007E0E:
|
|
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_8007D00
|
|
|
|
thumb_func_start sub_8007E20
|
|
sub_8007E20:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x14
|
|
mov r8, r0
|
|
mov r9, r1
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r6, [sp, 0x34]
|
|
ldr r0, _08007E58
|
|
ldr r1, _08007E5C
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
str r6, [sp, 0x10]
|
|
mov r2, r8
|
|
mov r3, r9
|
|
bl sub_8007E64
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08007E58: .4byte gUnknown_2027370
|
|
_08007E5C: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8007E20
|
|
|
|
thumb_func_start nullsub_160
|
|
nullsub_160:
|
|
bx lr
|
|
thumb_func_end nullsub_160
|
|
|
|
thumb_func_start sub_8007E64
|
|
sub_8007E64:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
str r1, [sp]
|
|
str r3, [sp, 0x4]
|
|
ldr r7, [sp, 0x30]
|
|
ldr r1, [sp, 0x34]
|
|
mov r9, r1
|
|
ldr r1, [sp, 0x38]
|
|
mov r10, r1
|
|
ldr r5, [sp, 0x3C]
|
|
lsls r1, r2, 3
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r4, r0, r1
|
|
adds r0, r3, 0
|
|
cmp r0, 0
|
|
bge _08007E90
|
|
adds r0, 0x7
|
|
_08007E90:
|
|
asrs r0, 3
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0
|
|
cmp r7, 0
|
|
bge _08007E9C
|
|
adds r0, r7, 0x7
|
|
_08007E9C:
|
|
asrs r7, r0, 3
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bge _08007EA6
|
|
adds r0, 0x7
|
|
_08007EA6:
|
|
asrs r0, 3
|
|
mov r9, r0
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bge _08007EB2
|
|
adds r0, 0x7
|
|
_08007EB2:
|
|
asrs r0, 3
|
|
mov r10, r0
|
|
ldr r2, [sp, 0x40]
|
|
lsls r2, 12
|
|
str r2, [sp, 0x40]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r7, r0
|
|
bge _08007F98
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
muls r0, r7
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1
|
|
lsls r0, 5
|
|
ldr r1, [r4, 0x18]
|
|
adds r1, r0
|
|
mov r8, r1
|
|
movs r2, 0
|
|
b _08007F92
|
|
_08007EDA:
|
|
ldr r6, [sp, 0x4]
|
|
mov r3, r8
|
|
adds r0, r7, 0x1
|
|
str r0, [sp, 0xC]
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
ble _08007F7A
|
|
mov r12, r9
|
|
_08007EEA:
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
cmp r6, r0
|
|
bge _08007F68
|
|
ldr r0, [r4, 0x3C]
|
|
cmp r0, r3
|
|
bls _08007EFA
|
|
str r3, [r4, 0x3C]
|
|
_08007EFA:
|
|
ldm r5!, {r0}
|
|
stm r3!, {r0}
|
|
ldm r5!, {r0}
|
|
stm r3!, {r0}
|
|
ldm r5!, {r0}
|
|
stm r3!, {r0}
|
|
ldm r5!, {r0}
|
|
stm r3!, {r0}
|
|
ldm r5!, {r0}
|
|
stm r3!, {r0}
|
|
ldm r5!, {r0}
|
|
stm r3!, {r0}
|
|
ldm r5!, {r0}
|
|
stm r3!, {r0}
|
|
ldr r0, [r5]
|
|
stm r3!, {r0}
|
|
ldr r0, [r4, 0x40]
|
|
cmp r0, r3
|
|
bcs _08007F22
|
|
str r3, [r4, 0x40]
|
|
_08007F22:
|
|
adds r5, 0x4
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
adds r0, r7
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
adds r1, r6
|
|
lsls r1, 1
|
|
lsls r0, 6
|
|
ldr r2, [sp]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
ldr r0, _08007F64
|
|
ands r0, r2
|
|
strh r0, [r1]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
adds r0, r7
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
adds r1, r6
|
|
lsls r1, 1
|
|
lsls r0, 6
|
|
ldr r2, [sp]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
ldr r0, [sp, 0x40]
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
b _08007F6C
|
|
.align 2, 0
|
|
_08007F64: .4byte 0x00000fff
|
|
_08007F68:
|
|
adds r3, 0x20
|
|
adds r5, 0x20
|
|
_08007F6C:
|
|
adds r6, 0x1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r12, r0
|
|
mov r1, r12
|
|
cmp r1, 0
|
|
bne _08007EEA
|
|
_08007F7A:
|
|
ldr r7, [sp, 0xC]
|
|
ldr r0, [r4, 0x20]
|
|
lsls r0, 2
|
|
add r8, r0
|
|
movs r2, 0x20
|
|
add r8, r2
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r7, r0
|
|
bge _08007F98
|
|
ldr r2, [sp, 0x8]
|
|
adds r2, 0x1
|
|
_08007F92:
|
|
str r2, [sp, 0x8]
|
|
cmp r2, r10
|
|
blt _08007EDA
|
|
_08007F98:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8007E64
|
|
|
|
thumb_func_start sub_8007FA8
|
|
sub_8007FA8:
|
|
adds r3, r0, 0
|
|
lsrs r0, r3, 28
|
|
lsrs r1, r3, 20
|
|
movs r2, 0xF0
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
lsrs r1, r3, 12
|
|
movs r2, 0xF0
|
|
lsls r2, 4
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
lsrs r1, r3, 4
|
|
movs r2, 0xF0
|
|
lsls r2, 8
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
lsls r1, r3, 4
|
|
movs r2, 0xF0
|
|
lsls r2, 12
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
lsls r1, r3, 12
|
|
movs r2, 0xF0
|
|
lsls r2, 16
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
lsls r1, r3, 20
|
|
movs r2, 0xF0
|
|
lsls r2, 20
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
lsls r3, 28
|
|
orrs r0, r3
|
|
bx lr
|
|
thumb_func_end sub_8007FA8
|
|
|
|
thumb_func_start sub_8007FEC
|
|
sub_8007FEC:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x14
|
|
mov r8, r0
|
|
mov r9, r1
|
|
ldr r4, [sp, 0x2C]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r6, [sp, 0x34]
|
|
ldr r0, _08008024
|
|
ldr r1, _08008028
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
str r6, [sp, 0x10]
|
|
mov r2, r8
|
|
mov r3, r9
|
|
bl sub_8008030
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008024: .4byte gUnknown_2027370
|
|
_08008028: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8007FEC
|
|
|
|
thumb_func_start nullsub_161
|
|
nullsub_161:
|
|
bx lr
|
|
thumb_func_end nullsub_161
|
|
|
|
thumb_func_start sub_8008030
|
|
sub_8008030:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
str r1, [sp]
|
|
ldr r1, [sp, 0x30]
|
|
mov r8, r1
|
|
ldr r6, [sp, 0x3C]
|
|
lsls r1, r2, 3
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r5, r0, r1
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _08008054
|
|
adds r0, r3, 0x7
|
|
_08008054:
|
|
asrs r3, r0, 3
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bge _0800805E
|
|
adds r0, 0x7
|
|
_0800805E:
|
|
asrs r0, 3
|
|
mov r8, r0
|
|
ldr r0, [sp, 0x34]
|
|
cmp r0, 0
|
|
bge _0800806A
|
|
adds r0, 0x7
|
|
_0800806A:
|
|
asrs r0, 3
|
|
str r0, [sp, 0x34]
|
|
ldr r0, [sp, 0x38]
|
|
cmp r0, 0
|
|
bge _08008076
|
|
adds r0, 0x7
|
|
_08008076:
|
|
asrs r0, 3
|
|
str r0, [sp, 0x38]
|
|
ldr r2, [sp, 0x40]
|
|
lsls r2, 12
|
|
str r2, [sp, 0x40]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r8, r0
|
|
blt _0800808A
|
|
b _08008194
|
|
_0800808A:
|
|
movs r2, 0x4
|
|
ldrsh r0, [r5, r2]
|
|
mov r1, r8
|
|
muls r1, r0
|
|
adds r0, r1, 0
|
|
ldr r1, [sp, 0x34]
|
|
adds r2, r3, r1
|
|
adds r0, r2
|
|
lsls r0, 5
|
|
ldr r1, [r5, 0x18]
|
|
adds r1, r0
|
|
mov r10, r1
|
|
movs r3, 0
|
|
str r3, [sp, 0x4]
|
|
str r2, [sp, 0xC]
|
|
ldr r0, [sp, 0x38]
|
|
cmp r3, r0
|
|
bge _08008194
|
|
_080080AE:
|
|
ldr r7, [sp, 0xC]
|
|
mov r4, r10
|
|
mov r1, r8
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x8]
|
|
ldr r2, [sp, 0x34]
|
|
cmp r2, 0
|
|
ble _08008172
|
|
mov r9, r2
|
|
_080080C0:
|
|
subs r7, 0x1
|
|
subs r4, 0x20
|
|
movs r3, 0x4
|
|
ldrsh r0, [r5, r3]
|
|
cmp r7, r0
|
|
bge _08008164
|
|
ldr r0, [r5, 0x3C]
|
|
cmp r0, r4
|
|
bls _080080D4
|
|
str r4, [r5, 0x3C]
|
|
_080080D4:
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4]
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4, 0x4]
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4, 0x8]
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4, 0xC]
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4, 0x10]
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4, 0x14]
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4, 0x18]
|
|
ldm r6!, {r0}
|
|
bl sub_8007FA8
|
|
str r0, [r4, 0x1C]
|
|
adds r1, r4, 0
|
|
adds r1, 0x20
|
|
ldr r0, [r5, 0x40]
|
|
cmp r0, r1
|
|
bcs _08008120
|
|
str r1, [r5, 0x40]
|
|
_08008120:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
add r0, r8
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
adds r1, r7
|
|
lsls r1, 1
|
|
lsls r0, 6
|
|
ldr r3, [sp]
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldr r3, _08008160
|
|
adds r2, r3, 0
|
|
ands r0, r2
|
|
strh r0, [r1]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
add r0, r8
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
adds r1, r7
|
|
lsls r1, 1
|
|
lsls r0, 6
|
|
ldr r3, [sp]
|
|
adds r0, r3
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
ldr r0, [sp, 0x40]
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
b _08008166
|
|
.align 2, 0
|
|
_08008160: .4byte 0x00000fff
|
|
_08008164:
|
|
adds r6, 0x20
|
|
_08008166:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
bne _080080C0
|
|
_08008172:
|
|
ldr r2, [sp, 0x8]
|
|
mov r8, r2
|
|
ldr r0, [r5, 0x20]
|
|
lsls r0, 2
|
|
add r10, r0
|
|
movs r3, 0x20
|
|
add r10, r3
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r8, r0
|
|
bge _08008194
|
|
ldr r2, [sp, 0x4]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
ldr r3, [sp, 0x38]
|
|
cmp r2, r3
|
|
blt _080080AE
|
|
_08008194:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8008030
|
|
|
|
thumb_func_start sub_80081A4
|
|
sub_80081A4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08008234
|
|
adds r6, r1, r0
|
|
lsls r3, 7
|
|
ldr r0, _08008238
|
|
adds r3, r0
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bge _080081CA
|
|
adds r0, 0x7
|
|
_080081CA:
|
|
asrs r0, 3
|
|
str r0, [sp]
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _080081D6
|
|
adds r0, r2, 0x7
|
|
_080081D6:
|
|
asrs r2, r0, 3
|
|
movs r0, 0x2
|
|
mov r9, r0
|
|
mov r10, r0
|
|
movs r1, 0x8
|
|
ldrsh r0, [r6, r1]
|
|
cmp r2, r0
|
|
bge _08008262
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
muls r0, r2
|
|
ldr r1, [sp]
|
|
adds r0, r1
|
|
lsls r0, 5
|
|
ldr r1, [r6, 0x28]
|
|
adds r5, r1, r0
|
|
movs r7, 0
|
|
mov r8, r7
|
|
_080081FA:
|
|
ldr r4, [sp]
|
|
adds r1, r5, 0
|
|
adds r2, 0x1
|
|
mov r12, r2
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _08008248
|
|
mov r2, r9
|
|
_0800820A:
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
cmp r4, r0
|
|
bge _0800823C
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r1!, {r0}
|
|
b _08008240
|
|
.align 2, 0
|
|
_08008234: .4byte gUnknown_2027370
|
|
_08008238: .4byte gUnknown_80B86B4
|
|
_0800823C:
|
|
adds r1, 0x20
|
|
adds r3, 0x20
|
|
_08008240:
|
|
adds r4, 0x1
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _0800820A
|
|
_08008248:
|
|
mov r2, r12
|
|
ldr r0, [r6, 0x20]
|
|
lsls r0, 2
|
|
adds r5, r0
|
|
adds r5, 0x20
|
|
movs r1, 0x8
|
|
ldrsh r0, [r6, r1]
|
|
cmp r2, r0
|
|
bge _08008262
|
|
movs r7, 0x1
|
|
add r8, r7
|
|
cmp r8, r10
|
|
blt _080081FA
|
|
_08008262:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80081A4
|
|
|
|
thumb_func_start sub_8008274
|
|
sub_8008274:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r3, r1, 0
|
|
ldr r0, _08008290
|
|
ldr r1, _08008294
|
|
str r2, [sp]
|
|
adds r2, r4, 0
|
|
bl sub_800829C
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008290: .4byte gUnknown_2027370
|
|
_08008294: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8008274
|
|
|
|
thumb_func_start nullsub_162
|
|
nullsub_162:
|
|
bx lr
|
|
thumb_func_end nullsub_162
|
|
|
|
thumb_func_start sub_800829C
|
|
sub_800829C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r1
|
|
ldr r7, [sp, 0x18]
|
|
lsls r1, r2, 3
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r4, r0, r1
|
|
lsls r7, 12
|
|
ldr r0, [r4, 0x18]
|
|
movs r1, 0x4
|
|
ldrsh r2, [r4, r1]
|
|
movs r5, 0x8
|
|
ldrsh r1, [r4, r5]
|
|
lsls r1, 5
|
|
muls r1, r2
|
|
adds r2, r3, 0
|
|
bl sub_800AAB4
|
|
movs r2, 0
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r2, r0
|
|
bge _08008312
|
|
movs r0, 0x4
|
|
ldrsh r5, [r4, r0]
|
|
mov r12, r5
|
|
_080082D4:
|
|
adds r5, r2, 0x1
|
|
mov r1, r12
|
|
cmp r1, 0
|
|
ble _08008308
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
adds r1, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
lsls r1, 6
|
|
ldr r6, _08008330
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
mov r1, r8
|
|
adds r2, r0, r1
|
|
movs r0, 0x4
|
|
ldrsh r3, [r4, r0]
|
|
_080082F6:
|
|
ldrh r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
orrs r0, r7
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080082F6
|
|
_08008308:
|
|
adds r2, r5, 0
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r2, r0
|
|
blt _080082D4
|
|
_08008312:
|
|
ldr r0, [r4, 0x28]
|
|
str r0, [r4, 0x30]
|
|
ldr r0, [r4, 0x1C]
|
|
str r0, [r4, 0x34]
|
|
ldr r0, [r4, 0x2C]
|
|
str r0, [r4, 0x38]
|
|
adds r1, r4, 0
|
|
adds r1, 0x44
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008330: .4byte 0x00000fff
|
|
thumb_func_end sub_800829C
|
|
|
|
thumb_func_start sub_8008334
|
|
sub_8008334:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
mov r12, r1
|
|
ldr r4, [r7]
|
|
ldr r1, [r1]
|
|
movs r3, 0
|
|
movs r2, 0
|
|
movs r6, 0xF
|
|
movs r5, 0x1C
|
|
_08008346:
|
|
lsls r2, 4
|
|
lsls r3, 4
|
|
adds r0, r4, 0
|
|
ands r0, r6
|
|
orrs r2, r0
|
|
adds r0, r1, 0
|
|
ands r0, r6
|
|
orrs r3, r0
|
|
lsrs r4, 4
|
|
lsrs r1, 4
|
|
subs r5, 0x4
|
|
cmp r5, 0
|
|
bge _08008346
|
|
str r3, [r7]
|
|
mov r0, r12
|
|
str r2, [r0]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8008334
|
|
|
|
thumb_func_start sub_800836C
|
|
sub_800836C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
ldr r0, _08008384
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_800838C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008384: .4byte gUnknown_2027370
|
|
thumb_func_end sub_800836C
|
|
|
|
thumb_func_start nullsub_163
|
|
nullsub_163:
|
|
bx lr
|
|
thumb_func_end nullsub_163
|
|
|
|
thumb_func_start sub_800838C
|
|
sub_800838C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r4, r1, 3
|
|
adds r4, r1
|
|
lsls r4, 3
|
|
adds r7, r0, r4
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
adds r2, r3, 0
|
|
bl sub_8008274
|
|
movs r0, 0
|
|
mov r9, r0
|
|
b _08008452
|
|
_080083AE:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r7, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
mov r8, r0
|
|
ldrh r1, [r7, 0x4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080083C8
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
_080083C8:
|
|
movs r6, 0
|
|
movs r1, 0x1
|
|
add r1, r9
|
|
mov r10, r1
|
|
cmp r6, r8
|
|
bge _08008450
|
|
_080083D4:
|
|
movs r0, 0x4
|
|
ldrsh r1, [r7, r0]
|
|
mov r0, r9
|
|
muls r0, r1
|
|
adds r4, r0, r6
|
|
lsls r4, 5
|
|
ldr r5, [r7, 0x18]
|
|
adds r4, r5, r4
|
|
subs r0, 0x1
|
|
subs r1, r6
|
|
adds r0, r1
|
|
lsls r0, 5
|
|
adds r5, r0
|
|
adds r0, r4, 0
|
|
adds r4, 0x4
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl sub_8008334
|
|
adds r0, r4, 0
|
|
adds r4, 0x4
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl sub_8008334
|
|
adds r0, r4, 0
|
|
adds r4, 0x4
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl sub_8008334
|
|
adds r0, r4, 0
|
|
adds r4, 0x4
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl sub_8008334
|
|
adds r0, r4, 0
|
|
adds r4, 0x4
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl sub_8008334
|
|
adds r0, r4, 0
|
|
adds r4, 0x4
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl sub_8008334
|
|
adds r0, r4, 0
|
|
adds r4, 0x4
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl sub_8008334
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8008334
|
|
adds r6, 0x1
|
|
cmp r6, r8
|
|
blt _080083D4
|
|
_08008450:
|
|
mov r9, r10
|
|
_08008452:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r7, r1]
|
|
cmp r9, r0
|
|
blt _080083AE
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800838C
|
|
|
|
thumb_func_start sub_8008468
|
|
sub_8008468:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x10
|
|
adds r6, r0, 0
|
|
mov r8, r1
|
|
ldr r4, [sp, 0x24]
|
|
ldr r5, [sp, 0x28]
|
|
ldr r0, _08008498
|
|
ldr r1, _0800849C
|
|
str r2, [sp]
|
|
str r3, [sp, 0x4]
|
|
str r4, [sp, 0x8]
|
|
str r5, [sp, 0xC]
|
|
adds r2, r6, 0
|
|
mov r3, r8
|
|
bl sub_80084A4
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008498: .4byte gUnknown_2027370
|
|
_0800849C: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8008468
|
|
|
|
thumb_func_start nullsub_164
|
|
nullsub_164:
|
|
bx lr
|
|
thumb_func_end nullsub_164
|
|
|
|
thumb_func_start sub_80084A4
|
|
sub_80084A4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
mov r10, r3
|
|
ldr r6, [sp, 0x24]
|
|
ldr r7, [sp, 0x28]
|
|
ldr r1, [sp, 0x2C]
|
|
mov r12, r1
|
|
lsls r1, r2, 3
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r4, r0, r1
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bge _080084CC
|
|
adds r0, 0x7
|
|
_080084CC:
|
|
asrs r0, 3
|
|
mov r10, r0
|
|
adds r0, r6, 0
|
|
cmp r6, 0
|
|
bge _080084D8
|
|
adds r0, r6, 0x7
|
|
_080084D8:
|
|
asrs r6, r0, 3
|
|
adds r0, r7, 0
|
|
cmp r7, 0
|
|
bge _080084E2
|
|
adds r0, r7, 0x7
|
|
_080084E2:
|
|
asrs r7, r0, 3
|
|
mov r0, r12
|
|
cmp r0, 0
|
|
bge _080084EC
|
|
adds r0, 0x7
|
|
_080084EC:
|
|
asrs r0, 3
|
|
mov r12, r0
|
|
ldr r2, [sp, 0x30]
|
|
lsls r2, 12
|
|
str r2, [sp, 0x30]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r6, r0
|
|
bge _08008570
|
|
movs r2, 0
|
|
mov r8, r2
|
|
cmp r8, r12
|
|
bge _08008570
|
|
_08008506:
|
|
mov r3, r10
|
|
adds r0, r6, 0x1
|
|
mov r9, r0
|
|
cmp r7, 0
|
|
ble _0800855E
|
|
adds r5, r7, 0
|
|
_08008512:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r3, r0
|
|
bge _08008556
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, r6
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
adds r1, r3
|
|
lsls r1, 1
|
|
lsls r0, 6
|
|
ldr r2, [sp]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
ldr r0, _08008580
|
|
ands r0, r2
|
|
strh r0, [r1]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
adds r0, r6
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
adds r1, r3
|
|
lsls r1, 1
|
|
lsls r0, 6
|
|
ldr r2, [sp]
|
|
adds r0, r2
|
|
adds r1, r0
|
|
ldrh r2, [r1]
|
|
ldr r0, [sp, 0x30]
|
|
orrs r0, r2
|
|
strh r0, [r1]
|
|
_08008556:
|
|
adds r3, 0x1
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _08008512
|
|
_0800855E:
|
|
mov r6, r9
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
cmp r6, r0
|
|
bge _08008570
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
cmp r8, r12
|
|
blt _08008506
|
|
_08008570:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008580: .4byte 0x00000fff
|
|
thumb_func_end sub_80084A4
|
|
|
|
thumb_func_start sub_8008584
|
|
sub_8008584:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
ldr r1, _080085C4
|
|
ldr r0, _080085C8
|
|
ldr r0, [r0]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
ldr r5, [r2, 0x4]
|
|
ldr r0, _080085CC
|
|
adds r1, r3, r0
|
|
ldr r0, _080085D0
|
|
cmp r1, r0
|
|
bhi _080085D4
|
|
movs r2, 0xFF
|
|
ands r2, r3
|
|
movs r1, 0xFF
|
|
lsls r1, 8
|
|
ands r1, r3
|
|
asrs r1, 8
|
|
subs r2, 0x20
|
|
subs r1, 0xF8
|
|
lsls r0, r1, 3
|
|
subs r0, r1
|
|
lsls r0, 5
|
|
adds r0, r2
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r5, r1
|
|
b _08008624
|
|
.align 2, 0
|
|
_080085C4: .4byte gUnknown_2027490
|
|
_080085C8: .4byte gUnknown_20274AC
|
|
_080085CC: .4byte 0xffff0800
|
|
_080085D0: .4byte 0x000007fe
|
|
_080085D4:
|
|
movs r4, 0
|
|
ldr r0, [r2]
|
|
subs r2, r0, 0x1
|
|
cmp r4, r2
|
|
bge _08008614
|
|
lsrs r0, r2, 31
|
|
adds r0, r2, r0
|
|
b _08008602
|
|
_080085E4:
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, r3
|
|
bge _080085F6
|
|
adds r4, r1, 0x1
|
|
b _080085F8
|
|
_080085F6:
|
|
adds r2, r1, 0
|
|
_080085F8:
|
|
cmp r4, r2
|
|
bge _08008614
|
|
adds r0, r4, r2
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
_08008602:
|
|
asrs r1, r0, 1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldrh r0, [r0, 0x4]
|
|
cmp r0, r3
|
|
bne _080085E4
|
|
adds r4, r1, 0
|
|
_08008614:
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r1, r5, r0
|
|
ldrh r0, [r1, 0x4]
|
|
cmp r0, r3
|
|
beq _08008624
|
|
ldr r1, _0800862C
|
|
_08008624:
|
|
adds r0, r1, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0800862C: .4byte gUnknown_80B86A4
|
|
thumb_func_end sub_8008584
|
|
|
|
thumb_func_start sub_8008630
|
|
sub_8008630:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r3, r1, 0
|
|
adds r2, r1, 0
|
|
subs r2, 0x30
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bhi _08008648
|
|
adds r0, r2, 0
|
|
b _0800865C
|
|
_08008648:
|
|
adds r0, r1, 0
|
|
subs r0, 0x61
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bls _08008658
|
|
movs r0, 0x1
|
|
b _0800865C
|
|
_08008658:
|
|
adds r0, r3, 0
|
|
subs r0, 0x57
|
|
_0800865C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8008630
|
|
|
|
thumb_func_start xxx_get_next_char_from_string
|
|
xxx_get_next_char_from_string:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
ldrb r1, [r5]
|
|
cmp r1, 0x7E
|
|
bne _08008696
|
|
adds r5, 0x1
|
|
ldrb r0, [r5]
|
|
bl sub_8008630
|
|
adds r4, r0, 0
|
|
ldrb r0, [r5, 0x1]
|
|
bl sub_8008630
|
|
lsls r4, 4
|
|
adds r4, r0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08008690
|
|
adds r5, 0x1
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08008690
|
|
adds r5, 0x1
|
|
_08008690:
|
|
str r4, [r6]
|
|
adds r0, r5, 0
|
|
b _080086B2
|
|
_08008696:
|
|
adds r0, r1, 0
|
|
subs r0, 0x81
|
|
cmp r0, 0x3
|
|
bls _080086A2
|
|
cmp r1, 0x87
|
|
bne _080086AE
|
|
_080086A2:
|
|
ldrb r0, [r5, 0x1]
|
|
lsls r1, 8
|
|
orrs r0, r1
|
|
str r0, [r6]
|
|
adds r0, r5, 0x2
|
|
b _080086B2
|
|
_080086AE:
|
|
str r1, [r6]
|
|
adds r0, r5, 0x1
|
|
_080086B2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end xxx_get_next_char_from_string
|
|
|
|
thumb_func_start nullsub_165
|
|
nullsub_165:
|
|
bx lr
|
|
thumb_func_end nullsub_165
|
|
|
|
thumb_func_start nullsub_166
|
|
nullsub_166:
|
|
bx lr
|
|
thumb_func_end nullsub_166
|
|
|
|
thumb_func_start nullsub_167
|
|
nullsub_167:
|
|
bx lr
|
|
thumb_func_end nullsub_167
|
|
|
|
thumb_func_start nullsub_168
|
|
nullsub_168:
|
|
bx lr
|
|
thumb_func_end nullsub_168
|
|
|
|
thumb_func_start sub_80086C8
|
|
sub_80086C8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
mov r9, r2
|
|
ldr r7, [sp, 0x30]
|
|
lsls r2, r1, 3
|
|
adds r2, r1
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
mov r12, r0
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bge _080086F2
|
|
ldr r1, [sp, 0x2C]
|
|
add r1, r9
|
|
str r1, [sp, 0x2C]
|
|
movs r2, 0
|
|
mov r9, r2
|
|
_080086F2:
|
|
cmp r3, 0
|
|
bge _080086FA
|
|
adds r7, r3
|
|
movs r3, 0
|
|
_080086FA:
|
|
ldr r0, [sp, 0x2C]
|
|
add r0, r9
|
|
mov r4, r12
|
|
movs r5, 0x4
|
|
ldrsh r2, [r4, r5]
|
|
lsls r1, r2, 3
|
|
cmp r0, r1
|
|
ble _08008710
|
|
mov r0, r9
|
|
subs r0, r1, r0
|
|
str r0, [sp, 0x2C]
|
|
_08008710:
|
|
adds r1, r3, r7
|
|
mov r4, r12
|
|
movs r5, 0x8
|
|
ldrsh r0, [r4, r5]
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
ble _08008720
|
|
subs r7, r0, r3
|
|
_08008720:
|
|
adds r1, r3, 0
|
|
cmp r3, 0
|
|
bge _08008728
|
|
adds r1, r3, 0x7
|
|
_08008728:
|
|
asrs r1, 3
|
|
muls r2, r1
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bge _08008734
|
|
adds r0, 0x7
|
|
_08008734:
|
|
asrs r0, 3
|
|
adds r0, r2, r0
|
|
lsls r0, 3
|
|
lsls r1, 3
|
|
subs r1, r3, r1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
mov r2, r12
|
|
ldr r1, [r2, 0x18]
|
|
b _080087D6
|
|
_08008748:
|
|
adds r2, r5, 0
|
|
ldr r4, [sp, 0x2C]
|
|
mov r6, r9
|
|
mov r1, r12
|
|
ldr r0, [r1, 0x3C]
|
|
cmp r0, r5
|
|
bls _08008758
|
|
str r5, [r1, 0x3C]
|
|
_08008758:
|
|
subs r0, r7, 0x1
|
|
str r0, [sp, 0x4]
|
|
adds r3, 0x1
|
|
str r3, [sp, 0x8]
|
|
mov r1, r12
|
|
ldr r1, [r1, 0x40]
|
|
str r1, [sp]
|
|
adds r0, r5, 0x4
|
|
mov r10, r0
|
|
cmp r4, 0
|
|
ble _080087B6
|
|
ldr r1, _0800878C
|
|
mov r8, r1
|
|
movs r7, 0x7
|
|
_08008774:
|
|
cmp r4, 0x7
|
|
bgt _08008790
|
|
adds r3, r4, 0
|
|
adds r0, r4, 0
|
|
ands r0, r7
|
|
adds r0, 0x8
|
|
lsls r0, 2
|
|
add r0, r8
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
b _080087AA
|
|
.align 2, 0
|
|
_0800878C: .4byte gUnknown_80B8868
|
|
_08008790:
|
|
adds r1, r6, 0
|
|
ands r1, r7
|
|
cmp r1, 0
|
|
beq _080087A8
|
|
movs r0, 0x8
|
|
subs r3, r0, r1
|
|
lsls r0, r1, 2
|
|
add r0, r8
|
|
ldr r1, [r2]
|
|
ldr r0, [r0]
|
|
ands r1, r0
|
|
b _080087AA
|
|
_080087A8:
|
|
movs r3, 0x8
|
|
_080087AA:
|
|
str r1, [r2]
|
|
adds r2, 0x20
|
|
subs r4, r3
|
|
adds r6, r3
|
|
cmp r4, 0
|
|
bgt _08008774
|
|
_080087B6:
|
|
ldr r7, [sp, 0x4]
|
|
ldr r3, [sp, 0x8]
|
|
ldr r2, [sp]
|
|
cmp r2, r5
|
|
bcs _080087C4
|
|
mov r4, r12
|
|
str r5, [r4, 0x40]
|
|
_080087C4:
|
|
mov r5, r10
|
|
movs r0, 0x7
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _080087D8
|
|
mov r5, r12
|
|
ldr r0, [r5, 0x20]
|
|
lsls r0, 2
|
|
mov r1, r10
|
|
_080087D6:
|
|
adds r5, r1, r0
|
|
_080087D8:
|
|
cmp r7, 0
|
|
bgt _08008748
|
|
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_80086C8
|
|
|
|
thumb_func_start sub_80087EC
|
|
sub_80087EC:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, _08008810
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8008818
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008810: .4byte gUnknown_2027370
|
|
thumb_func_end sub_80087EC
|
|
|
|
thumb_func_start nullsub_176
|
|
nullsub_176:
|
|
bx lr
|
|
thumb_func_end nullsub_176
|
|
|
|
thumb_func_start sub_8008818
|
|
sub_8008818:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r3, 0
|
|
ldr r7, [sp, 0x18]
|
|
ldr r3, [sp, 0x1C]
|
|
mov r12, r3
|
|
lsls r3, r1, 3
|
|
adds r3, r1
|
|
lsls r3, 3
|
|
adds r4, r0, r3
|
|
cmp r2, 0
|
|
bge _08008834
|
|
adds r2, 0x7
|
|
_08008834:
|
|
asrs r2, 3
|
|
mov r8, r2
|
|
adds r3, r5, 0
|
|
cmp r3, 0
|
|
bge _08008840
|
|
adds r3, 0x7
|
|
_08008840:
|
|
asrs r3, 3
|
|
movs r2, 0
|
|
cmp r2, r12
|
|
bge _08008892
|
|
_08008848:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
muls r0, r3
|
|
add r0, r8
|
|
lsls r0, 5
|
|
ldr r1, [r4, 0x18]
|
|
adds r1, r0
|
|
movs r5, 0
|
|
adds r3, 0x1
|
|
adds r6, r2, 0
|
|
adds r6, 0x8
|
|
cmp r5, r7
|
|
bge _0800888C
|
|
movs r2, 0
|
|
_08008864:
|
|
ldr r0, [r4, 0x3C]
|
|
cmp r0, r1
|
|
bls _0800886C
|
|
str r1, [r4, 0x3C]
|
|
_0800886C:
|
|
stm r1!, {r2}
|
|
stm r1!, {r2}
|
|
stm r1!, {r2}
|
|
stm r1!, {r2}
|
|
stm r1!, {r2}
|
|
stm r1!, {r2}
|
|
stm r1!, {r2}
|
|
str r2, [r1]
|
|
ldr r0, [r4, 0x40]
|
|
cmp r0, r1
|
|
bcs _08008884
|
|
str r1, [r4, 0x40]
|
|
_08008884:
|
|
adds r1, 0x4
|
|
adds r5, 0x8
|
|
cmp r5, r7
|
|
blt _08008864
|
|
_0800888C:
|
|
adds r2, r6, 0
|
|
cmp r2, r12
|
|
blt _08008848
|
|
_08008892:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8008818
|
|
|
|
thumb_func_start xxx_call_update_bg_vram
|
|
xxx_call_update_bg_vram:
|
|
push {lr}
|
|
movs r1, 0
|
|
ldr r2, _080088C0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080088AE
|
|
strb r1, [r2]
|
|
bl sub_80099C0
|
|
_080088AE:
|
|
ldr r0, _080088C4
|
|
bl xxx_update_bg_vram
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080088C0: .4byte gUnknown_20274A5
|
|
_080088C4: .4byte gUnknown_2027370
|
|
thumb_func_end xxx_call_update_bg_vram
|
|
|
|
thumb_func_start xxx_update_bg_vram
|
|
xxx_update_bg_vram:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r8, r0
|
|
movs r2, 0
|
|
movs r1, 0
|
|
movs r7, 0xD0
|
|
lsls r7, 4
|
|
_080088D8:
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
mov r3, r8
|
|
adds r4, r3, r0
|
|
movs r5, 0x4
|
|
ldrsh r0, [r4, r5]
|
|
adds r6, r1, 0x1
|
|
cmp r0, 0
|
|
beq _0800897A
|
|
ldr r5, [r4, 0x38]
|
|
cmp r5, 0
|
|
beq _0800897A
|
|
adds r0, r4, 0
|
|
adds r0, 0x45
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800894C
|
|
ldr r0, [r4, 0x28]
|
|
ldr r1, [r4, 0x18]
|
|
adds r2, r7, 0
|
|
bl CpuCopy
|
|
ldr r0, [r4, 0x18]
|
|
adds r2, r0, r7
|
|
ldr r0, [r4, 0x28]
|
|
adds r1, r0, r7
|
|
movs r3, 0
|
|
b _08008938
|
|
_08008912:
|
|
ldm r2!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r1!, {r0}
|
|
ldm r2!, {r0}
|
|
stm r1!, {r0}
|
|
ldr r0, _08008944
|
|
stm r1!, {r0}
|
|
ldr r0, _08008948
|
|
stm r1!, {r0}
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
stm r1!, {r0}
|
|
adds r2, 0xC
|
|
adds r3, 0x1
|
|
_08008938:
|
|
movs r5, 0x4
|
|
ldrsh r0, [r4, r5]
|
|
cmp r3, r0
|
|
blt _08008912
|
|
movs r0, 0
|
|
b _0800896A
|
|
.align 2, 0
|
|
_08008944: .4byte 0xdddddddd
|
|
_08008948: .4byte 0xeeeeeeee
|
|
_0800894C:
|
|
ldr r0, [r4, 0x30]
|
|
ldr r1, [r4, 0x34]
|
|
adds r2, r5, 0
|
|
bl CpuCopy
|
|
lsrs r1, r5, 2
|
|
lsls r1, 2
|
|
ldr r0, [r4, 0x34]
|
|
adds r0, r1
|
|
str r0, [r4, 0x34]
|
|
ldr r0, [r4, 0x30]
|
|
adds r0, r5
|
|
str r0, [r4, 0x30]
|
|
ldr r0, [r4, 0x38]
|
|
subs r0, r5
|
|
_0800896A:
|
|
str r0, [r4, 0x38]
|
|
ldr r1, [r4, 0x38]
|
|
cmp r1, 0
|
|
bne _08008978
|
|
adds r0, r4, 0
|
|
adds r0, 0x44
|
|
strb r1, [r0]
|
|
_08008978:
|
|
movs r2, 0x1
|
|
_0800897A:
|
|
adds r1, r6, 0
|
|
cmp r1, 0x3
|
|
ble _080088D8
|
|
adds r0, r2, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end xxx_update_bg_vram
|
|
|
|
thumb_func_start sub_800898C
|
|
sub_800898C:
|
|
push {lr}
|
|
ldr r1, _080089A4
|
|
ldr r2, _080089A8
|
|
movs r3, 0xA0
|
|
lsls r3, 1
|
|
adds r0, r1, r3
|
|
_08008998:
|
|
strh r2, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, r1
|
|
bge _08008998
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080089A4: .4byte gUnknown_3000E94
|
|
_080089A8: .4byte 0x0000f0f0
|
|
thumb_func_end sub_800898C
|
|
|
|
thumb_func_start sub_80089AC
|
|
sub_80089AC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080089C8
|
|
b _08008C44
|
|
_080089C8:
|
|
ldr r6, _08008A3C
|
|
ldr r7, [r4, 0x4]
|
|
cmp r7, 0x1
|
|
bne _08008A60
|
|
movs r0, 0x8
|
|
ldrsh r2, [r4, r0]
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
adds r2, r0
|
|
lsls r3, r2, 3
|
|
mov r12, r3
|
|
movs r7, 0xA
|
|
ldrsh r1, [r4, r7]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r5, r3]
|
|
adds r1, r0
|
|
lsls r5, r1, 3
|
|
movs r7, 0xC
|
|
ldrsh r0, [r4, r7]
|
|
adds r2, r0
|
|
lsls r7, r2, 3
|
|
movs r2, 0xE
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r0
|
|
lsls r2, r1, 3
|
|
cmp r0, 0
|
|
bne _08008A00
|
|
b _08008C44
|
|
_08008A00:
|
|
cmp r5, 0
|
|
bge _08008A06
|
|
movs r5, 0
|
|
_08008A06:
|
|
cmp r2, 0
|
|
bge _08008A0C
|
|
movs r2, 0
|
|
_08008A0C:
|
|
cmp r5, 0xA0
|
|
ble _08008A12
|
|
movs r5, 0xA0
|
|
_08008A12:
|
|
cmp r2, 0xA0
|
|
ble _08008A18
|
|
movs r2, 0xA0
|
|
_08008A18:
|
|
cmp r5, r2
|
|
blt _08008A1E
|
|
b _08008C44
|
|
_08008A1E:
|
|
lsls r3, r5, 1
|
|
adds r1, r6, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xF0
|
|
bne _08008A40
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0xF0
|
|
bne _08008A40
|
|
strb r7, [r1]
|
|
adds r3, 0x1
|
|
adds r0, r6, r3
|
|
mov r1, r12
|
|
strb r1, [r0]
|
|
b _08008A58
|
|
.align 2, 0
|
|
_08008A3C: .4byte gUnknown_3000E94
|
|
_08008A40:
|
|
adds r1, r6, r3
|
|
ldrb r0, [r1]
|
|
cmp r0, r7
|
|
bge _08008A4A
|
|
strb r7, [r1]
|
|
_08008A4A:
|
|
adds r3, 0x1
|
|
adds r3, r6, r3
|
|
ldrb r0, [r3]
|
|
cmp r0, r12
|
|
ble _08008A58
|
|
mov r0, r12
|
|
strb r0, [r3]
|
|
_08008A58:
|
|
adds r5, 0x1
|
|
cmp r5, r2
|
|
blt _08008A1E
|
|
b _08008C44
|
|
_08008A60:
|
|
cmp r7, 0x6
|
|
beq _08008A66
|
|
b _08008BA8
|
|
_08008A66:
|
|
movs r2, 0x8
|
|
ldrsh r1, [r4, r2]
|
|
movs r3, 0
|
|
ldrsh r0, [r5, r3]
|
|
adds r1, r0
|
|
lsls r3, r1, 3
|
|
subs r7, r3, 0x5
|
|
mov r9, r7
|
|
movs r2, 0xA
|
|
ldrsh r0, [r4, r2]
|
|
movs r7, 0x2
|
|
ldrsh r2, [r5, r7]
|
|
adds r0, r2
|
|
lsls r2, r0, 3
|
|
subs r5, r2, 0x4
|
|
movs r7, 0xC
|
|
ldrsh r2, [r4, r7]
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, 0x5
|
|
str r1, [sp]
|
|
movs r2, 0xE
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, 0x5
|
|
mov r8, r0
|
|
adds r3, 0x3
|
|
mov r12, r3
|
|
ldr r2, [r4, 0x14]
|
|
ldrb r1, [r2, 0x2]
|
|
subs r0, r1, 0x1
|
|
ldrb r3, [r2]
|
|
adds r0, r3
|
|
adds r0, 0x2
|
|
lsls r0, 3
|
|
add r0, r12
|
|
subs r0, 0x4
|
|
mov r10, r0
|
|
ldrb r0, [r2, 0x1]
|
|
adds r0, 0x1
|
|
lsls r0, 3
|
|
mov r7, r9
|
|
adds r4, r7, r0
|
|
adds r1, 0x2
|
|
lsls r1, 3
|
|
adds r1, r4, r1
|
|
subs r7, r1, 0x4
|
|
cmp r5, 0
|
|
bge _08008ACC
|
|
movs r5, 0
|
|
_08008ACC:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bge _08008AD6
|
|
movs r1, 0
|
|
mov r8, r1
|
|
_08008AD6:
|
|
cmp r5, 0xA0
|
|
ble _08008ADC
|
|
movs r5, 0xA0
|
|
_08008ADC:
|
|
mov r2, r8
|
|
cmp r2, 0xA0
|
|
ble _08008AE6
|
|
movs r3, 0xA0
|
|
mov r8, r3
|
|
_08008AE6:
|
|
movs r3, 0x3
|
|
_08008AE8:
|
|
lsls r2, r5, 1
|
|
adds r1, r6, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xF0
|
|
bne _08008B02
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0xF0
|
|
bne _08008B02
|
|
strb r7, [r1]
|
|
adds r2, 0x1
|
|
adds r0, r6, r2
|
|
strb r4, [r0]
|
|
b _08008B18
|
|
_08008B02:
|
|
adds r1, r6, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, r7
|
|
bge _08008B0C
|
|
strb r7, [r1]
|
|
_08008B0C:
|
|
adds r2, 0x1
|
|
adds r2, r6, r2
|
|
ldrb r0, [r2]
|
|
cmp r0, r4
|
|
ble _08008B18
|
|
strb r4, [r2]
|
|
_08008B18:
|
|
adds r5, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08008AE8
|
|
movs r3, 0x7
|
|
_08008B22:
|
|
lsls r1, r5, 1
|
|
adds r2, r6, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xF0
|
|
bne _08008B40
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0xF0
|
|
bne _08008B40
|
|
mov r7, r10
|
|
strb r7, [r2]
|
|
adds r1, 0x1
|
|
adds r0, r6, r1
|
|
mov r1, r12
|
|
strb r1, [r0]
|
|
b _08008B5A
|
|
_08008B40:
|
|
adds r2, r6, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, r10
|
|
bge _08008B4C
|
|
mov r7, r10
|
|
strb r7, [r2]
|
|
_08008B4C:
|
|
adds r1, 0x1
|
|
adds r1, r6, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, r12
|
|
ble _08008B5A
|
|
mov r0, r12
|
|
strb r0, [r1]
|
|
_08008B5A:
|
|
adds r5, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08008B22
|
|
cmp r5, r8
|
|
bge _08008C44
|
|
_08008B66:
|
|
lsls r1, r5, 1
|
|
adds r2, r6, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xF0
|
|
bne _08008B86
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0xF0
|
|
bne _08008B86
|
|
mov r3, sp
|
|
ldrb r3, [r3]
|
|
strb r3, [r2]
|
|
adds r1, 0x1
|
|
adds r0, r6, r1
|
|
mov r7, r9
|
|
strb r7, [r0]
|
|
b _08008BA0
|
|
_08008B86:
|
|
adds r2, r6, r1
|
|
ldrb r0, [r2]
|
|
ldr r3, [sp]
|
|
cmp r0, r3
|
|
bge _08008B92
|
|
strb r3, [r2]
|
|
_08008B92:
|
|
adds r1, 0x1
|
|
adds r1, r6, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, r9
|
|
ble _08008BA0
|
|
mov r0, r9
|
|
strb r0, [r1]
|
|
_08008BA0:
|
|
adds r5, 0x1
|
|
cmp r5, r8
|
|
blt _08008B66
|
|
b _08008C44
|
|
_08008BA8:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
adds r0, r1
|
|
lsls r1, r0, 3
|
|
subs r1, 0x5
|
|
mov r8, r1
|
|
movs r3, 0xA
|
|
ldrsh r2, [r4, r3]
|
|
movs r3, 0x2
|
|
ldrsh r1, [r5, r3]
|
|
adds r2, r1
|
|
lsls r5, r2, 3
|
|
mov r9, r5
|
|
mov r3, r9
|
|
subs r3, 0x5
|
|
movs r5, 0xC
|
|
ldrsh r1, [r4, r5]
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
adds r0, 0x5
|
|
mov r12, r0
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
adds r2, r0
|
|
lsls r1, r2, 3
|
|
adds r5, r1, 0x5
|
|
cmp r0, 0
|
|
beq _08008C44
|
|
cmp r7, 0
|
|
bne _08008BEC
|
|
adds r3, 0x8
|
|
subs r5, r1, 0x3
|
|
_08008BEC:
|
|
cmp r3, 0
|
|
bge _08008BF2
|
|
movs r3, 0
|
|
_08008BF2:
|
|
cmp r5, 0
|
|
bge _08008BF8
|
|
movs r5, 0
|
|
_08008BF8:
|
|
cmp r3, 0xA0
|
|
ble _08008BFE
|
|
movs r3, 0xA0
|
|
_08008BFE:
|
|
cmp r5, 0xA0
|
|
ble _08008C40
|
|
movs r5, 0xA0
|
|
b _08008C40
|
|
_08008C06:
|
|
lsls r1, r3, 1
|
|
adds r2, r6, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0xF0
|
|
bne _08008C24
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0xF0
|
|
bne _08008C24
|
|
mov r7, r12
|
|
strb r7, [r2]
|
|
adds r1, 0x1
|
|
adds r0, r6, r1
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
b _08008C3E
|
|
_08008C24:
|
|
adds r2, r6, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, r12
|
|
bge _08008C30
|
|
mov r7, r12
|
|
strb r7, [r2]
|
|
_08008C30:
|
|
adds r1, 0x1
|
|
adds r1, r6, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, r8
|
|
ble _08008C3E
|
|
mov r0, r8
|
|
strb r0, [r1]
|
|
_08008C3E:
|
|
adds r3, 0x1
|
|
_08008C40:
|
|
cmp r3, r5
|
|
blt _08008C06
|
|
_08008C44:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80089AC
|
|
|
|
thumb_func_start sub_8008C54
|
|
sub_8008C54:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _08008C64
|
|
bl sub_8008C6C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008C64: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8008C54
|
|
|
|
thumb_func_start nullsub_169
|
|
nullsub_169:
|
|
bx lr
|
|
thumb_func_end nullsub_169
|
|
|
|
thumb_func_start sub_8008C6C
|
|
sub_8008C6C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xC
|
|
mov r9, r0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
add r0, r8
|
|
lsls r0, 3
|
|
mov r1, r9
|
|
adds r6, r1, r0
|
|
adds r0, r6, 0
|
|
adds r0, 0x45
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08008CBE
|
|
movs r2, 0x4
|
|
ldrsh r0, [r6, r2]
|
|
movs r7, 0x8
|
|
ldrsh r1, [r6, r7]
|
|
muls r0, r1
|
|
lsls r4, r0, 5
|
|
movs r5, 0
|
|
movs r0, 0x44
|
|
adds r0, r6
|
|
mov r10, r0
|
|
cmp r5, r4
|
|
bge _08008D1E
|
|
_08008CA8:
|
|
lsrs r1, r5, 2
|
|
lsls r1, 2
|
|
ldr r0, [r6, 0x18]
|
|
adds r0, r1
|
|
movs r1, 0x20
|
|
bl CpuClear
|
|
adds r5, 0x20
|
|
cmp r5, r4
|
|
blt _08008CA8
|
|
b _08008D1E
|
|
_08008CBE:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
movs r2, 0x8
|
|
ldrsh r1, [r6, r2]
|
|
subs r1, 0x1
|
|
muls r1, r0
|
|
lsls r1, 5
|
|
str r1, [sp, 0x8]
|
|
ldr r4, [r6, 0x18]
|
|
movs r5, 0
|
|
movs r7, 0x44
|
|
adds r7, r6
|
|
mov r10, r7
|
|
cmp r5, r0
|
|
bge _08008D04
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r12, r0
|
|
movs r1, 0
|
|
ldr r3, _08008D84
|
|
ldr r2, _08008D88
|
|
_08008CE8:
|
|
mov r7, r12
|
|
stm r4!, {r7}
|
|
stm r4!, {r3}
|
|
stm r4!, {r2}
|
|
stm r4!, {r1}
|
|
stm r4!, {r1}
|
|
stm r4!, {r1}
|
|
stm r4!, {r1}
|
|
stm r4!, {r1}
|
|
adds r5, 0x1
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
cmp r5, r0
|
|
blt _08008CE8
|
|
_08008D04:
|
|
movs r5, 0
|
|
ldr r0, [sp, 0x8]
|
|
cmp r5, r0
|
|
bge _08008D1E
|
|
_08008D0C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x20
|
|
bl CpuClear
|
|
adds r4, 0x20
|
|
adds r5, 0x20
|
|
ldr r1, [sp, 0x8]
|
|
cmp r5, r1
|
|
blt _08008D0C
|
|
_08008D1E:
|
|
ldr r0, [r6, 0xC]
|
|
cmp r0, 0x6
|
|
bne _08008D60
|
|
adds r5, r6, 0
|
|
adds r5, 0x46
|
|
movs r4, 0
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
movs r2, 0x4
|
|
ldrsh r0, [r6, r2]
|
|
lsls r0, 3
|
|
str r0, [sp]
|
|
movs r0, 0xE
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
mov r1, r8
|
|
movs r2, 0
|
|
movs r3, 0xA
|
|
bl sub_8007958
|
|
movs r7, 0x4
|
|
ldrsh r0, [r6, r7]
|
|
lsls r0, 3
|
|
str r0, [sp]
|
|
movs r0, 0xD
|
|
str r0, [sp, 0x4]
|
|
mov r0, r9
|
|
mov r1, r8
|
|
movs r2, 0
|
|
movs r3, 0xB
|
|
bl sub_8007958
|
|
strb r4, [r5]
|
|
_08008D60:
|
|
ldr r0, [r6, 0x28]
|
|
str r0, [r6, 0x30]
|
|
ldr r0, [r6, 0x1C]
|
|
str r0, [r6, 0x34]
|
|
ldr r0, [r6, 0x2C]
|
|
str r0, [r6, 0x38]
|
|
movs r0, 0x1
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
add sp, 0xC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008D84: .4byte 0xeeeeeeee
|
|
_08008D88: .4byte 0xdddddddd
|
|
thumb_func_end sub_8008C6C
|
|
|
|
thumb_func_start sub_8008D8C
|
|
sub_8008D8C:
|
|
push {lr}
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08008DA4
|
|
adds r1, r0
|
|
ldr r0, [r1, 0x38]
|
|
cmp r0, 0
|
|
beq _08008DA0
|
|
movs r0, 0x1
|
|
_08008DA0:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08008DA4: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8008D8C
|
|
|
|
thumb_func_start sub_8008DA8
|
|
sub_8008DA8:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8008DA8
|
|
|
|
thumb_func_start sub_8008DAC
|
|
sub_8008DAC:
|
|
ldr r3, _08008DC0
|
|
lsls r0, 1
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
adds r0, r3
|
|
strh r2, [r0]
|
|
ldr r1, _08008DC4
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08008DC0: .4byte gUnknown_202B038
|
|
_08008DC4: .4byte gUnknown_20274A5
|
|
thumb_func_end sub_8008DAC
|
|
|
|
thumb_func_start sub_8008DC8
|
|
sub_8008DC8:
|
|
push {r4,lr}
|
|
ldr r4, _08008DEC
|
|
lsls r0, 1
|
|
lsls r1, 6
|
|
adds r0, r1
|
|
adds r1, r0, r4
|
|
strh r2, [r1]
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
adds r4, r1
|
|
adds r0, r4
|
|
strh r3, [r0]
|
|
ldr r1, _08008DF0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008DEC: .4byte gUnknown_202B038
|
|
_08008DF0: .4byte gUnknown_20274A5
|
|
thumb_func_end sub_8008DC8
|
|
|
|
thumb_func_start sub_8008DF4
|
|
sub_8008DF4:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
ldrb r0, [r3]
|
|
ldr r1, _08008E4C
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
beq _08008E3E
|
|
ldr r6, _08008E50
|
|
_08008E08:
|
|
ldrb r1, [r3]
|
|
adds r0, r1, 0
|
|
subs r0, 0x61
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x19
|
|
bhi _08008E1E
|
|
adds r0, r1, 0
|
|
subs r0, 0x20
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_08008E1E:
|
|
lsls r2, r4, 1
|
|
lsls r0, r5, 6
|
|
adds r2, r0
|
|
adds r2, r6
|
|
movs r7, 0x96
|
|
lsls r7, 2
|
|
adds r0, r1, r7
|
|
ldr r7, _08008E54
|
|
adds r1, r7, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
adds r3, 0x1
|
|
adds r4, 0x1
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
bne _08008E08
|
|
_08008E3E:
|
|
movs r0, 0x1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008E4C: .4byte gUnknown_20274A5
|
|
_08008E50: .4byte gUnknown_202B038
|
|
_08008E54: .4byte 0xfffff000
|
|
thumb_func_end sub_8008DF4
|
|
|
|
thumb_func_start sub_8008E58
|
|
sub_8008E58:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, 0
|
|
mov r8, r1
|
|
adds r4, r2, 0
|
|
ldrb r0, [r4]
|
|
ldr r7, _08008EC4
|
|
cmp r0, 0
|
|
beq _08008EB4
|
|
adds r1, r0, 0
|
|
cmp r3, 0
|
|
beq _08008EB4
|
|
ldr r0, _08008EC8
|
|
mov r12, r0
|
|
_08008E76:
|
|
adds r0, r1, 0
|
|
subs r0, 0x61
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x19
|
|
bhi _08008E8A
|
|
adds r0, r1, 0
|
|
subs r0, 0x20
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_08008E8A:
|
|
lsls r2, r5, 1
|
|
mov r6, r8
|
|
lsls r0, r6, 6
|
|
adds r2, r0
|
|
add r2, r12
|
|
movs r6, 0x96
|
|
lsls r6, 2
|
|
adds r0, r1, r6
|
|
ldr r6, _08008ECC
|
|
adds r1, r6, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
adds r4, 0x1
|
|
adds r5, 0x1
|
|
subs r3, 0x1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08008EB4
|
|
adds r1, r0, 0
|
|
cmp r3, 0
|
|
bne _08008E76
|
|
_08008EB4:
|
|
movs r0, 0x1
|
|
strb r0, [r7]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008EC4: .4byte gUnknown_20274A5
|
|
_08008EC8: .4byte gUnknown_202B038
|
|
_08008ECC: .4byte 0xfffff000
|
|
thumb_func_end sub_8008E58
|
|
|
|
thumb_func_start sub_8008ED0
|
|
sub_8008ED0:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
b _08008F64
|
|
_08008EDA:
|
|
ldr r0, _08008F18
|
|
cmp r1, r0
|
|
beq _08008F64
|
|
adds r0, 0x2
|
|
cmp r1, r0
|
|
beq _08008F64
|
|
cmp r1, 0x1B
|
|
beq _08008F7E
|
|
cmp r1, 0x23
|
|
bne _08008F44
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x6E
|
|
beq _08008F7E
|
|
cmp r0, 0x5B
|
|
beq _08008F7E
|
|
cmp r0, 0x50
|
|
beq _08008F7E
|
|
cmp r0, 0x57
|
|
beq _08008F40
|
|
cmp r0, 0x57
|
|
bgt _08008F22
|
|
cmp r0, 0x43
|
|
beq _08008F38
|
|
cmp r0, 0x43
|
|
bgt _08008F1C
|
|
cmp r0, 0x2B
|
|
beq _08008F40
|
|
cmp r0, 0x3D
|
|
beq _08008F34
|
|
b _08008F64
|
|
.align 2, 0
|
|
_08008F18: .4byte 0x000082a0
|
|
_08008F1C:
|
|
cmp r0, 0x52
|
|
beq _08008F3C
|
|
b _08008F64
|
|
_08008F22:
|
|
cmp r0, 0x72
|
|
beq _08008F3C
|
|
cmp r0, 0x72
|
|
bgt _08008F30
|
|
cmp r0, 0x63
|
|
beq _08008F38
|
|
b _08008F64
|
|
_08008F30:
|
|
cmp r0, 0x7E
|
|
bne _08008F64
|
|
_08008F34:
|
|
adds r4, r2, 0x2
|
|
b _08008F64
|
|
_08008F38:
|
|
adds r4, 0x2
|
|
b _08008F64
|
|
_08008F3C:
|
|
adds r4, 0x1
|
|
b _08008F64
|
|
_08008F40:
|
|
adds r4, r2, 0x1
|
|
b _08008F64
|
|
_08008F44:
|
|
cmp r1, 0x60
|
|
bne _08008F4C
|
|
adds r5, 0x6
|
|
b _08008F64
|
|
_08008F4C:
|
|
adds r0, r1, 0
|
|
bl sub_8008584
|
|
cmp r0, 0
|
|
beq _08008F64
|
|
movs r1, 0x6
|
|
ldrsh r0, [r0, r1]
|
|
ldr r1, _08008F88
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
adds r0, r1
|
|
adds r5, r0
|
|
_08008F64:
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl xxx_get_next_char_from_string
|
|
adds r2, r0, 0
|
|
adds r4, r2, 0
|
|
ldr r1, [sp]
|
|
cmp r1, 0
|
|
beq _08008F7E
|
|
cmp r1, 0xD
|
|
beq _08008F7E
|
|
cmp r1, 0xA
|
|
bne _08008EDA
|
|
_08008F7E:
|
|
adds r0, r5, 0
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08008F88: .4byte gUnknown_2027498
|
|
thumb_func_end sub_8008ED0
|
|
|
|
thumb_func_start sub_8008F8C
|
|
sub_8008F8C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x20]
|
|
ldr r2, [sp, 0x24]
|
|
ldr r0, _08008FB8
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
str r2, [sp, 0xC]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl xxx_draw_string
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008FB8: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8008F8C
|
|
|
|
thumb_func_start xxx_call_draw_string
|
|
xxx_call_draw_string:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x20]
|
|
ldr r0, _08008FE8
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0xD
|
|
str r1, [sp, 0xC]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl xxx_draw_string
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08008FE8: .4byte gUnknown_2027370
|
|
thumb_func_end xxx_call_draw_string
|
|
|
|
thumb_func_start nullsub_170
|
|
nullsub_170:
|
|
bx lr
|
|
thumb_func_end nullsub_170
|
|
|
|
thumb_func_start sub_8008FF0
|
|
sub_8008FF0:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r1, [sp, 0x20]
|
|
ldr r0, _0800901C
|
|
str r3, [sp]
|
|
str r1, [sp, 0x4]
|
|
movs r1, 0
|
|
str r1, [sp, 0x8]
|
|
movs r1, 0xD
|
|
str r1, [sp, 0xC]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl xxx_draw_string
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800901C: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8008FF0
|
|
|
|
thumb_func_start nullsub_171
|
|
nullsub_171:
|
|
bx lr
|
|
thumb_func_end nullsub_171
|
|
|
|
thumb_func_start xxx_draw_string
|
|
xxx_draw_string:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x40
|
|
adds r5, r0, 0
|
|
adds r4, r3, 0
|
|
ldr r0, [sp, 0x5C]
|
|
mov r8, r0
|
|
ldr r7, [sp, 0x64]
|
|
add r0, sp, 0x8
|
|
strh r1, [r0]
|
|
strh r2, [r0, 0x2]
|
|
str r1, [sp, 0x14]
|
|
movs r0, 0x7
|
|
str r0, [sp, 0x18]
|
|
add r2, sp, 0x3C
|
|
mov r9, r2
|
|
b _08009128
|
|
_0800904A:
|
|
ldr r0, _08009058
|
|
cmp r3, r0
|
|
bne _08009060
|
|
ldr r1, _0800905C
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
b _08009128
|
|
.align 2, 0
|
|
_08009058: .4byte 0x000082a0
|
|
_0800905C: .4byte gUnknown_20274AC
|
|
_08009060:
|
|
ldr r0, _08009070
|
|
cmp r3, r0
|
|
bne _08009078
|
|
ldr r1, _08009074
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
b _08009128
|
|
.align 2, 0
|
|
_08009070: .4byte 0x000082a2
|
|
_08009074: .4byte gUnknown_20274AC
|
|
_08009078:
|
|
cmp r3, 0x1B
|
|
beq _0800914A
|
|
cmp r3, 0xD
|
|
beq _08009084
|
|
cmp r3, 0xA
|
|
bne _08009096
|
|
_08009084:
|
|
add r1, sp, 0x8
|
|
ldr r0, [sp, 0x14]
|
|
strh r0, [r1]
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0, 0x2]
|
|
ldr r3, [sp, 0x68]
|
|
adds r0, r3
|
|
strh r0, [r1, 0x2]
|
|
b _08009128
|
|
_08009096:
|
|
cmp r3, 0x1D
|
|
bne _080090AA
|
|
add r1, sp, 0x8
|
|
ldr r0, [sp, 0x14]
|
|
strh r0, [r1]
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, 0x5
|
|
strh r0, [r1, 0x2]
|
|
b _08009128
|
|
_080090AA:
|
|
cmp r3, 0x60
|
|
bne _080090B8
|
|
add r1, sp, 0x8
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0]
|
|
adds r0, 0x6
|
|
b _08009126
|
|
_080090B8:
|
|
cmp r7, 0
|
|
bne _080090E0
|
|
add r0, sp, 0x8
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
movs r6, 0x2
|
|
ldrsh r2, [r0, r6]
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
bl xxx_draw_char
|
|
add r2, sp, 0x8
|
|
adds r1, r2, 0
|
|
ldrh r1, [r1]
|
|
adds r1, r0
|
|
strh r1, [r2]
|
|
b _08009128
|
|
_080090E0:
|
|
adds r0, r3, 0
|
|
bl sub_8008584
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
beq _08009128
|
|
add r0, sp, 0x8
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
ldr r0, _08009158
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
adds r0, 0xA
|
|
movs r3, 0x6
|
|
ldrsh r2, [r2, r3]
|
|
subs r0, r2
|
|
lsrs r2, r0, 31
|
|
adds r0, r2
|
|
asrs r0, 1
|
|
adds r1, r0
|
|
add r0, sp, 0x8
|
|
movs r6, 0x2
|
|
ldrsh r2, [r0, r6]
|
|
ldr r3, [sp, 0x3C]
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
str r0, [sp, 0x4]
|
|
adds r0, r5, 0
|
|
bl xxx_draw_char
|
|
add r1, sp, 0x8
|
|
adds r0, r1, 0
|
|
ldrh r0, [r0]
|
|
adds r0, r7
|
|
_08009126:
|
|
strh r0, [r1]
|
|
_08009128:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
add r2, sp, 0x8
|
|
bl sub_80091AC
|
|
adds r4, r0, 0
|
|
mov r1, r9
|
|
bl xxx_get_next_char_from_string
|
|
adds r4, r0, 0
|
|
ldr r3, [sp, 0x3C]
|
|
cmp r3, 0
|
|
beq _0800914A
|
|
ldr r2, [sp, 0x60]
|
|
cmp r3, r2
|
|
beq _0800914A
|
|
b _0800904A
|
|
_0800914A:
|
|
add sp, 0x40
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08009158: .4byte gUnknown_2027498
|
|
thumb_func_end xxx_draw_string
|
|
|
|
thumb_func_start sub_800915C
|
|
sub_800915C:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
_08009162:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x2E
|
|
beq _08009184
|
|
subs r0, 0x30
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bhi _08009186
|
|
lsls r0, r2, 2
|
|
adds r0, r2
|
|
lsls r2, r0, 1
|
|
adds r0, r2, 0
|
|
subs r0, 0x30
|
|
ldrb r4, [r1]
|
|
adds r2, r0, r4
|
|
adds r1, 0x1
|
|
b _08009162
|
|
_08009184:
|
|
adds r1, 0x1
|
|
_08009186:
|
|
strh r2, [r3]
|
|
adds r0, r1, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800915C
|
|
|
|
thumb_func_start sub_8009190
|
|
sub_8009190:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r0, _080091A4
|
|
adds r1, r3, 0
|
|
bl sub_80091AC
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080091A4: .4byte gUnknown_2027370
|
|
thumb_func_end sub_8009190
|
|
|
|
thumb_func_start sub_80091A8
|
|
sub_80091A8:
|
|
adds r0, 0x1
|
|
bx lr
|
|
thumb_func_end sub_80091A8
|
|
|
|
thumb_func_start sub_80091AC
|
|
sub_80091AC:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r7, 0x1
|
|
_080091C0:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x23
|
|
beq _080091C8
|
|
b _0800937A
|
|
_080091C8:
|
|
ldrb r0, [r4, 0x1]
|
|
adds r1, r0, 0
|
|
cmp r1, 0x5B
|
|
bne _08009216
|
|
adds r2, r4, 0
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r0, 0x21
|
|
mov r1, r9
|
|
strb r1, [r0]
|
|
ldrb r1, [r4]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
beq _080091F6
|
|
cmp r1, 0x5D
|
|
beq _080091F4
|
|
_080091E8:
|
|
adds r4, 0x1
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _080091F6
|
|
cmp r0, 0x5D
|
|
bne _080091E8
|
|
_080091F4:
|
|
adds r4, 0x1
|
|
_080091F6:
|
|
ldr r3, [r5, 0x24]
|
|
cmp r3, 0
|
|
beq _0800920C
|
|
adds r0, r2, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl _call_via_r3
|
|
cmp r0, 0
|
|
beq _0800920C
|
|
adds r4, r0, 0
|
|
_0800920C:
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _08009214
|
|
b _0800937A
|
|
_08009214:
|
|
b _080091C0
|
|
_08009216:
|
|
cmp r1, 0x3D
|
|
bne _08009220
|
|
ldrb r0, [r4, 0x2]
|
|
strh r0, [r5]
|
|
b _080092BA
|
|
_08009220:
|
|
cmp r1, 0x79
|
|
bne _0800922A
|
|
ldrb r0, [r4, 0x2]
|
|
strh r0, [r5, 0x2]
|
|
b _080092BA
|
|
_0800922A:
|
|
cmp r1, 0x3E
|
|
bne _0800923A
|
|
adds r1, r4, 0x2
|
|
adds r0, r5, 0
|
|
bl sub_800915C
|
|
adds r4, r0, 0
|
|
b _080091C0
|
|
_0800923A:
|
|
cmp r1, 0x2E
|
|
bne _08009246
|
|
ldrh r0, [r5]
|
|
ldrb r2, [r4, 0x2]
|
|
adds r0, r2
|
|
b _0800926E
|
|
_08009246:
|
|
cmp r1, 0x6E
|
|
bne _08009258
|
|
ldr r0, [r5, 0xC]
|
|
strh r0, [r5]
|
|
ldrh r0, [r5, 0x2]
|
|
adds r0, 0xB
|
|
strh r0, [r5, 0x2]
|
|
adds r4, 0x2
|
|
b _080091C0
|
|
_08009258:
|
|
cmp r1, 0x3A
|
|
bne _08009264
|
|
ldrh r0, [r5]
|
|
strh r0, [r5, 0x4]
|
|
adds r4, 0x2
|
|
b _080091C0
|
|
_08009264:
|
|
cmp r1, 0x3B
|
|
bne _08009274
|
|
ldrh r0, [r5, 0x4]
|
|
ldrb r3, [r4, 0x2]
|
|
adds r0, r3
|
|
_0800926E:
|
|
strh r0, [r5]
|
|
adds r4, 0x3
|
|
b _080091C0
|
|
_08009274:
|
|
cmp r1, 0x2B
|
|
bne _0800929A
|
|
adds r4, 0x2
|
|
adds r0, r4, 0
|
|
bl sub_8008ED0
|
|
mov r2, r8
|
|
movs r3, 0x4
|
|
ldrsh r1, [r2, r3]
|
|
lsls r1, 3
|
|
subs r1, r0
|
|
strh r1, [r5]
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
strh r0, [r5]
|
|
b _080091C0
|
|
_0800929A:
|
|
cmp r1, 0x43
|
|
bne _080092A4
|
|
ldr r0, [r5, 0x10]
|
|
str r0, [r5, 0x14]
|
|
b _080092DC
|
|
_080092A4:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5F
|
|
bne _080092CC
|
|
ldr r0, [r5, 0x10]
|
|
str r0, [r5, 0x14]
|
|
ldr r1, _080092C8
|
|
ldrb r0, [r4, 0x2]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
str r0, [r5, 0x10]
|
|
_080092BA:
|
|
adds r4, 0x3
|
|
ldrb r0, [r4]
|
|
cmp r0, 0x2E
|
|
beq _080092C4
|
|
b _080091C0
|
|
_080092C4:
|
|
adds r4, 0x1
|
|
b _080091C0
|
|
.align 2, 0
|
|
_080092C8: .4byte gUnknown_202749A
|
|
_080092CC:
|
|
cmp r0, 0x52
|
|
bne _080092D4
|
|
ldr r0, [r5, 0x14]
|
|
b _080092EE
|
|
_080092D4:
|
|
cmp r0, 0x63
|
|
bne _080092E8
|
|
ldr r0, [r5, 0x10]
|
|
str r0, [r5, 0x18]
|
|
_080092DC:
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_800963C
|
|
str r0, [r5, 0x10]
|
|
adds r4, 0x3
|
|
b _080091C0
|
|
_080092E8:
|
|
cmp r0, 0x72
|
|
bne _080092F4
|
|
ldr r0, [r5, 0x18]
|
|
_080092EE:
|
|
str r0, [r5, 0x10]
|
|
adds r4, 0x2
|
|
b _080091C0
|
|
_080092F4:
|
|
cmp r0, 0x53
|
|
bne _08009314
|
|
ldr r3, _08009310
|
|
ldrb r2, [r4, 0x2]
|
|
movs r0, 0x7F
|
|
adds r1, r0, 0
|
|
ands r1, r2
|
|
adds r1, r3
|
|
ldrb r2, [r4, 0x3]
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r4, 0x4
|
|
b _080091C0
|
|
.align 2, 0
|
|
_08009310: .4byte gUnknown_20274A6
|
|
_08009314:
|
|
cmp r0, 0x57
|
|
bne _0800933A
|
|
adds r4, 0x2
|
|
mov r2, r8
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
lsls r0, 3
|
|
ldrh r1, [r5]
|
|
adds r0, r1
|
|
subs r0, 0x2
|
|
strh r0, [r5, 0x8]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r2, r3]
|
|
lsls r0, 3
|
|
ldrh r1, [r5, 0x2]
|
|
adds r0, r1
|
|
adds r0, 0x3
|
|
strh r0, [r5, 0xA]
|
|
b _0800935C
|
|
_0800933A:
|
|
cmp r0, 0x50
|
|
bne _08009350
|
|
adds r4, 0x2
|
|
ldr r0, _0800934C
|
|
strh r0, [r5, 0x2]
|
|
mov r2, r9
|
|
str r2, [r5, 0x1C]
|
|
b _0800935C
|
|
.align 2, 0
|
|
_0800934C: .4byte 0x0000270f
|
|
_08009350:
|
|
cmp r0, 0x70
|
|
bne _08009368
|
|
adds r4, 0x2
|
|
ldr r0, _08009364
|
|
strh r0, [r5, 0x2]
|
|
str r7, [r5, 0x1C]
|
|
_0800935C:
|
|
adds r0, r5, 0
|
|
adds r0, 0x20
|
|
strb r7, [r0]
|
|
b _0800937A
|
|
.align 2, 0
|
|
_08009364: .4byte 0x0000270f
|
|
_08009368:
|
|
cmp r0, 0x7E
|
|
bne _0800937A
|
|
ldrb r0, [r4, 0x2]
|
|
str r0, [r5, 0x2C]
|
|
adds r0, r5, 0
|
|
adds r0, 0x21
|
|
strb r7, [r0]
|
|
adds r4, 0x3
|
|
b _080091C0
|
|
_0800937A:
|
|
adds r0, r4, 0
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80091AC
|
|
|
|
thumb_func_start sub_8009388
|
|
sub_8009388:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r2, _080093F4
|
|
ldr r6, _080093F8
|
|
strh r6, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
adds r5, r2, r0
|
|
ldr r4, _080093FC
|
|
strh r4, [r5]
|
|
ldr r0, _08009400
|
|
ldr r3, [r0]
|
|
ldr r0, _08009404
|
|
ldr r1, [r0]
|
|
mov r9, r0
|
|
cmp r3, r1
|
|
bge _080093E6
|
|
mov r8, r2
|
|
mov r12, r6
|
|
adds r6, r5, 0
|
|
movs r5, 0
|
|
adds r7, r6, 0
|
|
_080093B8:
|
|
lsls r0, r3, 6
|
|
mov r1, r8
|
|
adds r2, r0, r1
|
|
mov r1, r12
|
|
strh r1, [r2]
|
|
adds r1, r0, r6
|
|
strh r4, [r1]
|
|
adds r3, 0x1
|
|
adds r0, r7
|
|
adds r0, 0x2
|
|
adds r2, 0x2
|
|
movs r1, 0x1E
|
|
_080093D0:
|
|
strh r5, [r2]
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080093D0
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
cmp r3, r0
|
|
blt _080093B8
|
|
_080093E6:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080093F4: .4byte gUnknown_202B038
|
|
_080093F8: .4byte 0x0000f279
|
|
_080093FC: .4byte 0x0000f27a
|
|
_08009400: .4byte gUnknown_202B020
|
|
_08009404: .4byte gUnknown_202B024
|
|
thumb_func_end sub_8009388
|
|
|
|
thumb_func_start sub_8009408
|
|
sub_8009408:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r5, r1, 0
|
|
ldr r1, _08009478
|
|
ldr r6, _0800947C
|
|
strh r6, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r4, r1, r2
|
|
ldr r2, _08009480
|
|
strh r2, [r4]
|
|
adds r3, r0, 0
|
|
ldr r0, _08009484
|
|
mov r10, r0
|
|
cmp r3, r5
|
|
bge _08009464
|
|
mov r9, r1
|
|
mov r8, r6
|
|
adds r7, r4, 0
|
|
adds r4, r2, 0
|
|
movs r6, 0
|
|
mov r12, r7
|
|
_0800943A:
|
|
lsls r0, r3, 6
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
mov r1, r8
|
|
strh r1, [r2]
|
|
adds r1, r0, r7
|
|
strh r4, [r1]
|
|
adds r3, 0x1
|
|
add r0, r12
|
|
adds r0, 0x2
|
|
adds r2, 0x2
|
|
movs r1, 0x1E
|
|
_08009452:
|
|
strh r6, [r2]
|
|
strh r4, [r0]
|
|
adds r0, 0x2
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08009452
|
|
cmp r3, r5
|
|
blt _0800943A
|
|
_08009464:
|
|
movs r0, 0x1
|
|
mov r2, r10
|
|
strb r0, [r2]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08009478: .4byte gUnknown_202B038
|
|
_0800947C: .4byte 0x0000f279
|
|
_08009480: .4byte 0x0000f27a
|
|
_08009484: .4byte gUnknown_20274A5
|
|
thumb_func_end sub_8009408
|
|
|
|
thumb_func_start sub_8009488
|
|
sub_8009488:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _08009514
|
|
adds r4, r1, r0
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
movs r3, 0
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
cmp r3, r0
|
|
bge _08009506
|
|
ldr r6, _08009518
|
|
mov r9, r6
|
|
ldr r0, _0800951C
|
|
mov r8, r0
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
add r2, r8
|
|
mov r10, r2
|
|
_080094BA:
|
|
movs r6, 0
|
|
ldrsh r2, [r4, r6]
|
|
movs r5, 0
|
|
movs r6, 0x4
|
|
ldrsh r0, [r4, r6]
|
|
adds r6, r1, 0x1
|
|
adds r7, r3, 0x1
|
|
cmp r5, r0
|
|
bge _080094FA
|
|
movs r0, 0xFC
|
|
lsls r0, 8
|
|
mov r12, r0
|
|
lsls r2, 1
|
|
lsls r1, 6
|
|
mov r3, r10
|
|
adds r0, r1, r3
|
|
adds r3, r2, r0
|
|
add r1, r8
|
|
adds r2, r1
|
|
_080094E0:
|
|
ldrh r0, [r2]
|
|
mov r1, r12
|
|
ands r1, r0
|
|
strh r1, [r2]
|
|
mov r0, r9
|
|
strh r0, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r5, r0
|
|
blt _080094E0
|
|
_080094FA:
|
|
adds r1, r6, 0
|
|
adds r3, r7, 0
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
cmp r3, r0
|
|
blt _080094BA
|
|
_08009506:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08009514: .4byte gUnknown_2027370
|
|
_08009518: .4byte 0x0000f27a
|
|
_0800951C: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8009488
|
|
|
|
thumb_func_start nullsub_172
|
|
nullsub_172:
|
|
bx lr
|
|
thumb_func_end nullsub_172
|
|
|
|
thumb_func_start sub_8009524
|
|
sub_8009524:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 3
|
|
ldr r0, _080095BC
|
|
adds r4, r1, r0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
subs r1, r0, 0x1
|
|
movs r3, 0
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x2
|
|
cmp r3, r0
|
|
bge _080095AE
|
|
ldr r6, _080095C0
|
|
mov r9, r6
|
|
ldr r0, _080095C4
|
|
mov r8, r0
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
add r2, r8
|
|
mov r10, r2
|
|
_0800955A:
|
|
movs r6, 0
|
|
ldrsh r0, [r4, r6]
|
|
subs r2, r0, 0x1
|
|
movs r5, 0
|
|
movs r6, 0x4
|
|
ldrsh r0, [r4, r6]
|
|
adds r0, 0x2
|
|
adds r6, r1, 0x1
|
|
adds r7, r3, 0x1
|
|
cmp r5, r0
|
|
bge _080095A0
|
|
movs r0, 0xFC
|
|
lsls r0, 8
|
|
mov r12, r0
|
|
lsls r2, 1
|
|
lsls r1, 6
|
|
mov r3, r10
|
|
adds r0, r1, r3
|
|
adds r3, r2, r0
|
|
add r1, r8
|
|
adds r2, r1
|
|
_08009584:
|
|
ldrh r0, [r2]
|
|
mov r1, r12
|
|
ands r1, r0
|
|
strh r1, [r2]
|
|
mov r0, r9
|
|
strh r0, [r3]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
adds r0, 0x2
|
|
cmp r5, r0
|
|
blt _08009584
|
|
_080095A0:
|
|
adds r1, r6, 0
|
|
adds r3, r7, 0
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
adds r0, 0x2
|
|
cmp r3, r0
|
|
blt _0800955A
|
|
_080095AE:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080095BC: .4byte gUnknown_2027370
|
|
_080095C0: .4byte 0x0000f27a
|
|
_080095C4: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8009524
|
|
|
|
thumb_func_start nullsub_173
|
|
nullsub_173:
|
|
bx lr
|
|
thumb_func_end nullsub_173
|
|
|
|
thumb_func_start sub_80095CC
|
|
sub_80095CC:
|
|
ldr r2, _080095D8
|
|
str r0, [r2]
|
|
ldr r0, _080095DC
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080095D8: .4byte gUnknown_202B020
|
|
_080095DC: .4byte gUnknown_202B024
|
|
thumb_func_end sub_80095CC
|
|
|
|
thumb_func_start nullsub_174
|
|
nullsub_174:
|
|
bx lr
|
|
thumb_func_end nullsub_174
|
|
|
|
thumb_func_start sub_80095E4
|
|
sub_80095E4:
|
|
push {lr}
|
|
cmp r1, 0
|
|
bne _080095EC
|
|
movs r1, 0xA
|
|
_080095EC:
|
|
muls r1, r0
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08009604
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080095FE
|
|
adds r0, r1, 0x7
|
|
_080095FE:
|
|
asrs r0, 3
|
|
adds r0, 0x1
|
|
b _0800960E
|
|
_08009604:
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
bge _0800960C
|
|
adds r0, 0x7
|
|
_0800960C:
|
|
asrs r0, 3
|
|
_0800960E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80095E4
|
|
|
|
thumb_func_start sub_8009614
|
|
sub_8009614:
|
|
push {lr}
|
|
muls r1, r0
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800962E
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08009628
|
|
adds r0, r1, 0x7
|
|
_08009628:
|
|
asrs r0, 3
|
|
adds r0, 0x1
|
|
b _08009638
|
|
_0800962E:
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
bge _08009636
|
|
adds r0, 0x7
|
|
_08009636:
|
|
asrs r0, 3
|
|
_08009638:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009614
|
|
|
|
thumb_func_start sub_800963C
|
|
sub_800963C:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r2, r0, 0
|
|
cmp r0, 0xF
|
|
bls _080096DA
|
|
adds r1, r0, 0
|
|
subs r1, 0x30
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0xF
|
|
bhi _08009658
|
|
adds r0, r1, 0
|
|
b _080096DA
|
|
_08009658:
|
|
adds r0, r2, 0
|
|
subs r0, 0x43
|
|
cmp r0, 0x14
|
|
bhi _080096D8
|
|
lsls r0, 2
|
|
ldr r1, _0800966C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0800966C: .4byte _08009670
|
|
.align 2, 0
|
|
_08009670:
|
|
.4byte _080096D0
|
|
.4byte _080096D0
|
|
.4byte _080096C8
|
|
.4byte _080096D8
|
|
.4byte _080096CC
|
|
.4byte _080096C4
|
|
.4byte _080096C4
|
|
.4byte _080096D8
|
|
.4byte _080096D8
|
|
.4byte _080096D8
|
|
.4byte _080096CC
|
|
.4byte _080096D0
|
|
.4byte _080096D8
|
|
.4byte _080096D8
|
|
.4byte _080096D8
|
|
.4byte _080096D8
|
|
.4byte _080096C8
|
|
.4byte _080096C8
|
|
.4byte _080096D8
|
|
.4byte _080096D8
|
|
.4byte _080096D4
|
|
_080096C4:
|
|
movs r0, 0x4
|
|
b _080096DA
|
|
_080096C8:
|
|
movs r0, 0xF
|
|
b _080096DA
|
|
_080096CC:
|
|
movs r0, 0x5
|
|
b _080096DA
|
|
_080096D0:
|
|
movs r0, 0x6
|
|
b _080096DA
|
|
_080096D4:
|
|
movs r0, 0x2
|
|
b _080096DA
|
|
_080096D8:
|
|
movs r0, 0x7
|
|
_080096DA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800963C
|
|
|
|
thumb_func_start sub_80096E0
|
|
sub_80096E0:
|
|
push {r4-r6,lr}
|
|
ldr r1, _0800978C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
movs r5, 0
|
|
ldr r3, _08009790
|
|
ldr r0, _08009794
|
|
movs r2, 0
|
|
_080096F4:
|
|
stm r1!, {r2}
|
|
adds r5, 0x1
|
|
cmp r5, r3
|
|
bls _080096F4
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
movs r5, 0
|
|
movs r2, 0
|
|
_08009704:
|
|
stm r1!, {r2}
|
|
adds r5, 0x1
|
|
cmp r5, 0xFF
|
|
bls _08009704
|
|
movs r1, 0xE0
|
|
lsls r1, 19
|
|
movs r5, 0
|
|
ldr r2, _08009798
|
|
_08009714:
|
|
stm r1!, {r2}
|
|
adds r5, 0x1
|
|
cmp r5, 0xFF
|
|
bls _08009714
|
|
ldr r4, _0800979C
|
|
adds r1, r4, 0
|
|
bl sub_800A9EC
|
|
adds r6, r0, 0
|
|
ldr r1, [r6, 0x4]
|
|
ldm r1!, {r5}
|
|
ldr r0, _080097A0
|
|
lsls r2, r5, 5
|
|
bl CpuCopy
|
|
adds r0, r6, 0
|
|
bl sub_800AA14
|
|
ldr r0, _080097A4
|
|
adds r1, r4, 0
|
|
bl sub_800A9EC
|
|
adds r6, r0, 0
|
|
ldr r1, [r6, 0x4]
|
|
ldm r1!, {r5}
|
|
ldr r0, _080097A8
|
|
lsls r2, r5, 5
|
|
bl CpuCopy
|
|
adds r0, r6, 0
|
|
bl sub_800AA14
|
|
bl sub_80097B0
|
|
ldr r0, _080097AC
|
|
adds r1, r4, 0
|
|
bl sub_800A9EC
|
|
adds r6, r0, 0
|
|
ldr r4, [r6, 0x4]
|
|
movs r5, 0
|
|
_08009766:
|
|
movs r1, 0xF8
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
adds r1, r4, 0
|
|
bl SetBGPaletteBufferColorArray
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08009766
|
|
adds r0, r6, 0
|
|
bl sub_800AA14
|
|
bl TransferBGPaletteBuffer
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800978C: .4byte gUnknown_203B090
|
|
_08009790: .4byte 0x00005fff
|
|
_08009794: .4byte gUnknown_80B88B0
|
|
_08009798: .4byte 0x00a000a0
|
|
_0800979C: .4byte gUnknown_8300500
|
|
_080097A0: .4byte 0x06004f00
|
|
_080097A4: .4byte gUnknown_80B88B8
|
|
_080097A8: .4byte 0x06017e00
|
|
_080097AC: .4byte gUnknown_80B88C0
|
|
thumb_func_end sub_80096E0
|
|
|
|
thumb_func_start sub_80097B0
|
|
sub_80097B0:
|
|
push {r4-r6,lr}
|
|
ldr r0, _080097F8
|
|
ldr r1, _080097FC
|
|
bl sub_800A9EC
|
|
adds r6, r0, 0
|
|
ldr r4, _08009800
|
|
ldr r1, [r6, 0x4]
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
adds r0, r4, 0
|
|
bl CpuCopy
|
|
bl sub_80063B0
|
|
adds r5, r4, 0
|
|
adds r5, 0x40
|
|
cmp r0, 0x1
|
|
bne _080097D8
|
|
adds r5, r4, 0
|
|
_080097D8:
|
|
movs r4, 0
|
|
_080097DA:
|
|
adds r0, r4, 0
|
|
adds r0, 0xF0
|
|
adds r1, r5, 0
|
|
bl SetBGPaletteBufferColorArray
|
|
adds r5, 0x4
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _080097DA
|
|
adds r0, r6, 0
|
|
bl sub_800AA14
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080097F8: .4byte gUnknown_80B88CC
|
|
_080097FC: .4byte gUnknown_8300500
|
|
_08009800: .4byte gUnknown_202D038
|
|
thumb_func_end sub_80097B0
|
|
|
|
thumb_func_start sub_8009804
|
|
sub_8009804:
|
|
push {lr}
|
|
movs r1, 0xC0
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
ldr r3, _0800987C
|
|
movs r2, 0
|
|
_08009810:
|
|
stm r1!, {r2}
|
|
adds r0, 0x1
|
|
cmp r0, r3
|
|
bls _08009810
|
|
ldr r1, _08009880
|
|
movs r0, 0
|
|
ldr r3, _08009884
|
|
movs r2, 0
|
|
_08009820:
|
|
stm r1!, {r2}
|
|
adds r0, 0x1
|
|
cmp r0, r3
|
|
bls _08009820
|
|
ldr r1, _08009888
|
|
movs r0, 0
|
|
ldr r3, _0800988C
|
|
movs r2, 0
|
|
_08009830:
|
|
stm r1!, {r2}
|
|
adds r0, 0x1
|
|
cmp r0, r3
|
|
bls _08009830
|
|
ldr r1, _08009890
|
|
movs r0, 0
|
|
ldr r3, _08009894
|
|
movs r2, 0
|
|
_08009840:
|
|
stm r1!, {r2}
|
|
adds r0, 0x1
|
|
cmp r0, r3
|
|
bls _08009840
|
|
movs r1, 0xA0
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
movs r2, 0
|
|
_08009850:
|
|
stm r1!, {r2}
|
|
adds r0, 0x1
|
|
cmp r0, 0x77
|
|
bls _08009850
|
|
ldr r1, _08009898
|
|
movs r0, 0
|
|
movs r2, 0
|
|
_0800985E:
|
|
stm r1!, {r2}
|
|
adds r0, 0x1
|
|
cmp r0, 0x77
|
|
bls _0800985E
|
|
movs r1, 0xE0
|
|
lsls r1, 19
|
|
movs r0, 0
|
|
ldr r2, _0800989C
|
|
_0800986E:
|
|
stm r1!, {r2}
|
|
adds r0, 0x1
|
|
cmp r0, 0xFF
|
|
bls _0800986E
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800987C: .4byte 0x000013bf
|
|
_08009880: .4byte 0x06007000
|
|
_08009884: .4byte 0x000003ff
|
|
_08009888: .4byte 0x06008000
|
|
_0800988C: .4byte 0x00001fff
|
|
_08009890: .4byte 0x06010000
|
|
_08009894: .4byte 0x00001f7f
|
|
_08009898: .4byte 0x05000200
|
|
_0800989C: .4byte 0x00a000a0
|
|
thumb_func_end sub_8009804
|
|
|
|
thumb_func_start sub_80098A0
|
|
sub_80098A0:
|
|
ldr r0, _080098B4
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r0, _080098B8
|
|
strb r1, [r0]
|
|
strb r1, [r0, 0x1]
|
|
strb r1, [r0, 0x2]
|
|
strb r1, [r0, 0x3]
|
|
bx lr
|
|
.align 2, 0
|
|
_080098B4: .4byte gUnknown_202D23C
|
|
_080098B8: .4byte gUnknown_202D238
|
|
thumb_func_end sub_80098A0
|
|
|
|
thumb_func_start sub_80098BC
|
|
sub_80098BC:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
ldr r7, _080098F0
|
|
ldr r3, [r7]
|
|
cmp r3, 0x7
|
|
bgt _080098E8
|
|
ldr r2, _080098F4
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
adds r0, r1, r2
|
|
str r4, [r0]
|
|
adds r0, r2, 0x4
|
|
adds r0, r1, r0
|
|
str r5, [r0]
|
|
adds r2, 0x8
|
|
adds r1, r2
|
|
str r6, [r1]
|
|
adds r0, r3, 0x1
|
|
str r0, [r7]
|
|
_080098E8:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080098F0: .4byte gUnknown_202D23C
|
|
_080098F4: .4byte gUnknown_202D240
|
|
thumb_func_end sub_80098BC
|
|
|
|
thumb_func_start sub_80098F8
|
|
sub_80098F8:
|
|
ldr r1, _08009904
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08009904: .4byte gUnknown_202D238
|
|
thumb_func_end sub_80098F8
|
|
|
|
thumb_func_start sub_8009908
|
|
sub_8009908:
|
|
push {r4-r7,lr}
|
|
movs r5, 0
|
|
ldr r0, _08009994
|
|
ldr r0, [r0]
|
|
cmp r5, r0
|
|
bge _08009936
|
|
ldr r4, _08009998
|
|
adds r7, r4, 0
|
|
movs r6, 0
|
|
_0800991A:
|
|
ldr r0, [r4]
|
|
adds r1, r7, 0x4
|
|
adds r1, r6, r1
|
|
ldr r1, [r1]
|
|
ldr r2, [r4, 0x8]
|
|
bl CpuCopy
|
|
adds r4, 0xC
|
|
adds r6, 0xC
|
|
adds r5, 0x1
|
|
ldr r0, _08009994
|
|
ldr r0, [r0]
|
|
cmp r5, r0
|
|
blt _0800991A
|
|
_08009936:
|
|
ldr r0, _08009994
|
|
movs r5, 0
|
|
str r5, [r0]
|
|
ldr r4, _0800999C
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08009952
|
|
strb r5, [r4]
|
|
ldr r0, _080099A0
|
|
ldr r1, _080099A4
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
bl CpuCopy
|
|
_08009952:
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0
|
|
beq _08009966
|
|
strb r5, [r4, 0x1]
|
|
ldr r0, _080099A8
|
|
ldr r1, _080099AC
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
bl CpuCopy
|
|
_08009966:
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
beq _0800997A
|
|
strb r5, [r4, 0x2]
|
|
ldr r0, _080099B0
|
|
ldr r1, _080099B4
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
bl CpuCopy
|
|
_0800997A:
|
|
ldrb r0, [r4, 0x3]
|
|
cmp r0, 0
|
|
beq _0800998E
|
|
strb r5, [r4, 0x3]
|
|
ldr r0, _080099B8
|
|
ldr r1, _080099BC
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
bl CpuCopy
|
|
_0800998E:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08009994: .4byte gUnknown_202D23C
|
|
_08009998: .4byte gUnknown_202D240
|
|
_0800999C: .4byte gUnknown_202D238
|
|
_080099A0: .4byte 0x06006000
|
|
_080099A4: .4byte gUnknown_202B038
|
|
_080099A8: .4byte 0x06006800
|
|
_080099AC: .4byte gUnknown_202B838
|
|
_080099B0: .4byte 0x06007000
|
|
_080099B4: .4byte gUnknown_202C038
|
|
_080099B8: .4byte 0x06007800
|
|
_080099BC: .4byte gUnknown_202C838
|
|
thumb_func_end sub_8009908
|
|
|
|
thumb_func_start sub_80099C0
|
|
sub_80099C0:
|
|
push {r4,r5,lr}
|
|
ldr r0, _080099E4
|
|
ldr r4, _080099E8
|
|
movs r5, 0x80
|
|
lsls r5, 4
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl CpuCopy
|
|
ldr r0, _080099EC
|
|
adds r4, r5
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl CpuCopy
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080099E4: .4byte 0x06006000
|
|
_080099E8: .4byte gUnknown_202B038
|
|
_080099EC: .4byte 0x06006800
|
|
thumb_func_end sub_80099C0
|
|
|
|
thumb_func_start sub_80099F0
|
|
sub_80099F0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _08009A0C
|
|
movs r1, 0x7
|
|
movs r3, 0xE2
|
|
lsls r3, 1
|
|
adds r0, r3
|
|
_080099FE:
|
|
str r2, [r0]
|
|
subs r0, 0x40
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080099FE
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08009A0C: .4byte gUnknown_202D038
|
|
thumb_func_end sub_80099F0
|
|
|
|
thumb_func_start sub_8009A10
|
|
sub_8009A10:
|
|
push {lr}
|
|
ldr r0, [r0, 0x4]
|
|
bl sub_8009A1C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8009A10
|
|
|
|
thumb_func_start sub_8009A1C
|
|
sub_8009A1C:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
ldr r0, _08009A30
|
|
str r3, [r0]
|
|
ldr r3, [r6, 0xC]
|
|
movs r0, 0xC0
|
|
lsls r0, 19
|
|
adds r2, r0
|
|
movs r5, 0
|
|
b _08009A56
|
|
.align 2, 0
|
|
_08009A30: .4byte gUnknown_202D2A0
|
|
_08009A34:
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
ldm r3!, {r0}
|
|
stm r2!, {r0}
|
|
adds r5, 0x1
|
|
_08009A56:
|
|
ldr r0, [r6, 0x8]
|
|
cmp r5, r0
|
|
ble _08009A34
|
|
movs r5, 0
|
|
lsls r4, r1, 6
|
|
_08009A60:
|
|
adds r0, r5, 0
|
|
adds r0, 0xE0
|
|
ldr r1, [r6, 0x10]
|
|
adds r1, r4
|
|
bl SetBGPaletteBufferColorArray
|
|
adds r4, 0x4
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08009A60
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8009A1C
|
|
|
|
thumb_func_start sub_8009A7C
|
|
sub_8009A7C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp]
|
|
adds r5, r1, 0
|
|
str r2, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
ldr r0, [sp, 0x38]
|
|
ldr r3, [sp, 0x40]
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
ldr r0, _08009AB4
|
|
ldr r1, [r0]
|
|
movs r2, 0
|
|
str r2, [sp, 0x10]
|
|
cmp r1, 0
|
|
bne _08009AA8
|
|
movs r7, 0x1
|
|
str r7, [sp, 0x10]
|
|
_08009AA8:
|
|
ldr r1, [sp]
|
|
ldr r0, [r1]
|
|
cmp r5, r0
|
|
blt _08009AB8
|
|
movs r0, 0
|
|
b _08009BCE
|
|
.align 2, 0
|
|
_08009AB4: .4byte gUnknown_202D2A0
|
|
_08009AB8:
|
|
lsls r5, 2
|
|
mov r8, r5
|
|
cmp r4, 0
|
|
beq _08009AFA
|
|
movs r0, 0
|
|
ldr r2, _08009B74
|
|
mov r10, r2
|
|
ldr r4, _08009B78
|
|
mov r9, r4
|
|
ldr r1, [sp, 0x10]
|
|
lsls r7, r1, 1
|
|
_08009ACE:
|
|
ldr r2, [sp, 0x10]
|
|
adds r4, r0, 0x1
|
|
mov r12, r4
|
|
cmp r2, 0x1D
|
|
bgt _08009AF4
|
|
mov r6, r10
|
|
mov r5, r9
|
|
movs r4, 0
|
|
lsls r0, 6
|
|
adds r1, r7, r0
|
|
_08009AE2:
|
|
ldr r0, [r5]
|
|
lsls r0, 11
|
|
adds r0, r1, r0
|
|
adds r0, r6
|
|
strh r4, [r0]
|
|
adds r1, 0x2
|
|
adds r2, 0x1
|
|
cmp r2, 0x1D
|
|
ble _08009AE2
|
|
_08009AF4:
|
|
mov r0, r12
|
|
cmp r0, 0x13
|
|
ble _08009ACE
|
|
_08009AFA:
|
|
ldr r7, [sp]
|
|
ldr r0, [r7, 0x4]
|
|
add r0, r8
|
|
ldr r5, [r0]
|
|
ldrh r0, [r5, 0x4]
|
|
mov r9, r0
|
|
ldrh r1, [r5, 0x6]
|
|
str r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x3C]
|
|
cmp r2, 0
|
|
beq _08009B14
|
|
ldrh r0, [r5, 0x8]
|
|
str r0, [r2]
|
|
_08009B14:
|
|
cmp r3, 0
|
|
beq _08009B28
|
|
ldrh r0, [r5, 0xA]
|
|
strh r0, [r3]
|
|
ldrh r0, [r5, 0xC]
|
|
strh r0, [r3, 0x2]
|
|
ldrh r0, [r5, 0xE]
|
|
strh r0, [r3, 0x4]
|
|
ldrh r0, [r5, 0x10]
|
|
strh r0, [r3, 0x6]
|
|
_08009B28:
|
|
adds r5, 0x14
|
|
ldr r4, [sp, 0x8]
|
|
str r4, [sp, 0x14]
|
|
movs r6, 0
|
|
movs r0, 0
|
|
ldr r7, [sp, 0xC]
|
|
cmp r0, r7
|
|
bge _08009BC4
|
|
cmp r4, 0x13
|
|
bgt _08009BC4
|
|
_08009B3C:
|
|
ldr r3, [sp, 0x4]
|
|
adds r0, 0x1
|
|
mov r12, r0
|
|
ldr r0, [sp, 0x14]
|
|
adds r0, 0x1
|
|
mov r8, r0
|
|
mov r1, r9
|
|
cmp r1, 0
|
|
beq _08009BB4
|
|
ldr r2, _08009B74
|
|
mov r10, r2
|
|
mov r2, r9
|
|
_08009B54:
|
|
cmp r6, 0
|
|
bne _08009B80
|
|
ldrh r1, [r5]
|
|
adds r5, 0x2
|
|
adds r0, r1, 0
|
|
movs r4, 0xF0
|
|
lsls r4, 8
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08009B6E
|
|
ldr r6, _08009B7C
|
|
ands r6, r1
|
|
movs r1, 0
|
|
_08009B6E:
|
|
adds r4, r1, 0
|
|
b _08009B82
|
|
.align 2, 0
|
|
_08009B74: .4byte gUnknown_202B038
|
|
_08009B78: .4byte gUnknown_202D2A0
|
|
_08009B7C: .4byte 0x000003ff
|
|
_08009B80:
|
|
movs r4, 0
|
|
_08009B82:
|
|
cmp r6, 0
|
|
beq _08009B88
|
|
subs r6, 0x1
|
|
_08009B88:
|
|
ldr r7, [sp, 0x10]
|
|
cmp r3, r7
|
|
blt _08009BAC
|
|
cmp r3, 0x1D
|
|
bgt _08009BAC
|
|
ldr r0, [sp, 0x14]
|
|
cmp r0, 0
|
|
blt _08009BAC
|
|
lsls r0, r3, 1
|
|
ldr r7, [sp, 0x14]
|
|
lsls r1, r7, 6
|
|
adds r0, r1
|
|
ldr r7, _08009BE0
|
|
ldr r1, [r7]
|
|
lsls r1, 11
|
|
adds r0, r1
|
|
add r0, r10
|
|
strh r4, [r0]
|
|
_08009BAC:
|
|
subs r2, 0x1
|
|
adds r3, 0x1
|
|
cmp r2, 0
|
|
bne _08009B54
|
|
_08009BB4:
|
|
mov r0, r12
|
|
mov r1, r8
|
|
str r1, [sp, 0x14]
|
|
ldr r2, [sp, 0xC]
|
|
cmp r0, r2
|
|
bge _08009BC4
|
|
cmp r1, 0x13
|
|
ble _08009B3C
|
|
_08009BC4:
|
|
ldr r4, _08009BE0
|
|
ldr r0, [r4]
|
|
bl sub_80098F8
|
|
movs r0, 0x1
|
|
_08009BCE:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08009BE0: .4byte gUnknown_202D2A0
|
|
thumb_func_end sub_8009A7C
|
|
|
|
thumb_func_start sub_8009BE4
|
|
sub_8009BE4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0x20
|
|
mov r12, r0
|
|
ldr r0, _08009C54
|
|
ldr r1, [r0]
|
|
movs r2, 0
|
|
mov r10, r2
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
bne _08009C04
|
|
movs r7, 0x1
|
|
mov r10, r7
|
|
_08009C04:
|
|
movs r0, 0
|
|
mov r1, r10
|
|
lsls r1, 1
|
|
mov r8, r1
|
|
_08009C0C:
|
|
mov r1, r10
|
|
adds r3, r0, 0x1
|
|
cmp r1, r12
|
|
bge _08009C36
|
|
ldr r6, _08009C58
|
|
ldr r5, _08009C54
|
|
movs r4, 0
|
|
lsls r0, 6
|
|
mov r7, r8
|
|
adds r2, r7, r0
|
|
mov r0, r12
|
|
subs r1, r0, r1
|
|
_08009C24:
|
|
ldr r0, [r5]
|
|
lsls r0, 11
|
|
adds r0, r2, r0
|
|
adds r0, r6
|
|
strh r4, [r0]
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _08009C24
|
|
_08009C36:
|
|
adds r0, r3, 0
|
|
cmp r0, 0x1F
|
|
ble _08009C0C
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
bl sub_80098F8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08009C54: .4byte gUnknown_202D2A0
|
|
_08009C58: .4byte gUnknown_202B038
|
|
thumb_func_end sub_8009BE4
|
|
|
|
thumb_func_start sub_8009C5C
|
|
sub_8009C5C:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
cmp r1, 0xFF
|
|
ble _08009C6C
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
b _08009C72
|
|
_08009C6C:
|
|
ldr r0, _08009C78
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
_08009C72:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08009C78: .4byte gUnknown_80B88E4
|
|
thumb_func_end sub_8009C5C
|
|
|
|
thumb_func_start sub_8009C7C
|
|
sub_8009C7C:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r3, 0xC0
|
|
lsls r3, 4
|
|
adds r1, r2, 0
|
|
ands r1, r3
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
beq _08009CB8
|
|
cmp r1, r0
|
|
bgt _08009C9A
|
|
cmp r1, 0
|
|
beq _08009CA8
|
|
b _08009CFC
|
|
_08009C9A:
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
beq _08009CD0
|
|
cmp r1, r3
|
|
beq _08009CE0
|
|
b _08009CFC
|
|
_08009CA8:
|
|
ldr r0, _08009CB0
|
|
ldr r1, _08009CB4
|
|
ands r1, r2
|
|
b _08009CBE
|
|
.align 2, 0
|
|
_08009CB0: .4byte gUnknown_80B8AE4
|
|
_08009CB4: .4byte 0x000003ff
|
|
_08009CB8:
|
|
ldr r0, _08009CC8
|
|
ldr r1, _08009CCC
|
|
bics r1, r2
|
|
_08009CBE:
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
b _08009CFE
|
|
.align 2, 0
|
|
_08009CC8: .4byte gUnknown_80B8AE4
|
|
_08009CCC: .4byte 0x000003ff
|
|
_08009CD0:
|
|
ldr r0, _08009CD8
|
|
ldr r1, _08009CDC
|
|
ands r1, r2
|
|
b _08009CE6
|
|
.align 2, 0
|
|
_08009CD8: .4byte gUnknown_80B8AE4
|
|
_08009CDC: .4byte 0x000003ff
|
|
_08009CE0:
|
|
ldr r0, _08009CF4
|
|
ldr r1, _08009CF8
|
|
bics r1, r2
|
|
_08009CE6:
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
b _08009CFE
|
|
.align 2, 0
|
|
_08009CF4: .4byte gUnknown_80B8AE4
|
|
_08009CF8: .4byte 0x000003ff
|
|
_08009CFC:
|
|
movs r0, 0
|
|
_08009CFE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009C7C
|
|
|
|
thumb_func_start sub_8009D04
|
|
sub_8009D04:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r3, 0xC0
|
|
lsls r3, 4
|
|
adds r1, r2, 0
|
|
ands r1, r3
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
beq _08009D40
|
|
cmp r1, r0
|
|
bgt _08009D22
|
|
cmp r1, 0
|
|
beq _08009D30
|
|
b _08009D84
|
|
_08009D22:
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
beq _08009D50
|
|
cmp r1, r3
|
|
beq _08009D6C
|
|
b _08009D84
|
|
_08009D30:
|
|
ldr r0, _08009D38
|
|
ldr r1, _08009D3C
|
|
bics r1, r2
|
|
b _08009D72
|
|
.align 2, 0
|
|
_08009D38: .4byte gUnknown_80B8AE4
|
|
_08009D3C: .4byte 0x000003ff
|
|
_08009D40:
|
|
ldr r0, _08009D48
|
|
ldr r1, _08009D4C
|
|
ands r1, r2
|
|
b _08009D56
|
|
.align 2, 0
|
|
_08009D48: .4byte gUnknown_80B8AE4
|
|
_08009D4C: .4byte 0x000003ff
|
|
_08009D50:
|
|
ldr r0, _08009D64
|
|
ldr r1, _08009D68
|
|
bics r1, r2
|
|
_08009D56:
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
negs r0, r0
|
|
b _08009D86
|
|
.align 2, 0
|
|
_08009D64: .4byte gUnknown_80B8AE4
|
|
_08009D68: .4byte 0x000003ff
|
|
_08009D6C:
|
|
ldr r0, _08009D7C
|
|
ldr r1, _08009D80
|
|
ands r1, r2
|
|
_08009D72:
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
b _08009D86
|
|
.align 2, 0
|
|
_08009D7C: .4byte gUnknown_80B8AE4
|
|
_08009D80: .4byte 0x000003ff
|
|
_08009D84:
|
|
movs r0, 0
|
|
_08009D86:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009D04
|
|
|
|
thumb_func_start sub_8009D8C
|
|
sub_8009D8C:
|
|
push {lr}
|
|
cmp r0, r2
|
|
bcc _08009D9A
|
|
cmp r0, r2
|
|
bhi _08009D9E
|
|
cmp r1, r3
|
|
bcs _08009D9E
|
|
_08009D9A:
|
|
movs r0, 0x1
|
|
b _08009DA0
|
|
_08009D9E:
|
|
movs r0, 0
|
|
_08009DA0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009D8C
|
|
|
|
thumb_func_start sub_8009DA4
|
|
sub_8009DA4:
|
|
push {r4,r5,lr}
|
|
lsrs r2, r0, 31
|
|
adds r5, r2, 0
|
|
lsrs r3, r1, 31
|
|
adds r4, r3, 0
|
|
cmp r0, 0
|
|
beq _08009DB6
|
|
cmp r1, 0
|
|
bne _08009DBA
|
|
_08009DB6:
|
|
movs r0, 0
|
|
b _08009DD0
|
|
_08009DBA:
|
|
cmp r2, 0
|
|
beq _08009DC0
|
|
negs r0, r0
|
|
_08009DC0:
|
|
cmp r3, 0
|
|
beq _08009DC6
|
|
negs r1, r1
|
|
_08009DC6:
|
|
bl sub_8009E14
|
|
cmp r5, r4
|
|
beq _08009DD0
|
|
negs r0, r0
|
|
_08009DD0:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009DA4
|
|
|
|
thumb_func_start sub_8009DD8
|
|
sub_8009DD8:
|
|
push {r4,r5,lr}
|
|
lsrs r2, r0, 31
|
|
adds r5, r2, 0
|
|
lsrs r3, r1, 31
|
|
adds r4, r3, 0
|
|
cmp r1, 0
|
|
bne _08009DF0
|
|
ldr r0, _08009DEC
|
|
b _08009E0E
|
|
.align 2, 0
|
|
_08009DEC: .4byte 0x7fffffff
|
|
_08009DF0:
|
|
cmp r0, 0
|
|
bne _08009DF8
|
|
movs r0, 0
|
|
b _08009E0E
|
|
_08009DF8:
|
|
cmp r2, 0
|
|
beq _08009DFE
|
|
negs r0, r0
|
|
_08009DFE:
|
|
cmp r3, 0
|
|
beq _08009E04
|
|
negs r1, r1
|
|
_08009E04:
|
|
bl sub_8009EA0
|
|
cmp r5, r4
|
|
beq _08009E0E
|
|
negs r0, r0
|
|
_08009E0E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009DD8
|
|
|
|
thumb_func_start sub_8009E14
|
|
sub_8009E14:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
cmp r0, 0
|
|
beq _08009E24
|
|
cmp r1, 0
|
|
bne _08009E28
|
|
_08009E24:
|
|
movs r0, 0
|
|
b _08009E94
|
|
_08009E28:
|
|
movs r5, 0
|
|
adds r3, r0, 0
|
|
mov r12, r5
|
|
movs r6, 0
|
|
movs r4, 0
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
mov r8, r0
|
|
movs r7, 0x3F
|
|
mov r9, r7
|
|
_08009E3C:
|
|
adds r2, r4, 0
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08009E50
|
|
adds r4, r3
|
|
adds r6, r5
|
|
cmp r2, r4
|
|
bls _08009E50
|
|
adds r6, 0x1
|
|
_08009E50:
|
|
lsrs r1, 1
|
|
movs r2, 0x1
|
|
mov r0, r12
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08009E60
|
|
mov r0, r8
|
|
orrs r1, r0
|
|
_08009E60:
|
|
mov r7, r12
|
|
lsrs r7, 1
|
|
mov r12, r7
|
|
lsls r5, 1
|
|
adds r0, r3, 0
|
|
mov r7, r8
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _08009E74
|
|
orrs r5, r2
|
|
_08009E74:
|
|
lsls r3, 1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
mov r7, r9
|
|
cmp r7, 0
|
|
bge _08009E3C
|
|
lsrs r1, r4, 7
|
|
ands r1, r2
|
|
lsrs r4, 8
|
|
lsls r0, r6, 24
|
|
orrs r4, r0
|
|
cmp r1, 0
|
|
beq _08009E92
|
|
adds r4, 0x1
|
|
_08009E92:
|
|
adds r0, r4, 0
|
|
_08009E94:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009E14
|
|
|
|
thumb_func_start sub_8009EA0
|
|
sub_8009EA0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
cmp r1, 0
|
|
bne _08009EB8
|
|
ldr r0, _08009EB4
|
|
b _08009F58
|
|
.align 2, 0
|
|
_08009EB4: .4byte 0x7fffffff
|
|
_08009EB8:
|
|
cmp r0, 0
|
|
bne _08009EC0
|
|
movs r0, 0
|
|
b _08009F58
|
|
_08009EC0:
|
|
lsrs r7, r0, 24
|
|
lsls r6, r0, 8
|
|
mov r10, r1
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r5, 0
|
|
movs r4, 0
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
movs r2, 0x3F
|
|
str r2, [sp]
|
|
_08009ED6:
|
|
lsls r5, 1
|
|
adds r0, r4, 0
|
|
movs r1, 0x80
|
|
lsls r1, 24
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08009EE8
|
|
mov r2, r8
|
|
orrs r5, r2
|
|
_08009EE8:
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
lsls r4, 1
|
|
adds r0, r7, 0
|
|
movs r2, 0x80
|
|
lsls r2, 24
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08009EFE
|
|
mov r0, r8
|
|
orrs r4, r0
|
|
_08009EFE:
|
|
lsls r7, 1
|
|
adds r0, r6, 0
|
|
movs r2, 0x80
|
|
lsls r2, 24
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08009F10
|
|
mov r0, r8
|
|
orrs r7, r0
|
|
_08009F10:
|
|
lsls r6, 1
|
|
ands r6, r1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
mov r3, r10
|
|
bl sub_8009D8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08009F3A
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
mov r2, r10
|
|
subs r4, r2
|
|
movs r2, 0
|
|
subs r5, r2
|
|
cmp r0, r4
|
|
bcs _08009F3C
|
|
subs r5, 0x1
|
|
b _08009F3C
|
|
_08009F3A:
|
|
movs r1, 0
|
|
_08009F3C:
|
|
mov r0, r9
|
|
lsls r0, 1
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
beq _08009F4C
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
mov r9, r0
|
|
_08009F4C:
|
|
ldr r2, [sp]
|
|
subs r2, 0x1
|
|
str r2, [sp]
|
|
cmp r2, 0
|
|
bge _08009ED6
|
|
mov r0, r9
|
|
_08009F58:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009EA0
|
|
|
|
thumb_func_start sub_8009F68
|
|
sub_8009F68:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r4, r6, 0
|
|
cmp r6, 0
|
|
bge _08009F76
|
|
negs r4, r6
|
|
_08009F76:
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
cmp r4, 0
|
|
beq _08009FA0
|
|
_08009F7E:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _08009F90
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_8009DA4
|
|
adds r7, r0, 0
|
|
_08009F90:
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
bl sub_8009DA4
|
|
adds r5, r0, 0
|
|
asrs r4, 1
|
|
cmp r4, 0
|
|
bne _08009F7E
|
|
_08009FA0:
|
|
cmp r6, 0
|
|
bge _08009FB0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r1, r7, 0
|
|
bl sub_8009DD8
|
|
b _08009FB2
|
|
_08009FB0:
|
|
adds r0, r7, 0
|
|
_08009FB2:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009F68
|
|
|
|
thumb_func_start sub_8009FB8
|
|
sub_8009FB8:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
cmp r5, 0
|
|
bge _08009FC4
|
|
negs r5, r5
|
|
_08009FC4:
|
|
cmp r6, 0
|
|
bge _08009FCA
|
|
negs r6, r6
|
|
_08009FCA:
|
|
cmp r5, r6
|
|
bge _08009FD4
|
|
adds r4, r5, 0
|
|
adds r5, r6, 0
|
|
adds r6, r4, 0
|
|
_08009FD4:
|
|
cmp r6, 0
|
|
beq _0800A016
|
|
movs r7, 0x2
|
|
_08009FDA:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8009DD8
|
|
adds r4, r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_8009DA4
|
|
adds r4, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
adds r1, r4, r0
|
|
adds r0, r4, 0
|
|
bl sub_8009DD8
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_8009DA4
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_8009DA4
|
|
adds r6, r0, 0
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _08009FDA
|
|
_0800A016:
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8009FB8
|
|
|
|
thumb_func_start sub_800A020
|
|
sub_800A020:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
ldr r4, _0800A044
|
|
lsrs r2, r1, 16
|
|
str r2, [r3]
|
|
lsls r0, r1, 16
|
|
str r0, [r3, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800A03C
|
|
orrs r2, r4
|
|
str r2, [r3]
|
|
_0800A03C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800A044: .4byte 0xffff0000
|
|
thumb_func_end sub_800A020
|
|
|
|
thumb_func_start sub_800A048
|
|
sub_800A048:
|
|
push {lr}
|
|
ldrh r1, [r0]
|
|
lsls r2, r1, 16
|
|
ldr r0, [r0, 0x4]
|
|
lsrs r1, r0, 16
|
|
orrs r2, r1
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800A060
|
|
adds r2, 0x1
|
|
_0800A060:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A048
|
|
|
|
thumb_func_start sub_800A068
|
|
sub_800A068:
|
|
push {lr}
|
|
ldrb r1, [r0]
|
|
lsls r2, r1, 24
|
|
ldr r0, [r0, 0x4]
|
|
lsrs r1, r0, 8
|
|
orrs r2, r1
|
|
movs r1, 0x80
|
|
lsls r1, 8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800A080
|
|
adds r2, 0x1
|
|
_0800A080:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A068
|
|
|
|
thumb_func_start sub_800A088
|
|
sub_800A088:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
lsls r0, r1, 8
|
|
str r0, [r2, 0x4]
|
|
asrs r1, 24
|
|
str r1, [r2]
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800A0A4
|
|
movs r0, 0x80
|
|
negs r0, r0
|
|
orrs r1, r0
|
|
b _0800A0A8
|
|
_0800A0A4:
|
|
movs r0, 0x7F
|
|
ands r1, r0
|
|
_0800A0A8:
|
|
str r1, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A088
|
|
|
|
thumb_func_start sub_800A0B0
|
|
sub_800A0B0:
|
|
push {lr}
|
|
ldr r2, [r0, 0x4]
|
|
ldr r3, [r0]
|
|
cmp r2, 0
|
|
bne _0800A0C2
|
|
cmp r3, 0
|
|
bne _0800A0C2
|
|
movs r0, 0
|
|
b _0800A254
|
|
_0800A0C2:
|
|
cmp r2, 0
|
|
ble _0800A18C
|
|
cmp r3, 0
|
|
ble _0800A124
|
|
cmp r2, r3
|
|
bge _0800A0F0
|
|
asrs r1, r3, 8
|
|
cmp r1, 0
|
|
beq _0800A0FE
|
|
adds r0, r2, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A0E2
|
|
movs r2, 0xFF
|
|
_0800A0E2:
|
|
ldr r0, _0800A0EC
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
b _0800A252
|
|
.align 2, 0
|
|
_0800A0EC: .4byte gUnknown_80B92E4
|
|
_0800A0F0:
|
|
adds r1, r2, 0
|
|
cmp r2, 0
|
|
bge _0800A0F8
|
|
adds r1, 0xFF
|
|
_0800A0F8:
|
|
asrs r1, 8
|
|
cmp r1, 0
|
|
bne _0800A104
|
|
_0800A0FE:
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
b _0800A254
|
|
_0800A104:
|
|
adds r0, r3, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A112
|
|
movs r2, 0xFF
|
|
_0800A112:
|
|
ldr r1, _0800A120
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x40
|
|
b _0800A250
|
|
.align 2, 0
|
|
_0800A120: .4byte gUnknown_80B92E4
|
|
_0800A124:
|
|
negs r3, r3
|
|
cmp r2, r3
|
|
bge _0800A158
|
|
adds r1, r3, 0
|
|
cmp r3, 0
|
|
bge _0800A132
|
|
adds r1, 0xFF
|
|
_0800A132:
|
|
asrs r1, 8
|
|
cmp r1, 0
|
|
beq _0800A166
|
|
adds r0, r2, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A146
|
|
movs r2, 0xFF
|
|
_0800A146:
|
|
ldr r1, _0800A154
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
b _0800A250
|
|
.align 2, 0
|
|
_0800A154: .4byte gUnknown_80B92E4
|
|
_0800A158:
|
|
adds r1, r2, 0
|
|
cmp r2, 0
|
|
bge _0800A160
|
|
adds r1, 0xFF
|
|
_0800A160:
|
|
asrs r1, 8
|
|
cmp r1, 0
|
|
bne _0800A16C
|
|
_0800A166:
|
|
movs r0, 0xC0
|
|
lsls r0, 3
|
|
b _0800A254
|
|
_0800A16C:
|
|
adds r0, r3, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A17A
|
|
movs r2, 0xFF
|
|
_0800A17A:
|
|
ldr r0, _0800A188
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
adds r0, 0x40
|
|
b _0800A252
|
|
.align 2, 0
|
|
_0800A188: .4byte gUnknown_80B92E4
|
|
_0800A18C:
|
|
negs r2, r2
|
|
cmp r3, 0
|
|
ble _0800A1F0
|
|
cmp r2, r3
|
|
bge _0800A1BC
|
|
asrs r1, r3, 8
|
|
cmp r1, 0
|
|
beq _0800A1CA
|
|
adds r0, r2, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A1AA
|
|
movs r2, 0xFF
|
|
_0800A1AA:
|
|
ldr r1, _0800A1B8
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
b _0800A250
|
|
.align 2, 0
|
|
_0800A1B8: .4byte gUnknown_80B92E4
|
|
_0800A1BC:
|
|
adds r1, r2, 0
|
|
cmp r2, 0
|
|
bge _0800A1C4
|
|
adds r1, 0xFF
|
|
_0800A1C4:
|
|
asrs r1, 8
|
|
cmp r1, 0
|
|
bne _0800A1D0
|
|
_0800A1CA:
|
|
movs r0, 0xE0
|
|
lsls r0, 4
|
|
b _0800A254
|
|
_0800A1D0:
|
|
adds r0, r3, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A1DE
|
|
movs r2, 0xFF
|
|
_0800A1DE:
|
|
ldr r0, _0800A1EC
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
adds r0, 0xC0
|
|
b _0800A252
|
|
.align 2, 0
|
|
_0800A1EC: .4byte gUnknown_80B92E4
|
|
_0800A1F0:
|
|
negs r3, r3
|
|
cmp r2, r3
|
|
bge _0800A224
|
|
adds r1, r3, 0
|
|
cmp r3, 0
|
|
bge _0800A1FE
|
|
adds r1, 0xFF
|
|
_0800A1FE:
|
|
asrs r1, 8
|
|
cmp r1, 0
|
|
beq _0800A232
|
|
adds r0, r2, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A212
|
|
movs r2, 0xFF
|
|
_0800A212:
|
|
ldr r0, _0800A220
|
|
lsls r1, r2, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
adds r0, 0x80
|
|
b _0800A252
|
|
.align 2, 0
|
|
_0800A220: .4byte gUnknown_80B92E4
|
|
_0800A224:
|
|
adds r0, r2, 0
|
|
cmp r0, 0
|
|
bge _0800A22C
|
|
adds r0, 0xFF
|
|
_0800A22C:
|
|
asrs r1, r0, 8
|
|
cmp r1, 0
|
|
bne _0800A238
|
|
_0800A232:
|
|
movs r0, 0xA0
|
|
lsls r0, 4
|
|
b _0800A254
|
|
_0800A238:
|
|
adds r0, r3, 0
|
|
bl __divsi3
|
|
adds r2, r0, 0
|
|
cmp r2, 0xFF
|
|
ble _0800A246
|
|
movs r2, 0xFF
|
|
_0800A246:
|
|
ldr r1, _0800A258
|
|
lsls r0, r2, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0xC0
|
|
_0800A250:
|
|
subs r0, r1
|
|
_0800A252:
|
|
lsls r0, 4
|
|
_0800A254:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0800A258: .4byte gUnknown_80B92E4
|
|
thumb_func_end sub_800A0B0
|
|
|
|
thumb_func_start sub_800A25C
|
|
sub_800A25C:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, [r1]
|
|
mvns r2, r0
|
|
str r2, [r1]
|
|
ldr r0, [r1, 0x4]
|
|
mvns r0, r0
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _0800A276
|
|
adds r0, r2, 0x1
|
|
str r0, [r1]
|
|
_0800A276:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A25C
|
|
|
|
thumb_func_start sub_800A27C
|
|
sub_800A27C:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bge _0800A29A
|
|
mvns r2, r0
|
|
str r2, [r1]
|
|
ldr r0, [r1, 0x4]
|
|
mvns r0, r0
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _0800A29A
|
|
adds r0, r2, 0x1
|
|
str r0, [r1]
|
|
_0800A29A:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A27C
|
|
|
|
thumb_func_start sub_800A2A0
|
|
sub_800A2A0:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _0800A2B4
|
|
ldr r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _0800A2B4
|
|
movs r0, 0x1
|
|
b _0800A2B6
|
|
_0800A2B4:
|
|
movs r0, 0
|
|
_0800A2B6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A2A0
|
|
|
|
thumb_func_start sub_800A2BC
|
|
sub_800A2BC:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
ldr r1, [r2]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bne _0800A2D6
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r3, 0x4]
|
|
cmp r1, r0
|
|
bne _0800A2D6
|
|
movs r0, 0x1
|
|
b _0800A2D8
|
|
_0800A2D6:
|
|
movs r0, 0
|
|
_0800A2D8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A2BC
|
|
|
|
thumb_func_start sub_800A2DC
|
|
sub_800A2DC:
|
|
push {lr}
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
blt _0800A2E8
|
|
movs r0, 0
|
|
b _0800A2EA
|
|
_0800A2E8:
|
|
movs r0, 0x1
|
|
_0800A2EA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A2DC
|
|
|
|
thumb_func_start sub_800A2F0
|
|
sub_800A2F0:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r4, [r3]
|
|
lsrs r1, r4, 31
|
|
ldr r5, [r2]
|
|
cmp r5, 0
|
|
bge _0800A304
|
|
movs r0, 0x2
|
|
orrs r1, r0
|
|
_0800A304:
|
|
cmp r1, 0x1
|
|
beq _0800A326
|
|
cmp r1, 0x1
|
|
ble _0800A314
|
|
cmp r1, 0x2
|
|
beq _0800A32A
|
|
cmp r1, 0x3
|
|
beq _0800A32E
|
|
_0800A314:
|
|
ldr r1, [r3, 0x4]
|
|
ldr r3, [r2, 0x4]
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8009D8C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0800A346
|
|
_0800A326:
|
|
movs r0, 0x1
|
|
b _0800A346
|
|
_0800A32A:
|
|
movs r0, 0
|
|
b _0800A346
|
|
_0800A32E:
|
|
ldr r1, [r3, 0x4]
|
|
ldr r3, [r2, 0x4]
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_8009D8C
|
|
movs r1, 0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800A344
|
|
movs r1, 0x1
|
|
_0800A344:
|
|
adds r0, r1, 0
|
|
_0800A346:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A2F0
|
|
|
|
thumb_func_start sub_800A34C
|
|
sub_800A34C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
adds r6, r0, 0
|
|
ldr r0, [r1]
|
|
str r0, [sp]
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [r2]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [r2, 0x4]
|
|
add r5, sp, 0x8
|
|
str r0, [r5, 0x4]
|
|
mov r0, sp
|
|
bl sub_800A2DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r10, r8
|
|
adds r0, r5, 0
|
|
bl sub_800A2DC
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r9, r7
|
|
mov r0, sp
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0800A39A
|
|
movs r0, 0
|
|
str r0, [r6]
|
|
b _0800A3DE
|
|
_0800A39A:
|
|
adds r0, r5, 0
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800A3AC
|
|
str r4, [r6]
|
|
str r4, [r6, 0x4]
|
|
b _0800A3E0
|
|
_0800A3AC:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0800A3B8
|
|
mov r0, sp
|
|
bl sub_800A25C
|
|
_0800A3B8:
|
|
cmp r7, 0
|
|
beq _0800A3C2
|
|
adds r0, r5, 0
|
|
bl sub_800A25C
|
|
_0800A3C2:
|
|
add r4, sp, 0x10
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_800A4E4
|
|
cmp r10, r9
|
|
beq _0800A3D8
|
|
adds r0, r4, 0
|
|
bl sub_800A25C
|
|
_0800A3D8:
|
|
ldr r0, [sp, 0x10]
|
|
str r0, [r6]
|
|
ldr r0, [r4, 0x4]
|
|
_0800A3DE:
|
|
str r0, [r6, 0x4]
|
|
_0800A3E0:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A34C
|
|
|
|
thumb_func_start sub_800A3F0
|
|
sub_800A3F0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
adds r6, r0, 0
|
|
ldr r0, [r1]
|
|
str r0, [sp]
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [r2]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [r2, 0x4]
|
|
add r5, sp, 0x8
|
|
str r0, [r5, 0x4]
|
|
mov r0, sp
|
|
bl sub_800A2DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r10, r8
|
|
adds r0, r5, 0
|
|
bl sub_800A2DC
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
mov r9, r7
|
|
adds r0, r5, 0
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0800A448
|
|
ldr r0, _0800A444
|
|
str r0, [r6]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0800A48C
|
|
.align 2, 0
|
|
_0800A444: .4byte 0x7fffffff
|
|
_0800A448:
|
|
mov r0, sp
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800A45A
|
|
str r4, [r6]
|
|
str r4, [r6, 0x4]
|
|
b _0800A48E
|
|
_0800A45A:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _0800A466
|
|
mov r0, sp
|
|
bl sub_800A25C
|
|
_0800A466:
|
|
cmp r7, 0
|
|
beq _0800A470
|
|
adds r0, r5, 0
|
|
bl sub_800A25C
|
|
_0800A470:
|
|
add r4, sp, 0x10
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_800A5A4
|
|
cmp r10, r9
|
|
beq _0800A486
|
|
adds r0, r4, 0
|
|
bl sub_800A25C
|
|
_0800A486:
|
|
ldr r0, [sp, 0x10]
|
|
str r0, [r6]
|
|
ldr r0, [r4, 0x4]
|
|
_0800A48C:
|
|
str r0, [r6, 0x4]
|
|
_0800A48E:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A3F0
|
|
|
|
thumb_func_start sub_800A4A0
|
|
sub_800A4A0:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
ldr r0, [r5]
|
|
str r0, [sp]
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp, 0x4]
|
|
mov r0, sp
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800A4C0
|
|
movs r0, 0
|
|
str r0, [r5]
|
|
b _0800A4D8
|
|
_0800A4C0:
|
|
mov r0, sp
|
|
bl sub_800A27C
|
|
add r4, sp, 0x8
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
mov r2, sp
|
|
bl sub_800A4E4
|
|
ldr r0, [sp, 0x8]
|
|
str r0, [r5]
|
|
ldr r0, [r4, 0x4]
|
|
_0800A4D8:
|
|
str r0, [r5, 0x4]
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A4A0
|
|
|
|
thumb_func_start sub_800A4E4
|
|
sub_800A4E4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r8, r0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r0, r5, 0
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0800A50C
|
|
movs r0, 0
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
str r0, [r1, 0x4]
|
|
b _0800A596
|
|
_0800A50C:
|
|
adds r0, r6, 0
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800A520
|
|
mov r7, r8
|
|
str r4, [r7]
|
|
str r4, [r7, 0x4]
|
|
b _0800A596
|
|
_0800A520:
|
|
ldr r1, [r5]
|
|
ldr r4, [r5, 0x4]
|
|
ldr r0, [r6]
|
|
mov r10, r0
|
|
ldr r2, [r6, 0x4]
|
|
movs r6, 0
|
|
movs r5, 0
|
|
movs r7, 0x80
|
|
lsls r7, 24
|
|
mov r9, r7
|
|
movs r0, 0x3F
|
|
mov r12, r0
|
|
_0800A538:
|
|
adds r3, r5, 0
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0800A54C
|
|
adds r5, r4
|
|
adds r6, r1
|
|
cmp r3, r5
|
|
bls _0800A54C
|
|
adds r6, 0x1
|
|
_0800A54C:
|
|
lsrs r2, 1
|
|
movs r3, 0x1
|
|
mov r0, r10
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0800A55C
|
|
mov r7, r9
|
|
orrs r2, r7
|
|
_0800A55C:
|
|
mov r0, r10
|
|
lsrs r0, 1
|
|
mov r10, r0
|
|
lsls r1, 1
|
|
adds r0, r4, 0
|
|
mov r7, r9
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _0800A570
|
|
orrs r1, r3
|
|
_0800A570:
|
|
lsls r4, 1
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r12, r0
|
|
mov r7, r12
|
|
cmp r7, 0
|
|
bge _0800A538
|
|
lsrs r1, r5, 15
|
|
ands r1, r3
|
|
lsrs r5, 16
|
|
lsls r0, r6, 16
|
|
orrs r5, r0
|
|
lsrs r6, 16
|
|
cmp r1, 0
|
|
beq _0800A590
|
|
adds r5, 0x1
|
|
_0800A590:
|
|
mov r0, r8
|
|
str r6, [r0]
|
|
str r5, [r0, 0x4]
|
|
_0800A596:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A4E4
|
|
|
|
thumb_func_start sub_800A5A4
|
|
sub_800A5A4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
str r0, [sp]
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
mov r0, r8
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _0800A5D8
|
|
ldr r0, _0800A5D4
|
|
ldr r1, [sp]
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r1, 0x4]
|
|
b _0800A6BE
|
|
.align 2, 0
|
|
_0800A5D4: .4byte 0x7fffffff
|
|
_0800A5D8:
|
|
adds r0, r5, 0
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0800A5EC
|
|
ldr r2, [sp]
|
|
str r4, [r2]
|
|
str r4, [r2, 0x4]
|
|
b _0800A6BE
|
|
_0800A5EC:
|
|
ldr r0, [r5]
|
|
lsls r7, r0, 16
|
|
ldr r1, [r5, 0x4]
|
|
lsrs r0, r1, 16
|
|
orrs r7, r0
|
|
lsls r6, r1, 16
|
|
movs r0, 0x80
|
|
lsls r0, 8
|
|
orrs r6, r0
|
|
mov r0, r8
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x4]
|
|
mov r1, r8
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [sp, 0x8]
|
|
movs r2, 0
|
|
str r2, [sp, 0xC]
|
|
mov r9, r2
|
|
movs r5, 0
|
|
movs r4, 0
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
mov r10, r0
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
movs r2, 0x3F
|
|
str r2, [sp, 0x10]
|
|
_0800A622:
|
|
lsls r5, 1
|
|
adds r0, r4, 0
|
|
mov r1, r10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800A632
|
|
mov r2, r8
|
|
orrs r5, r2
|
|
_0800A632:
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
lsls r4, 1
|
|
adds r0, r7, 0
|
|
mov r2, r10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0800A646
|
|
mov r0, r8
|
|
orrs r4, r0
|
|
_0800A646:
|
|
lsls r7, 1
|
|
adds r0, r6, 0
|
|
mov r2, r10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0800A656
|
|
mov r0, r8
|
|
orrs r7, r0
|
|
_0800A656:
|
|
lsls r6, 1
|
|
ands r6, r1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, [sp, 0x4]
|
|
ldr r3, [sp, 0x8]
|
|
bl sub_8009D8C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800A680
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
ldr r2, [sp, 0x8]
|
|
subs r4, r2
|
|
ldr r2, [sp, 0x4]
|
|
subs r5, r2
|
|
cmp r0, r4
|
|
bcs _0800A682
|
|
subs r5, 0x1
|
|
b _0800A682
|
|
_0800A680:
|
|
movs r1, 0
|
|
_0800A682:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 1
|
|
str r0, [sp, 0xC]
|
|
mov r0, r9
|
|
mov r2, r10
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0800A69A
|
|
ldr r0, [sp, 0xC]
|
|
mov r2, r8
|
|
orrs r0, r2
|
|
str r0, [sp, 0xC]
|
|
_0800A69A:
|
|
mov r0, r9
|
|
lsls r0, 1
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
beq _0800A6AA
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
mov r9, r0
|
|
_0800A6AA:
|
|
ldr r2, [sp, 0x10]
|
|
subs r2, 0x1
|
|
str r2, [sp, 0x10]
|
|
cmp r2, 0
|
|
bge _0800A622
|
|
ldr r0, [sp, 0xC]
|
|
ldr r1, [sp]
|
|
str r0, [r1]
|
|
mov r2, r9
|
|
str r2, [r1, 0x4]
|
|
_0800A6BE:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A5A4
|
|
|
|
thumb_func_start sub_800A6D0
|
|
sub_800A6D0:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r3, [r1]
|
|
ldr r0, [r2]
|
|
adds r3, r0
|
|
ldr r1, [r1, 0x4]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1, r0
|
|
cmp r0, r1
|
|
bcs _0800A6E6
|
|
adds r3, 0x1
|
|
_0800A6E6:
|
|
str r3, [r4]
|
|
str r0, [r4, 0x4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A6D0
|
|
|
|
thumb_func_start sub_800A6F0
|
|
sub_800A6F0:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r3, [r1]
|
|
ldr r0, [r2]
|
|
subs r3, r0
|
|
ldr r1, [r1, 0x4]
|
|
ldr r0, [r2, 0x4]
|
|
subs r0, r1, r0
|
|
cmp r0, r1
|
|
bls _0800A706
|
|
subs r3, 0x1
|
|
_0800A706:
|
|
str r3, [r4]
|
|
str r0, [r4, 0x4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A6F0
|
|
|
|
thumb_func_start sub_800A710
|
|
sub_800A710:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x18
|
|
mov r8, r0
|
|
adds r6, r2, 0
|
|
ldr r0, [r1]
|
|
str r0, [sp]
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [sp, 0x4]
|
|
adds r4, r6, 0
|
|
cmp r6, 0
|
|
bge _0800A72C
|
|
negs r4, r6
|
|
_0800A72C:
|
|
movs r0, 0
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
add r0, sp, 0x8
|
|
str r1, [r0, 0x4]
|
|
adds r7, r0, 0
|
|
cmp r4, 0
|
|
beq _0800A75E
|
|
adds r5, r7, 0
|
|
_0800A740:
|
|
movs r0, 0x1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0800A752
|
|
adds r0, r5, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
bl sub_800A34C
|
|
_0800A752:
|
|
mov r0, sp
|
|
bl sub_800A4A0
|
|
asrs r4, 1
|
|
cmp r4, 0
|
|
bne _0800A740
|
|
_0800A75E:
|
|
cmp r6, 0
|
|
bge _0800A776
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
add r1, sp, 0x10
|
|
str r0, [r1, 0x4]
|
|
adds r0, r7, 0
|
|
adds r2, r7, 0
|
|
bl sub_800A3F0
|
|
_0800A776:
|
|
ldr r0, [sp, 0x8]
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
ldr r0, [r7, 0x4]
|
|
str r0, [r1, 0x4]
|
|
add sp, 0x18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800A710
|
|
|
|
thumb_func_start sub_800A78C
|
|
sub_800A78C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
mov r10, r0
|
|
ldr r0, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
mov r0, sp
|
|
bl sub_800A27C
|
|
add r4, sp, 0x8
|
|
adds r0, r4, 0
|
|
bl sub_800A27C
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_800A2F0
|
|
lsls r0, 24
|
|
mov r8, r4
|
|
cmp r0, 0
|
|
beq _0800A7DC
|
|
ldr r2, [sp]
|
|
ldr r3, [sp, 0x4]
|
|
str r2, [sp, 0x10]
|
|
str r3, [sp, 0x14]
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0xC]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
str r2, [sp, 0x8]
|
|
str r3, [sp, 0xC]
|
|
_0800A7DC:
|
|
mov r0, r8
|
|
bl sub_800A2A0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800A878
|
|
movs r0, 0
|
|
mov r9, r0
|
|
add r7, sp, 0x10
|
|
add r6, sp, 0x18
|
|
b _0800A800
|
|
_0800A7F2:
|
|
mov r0, r8
|
|
mov r1, r8
|
|
adds r2, r7, 0
|
|
bl sub_800A34C
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
_0800A800:
|
|
adds r4, r7, 0
|
|
mov r1, r8
|
|
adds r0, r4, 0
|
|
mov r2, sp
|
|
bl sub_800A3F0
|
|
adds r0, r4, 0
|
|
bl sub_800A4A0
|
|
ldr r0, [sp, 0x10]
|
|
str r0, [sp, 0x18]
|
|
ldr r1, [r4, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 11
|
|
adds r1, r0
|
|
adds r5, r6, 0
|
|
str r1, [r5, 0x4]
|
|
ldr r0, [r4, 0x4]
|
|
cmp r1, r0
|
|
bcs _0800A82E
|
|
ldr r0, [sp, 0x18]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x18]
|
|
_0800A82E:
|
|
adds r0, r4, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_800A3F0
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r4, 0
|
|
bl sub_800A34C
|
|
ldr r0, [sp, 0x18]
|
|
lsls r1, r0, 1
|
|
str r1, [sp, 0x18]
|
|
ldr r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
bge _0800A854
|
|
movs r0, 0x1
|
|
orrs r1, r0
|
|
str r1, [sp, 0x18]
|
|
_0800A854:
|
|
ldr r0, [r6, 0x4]
|
|
lsls r0, 1
|
|
str r0, [r6, 0x4]
|
|
ldr r2, [sp, 0x4]
|
|
ldr r1, [sp]
|
|
ldr r0, [sp, 0x18]
|
|
adds r1, r0
|
|
str r1, [sp]
|
|
ldr r0, [r6, 0x4]
|
|
adds r0, r2, r0
|
|
str r0, [sp, 0x4]
|
|
cmp r2, r0
|
|
bls _0800A872
|
|
adds r0, r1, 0x1
|
|
str r0, [sp]
|
|
_0800A872:
|
|
mov r2, r9
|
|
cmp r2, 0x2
|
|
bne _0800A7F2
|
|
_0800A878:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
mov r2, r10
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
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_800A78C
|
|
|
|
thumb_func_start sub_800A894
|
|
sub_800A894:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
bgt _0800A8A0
|
|
movs r0, 0x1
|
|
_0800A8A0:
|
|
ldr r1, _0800A8BC
|
|
cmp r0, r1
|
|
ble _0800A8A8
|
|
adds r0, r1, 0
|
|
_0800A8A8:
|
|
ldr r1, _0800A8C0
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r2, 0x4]
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800A8BC: .4byte 0x0000012b
|
|
_0800A8C0: .4byte gUnknown_80B96E4
|
|
thumb_func_end sub_800A894
|
|
|
|
thumb_func_start sub_800A8C4
|
|
sub_800A8C4:
|
|
push {r4,lr}
|
|
ldr r3, _0800A8EC
|
|
ldr r4, _0800A8F0
|
|
movs r2, 0
|
|
ldr r0, _0800A8F4
|
|
movs r1, 0x3F
|
|
_0800A8D0:
|
|
str r2, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r0, 0x8
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _0800A8D0
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800A8EC: .4byte gUnknown_203B094
|
|
_0800A8F0: .4byte gUnknown_202D2A4
|
|
_0800A8F4: .4byte gUnknown_202D2A8
|
|
thumb_func_end sub_800A8C4
|
|
|
|
thumb_func_start sub_800A8F8
|
|
sub_800A8F8:
|
|
ldr r1, _0800A904
|
|
ldr r2, [r1]
|
|
str r0, [r1]
|
|
adds r0, r2, 0
|
|
bx lr
|
|
.align 2, 0
|
|
_0800A904: .4byte gUnknown_202D2A4
|
|
thumb_func_end sub_800A8F8
|
|
|
|
thumb_func_start sub_800A908
|
|
sub_800A908:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x12C
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
ldr r1, _0800A93C
|
|
adds r0, r4, 0
|
|
bl strcmp
|
|
cmp r0, 0
|
|
beq _0800A922
|
|
movs r0, 0x1
|
|
_0800A922:
|
|
movs r1, 0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0800A92C
|
|
movs r1, 0x1
|
|
_0800A92C:
|
|
cmp r1, 0
|
|
beq _0800A9B6
|
|
ldr r7, [r4, 0xC]
|
|
movs r6, 0
|
|
ldr r0, [r4, 0x8]
|
|
subs r5, r0, 0x1
|
|
b _0800A94A
|
|
.align 2, 0
|
|
_0800A93C: .4byte gUnknown_80B9B94
|
|
_0800A940:
|
|
cmp r0, 0
|
|
bge _0800A948
|
|
adds r6, r4, 0x1
|
|
b _0800A94A
|
|
_0800A948:
|
|
adds r5, r4, 0
|
|
_0800A94A:
|
|
cmp r6, r5
|
|
bge _0800A968
|
|
adds r0, r6, r5
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r4, r0, 1
|
|
lsls r0, r4, 3
|
|
adds r0, r7
|
|
ldr r0, [r0]
|
|
mov r1, r8
|
|
bl strcmp
|
|
cmp r0, 0
|
|
bne _0800A940
|
|
adds r6, r4, 0
|
|
_0800A968:
|
|
lsls r0, r6, 3
|
|
adds r6, r7, r0
|
|
ldr r0, [r6]
|
|
mov r1, r8
|
|
bl strcmp
|
|
cmp r0, 0
|
|
beq _0800A994
|
|
ldr r1, _0800A984
|
|
mov r0, sp
|
|
mov r2, r8
|
|
bl sprintf
|
|
b _0800A9B6
|
|
.align 2, 0
|
|
_0800A984: .4byte gUnknown_80B9B9C
|
|
_0800A988:
|
|
str r6, [r2]
|
|
adds r0, r7, 0x4
|
|
adds r0, r3, r0
|
|
str r1, [r0]
|
|
adds r0, r2, 0
|
|
b _0800A9B8
|
|
_0800A994:
|
|
ldr r0, _0800A9C4
|
|
ldr r0, [r0]
|
|
movs r4, 0
|
|
ldr r5, _0800A9C8
|
|
adds r7, r5, 0
|
|
_0800A99E:
|
|
adds r0, 0x1
|
|
cmp r0, 0x3F
|
|
ble _0800A9A6
|
|
movs r0, 0
|
|
_0800A9A6:
|
|
lsls r3, r0, 3
|
|
adds r2, r3, r5
|
|
ldr r1, [r2]
|
|
cmp r1, 0
|
|
beq _0800A988
|
|
adds r4, 0x1
|
|
cmp r4, 0x3F
|
|
ble _0800A99E
|
|
_0800A9B6:
|
|
movs r0, 0
|
|
_0800A9B8:
|
|
add sp, 0x12C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0800A9C4: .4byte gUnknown_203B094
|
|
_0800A9C8: .4byte gUnknown_202D2A8
|
|
thumb_func_end sub_800A908
|
|
|
|
thumb_func_start sub_800A9CC
|
|
sub_800A9CC:
|
|
ldr r1, [r0]
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [r0, 0x4]
|
|
adds r0, r1, 0
|
|
bx lr
|
|
thumb_func_end sub_800A9CC
|
|
|
|
thumb_func_start sub_800A9D8
|
|
sub_800A9D8:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_800A9CC
|
|
adds r0, r4, 0
|
|
bl sub_800AA48
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A9D8
|
|
|
|
thumb_func_start sub_800A9EC
|
|
sub_800A9EC:
|
|
push {r4,lr}
|
|
bl sub_800A908
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _0800A9FE
|
|
movs r1, 0
|
|
bl sub_800A9D8
|
|
_0800A9FE:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800A9EC
|
|
|
|
thumb_func_start sub_800AA08
|
|
sub_800AA08:
|
|
push {lr}
|
|
bl sub_800A9EC
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800AA08
|
|
|
|
thumb_func_start sub_800AA14
|
|
sub_800AA14:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0
|
|
ldr r0, _0800AA30
|
|
movs r3, 0
|
|
ldr r5, _0800AA34
|
|
adds r2, r0, 0x4
|
|
_0800AA22:
|
|
cmp r0, r4
|
|
bne _0800AA38
|
|
str r3, [r0]
|
|
str r3, [r2]
|
|
str r1, [r5]
|
|
b _0800AA42
|
|
.align 2, 0
|
|
_0800AA30: .4byte gUnknown_202D2A8
|
|
_0800AA34: .4byte gUnknown_203B094
|
|
_0800AA38:
|
|
adds r2, 0x8
|
|
adds r0, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x3F
|
|
ble _0800AA22
|
|
_0800AA42:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_800AA14
|
|
|
|
thumb_func_start sub_800AA48
|
|
sub_800AA48:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, [r5, 0x4]
|
|
ldr r1, [r4]
|
|
ldr r0, _0800AA60
|
|
cmp r1, r0
|
|
beq _0800AA68
|
|
ldr r0, _0800AA64
|
|
cmp r1, r0
|
|
beq _0800AA6E
|
|
adds r0, r4, 0
|
|
b _0800AA72
|
|
.align 2, 0
|
|
_0800AA60: .4byte 0x30524953
|
|
_0800AA64: .4byte 0x4f524953
|
|
_0800AA68:
|
|
adds r0, r4, 0
|
|
bl nullsub_15
|
|
_0800AA6E:
|
|
ldr r0, [r4, 0x4]
|
|
str r0, [r5, 0x4]
|
|
_0800AA72:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800AA48
|
|
|
|
thumb_func_start sub_800AA78
|
|
sub_800AA78:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, [r4]
|
|
ldr r0, _0800AA90
|
|
cmp r1, r0
|
|
bne _0800AA94
|
|
adds r0, r4, 0
|
|
bl nullsub_15
|
|
ldr r0, [r4, 0x4]
|
|
b _0800AA96
|
|
.align 2, 0
|
|
_0800AA90: .4byte 0x30524953
|
|
_0800AA94:
|
|
adds r0, r4, 0
|
|
_0800AA96:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800AA78
|
|
|
|
thumb_func_start nullsub_15
|
|
nullsub_15:
|
|
bx lr
|
|
thumb_func_end nullsub_15
|
|
|
|
thumb_func_start nullsub_16
|
|
nullsub_16:
|
|
bx lr
|
|
thumb_func_end nullsub_16
|
|
|
|
thumb_func_start nullsub_175
|
|
nullsub_175:
|
|
bx lr
|
|
thumb_func_end nullsub_175
|
|
|
|
thumb_func_start sub_800AAA8
|
|
sub_800AAA8:
|
|
push {lr}
|
|
ldr r2, [r2, 0x4]
|
|
bl sub_800AAB4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800AAA8
|
|
|
|
thumb_func_start sub_800AAB4
|
|
sub_800AAB4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
mov r12, r0
|
|
str r1, [sp, 0x24]
|
|
mov r8, r2
|
|
ldrb r0, [r2, 0x5]
|
|
ldrb r1, [r2, 0x6]
|
|
lsls r1, 8
|
|
adds r0, r1
|
|
str r0, [sp, 0x28]
|
|
movs r6, 0
|
|
mov r10, r6
|
|
movs r0, 0x8
|
|
mov r9, r0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x41
|
|
bne _0800AB04
|
|
ldrb r0, [r2, 0x1]
|
|
adds r1, r0, 0
|
|
cmp r1, 0x54
|
|
bne _0800AB0C
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0x34
|
|
bne _0800AB0C
|
|
ldrb r0, [r2, 0x3]
|
|
cmp r0, 0x50
|
|
bne _0800AB0C
|
|
ldrb r1, [r2, 0x10]
|
|
ldrb r0, [r2, 0x11]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldr r2, [sp, 0x24]
|
|
cmp r2, 0
|
|
beq _0800AB08
|
|
cmp r2, r1
|
|
beq _0800AB08
|
|
_0800AB04:
|
|
movs r0, 0
|
|
b _0800AE16
|
|
_0800AB08:
|
|
movs r1, 0x12
|
|
b _0800AB26
|
|
_0800AB0C:
|
|
mov r3, r8
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x41
|
|
bne _0800AB04
|
|
cmp r1, 0x54
|
|
bne _0800AB04
|
|
ldrb r0, [r3, 0x2]
|
|
cmp r0, 0x33
|
|
bne _0800AB04
|
|
ldrb r0, [r3, 0x3]
|
|
cmp r0, 0x50
|
|
bne _0800AB04
|
|
movs r1, 0x10
|
|
_0800AB26:
|
|
mov r2, r8
|
|
ldrb r0, [r2, 0x4]
|
|
cmp r0, 0x4E
|
|
bne _0800AB4A
|
|
movs r7, 0
|
|
b _0800AB40
|
|
_0800AB32:
|
|
mov r1, r12
|
|
adds r0, r1, r7
|
|
mov r2, r8
|
|
adds r1, r7, r2
|
|
ldrb r1, [r1, 0x7]
|
|
strb r1, [r0]
|
|
adds r7, 0x1
|
|
_0800AB40:
|
|
ldr r3, [sp, 0x28]
|
|
cmp r7, r3
|
|
blt _0800AB32
|
|
adds r0, r7, 0
|
|
b _0800AE16
|
|
_0800AB4A:
|
|
mov r2, r8
|
|
ldrb r0, [r2, 0x7]
|
|
adds r0, 0x3
|
|
str r0, [sp]
|
|
ldrb r0, [r2, 0x8]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
ldrb r0, [r2, 0x9]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r2, 0xA]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
ldrb r0, [r2, 0xB]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x10]
|
|
ldrb r0, [r2, 0xC]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x14]
|
|
ldrb r0, [r2, 0xD]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x18]
|
|
ldrb r0, [r2, 0xE]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x1C]
|
|
ldrb r0, [r2, 0xF]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x20]
|
|
adds r7, r1, 0
|
|
ldr r3, [sp, 0x28]
|
|
cmp r7, r3
|
|
blt _0800AB8C
|
|
b _0800AE14
|
|
_0800AB8C:
|
|
ldr r0, [sp, 0x24]
|
|
cmp r0, 0
|
|
beq _0800AB96
|
|
cmp r6, r0
|
|
bge _0800AB04
|
|
_0800AB96:
|
|
mov r1, r9
|
|
cmp r1, 0x8
|
|
bne _0800ABAA
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
ldrb r0, [r0]
|
|
mov r10, r0
|
|
adds r7, 0x1
|
|
movs r3, 0
|
|
mov r9, r3
|
|
_0800ABAA:
|
|
movs r0, 0x80
|
|
mov r1, r10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800ABB6
|
|
b _0800ADF0
|
|
_0800ABB6:
|
|
mov r3, r8
|
|
adds r2, r3, r7
|
|
ldrb r1, [r2]
|
|
lsrs r0, r1, 4
|
|
adds r3, r0, 0x3
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
lsls r5, r0, 8
|
|
ldr r0, [sp]
|
|
cmp r3, r0
|
|
bne _0800ABCE
|
|
movs r3, 0x1F
|
|
_0800ABCE:
|
|
ldr r0, [sp, 0x4]
|
|
cmp r3, r0
|
|
bne _0800ABD6
|
|
movs r3, 0x1E
|
|
_0800ABD6:
|
|
ldr r0, [sp, 0x8]
|
|
cmp r3, r0
|
|
bne _0800ABDE
|
|
movs r3, 0x1D
|
|
_0800ABDE:
|
|
ldr r0, [sp, 0xC]
|
|
cmp r3, r0
|
|
bne _0800ABE6
|
|
movs r3, 0x1C
|
|
_0800ABE6:
|
|
ldr r0, [sp, 0x10]
|
|
cmp r3, r0
|
|
bne _0800ABEE
|
|
movs r3, 0x1B
|
|
_0800ABEE:
|
|
ldr r0, [sp, 0x14]
|
|
cmp r3, r0
|
|
bne _0800ABF6
|
|
movs r3, 0x1A
|
|
_0800ABF6:
|
|
ldr r0, [sp, 0x18]
|
|
cmp r3, r0
|
|
bne _0800ABFE
|
|
movs r3, 0x19
|
|
_0800ABFE:
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r3, r0
|
|
bne _0800AC06
|
|
movs r3, 0x18
|
|
_0800AC06:
|
|
ldr r0, [sp, 0x20]
|
|
cmp r3, r0
|
|
bne _0800AC0E
|
|
movs r3, 0x17
|
|
_0800AC0E:
|
|
adds r0, r3, 0
|
|
subs r0, 0x17
|
|
cmp r0, 0x8
|
|
bls _0800AC18
|
|
b _0800ADB0
|
|
_0800AC18:
|
|
lsls r0, 2
|
|
ldr r1, _0800AC24
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0800AC24: .4byte _0800AC28
|
|
.align 2, 0
|
|
_0800AC28:
|
|
.4byte _0800AD7C
|
|
.4byte _0800AD48
|
|
.4byte _0800AD20
|
|
.4byte _0800ACFA
|
|
.4byte _0800ACD6
|
|
.4byte _0800ACB4
|
|
.4byte _0800AC8C
|
|
.4byte _0800AC66
|
|
.4byte _0800AC4C
|
|
_0800AC4C:
|
|
ldrb r1, [r2]
|
|
movs r0, 0xF
|
|
adds r7, 0x1
|
|
mov r3, r12
|
|
adds r2, r3, r6
|
|
ands r0, r1
|
|
lsls r1, r0, 4
|
|
orrs r1, r0
|
|
strb r1, [r2]
|
|
adds r6, 0x1
|
|
adds r0, r3, r6
|
|
strb r1, [r0]
|
|
b _0800ADA4
|
|
_0800AC66:
|
|
ldrb r0, [r2]
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r1, r12
|
|
adds r3, r1, r6
|
|
movs r2, 0xF
|
|
lsls r0, r5, 4
|
|
adds r1, r5, 0x1
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r6, 0x1
|
|
mov r3, r12
|
|
adds r2, r3, r6
|
|
lsls r0, r1, 4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _0800ADA4
|
|
_0800AC8C:
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r1, r12
|
|
adds r4, r1, r6
|
|
adds r2, r5, 0
|
|
ands r2, r3
|
|
lsls r1, r2, 4
|
|
subs r0, r5, 0x1
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
adds r6, 0x1
|
|
mov r3, r12
|
|
adds r0, r3, r6
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0800ADA4
|
|
_0800ACB4:
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r1, r12
|
|
adds r2, r1, r6
|
|
adds r1, r5, 0
|
|
ands r1, r3
|
|
lsls r0, r1, 4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, 0x1
|
|
mov r0, r12
|
|
adds r2, r0, r6
|
|
subs r0, r5, 0x1
|
|
b _0800AD68
|
|
_0800ACD6:
|
|
ldrb r0, [r2]
|
|
movs r4, 0xF
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r2, r12
|
|
adds r3, r2, r6
|
|
adds r1, r5, 0
|
|
ands r1, r4
|
|
lsls r2, r1, 4
|
|
adds r0, r2, 0
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r6, 0x1
|
|
mov r3, r12
|
|
adds r1, r3, r6
|
|
subs r0, r5, 0x1
|
|
b _0800AD9E
|
|
_0800ACFA:
|
|
ldrb r0, [r2]
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r1, r12
|
|
adds r3, r1, r6
|
|
movs r2, 0xF
|
|
lsls r0, r5, 4
|
|
subs r1, r5, 0x1
|
|
ands r1, r2
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r6, 0x1
|
|
mov r3, r12
|
|
adds r2, r3, r6
|
|
lsls r0, r1, 4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
b _0800ADA4
|
|
_0800AD20:
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r1, r12
|
|
adds r4, r1, r6
|
|
adds r2, r5, 0
|
|
ands r2, r3
|
|
lsls r1, r2, 4
|
|
adds r0, r5, 0x1
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
adds r6, 0x1
|
|
mov r3, r12
|
|
adds r0, r3, r6
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
b _0800ADA4
|
|
_0800AD48:
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r1, r12
|
|
adds r2, r1, r6
|
|
adds r1, r5, 0
|
|
ands r1, r3
|
|
lsls r0, r1, 4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, 0x1
|
|
mov r0, r12
|
|
adds r2, r0, r6
|
|
adds r0, r5, 0x1
|
|
_0800AD68:
|
|
ands r0, r3
|
|
lsls r0, 4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r6, 0x1
|
|
mov r4, r9
|
|
adds r4, 0x1
|
|
mov r1, r10
|
|
lsls r2, r1, 1
|
|
b _0800AE08
|
|
_0800AD7C:
|
|
ldrb r0, [r2]
|
|
movs r4, 0xF
|
|
movs r5, 0xF
|
|
ands r5, r0
|
|
adds r7, 0x1
|
|
mov r2, r12
|
|
adds r3, r2, r6
|
|
adds r1, r5, 0
|
|
ands r1, r4
|
|
lsls r2, r1, 4
|
|
adds r0, r2, 0
|
|
orrs r0, r1
|
|
strb r0, [r3]
|
|
adds r6, 0x1
|
|
mov r3, r12
|
|
adds r1, r3, r6
|
|
adds r0, r5, 0x1
|
|
_0800AD9E:
|
|
ands r0, r4
|
|
orrs r2, r0
|
|
strb r2, [r1]
|
|
_0800ADA4:
|
|
adds r6, 0x1
|
|
mov r4, r9
|
|
adds r4, 0x1
|
|
mov r0, r10
|
|
lsls r2, r0, 1
|
|
b _0800AE08
|
|
_0800ADB0:
|
|
adds r7, 0x1
|
|
mov r1, r8
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
adds r5, r0
|
|
adds r7, 0x1
|
|
ldr r2, _0800ADEC
|
|
adds r0, r5, r2
|
|
adds r5, r0, r6
|
|
mov r4, r9
|
|
adds r4, 0x1
|
|
mov r0, r10
|
|
lsls r2, r0, 1
|
|
cmp r3, 0
|
|
beq _0800AE08
|
|
_0800ADCE:
|
|
mov r1, r12
|
|
adds r1, r6
|
|
mov r10, r1
|
|
mov r0, r12
|
|
adds r0, r5
|
|
ldrb r1, [r0]
|
|
mov r0, r10
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
adds r5, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _0800ADCE
|
|
b _0800AE08
|
|
.align 2, 0
|
|
_0800ADEC: .4byte 0xfffff000
|
|
_0800ADF0:
|
|
mov r1, r12
|
|
adds r0, r1, r6
|
|
mov r2, r8
|
|
adds r1, r2, r7
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r6, 0x1
|
|
adds r7, 0x1
|
|
mov r4, r9
|
|
adds r4, 0x1
|
|
mov r3, r10
|
|
lsls r2, r3, 1
|
|
_0800AE08:
|
|
mov r9, r4
|
|
mov r10, r2
|
|
ldr r0, [sp, 0x28]
|
|
cmp r7, r0
|
|
bge _0800AE14
|
|
b _0800AB8C
|
|
_0800AE14:
|
|
adds r0, r6, 0
|
|
_0800AE16:
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800AAB4
|
|
|
|
thumb_func_start sub_800AE28
|
|
sub_800AE28:
|
|
push {lr}
|
|
ldr r2, [r2, 0x4]
|
|
bl sub_800AE34
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800AE28
|
|
|
|
thumb_func_start sub_800AE34
|
|
sub_800AE34:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
str r1, [sp, 0x24]
|
|
mov r10, r2
|
|
ldrb r2, [r2, 0x5]
|
|
mov r3, r10
|
|
ldrb r1, [r3, 0x6]
|
|
lsls r1, 8
|
|
adds r2, r1
|
|
str r2, [sp, 0x28]
|
|
movs r1, 0
|
|
mov r9, r1
|
|
movs r2, 0
|
|
str r2, [sp, 0x2C]
|
|
movs r3, 0x8
|
|
str r3, [sp, 0x30]
|
|
bl sub_800B1BC
|
|
mov r1, r10
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x41
|
|
bne _0800AE90
|
|
ldrb r0, [r1, 0x1]
|
|
adds r1, r0, 0
|
|
cmp r1, 0x54
|
|
bne _0800AE98
|
|
mov r2, r10
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0x34
|
|
bne _0800AE98
|
|
ldrb r0, [r2, 0x3]
|
|
cmp r0, 0x50
|
|
bne _0800AE98
|
|
ldrb r1, [r2, 0x10]
|
|
ldrb r0, [r2, 0x11]
|
|
lsls r0, 8
|
|
adds r1, r0
|
|
ldr r3, [sp, 0x24]
|
|
cmp r3, 0
|
|
beq _0800AE94
|
|
cmp r3, r1
|
|
beq _0800AE94
|
|
_0800AE90:
|
|
movs r0, 0
|
|
b _0800B1AA
|
|
_0800AE94:
|
|
movs r1, 0x12
|
|
b _0800AEB2
|
|
_0800AE98:
|
|
mov r2, r10
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x41
|
|
bne _0800AE90
|
|
cmp r1, 0x54
|
|
bne _0800AE90
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0x33
|
|
bne _0800AE90
|
|
ldrb r0, [r2, 0x3]
|
|
cmp r0, 0x50
|
|
bne _0800AE90
|
|
movs r1, 0x10
|
|
_0800AEB2:
|
|
mov r3, r10
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0x4E
|
|
bne _0800AEE0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, [sp, 0x28]
|
|
cmp r8, r1
|
|
bge _0800AED8
|
|
_0800AEC4:
|
|
mov r0, r8
|
|
add r0, r10
|
|
ldrb r0, [r0, 0x7]
|
|
bl sub_800B220
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
ldr r3, [sp, 0x28]
|
|
cmp r8, r3
|
|
blt _0800AEC4
|
|
_0800AED8:
|
|
bl sub_800B270
|
|
mov r0, r8
|
|
b _0800B1AA
|
|
_0800AEE0:
|
|
mov r2, r10
|
|
ldrb r0, [r2, 0x7]
|
|
adds r0, 0x3
|
|
str r0, [sp]
|
|
ldrb r0, [r2, 0x8]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x4]
|
|
ldrb r0, [r2, 0x9]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r2, 0xA]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0xC]
|
|
ldrb r0, [r2, 0xB]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x10]
|
|
ldrb r0, [r2, 0xC]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x14]
|
|
ldrb r0, [r2, 0xD]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x18]
|
|
ldrb r0, [r2, 0xE]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x1C]
|
|
ldrb r0, [r2, 0xF]
|
|
adds r0, 0x3
|
|
str r0, [sp, 0x20]
|
|
mov r8, r1
|
|
ldr r3, [sp, 0x28]
|
|
cmp r8, r3
|
|
blt _0800AF22
|
|
b _0800B1A4
|
|
_0800AF22:
|
|
ldr r0, [sp, 0x24]
|
|
cmp r0, 0
|
|
beq _0800AF2C
|
|
cmp r9, r0
|
|
bge _0800AE90
|
|
_0800AF2C:
|
|
ldr r1, [sp, 0x30]
|
|
cmp r1, 0x8
|
|
bne _0800AF42
|
|
mov r0, r10
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
str r0, [sp, 0x2C]
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
movs r3, 0
|
|
str r3, [sp, 0x30]
|
|
_0800AF42:
|
|
movs r0, 0x80
|
|
ldr r1, [sp, 0x2C]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0800AF4E
|
|
b _0800B180
|
|
_0800AF4E:
|
|
mov r2, r10
|
|
add r2, r8
|
|
ldrb r1, [r2]
|
|
lsrs r0, r1, 4
|
|
adds r3, r0, 0x3
|
|
movs r0, 0xF
|
|
ands r0, r1
|
|
lsls r7, r0, 8
|
|
ldr r0, [sp]
|
|
cmp r3, r0
|
|
bne _0800AF66
|
|
movs r3, 0x1F
|
|
_0800AF66:
|
|
ldr r0, [sp, 0x4]
|
|
cmp r3, r0
|
|
bne _0800AF6E
|
|
movs r3, 0x1E
|
|
_0800AF6E:
|
|
ldr r0, [sp, 0x8]
|
|
cmp r3, r0
|
|
bne _0800AF76
|
|
movs r3, 0x1D
|
|
_0800AF76:
|
|
ldr r0, [sp, 0xC]
|
|
cmp r3, r0
|
|
bne _0800AF7E
|
|
movs r3, 0x1C
|
|
_0800AF7E:
|
|
ldr r0, [sp, 0x10]
|
|
cmp r3, r0
|
|
bne _0800AF86
|
|
movs r3, 0x1B
|
|
_0800AF86:
|
|
ldr r0, [sp, 0x14]
|
|
cmp r3, r0
|
|
bne _0800AF8E
|
|
movs r3, 0x1A
|
|
_0800AF8E:
|
|
ldr r0, [sp, 0x18]
|
|
cmp r3, r0
|
|
bne _0800AF96
|
|
movs r3, 0x19
|
|
_0800AF96:
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r3, r0
|
|
bne _0800AF9E
|
|
movs r3, 0x18
|
|
_0800AF9E:
|
|
ldr r0, [sp, 0x20]
|
|
cmp r3, r0
|
|
bne _0800AFA6
|
|
movs r3, 0x17
|
|
_0800AFA6:
|
|
adds r0, r3, 0
|
|
subs r0, 0x17
|
|
cmp r0, 0x8
|
|
bls _0800AFB0
|
|
b _0800B13C
|
|
_0800AFB0:
|
|
lsls r0, 2
|
|
ldr r1, _0800AFBC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0800AFBC: .4byte _0800AFC0
|
|
.align 2, 0
|
|
_0800AFC0:
|
|
.4byte _0800B104
|
|
.4byte _0800B0DE
|
|
.4byte _0800B0BA
|
|
.4byte _0800B090
|
|
.4byte _0800B06E
|
|
.4byte _0800B048
|
|
.4byte _0800B024
|
|
.4byte _0800AFFE
|
|
.4byte _0800AFE4
|
|
_0800AFE4:
|
|
ldrb r0, [r2]
|
|
movs r1, 0xF
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
ands r1, r0
|
|
lsls r4, r1, 4
|
|
orrs r4, r1
|
|
adds r0, r4, 0
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
b _0800B128
|
|
_0800AFFE:
|
|
ldrb r0, [r2]
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
movs r1, 0xF
|
|
lsls r0, r6, 4
|
|
adds r4, r6, 0x1
|
|
ands r4, r1
|
|
orrs r0, r4
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
lsls r0, r4, 4
|
|
orrs r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0800B12A
|
|
_0800B024:
|
|
ldrb r0, [r2]
|
|
movs r1, 0xF
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
adds r5, r6, 0
|
|
ands r5, r1
|
|
lsls r4, r5, 4
|
|
subs r0, r6, 0x1
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
orrs r4, r5
|
|
b _0800B128
|
|
_0800B048:
|
|
ldrb r0, [r2]
|
|
movs r5, 0xF
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
adds r4, r6, 0
|
|
ands r4, r5
|
|
lsls r0, r4, 4
|
|
orrs r0, r4
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
subs r0, r6, 0x1
|
|
ands r0, r5
|
|
lsls r0, 4
|
|
orrs r0, r4
|
|
b _0800B12A
|
|
_0800B06E:
|
|
ldrb r0, [r2]
|
|
movs r5, 0xF
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
adds r1, r6, 0
|
|
ands r1, r5
|
|
lsls r4, r1, 4
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
subs r0, r6, 0x1
|
|
b _0800B124
|
|
_0800B090:
|
|
ldrb r0, [r2]
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
movs r1, 0xF
|
|
lsls r0, r6, 4
|
|
subs r4, r6, 0x1
|
|
ands r4, r1
|
|
orrs r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
lsls r0, r4, 4
|
|
orrs r0, r4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0800B12A
|
|
_0800B0BA:
|
|
ldrb r0, [r2]
|
|
movs r1, 0xF
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
adds r5, r6, 0
|
|
ands r5, r1
|
|
lsls r4, r5, 4
|
|
adds r0, r6, 0x1
|
|
ands r0, r1
|
|
orrs r0, r4
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
orrs r4, r5
|
|
b _0800B128
|
|
_0800B0DE:
|
|
ldrb r0, [r2]
|
|
movs r5, 0xF
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
adds r4, r6, 0
|
|
ands r4, r5
|
|
lsls r0, r4, 4
|
|
orrs r0, r4
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
adds r0, r6, 0x1
|
|
ands r0, r5
|
|
lsls r0, 4
|
|
orrs r0, r4
|
|
b _0800B12A
|
|
_0800B104:
|
|
ldrb r0, [r2]
|
|
movs r5, 0xF
|
|
movs r6, 0xF
|
|
ands r6, r0
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
adds r1, r6, 0
|
|
ands r1, r5
|
|
lsls r4, r1, 4
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
bl sub_800B220
|
|
movs r3, 0x1
|
|
add r9, r3
|
|
adds r0, r6, 0x1
|
|
_0800B124:
|
|
ands r0, r5
|
|
orrs r4, r0
|
|
_0800B128:
|
|
adds r0, r4, 0
|
|
_0800B12A:
|
|
bl sub_800B220
|
|
movs r0, 0x1
|
|
add r9, r0
|
|
ldr r5, [sp, 0x30]
|
|
adds r5, 0x1
|
|
ldr r1, [sp, 0x2C]
|
|
lsls r4, r1, 1
|
|
b _0800B198
|
|
_0800B13C:
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
mov r0, r10
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
adds r7, r0
|
|
add r8, r2
|
|
ldr r1, _0800B17C
|
|
adds r0, r7, r1
|
|
mov r2, r9
|
|
adds r7, r0, r2
|
|
ldr r5, [sp, 0x30]
|
|
adds r5, 0x1
|
|
ldr r0, [sp, 0x2C]
|
|
lsls r4, r0, 1
|
|
cmp r3, 0
|
|
beq _0800B198
|
|
adds r6, r3, 0
|
|
_0800B160:
|
|
adds r0, r7, 0
|
|
bl sub_800B1E0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_800B220
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
adds r7, 0x1
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bne _0800B160
|
|
b _0800B198
|
|
.align 2, 0
|
|
_0800B17C: .4byte 0xfffff000
|
|
_0800B180:
|
|
mov r0, r10
|
|
add r0, r8
|
|
ldrb r0, [r0]
|
|
bl sub_800B220
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
add r8, r2
|
|
ldr r5, [sp, 0x30]
|
|
adds r5, 0x1
|
|
ldr r3, [sp, 0x2C]
|
|
lsls r4, r3, 1
|
|
_0800B198:
|
|
str r5, [sp, 0x30]
|
|
str r4, [sp, 0x2C]
|
|
ldr r0, [sp, 0x28]
|
|
cmp r8, r0
|
|
bge _0800B1A4
|
|
b _0800AF22
|
|
_0800B1A4:
|
|
bl sub_800B270
|
|
mov r0, r9
|
|
_0800B1AA:
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800AE34
|
|
|
|
thumb_func_start sub_800B1BC
|
|
sub_800B1BC:
|
|
ldr r1, _0800B1D0
|
|
str r0, [r1]
|
|
ldr r1, _0800B1D4
|
|
str r0, [r1]
|
|
ldr r0, _0800B1D8
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r0, _0800B1DC
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0800B1D0: .4byte gUnknown_202D4A8
|
|
_0800B1D4: .4byte gUnknown_202D4AC
|
|
_0800B1D8: .4byte gUnknown_202D4B0
|
|
_0800B1DC: .4byte gUnknown_202D4B4
|
|
thumb_func_end sub_800B1BC
|
|
|
|
thumb_func_start sub_800B1E0
|
|
sub_800B1E0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
bge _0800B1EA
|
|
adds r0, r2, 0x3
|
|
_0800B1EA:
|
|
asrs r0, 2
|
|
ldr r1, _0800B20C
|
|
ldr r1, [r1]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
ands r1, r2
|
|
cmp r1, 0x1
|
|
beq _0800B210
|
|
cmp r1, 0x1
|
|
ble _0800B216
|
|
cmp r1, 0x2
|
|
beq _0800B214
|
|
cmp r1, 0x3
|
|
beq _0800B218
|
|
b _0800B216
|
|
.align 2, 0
|
|
_0800B20C: .4byte gUnknown_202D4AC
|
|
_0800B210:
|
|
lsrs r0, 8
|
|
b _0800B216
|
|
_0800B214:
|
|
lsrs r0, 16
|
|
_0800B216:
|
|
lsls r0, 24
|
|
_0800B218:
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800B1E0
|
|
|
|
thumb_func_start sub_800B220
|
|
sub_800B220:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _0800B260
|
|
ldr r2, _0800B264
|
|
ldr r3, _0800B268
|
|
ldr r1, [r3]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
lsls r0, r1
|
|
ldr r1, [r4]
|
|
orrs r1, r0
|
|
str r1, [r4]
|
|
ldr r2, _0800B26C
|
|
ldr r0, [r2]
|
|
str r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, 0x1
|
|
str r0, [r3]
|
|
cmp r0, 0x4
|
|
bne _0800B258
|
|
ldr r0, [r2]
|
|
adds r0, 0x4
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
str r0, [r3]
|
|
_0800B258:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800B260: .4byte gUnknown_202D4B0
|
|
_0800B264: .4byte gUnknown_80B9BB8
|
|
_0800B268: .4byte gUnknown_202D4B4
|
|
_0800B26C: .4byte gUnknown_202D4A8
|
|
thumb_func_end sub_800B220
|
|
|
|
thumb_func_start sub_800B270
|
|
sub_800B270:
|
|
push {lr}
|
|
ldr r0, _0800B288
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0800B284
|
|
ldr r0, _0800B28C
|
|
ldr r1, [r0]
|
|
ldr r0, _0800B290
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_0800B284:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0800B288: .4byte gUnknown_202D4B4
|
|
_0800B28C: .4byte gUnknown_202D4A8
|
|
_0800B290: .4byte gUnknown_202D4B0
|
|
thumb_func_end sub_800B270
|
|
|
|
thumb_func_start sub_800B294
|
|
sub_800B294:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x41
|
|
bne _0800B2CC
|
|
ldrb r0, [r1, 0x1]
|
|
adds r2, r0, 0
|
|
cmp r2, 0x54
|
|
bne _0800B2B2
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x34
|
|
bne _0800B2B2
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0x50
|
|
beq _0800B2C8
|
|
_0800B2B2:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x41
|
|
bne _0800B2CC
|
|
cmp r2, 0x54
|
|
bne _0800B2CC
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x33
|
|
bne _0800B2CC
|
|
ldrb r0, [r1, 0x3]
|
|
cmp r0, 0x50
|
|
bne _0800B2CC
|
|
_0800B2C8:
|
|
movs r0, 0x1
|
|
b _0800B2CE
|
|
_0800B2CC:
|
|
movs r0, 0
|
|
_0800B2CE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800B294
|
|
|
|
thumb_func_start sub_800B2D4
|
|
sub_800B2D4:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
movs r2, 0
|
|
cmp r2, r4
|
|
bge _0800B324
|
|
_0800B2E2:
|
|
adds r0, r6, r2
|
|
ldrb r1, [r0]
|
|
adds r0, r5, r2
|
|
ldrb r3, [r0]
|
|
adds r0, r1, 0
|
|
subs r0, 0x41
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x19
|
|
bhi _0800B2FE
|
|
adds r0, r1, 0
|
|
adds r0, 0x20
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_0800B2FE:
|
|
adds r0, r3, 0
|
|
subs r0, 0x41
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x19
|
|
bhi _0800B312
|
|
adds r0, r3, 0
|
|
adds r0, 0x20
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
_0800B312:
|
|
cmp r1, r3
|
|
beq _0800B31A
|
|
movs r0, 0x1
|
|
b _0800B326
|
|
_0800B31A:
|
|
cmp r1, 0
|
|
beq _0800B324
|
|
adds r2, 0x1
|
|
cmp r2, r4
|
|
blt _0800B2E2
|
|
_0800B324:
|
|
movs r0, 0
|
|
_0800B326:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_800B2D4
|
|
|
|
.align 2, 0 @ Don't pad with nop.
|