pmd-red/asm/moves_1.s
mid-kid 99a038284b Translate all .include to #include
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.
2021-12-20 16:29:12 +01:00

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