mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-27 23:10:50 +00:00
99a038284b
This decision was made to reduce the complexity of using .include whilst juggling with tools/scaninc and tools/preproc: - tools/scaninc doesn't apply the proper search rules for .include (it assumes #include behavior). In particular, it doesn't consider paths starting from $PWD, and doesn't scan the included files as a result. - .include had to be processed before #include by preproc in many cases, as code was being included that had to be preprocessed by CPP (think of #define). This contradicts standard GCC behavior. To make include paths consistent across the asm/ data/ and src/ directories, the following files were moved: - constants/ → include/asm/constants/ - asm/macros/ → include/asm/macros/ - asm/macros.inc → include/asm/macros.inc - include/macros/m4a.inc → include/asm/macros/m4a.inc As part of the necessary changes for this to work, the scaninc method in the makefile was improved to generate .d files that don't choke when files are missing.
2791 lines
39 KiB
ArmAsm
2791 lines
39 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_8092D80
|
|
sub_8092D80:
|
|
push {r4,r5,lr}
|
|
adds r3, r1, 0
|
|
movs r5, 0
|
|
lsls r1, r3, 3
|
|
adds r1, r0
|
|
_08092D8A:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x4
|
|
beq _08092DB0
|
|
ldrb r2, [r1]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092DB0
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092DAA
|
|
adds r0, r3, 0
|
|
b _08092DB2
|
|
_08092DAA:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08092D8A
|
|
_08092DB0:
|
|
movs r0, 0
|
|
_08092DB2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092D80
|
|
|
|
thumb_func_start sub_8092DB8
|
|
sub_8092DB8:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
movs r6, 0x1
|
|
_08092DC0:
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08092DF0
|
|
movs r2, 0x3
|
|
ldrb r1, [r4, 0x18]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092DD6
|
|
movs r1, 0x3
|
|
b _08092DEC
|
|
_08092DD6:
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
blt _08092E12
|
|
lsls r0, r2, 3
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092DD6
|
|
adds r1, r2, 0
|
|
_08092DEC:
|
|
cmp r2, 0
|
|
blt _08092E12
|
|
_08092DF0:
|
|
lsls r0, r1, 3
|
|
adds r0, r4
|
|
ldrb r2, [r0]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092E12
|
|
lsrs r0, r2, 1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08092E0C
|
|
adds r0, r1, 0
|
|
b _08092E14
|
|
_08092E0C:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08092DC0
|
|
_08092E12:
|
|
movs r0, 0
|
|
_08092E14:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092DB8
|
|
|
|
thumb_func_start sub_8092E1C
|
|
sub_8092E1C:
|
|
push {r4,r5,lr}
|
|
adds r3, r1, 0
|
|
movs r5, 0
|
|
lsls r1, r3, 3
|
|
adds r1, r0
|
|
_08092E26:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x8
|
|
beq _08092E4C
|
|
ldrb r2, [r1]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092E4C
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092E46
|
|
adds r0, r3, 0
|
|
b _08092E4E
|
|
_08092E46:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092E26
|
|
_08092E4C:
|
|
movs r0, 0
|
|
_08092E4E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092E1C
|
|
|
|
thumb_func_start sub_8092E54
|
|
sub_8092E54:
|
|
push {r4,r5,lr}
|
|
adds r3, r1, 0
|
|
movs r5, 0
|
|
lsls r1, r3, 3
|
|
adds r1, r0
|
|
_08092E5E:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x8
|
|
beq _08092E84
|
|
ldrb r2, [r1]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092E84
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092E7E
|
|
adds r0, r3, 0
|
|
b _08092E86
|
|
_08092E7E:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092E5E
|
|
_08092E84:
|
|
movs r0, 0
|
|
_08092E86:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092E54
|
|
|
|
thumb_func_start sub_8092E8C
|
|
sub_8092E8C:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r6
|
|
_08092E96:
|
|
subs r3, 0x8
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08092EC6
|
|
movs r3, 0x7
|
|
movs r4, 0x1
|
|
adds r2, r6, 0
|
|
adds r2, 0x38
|
|
_08092EA6:
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092EBC
|
|
lsrs r0, r1, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092EBC
|
|
adds r0, r3, 0
|
|
b _08092EE6
|
|
_08092EBC:
|
|
subs r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bgt _08092EA6
|
|
b _08092EE4
|
|
_08092EC6:
|
|
ldrb r2, [r3]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092EE4
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092EDE
|
|
adds r0, r1, 0
|
|
b _08092EE6
|
|
_08092EDE:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092E96
|
|
_08092EE4:
|
|
movs r0, 0
|
|
_08092EE6:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092E8C
|
|
|
|
thumb_func_start sub_8092EEC
|
|
sub_8092EEC:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r6
|
|
_08092EF6:
|
|
subs r3, 0x8
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08092F26
|
|
movs r3, 0x7
|
|
movs r4, 0x1
|
|
adds r2, r6, 0
|
|
adds r2, 0x38
|
|
_08092F06:
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092F1C
|
|
lsrs r0, r1, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092F1C
|
|
adds r0, r3, 0
|
|
b _08092F46
|
|
_08092F1C:
|
|
subs r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bgt _08092F06
|
|
b _08092F44
|
|
_08092F26:
|
|
ldrb r2, [r3]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092F44
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092F3E
|
|
adds r0, r1, 0
|
|
b _08092F46
|
|
_08092F3E:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092EF6
|
|
_08092F44:
|
|
movs r0, 0
|
|
_08092F46:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092EEC
|
|
|
|
thumb_func_start sub_8092F4C
|
|
sub_8092F4C:
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
ble _08092F78
|
|
movs r4, 0x1
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r2
|
|
_08092F5A:
|
|
ldrb r2, [r3]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092F78
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092F70
|
|
adds r0, r1, 0
|
|
b _08092F7A
|
|
_08092F70:
|
|
subs r3, 0x8
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bgt _08092F5A
|
|
_08092F78:
|
|
movs r0, 0
|
|
_08092F7A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092F4C
|
|
|
|
thumb_func_start sub_8092F80
|
|
sub_8092F80:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x80
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093784
|
|
mov r0, sp
|
|
bl sub_8093744
|
|
adds r3, r0, 0
|
|
cmp r3, 0x2
|
|
bhi _08092FCC
|
|
lsls r1, r3, 5
|
|
adds r0, r3, 0x1
|
|
lsls r0, 5
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x3
|
|
_08092FBA:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08092FBA
|
|
_08092FCC:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80937E0
|
|
movs r3, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r1, r7, 0
|
|
_08092FDC:
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092FF0
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r8, r3
|
|
b _08092FF8
|
|
_08092FF0:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08092FDC
|
|
_08092FF8:
|
|
mov r0, r8
|
|
add sp, 0x80
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092F80
|
|
|
|
thumb_func_start sub_8093008
|
|
sub_8093008:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _0809307C
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093974
|
|
mov r0, sp
|
|
bl sub_80938F4
|
|
adds r3, r0, 0
|
|
cmp r3, 0x6
|
|
bhi _08093056
|
|
lsls r1, r3, 6
|
|
adds r0, r3, 0x1
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_08093044:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08093044
|
|
_08093056:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093A2C
|
|
movs r3, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r1, r7, 0
|
|
_08093066:
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08093080
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r8, r3
|
|
b _08093088
|
|
.align 2, 0
|
|
_0809307C: .4byte 0xfffffe00
|
|
_08093080:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08093066
|
|
_08093088:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093008
|
|
|
|
thumb_func_start sub_809309C
|
|
sub_809309C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _08093110
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80939D0
|
|
mov r0, sp
|
|
bl sub_8093934
|
|
adds r3, r0, 0
|
|
cmp r3, 0x6
|
|
bhi _080930EA
|
|
lsls r1, r3, 6
|
|
adds r0, r3, 0x1
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_080930D8:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080930D8
|
|
_080930EA:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093B40
|
|
movs r3, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r1, r7, 0
|
|
_080930FA:
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08093114
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r8, r3
|
|
b _0809311C
|
|
.align 2, 0
|
|
_08093110: .4byte 0xfffffe00
|
|
_08093114:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _080930FA
|
|
_0809311C:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809309C
|
|
|
|
thumb_func_start sub_8093130
|
|
sub_8093130:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x80
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093784
|
|
mov r0, sp
|
|
bl sub_8093744
|
|
adds r1, r0, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x2
|
|
bhi _0809317C
|
|
lsls r1, 5
|
|
lsls r0, 5
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x3
|
|
_0809316A:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _0809316A
|
|
_0809317C:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80937E0
|
|
movs r1, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r2, r7, 0
|
|
_0809318C:
|
|
ldrb r3, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080931A0
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
mov r8, r1
|
|
b _080931A8
|
|
_080931A0:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x3
|
|
ble _0809318C
|
|
_080931A8:
|
|
mov r0, r8
|
|
add sp, 0x80
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093130
|
|
|
|
thumb_func_start sub_80931B8
|
|
sub_80931B8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _0809322C
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093974
|
|
mov r0, sp
|
|
bl sub_80938F4
|
|
adds r1, r0, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x6
|
|
bhi _08093206
|
|
lsls r1, 6
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_080931F4:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080931F4
|
|
_08093206:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093A2C
|
|
movs r1, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r2, r7, 0
|
|
_08093216:
|
|
ldrb r3, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08093230
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
mov r8, r1
|
|
b _08093238
|
|
.align 2, 0
|
|
_0809322C: .4byte 0xfffffe00
|
|
_08093230:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x7
|
|
ble _08093216
|
|
_08093238:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80931B8
|
|
|
|
thumb_func_start sub_809324C
|
|
sub_809324C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _080932C0
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80939D0
|
|
mov r0, sp
|
|
bl sub_8093934
|
|
adds r1, r0, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x6
|
|
bhi _0809329A
|
|
lsls r1, 6
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_08093288:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08093288
|
|
_0809329A:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093B40
|
|
movs r1, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r2, r7, 0
|
|
_080932AA:
|
|
ldrb r3, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080932C4
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
mov r8, r1
|
|
b _080932CC
|
|
.align 2, 0
|
|
_080932C0: .4byte 0xfffffe00
|
|
_080932C4:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x7
|
|
ble _080932AA
|
|
_080932CC:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809324C
|
|
|
|
thumb_func_start sub_80932E0
|
|
sub_80932E0:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080932F4
|
|
movs r0, 0
|
|
b _080932F6
|
|
_080932F4:
|
|
movs r0, 0x1
|
|
_080932F6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80932E0
|
|
|
|
thumb_func_start sub_80932FC
|
|
sub_80932FC:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093310
|
|
movs r0, 0
|
|
b _08093312
|
|
_08093310:
|
|
movs r0, 0x1
|
|
_08093312:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80932FC
|
|
|
|
thumb_func_start sub_8093318
|
|
sub_8093318:
|
|
push {r4,lr}
|
|
sub sp, 0x40
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
movs r2, 0x40
|
|
bl MemoryCopy8
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093400
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x40
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093318
|
|
|
|
thumb_func_start sub_809333C
|
|
sub_809333C:
|
|
push {r4,lr}
|
|
sub sp, 0x40
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
movs r2, 0x40
|
|
bl MemoryCopy8
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093468
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x40
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809333C
|
|
|
|
thumb_func_start sub_8093360
|
|
sub_8093360:
|
|
push {r4,lr}
|
|
sub sp, 0x40
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
movs r2, 0x40
|
|
bl MemoryCopy8
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80933D8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x40
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093360
|
|
|
|
thumb_func_start sub_8093384
|
|
sub_8093384:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093398
|
|
movs r0, 0x1
|
|
b _0809339A
|
|
_08093398:
|
|
movs r0, 0
|
|
_0809339A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093384
|
|
|
|
thumb_func_start sub_80933A0
|
|
sub_80933A0:
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x2
|
|
movs r3, 0x7
|
|
_080933AA:
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080933BE
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080933BE
|
|
adds r4, 0x1
|
|
_080933BE:
|
|
adds r1, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080933AA
|
|
cmp r4, 0x1
|
|
bgt _080933CE
|
|
movs r0, 0
|
|
b _080933D0
|
|
_080933CE:
|
|
movs r0, 0x1
|
|
_080933D0:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80933A0
|
|
|
|
thumb_func_start sub_80933D8
|
|
sub_80933D8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8093400
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080933F6
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8093468
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080933F8
|
|
_080933F6:
|
|
movs r0, 0x1
|
|
_080933F8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80933D8
|
|
|
|
thumb_func_start sub_8093400
|
|
sub_8093400:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
lsls r0, r4, 3
|
|
adds r0, r7, r0
|
|
ldrh r0, [r0, 0x2]
|
|
bl DoesMoveCharge
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08093428
|
|
b _08093460
|
|
_08093418:
|
|
adds r0, r1, 0
|
|
orrs r0, r2
|
|
strb r0, [r6]
|
|
adds r0, r7, 0
|
|
bl sub_809371C
|
|
movs r0, 0x1
|
|
b _08093462
|
|
_08093428:
|
|
adds r5, r4, 0x1
|
|
cmp r5, 0x7
|
|
bgt _08093460
|
|
lsls r0, r5, 3
|
|
adds r4, r0, r7
|
|
adds r6, r4, 0
|
|
_08093434:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093460
|
|
ldrh r0, [r4, 0x2]
|
|
bl DoesMoveCharge
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08093460
|
|
ldrb r1, [r4]
|
|
movs r2, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093418
|
|
adds r4, 0x8
|
|
adds r6, 0x8
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08093434
|
|
_08093460:
|
|
movs r0, 0
|
|
_08093462:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093400
|
|
|
|
thumb_func_start sub_8093468
|
|
sub_8093468:
|
|
push {r4-r7,lr}
|
|
adds r6, r1, 0
|
|
movs r5, 0
|
|
adds r1, r0, 0x1
|
|
movs r4, 0
|
|
cmp r1, 0x7
|
|
bgt _080934A0
|
|
movs r0, 0x2
|
|
mov r12, r0
|
|
movs r7, 0xFD
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r6
|
|
_08093480:
|
|
ldrb r2, [r3]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080934A0
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
movs r5, 0x1
|
|
adds r3, 0x8
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
bgt _080934A0
|
|
cmp r1, 0x7
|
|
ble _08093480
|
|
_080934A0:
|
|
adds r0, r6, 0
|
|
bl sub_809371C
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093468
|
|
|
|
thumb_func_start sub_80934B0
|
|
sub_80934B0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, r2, 0x1
|
|
cmp r0, 0x7
|
|
bgt _080934D2
|
|
lsls r0, r2, 3
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080934D2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080934D6
|
|
_080934D2:
|
|
movs r0, 0
|
|
b _080934D8
|
|
_080934D6:
|
|
movs r0, 0x1
|
|
_080934D8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80934B0
|
|
|
|
thumb_func_start sub_80934DC
|
|
sub_80934DC:
|
|
push {r4-r7,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 3
|
|
adds r4, r5, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080934F4
|
|
movs r0, 0xF7
|
|
ands r0, r1
|
|
b _0809351A
|
|
_080934F4:
|
|
movs r7, 0x1
|
|
movs r6, 0xF7
|
|
adds r1, r5, 0
|
|
movs r3, 0x3
|
|
_080934FC:
|
|
ldrb r2, [r1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809350C
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_0809350C:
|
|
adds r1, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080934FC
|
|
ldrb r1, [r4]
|
|
movs r0, 0x8
|
|
orrs r0, r1
|
|
_0809351A:
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_809371C
|
|
movs r0, 0x1
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80934DC
|
|
|
|
thumb_func_start sub_809352C
|
|
sub_809352C:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
movs r2, 0xF7
|
|
ands r2, r3
|
|
strb r2, [r0]
|
|
adds r0, r1, 0
|
|
bl sub_809371C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809352C
|
|
|
|
thumb_func_start sub_8093544
|
|
sub_8093544:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
movs r3, 0x4
|
|
eors r2, r3
|
|
strb r2, [r0]
|
|
adds r0, r1, 0
|
|
bl sub_809371C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093544
|
|
|
|
thumb_func_start sub_8093560
|
|
sub_8093560:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
movs r5, 0x1
|
|
lsls r0, r4, 3
|
|
adds r0, r6, r0
|
|
ldrh r0, [r0, 0x2]
|
|
strh r0, [r2]
|
|
movs r1, 0
|
|
adds r0, r2, 0x2
|
|
movs r3, 0x2
|
|
_08093576:
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093576
|
|
adds r4, 0x1
|
|
adds r2, 0x2
|
|
cmp r4, 0x7
|
|
bgt _080935B0
|
|
cmp r5, 0x3
|
|
bgt _080935B0
|
|
movs r7, 0x2
|
|
lsls r0, r4, 3
|
|
adds r3, r0, r6
|
|
_08093592:
|
|
ldrb r1, [r3]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080935B0
|
|
ldrh r0, [r3, 0x2]
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
adds r3, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
bgt _080935B0
|
|
cmp r5, 0x3
|
|
ble _08093592
|
|
_080935B0:
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093560
|
|
|
|
thumb_func_start sub_80935B8
|
|
sub_80935B8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
movs r0, 0x63
|
|
mov r12, r0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
blt _08093606
|
|
lsls r0, r4, 3
|
|
adds r2, r5, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093606
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093606
|
|
movs r7, 0x1
|
|
movs r3, 0x2
|
|
_080935EC:
|
|
subs r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
blt _08093606
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093606
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080935EC
|
|
_08093606:
|
|
adds r2, r4, 0x1
|
|
mov r9, r2
|
|
cmp r2, 0x3
|
|
bgt _08093642
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093642
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093642
|
|
movs r6, 0x1
|
|
movs r7, 0x2
|
|
_08093628:
|
|
adds r3, 0x8
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _08093642
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093642
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093628
|
|
_08093642:
|
|
cmp r6, 0
|
|
bne _0809364A
|
|
movs r0, 0x63
|
|
b _080936CC
|
|
_0809364A:
|
|
movs r6, 0
|
|
b _08093668
|
|
_0809364E:
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r12, r0
|
|
ble _08093656
|
|
mov r12, r0
|
|
_08093656:
|
|
cmp r0, 0
|
|
bne _0809365C
|
|
movs r6, 0x1
|
|
_0809365C:
|
|
ldrb r1, [r3, 0x1]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093668
|
|
movs r6, 0x1
|
|
_08093668:
|
|
subs r2, 0x1
|
|
cmp r2, r4
|
|
blt _0809367C
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0809364E
|
|
_0809367C:
|
|
cmp r6, 0
|
|
beq _080936C6
|
|
mov r2, r9
|
|
cmp r2, 0x3
|
|
bgt _080936C0
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080936C0
|
|
movs r6, 0x2
|
|
movs r4, 0xFD
|
|
_08093698:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080936C0
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080936C0
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093698
|
|
_080936C0:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080936CA
|
|
_080936C6:
|
|
mov r0, r12
|
|
b _080936CC
|
|
_080936CA:
|
|
movs r0, 0
|
|
_080936CC:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80935B8
|
|
|
|
thumb_func_start sub_80936D8
|
|
sub_80936D8:
|
|
push {r4,lr}
|
|
sub sp, 0x80
|
|
adds r4, r0, 0
|
|
mov r1, sp
|
|
bl sub_8093784
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80937E0
|
|
add sp, 0x80
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80936D8
|
|
|
|
thumb_func_start sub_80936F4
|
|
sub_80936F4:
|
|
push {r4,lr}
|
|
ldr r4, _08093718
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
mov r1, sp
|
|
bl sub_8093974
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093A2C
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08093718: .4byte 0xfffffe00
|
|
thumb_func_end sub_80936F4
|
|
|
|
thumb_func_start sub_809371C
|
|
sub_809371C:
|
|
push {r4,lr}
|
|
ldr r4, _08093740
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
mov r1, sp
|
|
bl sub_80939D0
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093B40
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08093740: .4byte 0xfffffe00
|
|
thumb_func_end sub_809371C
|
|
|
|
thumb_func_start sub_8093744
|
|
sub_8093744:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x80
|
|
_0809374E:
|
|
movs r3, 0
|
|
lsls r0, r4, 5
|
|
adds r2, r0, r7
|
|
_08093754:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809376A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809376A
|
|
adds r0, r4, 0
|
|
b _0809377C
|
|
_0809376A:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08093754
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0809374E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809377C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093744
|
|
|
|
thumb_func_start sub_8093784
|
|
sub_8093784:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r2, 0
|
|
movs r4, 0
|
|
_0809378C:
|
|
lsls r0, r2, 5
|
|
adds r2, 0x1
|
|
movs r3, 0x3
|
|
adds r0, r1
|
|
adds r0, 0x18
|
|
_08093796:
|
|
strb r4, [r0]
|
|
subs r0, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093796
|
|
cmp r2, 0x3
|
|
ble _0809378C
|
|
movs r3, 0
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
subs r4, 0x20
|
|
movs r7, 0x2
|
|
_080937AE:
|
|
cmp r5, 0
|
|
beq _080937BC
|
|
ldrb r1, [r6]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080937C0
|
|
_080937BC:
|
|
adds r4, 0x20
|
|
movs r3, 0
|
|
_080937C0:
|
|
lsls r2, r3, 3
|
|
adds r2, r4
|
|
ldm r6!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080937AE
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093784
|
|
|
|
thumb_func_start sub_80937E0
|
|
sub_80937E0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
str r0, [sp, 0x8]
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
add r1, sp, 0x4
|
|
mov r10, r1
|
|
mov r12, r6
|
|
movs r3, 0x1
|
|
_080937FE:
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
mov r7, r12
|
|
strb r7, [r0]
|
|
mov r1, sp
|
|
adds r1, r6
|
|
adds r1, 0x4
|
|
mov r2, r12
|
|
strb r2, [r1]
|
|
adds r7, r0, 0
|
|
lsls r0, r6, 5
|
|
adds r6, 0x1
|
|
adds r5, r1, 0
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
movs r4, 0x3
|
|
_0809381E:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809383E
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093832
|
|
strb r3, [r7]
|
|
_08093832:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809383E
|
|
strb r3, [r5]
|
|
_0809383E:
|
|
adds r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _0809381E
|
|
cmp r6, 0x3
|
|
ble _080937FE
|
|
movs r6, 0
|
|
mov r2, r8
|
|
lsls r2, 3
|
|
str r2, [sp, 0xC]
|
|
_08093852:
|
|
movs r4, 0
|
|
lsls r0, r6, 5
|
|
mov r7, r9
|
|
adds r5, r0, r7
|
|
ldr r0, [sp, 0xC]
|
|
ldr r1, [sp, 0x8]
|
|
adds r2, r0, r1
|
|
mov r7, r10
|
|
adds r7, r6
|
|
mov r12, r7
|
|
_08093866:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080938D6
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
cmp r4, 0
|
|
bne _08093884
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _0809388A
|
|
_08093884:
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
_0809388A:
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF7
|
|
ands r3, r0
|
|
movs r1, 0
|
|
movs r0, 0xFB
|
|
ands r3, r0
|
|
strb r3, [r2]
|
|
mov r7, sp
|
|
adds r0, r7, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080938B0
|
|
cmp r4, 0
|
|
bne _080938B0
|
|
movs r1, 0x8
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080938B0:
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080938C4
|
|
cmp r4, 0
|
|
bne _080938C4
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080938C4:
|
|
adds r2, 0x8
|
|
ldr r7, [sp, 0xC]
|
|
adds r7, 0x8
|
|
str r7, [sp, 0xC]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x4
|
|
beq _080938E4
|
|
_080938D6:
|
|
adds r5, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08093866
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08093852
|
|
_080938E4:
|
|
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_80937E0
|
|
|
|
thumb_func_start sub_80938F4
|
|
sub_80938F4:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x80
|
|
_080938FE:
|
|
movs r3, 0
|
|
lsls r0, r4, 6
|
|
adds r2, r0, r7
|
|
_08093904:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809391A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809391A
|
|
adds r0, r4, 0
|
|
b _0809392C
|
|
_0809391A:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08093904
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080938FE
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809392C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80938F4
|
|
|
|
thumb_func_start sub_8093934
|
|
sub_8093934:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x80
|
|
_0809393E:
|
|
movs r3, 0
|
|
lsls r0, r4, 6
|
|
adds r2, r0, r7
|
|
_08093944:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809395A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809395A
|
|
adds r0, r4, 0
|
|
b _0809396C
|
|
_0809395A:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08093944
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0809393E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809396C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093934
|
|
|
|
thumb_func_start sub_8093974
|
|
sub_8093974:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r2, 0
|
|
movs r4, 0
|
|
_0809397C:
|
|
lsls r0, r2, 6
|
|
adds r2, 0x1
|
|
movs r3, 0x7
|
|
adds r0, r1
|
|
adds r0, 0x38
|
|
_08093986:
|
|
strb r4, [r0]
|
|
subs r0, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093986
|
|
cmp r2, 0x7
|
|
ble _0809397C
|
|
movs r3, 0
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
subs r4, 0x40
|
|
movs r7, 0x2
|
|
_0809399E:
|
|
cmp r5, 0
|
|
beq _080939AC
|
|
ldrb r1, [r6]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080939B0
|
|
_080939AC:
|
|
adds r4, 0x40
|
|
movs r3, 0
|
|
_080939B0:
|
|
lsls r2, r3, 3
|
|
adds r2, r4
|
|
ldm r6!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0809399E
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093974
|
|
|
|
thumb_func_start sub_80939D0
|
|
sub_80939D0:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r2, 0
|
|
movs r4, 0
|
|
_080939D8:
|
|
lsls r0, r2, 6
|
|
adds r2, 0x1
|
|
movs r3, 0x7
|
|
adds r0, r1
|
|
adds r0, 0x38
|
|
_080939E2:
|
|
strb r4, [r0]
|
|
subs r0, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080939E2
|
|
cmp r2, 0x7
|
|
ble _080939D8
|
|
movs r3, 0
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
subs r4, 0x40
|
|
movs r7, 0x2
|
|
_080939FA:
|
|
cmp r5, 0
|
|
beq _08093A08
|
|
ldrb r1, [r6]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093A0C
|
|
_08093A08:
|
|
adds r4, 0x40
|
|
movs r3, 0
|
|
_08093A0C:
|
|
lsls r2, r3, 3
|
|
adds r2, r4
|
|
ldm r6!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _080939FA
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80939D0
|
|
|
|
thumb_func_start sub_8093A2C
|
|
sub_8093A2C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp, 0x10]
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
add r1, sp, 0x8
|
|
mov r10, r1
|
|
mov r12, r6
|
|
movs r3, 0x1
|
|
_08093A4A:
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
mov r7, r12
|
|
strb r7, [r0]
|
|
mov r1, sp
|
|
adds r1, r6
|
|
adds r1, 0x8
|
|
mov r2, r12
|
|
strb r2, [r1]
|
|
adds r7, r0, 0
|
|
lsls r0, r6, 6
|
|
adds r6, 0x1
|
|
adds r5, r1, 0
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
movs r4, 0x7
|
|
_08093A6A:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093A8A
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093A7E
|
|
strb r3, [r7]
|
|
_08093A7E:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093A8A
|
|
strb r3, [r5]
|
|
_08093A8A:
|
|
adds r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08093A6A
|
|
cmp r6, 0x7
|
|
ble _08093A4A
|
|
movs r6, 0
|
|
mov r2, r8
|
|
lsls r2, 3
|
|
str r2, [sp, 0x14]
|
|
_08093A9E:
|
|
movs r4, 0
|
|
lsls r0, r6, 6
|
|
mov r7, r9
|
|
adds r5, r0, r7
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, [sp, 0x10]
|
|
adds r2, r0, r1
|
|
mov r7, r10
|
|
adds r7, r6
|
|
mov r12, r7
|
|
_08093AB2:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B22
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
cmp r4, 0
|
|
bne _08093AD0
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _08093AD6
|
|
_08093AD0:
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
_08093AD6:
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF7
|
|
ands r3, r0
|
|
movs r1, 0
|
|
movs r0, 0xFB
|
|
ands r3, r0
|
|
strb r3, [r2]
|
|
mov r7, sp
|
|
adds r0, r7, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08093AFC
|
|
cmp r4, 0
|
|
bne _08093AFC
|
|
movs r1, 0x8
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093AFC:
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08093B10
|
|
cmp r4, 0
|
|
bne _08093B10
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093B10:
|
|
adds r2, 0x8
|
|
ldr r7, [sp, 0x14]
|
|
adds r7, 0x8
|
|
str r7, [sp, 0x14]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x8
|
|
beq _08093B30
|
|
_08093B22:
|
|
adds r5, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093AB2
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08093A9E
|
|
_08093B30:
|
|
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_8093A2C
|
|
|
|
thumb_func_start sub_8093B40
|
|
sub_8093B40:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp, 0x10]
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
add r1, sp, 0x8
|
|
mov r10, r1
|
|
mov r12, r6
|
|
movs r3, 0x1
|
|
_08093B5E:
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
mov r7, r12
|
|
strb r7, [r0]
|
|
mov r1, sp
|
|
adds r1, r6
|
|
adds r1, 0x8
|
|
mov r2, r12
|
|
strb r2, [r1]
|
|
adds r7, r0, 0
|
|
lsls r0, r6, 6
|
|
adds r6, 0x1
|
|
adds r5, r1, 0
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
movs r4, 0x7
|
|
_08093B7E:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B9E
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B92
|
|
strb r3, [r7]
|
|
_08093B92:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B9E
|
|
strb r3, [r5]
|
|
_08093B9E:
|
|
adds r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08093B7E
|
|
cmp r6, 0x7
|
|
ble _08093B5E
|
|
movs r6, 0
|
|
mov r2, r8
|
|
lsls r2, 3
|
|
str r2, [sp, 0x14]
|
|
_08093BB2:
|
|
movs r4, 0
|
|
lsls r0, r6, 6
|
|
mov r7, r9
|
|
adds r5, r0, r7
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, [sp, 0x10]
|
|
adds r2, r0, r1
|
|
mov r7, r10
|
|
adds r7, r6
|
|
mov r12, r7
|
|
_08093BC6:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093C36
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
cmp r4, 0
|
|
bne _08093BE4
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _08093BEA
|
|
_08093BE4:
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
_08093BEA:
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF7
|
|
ands r3, r0
|
|
movs r1, 0
|
|
movs r0, 0xFB
|
|
ands r3, r0
|
|
strb r3, [r2]
|
|
mov r7, sp
|
|
adds r0, r7, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08093C10
|
|
cmp r4, 0
|
|
bne _08093C10
|
|
movs r1, 0x8
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093C10:
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08093C24
|
|
cmp r4, 0
|
|
bne _08093C24
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093C24:
|
|
adds r2, 0x8
|
|
ldr r7, [sp, 0x14]
|
|
adds r7, 0x8
|
|
str r7, [sp, 0x14]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x8
|
|
beq _08093C44
|
|
_08093C36:
|
|
adds r5, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093BC6
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08093BB2
|
|
_08093C44:
|
|
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_8093B40
|
|
|
|
thumb_func_start sub_8093C54
|
|
sub_8093C54:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x40
|
|
adds r6, r0, 0
|
|
lsls r0, r1, 3
|
|
adds r0, r6
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
adds r3, r1, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093CA6
|
|
lsls r0, r3, 3
|
|
adds r4, r6, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CA6
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CA6
|
|
mov r12, r2
|
|
movs r7, 0x1
|
|
adds r2, r4, 0
|
|
movs r5, 0x2
|
|
_08093C86:
|
|
mov r0, r12
|
|
strb r0, [r4]
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093CA6
|
|
adds r4, r2, 0
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CA6
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093C86
|
|
_08093CA6:
|
|
movs r4, 0
|
|
movs r7, 0x1
|
|
adds r2, r6, 0
|
|
mov r5, sp
|
|
movs r3, 0x7
|
|
_08093CB0:
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CC2
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
stm r5!, {r0,r1}
|
|
adds r4, 0x1
|
|
_08093CC2:
|
|
adds r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093CB0
|
|
cmp r4, 0x7
|
|
bgt _08093CDE
|
|
movs r1, 0
|
|
lsls r0, r4, 3
|
|
add r0, sp
|
|
_08093CD4:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093CD4
|
|
_08093CDE:
|
|
mov r4, sp
|
|
adds r2, r6, 0
|
|
movs r3, 0x7
|
|
_08093CE4:
|
|
ldm r4!, {r0,r1}
|
|
stm r2!, {r0,r1}
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093CE4
|
|
add sp, 0x40
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093C54
|
|
|
|
thumb_func_start sub_8093CF8
|
|
sub_8093CF8:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x40
|
|
adds r6, r0, 0
|
|
lsls r0, r1, 3
|
|
adds r0, r6
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
adds r3, r1, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093D4A
|
|
lsls r0, r3, 3
|
|
adds r4, r6, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D4A
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D4A
|
|
mov r12, r2
|
|
movs r7, 0x1
|
|
adds r2, r4, 0
|
|
movs r5, 0x2
|
|
_08093D2A:
|
|
mov r0, r12
|
|
strb r0, [r4]
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093D4A
|
|
adds r4, r2, 0
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D4A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093D2A
|
|
_08093D4A:
|
|
movs r4, 0
|
|
movs r7, 0x1
|
|
adds r2, r6, 0
|
|
mov r5, sp
|
|
movs r3, 0x7
|
|
_08093D54:
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D66
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
stm r5!, {r0,r1}
|
|
adds r4, 0x1
|
|
_08093D66:
|
|
adds r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093D54
|
|
cmp r4, 0x7
|
|
bgt _08093D82
|
|
movs r1, 0
|
|
lsls r0, r4, 3
|
|
add r0, sp
|
|
_08093D78:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093D78
|
|
_08093D82:
|
|
mov r4, sp
|
|
adds r2, r6, 0
|
|
movs r3, 0x7
|
|
_08093D88:
|
|
ldm r4!, {r0,r1}
|
|
stm r2!, {r0,r1}
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093D88
|
|
add sp, 0x40
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093CF8
|
|
|
|
thumb_func_start sub_8093D9C
|
|
sub_8093D9C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r0, sp
|
|
bl InitPokemonMove
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8093DE8
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093D9C
|
|
|
|
thumb_func_start sub_8093DC4
|
|
sub_8093DC4:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
mov r0, sp
|
|
bl sub_8093F10
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8093DE8
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093DC4
|
|
|
|
thumb_func_start sub_8093DE8
|
|
sub_8093DE8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _08093E80
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
mov r8, r3
|
|
adds r0, r5, 0
|
|
bl sub_80073B8
|
|
ldr r0, _08093E84
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
lsls r4, 3
|
|
adds r4, 0x10
|
|
ldr r2, _08093E88
|
|
movs r7, 0
|
|
str r7, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
adds r3, r5, 0
|
|
bl xxx_format_and_draw
|
|
movs r3, 0x13
|
|
ldrh r1, [r6, 0x2]
|
|
ldr r4, _08093E8C
|
|
ldr r2, [r4]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r2, [r0, 0x1C]
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2A
|
|
bne _08093E3A
|
|
movs r3, 0x10
|
|
adds r2, 0x1
|
|
_08093E3A:
|
|
str r7, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r3, 0
|
|
adds r3, r5, 0
|
|
bl xxx_format_and_draw
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8093E90
|
|
adds r0, r5, 0
|
|
bl sub_80073E0
|
|
ldrh r1, [r6, 0x2]
|
|
ldr r2, [r4]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, [r0, 0x1C]
|
|
add r0, sp, 0x4
|
|
bl strcpy
|
|
add r0, sp, 0x4
|
|
mov r1, r8
|
|
bl sub_8097DF0
|
|
movs r3, 0xC9
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08093E80: .4byte 0xfffffcdc
|
|
_08093E84: .4byte gAvailablePokemonNames
|
|
_08093E88: .4byte gUnknown_8109930
|
|
_08093E8C: .4byte gMovesData
|
|
thumb_func_end sub_8093DE8
|
|
|
|
thumb_func_start sub_8093E90
|
|
sub_8093E90:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x48
|
|
movs r3, 0xC8
|
|
bl sub_80078A4
|
|
ldr r0, _08093F00
|
|
adds r1, r6, 0
|
|
bl sub_8092D54
|
|
ldr r0, _08093F04
|
|
ldr r2, [r0]
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0x4
|
|
movs r1, 0x4A
|
|
adds r3, r5, 0
|
|
bl xxx_format_and_draw
|
|
ldr r0, _08093F08
|
|
ldr r2, [r0]
|
|
str r4, [sp]
|
|
movs r0, 0x4
|
|
movs r1, 0x56
|
|
adds r3, r5, 0
|
|
bl xxx_format_and_draw
|
|
adds r0, r6, 0
|
|
bl GetMoveType
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetUnformattedTypeString
|
|
adds r2, r0, 0
|
|
str r4, [sp]
|
|
movs r0, 0x40
|
|
movs r1, 0x56
|
|
adds r3, r5, 0
|
|
bl xxx_format_and_draw
|
|
adds r0, r6, 0
|
|
bl GetMovePower
|
|
ldr r1, _08093F0C
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08093F00: .4byte gAvailablePokemonNames
|
|
_08093F04: .4byte gUnknown_810CF00
|
|
_08093F08: .4byte gPtrTypeText
|
|
_08093F0C: .4byte gUnknown_202DE30
|
|
thumb_func_end sub_8093E90
|
|
|
|
thumb_func_start sub_8093F10
|
|
sub_8093F10:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093F48
|
|
movs r0, 0
|
|
strb r1, [r3]
|
|
strb r0, [r3, 0x1]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r3, 0x2]
|
|
ldrh r1, [r4, 0x2]
|
|
ldr r0, _08093F44
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r4, 0x4]
|
|
strb r0, [r3, 0x5]
|
|
b _08093F4A
|
|
.align 2, 0
|
|
_08093F44: .4byte gMovesData
|
|
_08093F48:
|
|
strb r0, [r3]
|
|
_08093F4A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093F10
|
|
|
|
thumb_func_start sub_8093F50
|
|
sub_8093F50:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r7, 0
|
|
adds r3, r6, 0
|
|
adds r4, r1, 0
|
|
movs r5, 0x3
|
|
_08093F5C:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093F8C
|
|
strb r1, [r3]
|
|
strb r7, [r3, 0x1]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r3, 0x2]
|
|
ldrh r1, [r4, 0x2]
|
|
ldr r0, _08093F88
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r4, 0x4]
|
|
strb r0, [r3, 0x5]
|
|
b _08093F8E
|
|
.align 2, 0
|
|
_08093F88: .4byte gMovesData
|
|
_08093F8C:
|
|
strb r0, [r3]
|
|
_08093F8E:
|
|
adds r3, 0x8
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08093F5C
|
|
adds r1, r6, 0
|
|
adds r1, 0x20
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093F50
|
|
|
|
thumb_func_start sub_8093FA8
|
|
sub_8093FA8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r3, 0x3
|
|
_08093FAE:
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r2, 0x2]
|
|
ldrb r0, [r1, 0x5]
|
|
strb r0, [r2, 0x4]
|
|
adds r2, 0x8
|
|
adds r1, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093FAE
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093FA8
|
|
|
|
thumb_func_start sub_8093FC8
|
|
sub_8093FC8:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r2, r1, 0
|
|
movs r3, 0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094002
|
|
movs r7, 0xFB
|
|
movs r6, 0x1
|
|
adds r4, r2, 0
|
|
adds r2, r5, 0
|
|
_08093FE2:
|
|
ldm r4!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
bgt _08094002
|
|
ldrb r1, [r4]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093FE2
|
|
_08094002:
|
|
cmp r3, 0x7
|
|
bgt _08094016
|
|
movs r1, 0
|
|
lsls r0, r3, 3
|
|
adds r0, r5
|
|
_0809400C:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _0809400C
|
|
_08094016:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093FC8
|
|
|
|
thumb_func_start sub_809401C
|
|
sub_809401C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r3, r1, 0
|
|
movs r2, 0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094046
|
|
movs r6, 0x1
|
|
adds r4, r5, 0
|
|
_08094032:
|
|
ldm r3!, {r0,r1}
|
|
stm r4!, {r0,r1}
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _08094046
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08094032
|
|
_08094046:
|
|
cmp r2, 0x7
|
|
bgt _0809405A
|
|
movs r1, 0
|
|
lsls r0, r2, 3
|
|
adds r0, r5
|
|
_08094050:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _08094050
|
|
_0809405A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809401C
|
|
|
|
thumb_func_start sub_8094060
|
|
sub_8094060:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
movs r4, 0
|
|
movs r5, 0
|
|
adds r3, r6, 0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094084
|
|
_08094076:
|
|
lsls r2, r4, 3
|
|
adds r2, r7, r2
|
|
ldr r0, [r3]
|
|
ldr r1, [r3, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
adds r4, 0x1
|
|
_08094084:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
bgt _0809409C
|
|
lsls r0, r5, 3
|
|
adds r3, r6, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094084
|
|
cmp r4, 0x3
|
|
ble _08094076
|
|
_0809409C:
|
|
cmp r4, 0x3
|
|
bgt _080940B0
|
|
movs r1, 0
|
|
lsls r0, r4, 3
|
|
adds r0, r7
|
|
_080940A6:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080940A6
|
|
_080940B0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094060
|
|
|
|
.align 2,0
|