mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 15:07:09 -05:00
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 GetMoveBasePower
|
|
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
|