summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYamaArashi <shadow962@live.com>2016-10-19 03:08:52 -0700
committerYamaArashi <shadow962@live.com>2016-10-19 03:08:52 -0700
commit70c362c2567ba90867a42cf42c378b02ad360e1d (patch)
treed08c25d5e0f8b0b21489591dcc240df701ad3f85
parent1e29e6fb01fcfebbcf4e02938f683f2c1215e65c (diff)
split out battle_ai.s and trader.s
-rw-r--r--Makefile3
-rw-r--r--asm/battle_ai.s5506
-rw-r--r--asm/rom_80B5054.s6144
-rw-r--r--asm/trader.s656
-rw-r--r--ld_script.txt2
5 files changed, 6166 insertions, 6145 deletions
diff --git a/Makefile b/Makefile
index 11dfc5a23..ac0e0b7bf 100644
--- a/Makefile
+++ b/Makefile
@@ -55,7 +55,8 @@ asm/party_menu.o asm/rom_806D7F8.o asm/wild_encounter.o asm/rom_80859BC.o \
asm/field_effect.o asm/title_screen.o asm/rom_807C828.o \
asm/rom_806936C.o asm/clear_save_data_menu.o asm/rom_8148B8C.o \
asm/mystery_event_menu.o asm/save_failed_screen.o asm/rom_81473B8.o \
-asm/diploma.o asm/berry_tag_screen.o asm/lottery_corner.o
+asm/diploma.o asm/berry_tag_screen.o asm/lottery_corner.o \
+asm/battle_ai.o asm/trader.o
DATA_ASM_OBJS := data/data2.o data/graphics.o data/sound_data.o \
data/event_scripts.o data/battle_anim_scripts.o \
diff --git a/asm/battle_ai.s b/asm/battle_ai.s
new file mode 100644
index 000000000..9e0b2e7fa
--- /dev/null
+++ b/asm/battle_ai.s
@@ -0,0 +1,5506 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_81070D4
+sub_81070D4: @ 81070D4
+ push {r4-r7,lr}
+ ldr r2, _08107144
+ movs r3, 0
+ ldr r4, _08107148
+ movs r1, 0
+_081070DE:
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x2F
+ bls _081070DE
+ ldrh r2, [r4]
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ beq _08107138
+ ldr r5, _0810714C
+ ldrh r1, [r5]
+ movs r0, 0x80
+ lsls r0, 3
+ cmp r1, r0
+ beq _08107138
+ ldr r0, _08107150
+ ands r0, r2
+ cmp r0, 0
+ bne _08107138
+ movs r3, 0
+ ldr r7, _08107154
+ ldr r4, _08107158
+ adds r6, r4, 0
+ subs r6, 0x8
+_08107110:
+ lsls r2, r3, 1
+ ldrh r1, [r5]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, r0
+ adds r2, r7
+ ldrh r2, [r2]
+ cmp r2, 0
+ beq _08107132
+ ldrb r0, [r4]
+ lsls r0, 1
+ adds r0, r6
+ strh r2, [r0]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08107132:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08107110
+_08107138:
+ bl sub_810715C
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107144: .4byte 0x02016a00
+_08107148: .4byte gUnknown_020239F8
+_0810714C: .4byte gTrainerBattleOpponent
+_08107150: .4byte 0x00000982
+_08107154: .4byte gTrainers + 0x10
+_08107158: .4byte 0x02016a2c
+ thumb_func_end sub_81070D4
+
+ thumb_func_start sub_810715C
+sub_810715C: @ 810715C
+ push {r4-r7,lr}
+ ldr r2, _08107204
+ movs r4, 0
+ ldr r3, _08107208
+ movs r1, 0
+_08107166:
+ adds r0, r2, r4
+ strb r1, [r0]
+ adds r4, 0x1
+ cmp r4, 0x1B
+ bls _08107166
+ ldr r0, _08107204
+ movs r1, 0x64
+ movs r4, 0x3
+ adds r0, 0x7
+_08107178:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r4, 0x1
+ cmp r4, 0
+ bge _08107178
+ ldrb r0, [r3]
+ movs r1, 0
+ movs r2, 0xFF
+ bl sub_8015A98
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r4, 0
+ ldr r0, _08107204
+ adds r5, r0, 0x4
+ ldr r6, _0810720C
+_08107198:
+ ldr r0, [r6]
+ ands r0, r7
+ cmp r0, 0
+ beq _081071A4
+ movs r0, 0
+ strb r0, [r5]
+_081071A4:
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0xF
+ ands r0, r1
+ movs r1, 0x64
+ subs r1, r0
+ strb r1, [r5, 0x14]
+ adds r5, 0x1
+ adds r6, 0x4
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _08107198
+ ldr r0, _08107210
+ adds r0, 0x20
+ movs r1, 0
+ strb r1, [r0]
+ ldr r1, _08107214
+ ldr r0, _08107208
+ ldrb r2, [r0]
+ strb r2, [r1]
+ ldr r0, _08107218
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08107224
+ ldr r4, _0810721C
+ bl Random
+ movs r5, 0x2
+ ands r0, r5
+ strb r0, [r4]
+ ldr r0, _08107220
+ ldrb r1, [r0]
+ ldr r2, _0810720C
+ ldrb r3, [r4]
+ lsls r0, r3, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r1, r0
+ cmp r1, 0
+ beq _0810722C
+ eors r3, r5
+ strb r3, [r4]
+ b _0810722C
+ .align 2, 0
+_08107204: .4byte 0x02016800
+_08107208: .4byte gUnknown_02024A60
+_0810720C: .4byte gBitTable
+_08107210: .4byte 0x02016c00
+_08107214: .4byte gUnknown_02024C07
+_08107218: .4byte gUnknown_020239F8
+_0810721C: .4byte gUnknown_02024C08
+_08107220: .4byte gUnknown_02024C0C
+_08107224:
+ ldr r0, _08107244
+ movs r1, 0x1
+ eors r1, r2
+ strb r1, [r0]
+_0810722C:
+ ldr r0, _08107248
+ ldrh r1, [r0]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08107250
+ ldr r1, _0810724C
+ movs r0, 0x80
+ lsls r0, 23
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_08107244: .4byte gUnknown_02024C08
+_08107248: .4byte gUnknown_020239F8
+_0810724C: .4byte 0x02016800
+_08107250:
+ movs r0, 0x80
+ lsls r0, 3
+ ands r0, r1
+ cmp r0, 0
+ beq _08107268
+ ldr r1, _08107264
+ movs r0, 0x80
+ lsls r0, 22
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_08107264: .4byte 0x02016800
+_08107268:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _08107280
+ ldr r1, _0810727C
+ movs r0, 0x80
+ lsls r0, 24
+ str r0, [r1, 0xC]
+ b _08107296
+ .align 2, 0
+_0810727C: .4byte 0x02016800
+_08107280:
+ ldr r3, _0810729C
+ ldr r2, _081072A0
+ ldr r0, _081072A4
+ ldrh r1, [r0]
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ adds r2, 0x1C
+ adds r0, r2
+ ldr r0, [r0]
+ str r0, [r3, 0xC]
+_08107296:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810729C: .4byte 0x02016800
+_081072A0: .4byte gTrainers
+_081072A4: .4byte gTrainerBattleOpponent
+ thumb_func_end sub_810715C
+
+ thumb_func_start sub_81072A8
+sub_81072A8: @ 81072A8
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ bl sub_810745C
+ ldr r1, _081072F4
+ ldr r0, [r1, 0xC]
+ cmp r0, 0
+ beq _081072E2
+ adds r4, r1, 0
+ movs r5, 0
+_081072C0:
+ ldr r0, [r4, 0xC]
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081072D0
+ strb r5, [r4]
+ bl sub_8107374
+_081072D0:
+ ldr r1, [r4, 0xC]
+ lsrs r1, 1
+ str r1, [r4, 0xC]
+ ldrb r0, [r4, 0x11]
+ adds r0, 0x1
+ strb r0, [r4, 0x11]
+ strb r5, [r4, 0x1]
+ cmp r1, 0
+ bne _081072C0
+_081072E2:
+ ldr r7, _081072F4
+ ldrb r1, [r7, 0x10]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _081072F8
+ movs r0, 0x4
+ b _08107368
+ .align 2, 0
+_081072F4: .4byte 0x02016800
+_081072F8:
+ movs r0, 0x4
+ ands r0, r1
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ beq _08107308
+ movs r0, 0x5
+ b _08107368
+_08107308:
+ movs r5, 0x1
+ mov r0, sp
+ ldrb r1, [r7, 0x4]
+ strb r1, [r0]
+ add r0, sp, 0x4
+ strb r2, [r0]
+ movs r3, 0x1
+ mov r8, r0
+ mov r4, sp
+ mov r6, r8
+ adds r2, r7, 0x5
+_0810731E:
+ ldrb r1, [r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bge _08107330
+ movs r5, 0x1
+ ldrb r0, [r2]
+ strb r0, [r4]
+ strb r3, [r6]
+_08107330:
+ ldrb r1, [r4]
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r1, r0
+ bne _0810734E
+ mov r0, sp
+ adds r1, r0, r5
+ ldrb r0, [r2]
+ strb r0, [r1]
+ adds r1, r5, 0
+ adds r0, r1, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r1, r6, r1
+ strb r3, [r1]
+_0810734E:
+ adds r2, 0x1
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810731E
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ adds r1, r5, 0
+ bl __modsi3
+ add r0, r8
+ ldrb r0, [r0]
+_08107368:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_81072A8
+
+ thumb_func_start sub_8107374
+sub_8107374: @ 8107374
+ push {r4-r7,lr}
+ ldr r1, _081073D0
+ ldrb r0, [r1]
+ adds r6, r1, 0
+ cmp r0, 0x2
+ beq _08107456
+ adds r4, r1, 0
+ ldr r7, _081073D4
+_08107384:
+ ldrb r0, [r4]
+ cmp r0, 0x1
+ beq _081073E4
+ cmp r0, 0x1
+ bgt _0810744E
+ cmp r0, 0
+ bne _0810744E
+ ldr r1, _081073D8
+ ldrb r0, [r4, 0x11]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ str r0, [r7]
+ ldr r5, _081073DC
+ ldrb r3, [r4, 0x1]
+ ldr r0, _081073E0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ adds r2, r1, 0
+ muls r2, r0
+ adds r0, r3, r2
+ adds r1, r5, 0
+ adds r1, 0x24
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _081073C6
+ lsls r0, r3, 1
+ adds r0, r2
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r0, [r0]
+_081073C6:
+ strh r0, [r4, 0x2]
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+ b _0810744E
+ .align 2, 0
+_081073D0: .4byte 0x02016800
+_081073D4: .4byte gUnknown_02039238
+_081073D8: .4byte BattleAIs
+_081073DC: .4byte gBattleMons
+_081073E0: .4byte gUnknown_02024C07
+_081073E4:
+ ldrh r1, [r1, 0x2]
+ cmp r1, 0
+ beq _08107400
+ ldr r1, _081073FC
+ ldr r0, [r7]
+ ldrb r0, [r0]
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ bl _call_via_r0
+ b _08107410
+ .align 2, 0
+_081073FC: .4byte gUnknown_083F6144
+_08107400:
+ adds r0, r4, 0x4
+ ldrb r2, [r4, 0x1]
+ adds r0, r2
+ strb r1, [r0]
+ ldrb r1, [r4, 0x10]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r4, 0x10]
+_08107410:
+ ldr r1, _0810743C
+ ldrb r2, [r1, 0x10]
+ movs r0, 0x1
+ ands r0, r2
+ adds r6, r1, 0
+ cmp r0, 0
+ beq _0810744E
+ ldrb r0, [r6, 0x1]
+ adds r0, 0x1
+ strb r0, [r6, 0x1]
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bhi _08107440
+ movs r0, 0x8
+ ands r0, r2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0
+ bne _08107440
+ strb r0, [r6]
+ b _08107446
+ .align 2, 0
+_0810743C: .4byte 0x02016800
+_08107440:
+ ldrb r0, [r4]
+ adds r0, 0x1
+ strb r0, [r4]
+_08107446:
+ ldrb r1, [r4, 0x10]
+ movs r0, 0xFE
+ ands r0, r1
+ strb r0, [r4, 0x10]
+_0810744E:
+ adds r1, r6, 0
+ ldrb r0, [r1]
+ cmp r0, 0x2
+ bne _08107384
+_08107456:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107374
+
+ thumb_func_start sub_810745C
+sub_810745C: @ 810745C
+ push {r4-r6,lr}
+ movs r2, 0
+ ldr r3, _08107488
+ ldr r5, _0810748C
+ ldr r6, _08107490
+ adds r4, r3, 0
+_08107468:
+ lsls r0, r2, 1
+ ldrb r1, [r4]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r1, r0, r5
+ ldrh r0, [r1]
+ cmp r0, 0
+ bne _08107494
+ ldrb r0, [r3]
+ lsls r0, 1
+ adds r0, r6
+ ldrh r0, [r0]
+ strh r0, [r1]
+ b _0810749A
+ .align 2, 0
+_08107488: .4byte gUnknown_02024C08
+_0810748C: .4byte 0x02016a00
+_08107490: .4byte gUnknown_02024C34
+_08107494:
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _08107468
+_0810749A:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810745C
+
+ thumb_func_start unref_sub_81074A0
+unref_sub_81074A0: @ 81074A0
+ push {lr}
+ lsls r0, 24
+ ldr r1, _081074C0
+ lsrs r0, 25
+ movs r2, 0x7
+ lsls r0, 4
+ adds r0, r1
+ adds r0, 0xE
+ movs r1, 0
+_081074B2:
+ strh r1, [r0]
+ subs r0, 0x2
+ subs r2, 0x1
+ cmp r2, 0
+ bge _081074B2
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081074C0: .4byte 0x02016a00
+ thumb_func_end unref_sub_81074A0
+
+ thumb_func_start sub_81074C4
+sub_81074C4: @ 81074C4
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _081074EC
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ ldr r2, _081074F4
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, 0x20
+ adds r1, r2
+ strb r5, [r1]
+_081074EC:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081074F4: .4byte 0x02016a00
+ thumb_func_end sub_81074C4
+
+ thumb_func_start sub_81074F8
+sub_81074F8: @ 81074F8
+ push {r4,r5,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r5, r1, 24
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08107520
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ ldr r2, _08107528
+ movs r1, 0x1
+ ands r1, r0
+ adds r2, 0x22
+ adds r1, r2
+ strb r5, [r1]
+_08107520:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107528: .4byte 0x02016a00
+ thumb_func_end sub_81074F8
+
+ thumb_func_start sub_810752C
+sub_810752C: @ 810752C
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _08107560
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bcs _08107564
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107568
+ .align 2, 0
+_08107560: .4byte gUnknown_02039238
+_08107564:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107568:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810752C
+
+ thumb_func_start sub_810756C
+sub_810756C: @ 810756C
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _081075A0
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bls _081075A4
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081075A8
+ .align 2, 0
+_081075A0: .4byte gUnknown_02039238
+_081075A4:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081075A8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810756C
+
+ thumb_func_start sub_81075AC
+sub_81075AC: @ 81075AC
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _081075E0
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ bne _081075E4
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081075E8
+ .align 2, 0
+_081075E0: .4byte gUnknown_02039238
+_081075E4:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081075E8:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81075AC
+
+ thumb_func_start sub_81075EC
+sub_81075EC: @ 81075EC
+ push {lr}
+ bl Random
+ lsls r0, 16
+ movs r1, 0xFF
+ lsls r1, 16
+ ldr r3, _08107620
+ ldr r2, [r3]
+ ands r1, r0
+ lsrs r1, 16
+ ldrb r0, [r2, 0x1]
+ cmp r1, r0
+ beq _08107624
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107628
+ .align 2, 0
+_08107620: .4byte gUnknown_02039238
+_08107624:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107628:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81075EC
+
+ thumb_func_start sub_810762C
+sub_810762C: @ 810762C
+ push {r4,r5,lr}
+ ldr r2, _08107660
+ ldrb r1, [r2, 0x1]
+ adds r3, r2, 0x4
+ adds r1, r3
+ ldr r4, _08107664
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x1]
+ ldrb r5, [r1]
+ adds r0, r5
+ strb r0, [r1]
+ ldrb r0, [r2, 0x1]
+ adds r1, r0, r3
+ movs r0, 0
+ ldrsb r0, [r1, r0]
+ cmp r0, 0
+ bge _08107652
+ movs r0, 0
+ strb r0, [r1]
+_08107652:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08107660: .4byte 0x02016800
+_08107664: .4byte gUnknown_02039238
+ thumb_func_end sub_810762C
+
+ thumb_func_start sub_8107668
+sub_8107668: @ 8107668
+ push {r4,lr}
+ ldr r0, _0810767C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08107684
+ ldr r0, _08107680
+ b _08107686
+ .align 2, 0
+_0810767C: .4byte gUnknown_02039238
+_08107680: .4byte gUnknown_02024C07
+_08107684:
+ ldr r0, _081076BC
+_08107686:
+ ldrb r1, [r0]
+ ldr r2, _081076C0
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bcs _081076C4
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081076C8
+ .align 2, 0
+_081076BC: .4byte gUnknown_02024C08
+_081076C0: .4byte gBattleMons
+_081076C4:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_081076C8:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107668
+
+ thumb_func_start sub_81076D0
+sub_81076D0: @ 81076D0
+ push {r4,lr}
+ ldr r0, _081076E4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _081076EC
+ ldr r0, _081076E8
+ b _081076EE
+ .align 2, 0
+_081076E4: .4byte gUnknown_02039238
+_081076E8: .4byte gUnknown_02024C07
+_081076EC:
+ ldr r0, _08107724
+_081076EE:
+ ldrb r1, [r0]
+ ldr r2, _08107728
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bls _0810772C
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107730
+ .align 2, 0
+_08107724: .4byte gUnknown_02024C08
+_08107728: .4byte gBattleMons
+_0810772C:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107730:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81076D0
+
+ thumb_func_start sub_8107738
+sub_8107738: @ 8107738
+ push {r4,lr}
+ ldr r0, _0810774C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08107754
+ ldr r0, _08107750
+ b _08107756
+ .align 2, 0
+_0810774C: .4byte gUnknown_02039238
+_08107750: .4byte gUnknown_02024C07
+_08107754:
+ ldr r0, _0810778C
+_08107756:
+ ldrb r1, [r0]
+ ldr r2, _08107790
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ bne _08107794
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107798
+ .align 2, 0
+_0810778C: .4byte gUnknown_02024C08
+_08107790: .4byte gBattleMons
+_08107794:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107798:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107738
+
+ thumb_func_start sub_81077A0
+sub_81077A0: @ 81077A0
+ push {r4,lr}
+ ldr r0, _081077B4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _081077BC
+ ldr r0, _081077B8
+ b _081077BE
+ .align 2, 0
+_081077B4: .4byte gUnknown_02039238
+_081077B8: .4byte gUnknown_02024C07
+_081077BC:
+ ldr r0, _081077F4
+_081077BE:
+ ldrb r1, [r0]
+ ldr r2, _081077F8
+ movs r0, 0x58
+ muls r1, r0
+ adds r1, r2
+ ldrh r2, [r1, 0x28]
+ movs r0, 0x64
+ muls r0, r2
+ ldrh r1, [r1, 0x2C]
+ bl __divsi3
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x2]
+ cmp r0, r1
+ beq _081077FC
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107800
+ .align 2, 0
+_081077F4: .4byte gUnknown_02024C08
+_081077F8: .4byte gBattleMons
+_081077FC:
+ adds r0, r2, 0x7
+ str r0, [r4]
+_08107800:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81077A0
+
+ thumb_func_start sub_8107808
+sub_8107808: @ 8107808
+ push {r4,r5,lr}
+ ldr r0, _0810781C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107824
+ ldr r0, _08107820
+ b _08107826
+ .align 2, 0
+_0810781C: .4byte gUnknown_02039238
+_08107820: .4byte gUnknown_02024C07
+_08107824:
+ ldr r0, _08107868
+_08107826:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _0810786C
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08107870
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107876
+ .align 2, 0
+_08107868: .4byte gUnknown_02024C08
+_0810786C: .4byte gBattleMons
+_08107870:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107876:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107808
+
+ thumb_func_start sub_810787C
+sub_810787C: @ 810787C
+ push {r4,r5,lr}
+ ldr r0, _08107890
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107898
+ ldr r0, _08107894
+ b _0810789A
+ .align 2, 0
+_08107890: .4byte gUnknown_02039238
+_08107894: .4byte gUnknown_02024C07
+_08107898:
+ ldr r0, _081078DC
+_0810789A:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _081078E0
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x4C
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _081078E4
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _081078EA
+ .align 2, 0
+_081078DC: .4byte gUnknown_02024C08
+_081078E0: .4byte gBattleMons
+_081078E4:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_081078EA:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810787C
+
+ thumb_func_start sub_81078F0
+sub_81078F0: @ 81078F0
+ push {r4,r5,lr}
+ ldr r0, _08107904
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _0810790C
+ ldr r0, _08107908
+ b _0810790E
+ .align 2, 0
+_08107904: .4byte gUnknown_02039238
+_08107908: .4byte gUnknown_02024C07
+_0810790C:
+ ldr r0, _08107950
+_0810790E:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _08107954
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ beq _08107958
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _0810795E
+ .align 2, 0
+_08107950: .4byte gUnknown_02024C08
+_08107954: .4byte gBattleMons
+_08107958:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_0810795E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81078F0
+
+ thumb_func_start sub_8107964
+sub_8107964: @ 8107964
+ push {r4,r5,lr}
+ ldr r0, _08107978
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107980
+ ldr r0, _0810797C
+ b _08107982
+ .align 2, 0
+_08107978: .4byte gUnknown_02039238
+_0810797C: .4byte gUnknown_02024C07
+_08107980:
+ ldr r0, _081079C4
+_08107982:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r2, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r2, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r2, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r2, r0
+ ldr r1, _081079C8
+ movs r0, 0x58
+ muls r0, r4
+ adds r1, 0x50
+ adds r0, r1
+ ldr r0, [r0]
+ ands r0, r2
+ cmp r0, 0
+ bne _081079CC
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _081079D2
+ .align 2, 0
+_081079C4: .4byte gUnknown_02024C08
+_081079C8: .4byte gBattleMons
+_081079CC:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_081079D2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107964
+
+ thumb_func_start sub_81079D8
+sub_81079D8: @ 81079D8
+ push {r4,r5,lr}
+ ldr r0, _081079EC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _081079F4
+ ldr r0, _081079F0
+ b _081079F6
+ .align 2, 0
+_081079EC: .4byte gUnknown_02039238
+_081079F0: .4byte gUnknown_02024C07
+_081079F4:
+ ldr r0, _08107A34
+_081079F6:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r2, _08107A38
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ beq _08107A3C
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107A42
+ .align 2, 0
+_08107A34: .4byte gUnknown_02024C08
+_08107A38: .4byte gUnknown_02024C98
+_08107A3C:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107A42:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_81079D8
+
+ thumb_func_start sub_8107A48
+sub_8107A48: @ 8107A48
+ push {r4,r5,lr}
+ ldr r0, _08107A5C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _08107A64
+ ldr r0, _08107A60
+ b _08107A66
+ .align 2, 0
+_08107A5C: .4byte gUnknown_02039238
+_08107A60: .4byte gUnknown_02024C07
+_08107A64:
+ ldr r0, _08107AA4
+_08107A66:
+ ldrb r4, [r0]
+ ldr r3, [r5]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r2, _08107AA8
+ lsls r0, r4, 2
+ adds r0, r2
+ ldr r0, [r0]
+ ands r0, r1
+ cmp r0, 0
+ bne _08107AAC
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _08107AB2
+ .align 2, 0
+_08107AA4: .4byte gUnknown_02024C08
+_08107AA8: .4byte gUnknown_02024C98
+_08107AAC:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r5]
+_08107AB2:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107A48
+
+ thumb_func_start sub_8107AB8
+sub_8107AB8: @ 8107AB8
+ push {r4,lr}
+ ldr r0, _08107AC8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08107AD0
+ ldr r0, _08107ACC
+ b _08107AD2
+ .align 2, 0
+_08107AC8: .4byte gUnknown_02039238
+_08107ACC: .4byte gUnknown_02024C07
+_08107AD0:
+ ldr r0, _08107B1C
+_08107AD2:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r2, 0x1
+ ands r2, r0
+ ldr r4, _08107B20
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107B24
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ beq _08107B28
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107B2E
+ .align 2, 0
+_08107B1C: .4byte gUnknown_02024C08
+_08107B20: .4byte gUnknown_02039238
+_08107B24: .4byte gUnknown_02024C7A
+_08107B28:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r4]
+_08107B2E:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107AB8
+
+ thumb_func_start sub_8107B34
+sub_8107B34: @ 8107B34
+ push {r4,lr}
+ ldr r0, _08107B44
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08107B4C
+ ldr r0, _08107B48
+ b _08107B4E
+ .align 2, 0
+_08107B44: .4byte gUnknown_02039238
+_08107B48: .4byte gUnknown_02024C07
+_08107B4C:
+ ldr r0, _08107B98
+_08107B4E:
+ ldrb r0, [r0]
+ bl battle_get_per_side_status
+ movs r2, 0x1
+ ands r2, r0
+ ldr r4, _08107B9C
+ ldr r3, [r4]
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107BA0
+ lsls r2, 1
+ adds r2, r0
+ ldrh r0, [r2]
+ ands r0, r1
+ cmp r0, 0
+ bne _08107BA4
+ ldrb r1, [r3, 0x6]
+ ldrb r0, [r3, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107BAA
+ .align 2, 0
+_08107B98: .4byte gUnknown_02024C08
+_08107B9C: .4byte gUnknown_02039238
+_08107BA0: .4byte gUnknown_02024C7A
+_08107BA4:
+ adds r0, r3, 0
+ adds r0, 0xA
+ str r0, [r4]
+_08107BAA:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107B34
+
+ thumb_func_start sub_8107BB0
+sub_8107BB0: @ 8107BB0
+ push {lr}
+ ldr r0, _08107BD8
+ ldr r3, _08107BDC
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bcs _08107BE0
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107BE4
+ .align 2, 0
+_08107BD8: .4byte 0x02016800
+_08107BDC: .4byte gUnknown_02039238
+_08107BE0:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107BE4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107BB0
+
+ thumb_func_start sub_8107BE8
+sub_8107BE8: @ 8107BE8
+ push {lr}
+ ldr r0, _08107C10
+ ldr r3, _08107C14
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bls _08107C18
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C1C
+ .align 2, 0
+_08107C10: .4byte 0x02016800
+_08107C14: .4byte gUnknown_02039238
+_08107C18:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C1C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107BE8
+
+ thumb_func_start sub_8107C20
+sub_8107C20: @ 8107C20
+ push {lr}
+ ldr r0, _08107C48
+ ldr r3, _08107C4C
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08107C50
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C54
+ .align 2, 0
+_08107C48: .4byte 0x02016800
+_08107C4C: .4byte gUnknown_02039238
+_08107C50:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C54:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C20
+
+ thumb_func_start sub_8107C58
+sub_8107C58: @ 8107C58
+ push {lr}
+ ldr r0, _08107C80
+ ldr r3, _08107C84
+ ldr r2, [r3]
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08107C88
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107C8C
+ .align 2, 0
+_08107C80: .4byte 0x02016800
+_08107C84: .4byte gUnknown_02039238
+_08107C88:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08107C8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C58
+
+ thumb_func_start sub_8107C90
+sub_8107C90: @ 8107C90
+ push {lr}
+ ldr r3, _08107CCC
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107CD0
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bcs _08107CD4
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107CDA
+ .align 2, 0
+_08107CCC: .4byte gUnknown_02039238
+_08107CD0: .4byte 0x02016800
+_08107CD4:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107CDA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107C90
+
+ thumb_func_start sub_8107CE0
+sub_8107CE0: @ 8107CE0
+ push {lr}
+ ldr r3, _08107D1C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107D20
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bls _08107D24
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107D2A
+ .align 2, 0
+_08107D1C: .4byte gUnknown_02039238
+_08107D20: .4byte 0x02016800
+_08107D24:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107D2A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107CE0
+
+ thumb_func_start sub_8107D30
+sub_8107D30: @ 8107D30
+ push {lr}
+ ldr r3, _08107D6C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107D70
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08107D74
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107D7A
+ .align 2, 0
+_08107D6C: .4byte gUnknown_02039238
+_08107D70: .4byte 0x02016800
+_08107D74:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107D7A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107D30
+
+ thumb_func_start sub_8107D80
+sub_8107D80: @ 8107D80
+ push {lr}
+ ldr r3, _08107DBC
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ ldr r0, _08107DC0
+ ldr r0, [r0, 0x8]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _08107DC4
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107DCA
+ .align 2, 0
+_08107DBC: .4byte gUnknown_02039238
+_08107DC0: .4byte 0x02016800
+_08107DC4:
+ adds r0, r2, 0
+ adds r0, 0x9
+ str r0, [r3]
+_08107DCA:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107D80
+
+ thumb_func_start sub_8107DD0
+sub_8107DD0: @ 8107DD0
+ push {lr}
+ ldr r3, _08107E00
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08107E04
+ ldrh r0, [r0, 0x2]
+ cmp r0, r1
+ bne _08107E08
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107E0C
+ .align 2, 0
+_08107E00: .4byte gUnknown_02039238
+_08107E04: .4byte 0x02016800
+_08107E08:
+ adds r0, r2, 0x7
+ str r0, [r3]
+_08107E0C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107DD0
+
+ thumb_func_start sub_8107E10
+sub_8107E10: @ 8107E10
+ push {lr}
+ ldr r3, _08107E40
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldr r0, _08107E44
+ ldrh r0, [r0, 0x2]
+ cmp r0, r1
+ beq _08107E48
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08107E4C
+ .align 2, 0
+_08107E40: .4byte gUnknown_02039238
+_08107E44: .4byte 0x02016800
+_08107E48:
+ adds r0, r2, 0x7
+ str r0, [r3]
+_08107E4C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107E10
+
+ thumb_func_start sub_8107E50
+sub_8107E50: @ 8107E50
+ push {r4,lr}
+ ldr r2, _08107E98
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ beq _08107EA8
+ ldr r0, _08107E9C
+ ldr r1, [r0, 0x8]
+ adds r4, r2, 0
+_08107E76:
+ ldrb r0, [r3]
+ cmp r1, r0
+ bne _08107EA0
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107EAE
+ .align 2, 0
+_08107E98: .4byte gUnknown_02039238
+_08107E9C: .4byte 0x02016800
+_08107EA0:
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08107E76
+_08107EA8:
+ ldr r0, [r2]
+ adds r0, 0x9
+ str r0, [r2]
+_08107EAE:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107E50
+
+ thumb_func_start sub_8107EB4
+sub_8107EB4: @ 8107EB4
+ push {r4,lr}
+ ldr r2, _08107EEC
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrb r0, [r3]
+ adds r4, r2, 0
+ cmp r0, 0xFF
+ beq _08107EFC
+ ldr r0, _08107EF0
+ ldr r2, [r0, 0x8]
+ adds r1, r4, 0
+_08107EDC:
+ ldrb r0, [r3]
+ cmp r2, r0
+ bne _08107EF4
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ b _08107F14
+ .align 2, 0
+_08107EEC: .4byte gUnknown_02039238
+_08107EF0: .4byte 0x02016800
+_08107EF4:
+ adds r3, 0x1
+ ldrb r0, [r3]
+ cmp r0, 0xFF
+ bne _08107EDC
+_08107EFC:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08107F14:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107EB4
+
+ thumb_func_start sub_8107F1C
+sub_8107F1C: @ 8107F1C
+ push {r4,r5,lr}
+ ldr r2, _08107F64
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrh r0, [r3]
+ ldr r5, _08107F68
+ cmp r0, r5
+ beq _08107F78
+ ldr r0, _08107F6C
+ ldr r1, [r0, 0x8]
+ adds r4, r2, 0
+_08107F44:
+ ldrh r0, [r3]
+ cmp r1, r0
+ bne _08107F70
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08107F7E
+ .align 2, 0
+_08107F64: .4byte gUnknown_02039238
+_08107F68: .4byte 0x0000ffff
+_08107F6C: .4byte 0x02016800
+_08107F70:
+ adds r3, 0x2
+ ldrh r0, [r3]
+ cmp r0, r5
+ bne _08107F44
+_08107F78:
+ ldr r0, [r2]
+ adds r0, 0x9
+ str r0, [r2]
+_08107F7E:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107F1C
+
+ thumb_func_start sub_8107F84
+sub_8107F84: @ 8107F84
+ push {r4,r5,lr}
+ ldr r2, _08107FBC
+ ldr r1, [r2]
+ ldrb r3, [r1, 0x1]
+ ldrb r0, [r1, 0x2]
+ lsls r0, 8
+ orrs r3, r0
+ ldrb r0, [r1, 0x3]
+ lsls r0, 16
+ orrs r3, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 24
+ orrs r3, r0
+ ldrh r0, [r3]
+ ldr r4, _08107FC0
+ adds r5, r2, 0
+ cmp r0, r4
+ beq _08107FD0
+ ldr r0, _08107FC4
+ ldr r2, [r0, 0x8]
+ adds r1, r5, 0
+_08107FAE:
+ ldrh r0, [r3]
+ cmp r2, r0
+ bne _08107FC8
+ ldr r0, [r1]
+ adds r0, 0x9
+ str r0, [r1]
+ b _08107FE8
+ .align 2, 0
+_08107FBC: .4byte gUnknown_02039238
+_08107FC0: .4byte 0x0000ffff
+_08107FC4: .4byte 0x02016800
+_08107FC8:
+ adds r3, 0x2
+ ldrh r0, [r3]
+ cmp r0, r4
+ bne _08107FAE
+_08107FD0:
+ ldr r2, [r5]
+ ldrb r1, [r2, 0x5]
+ ldrb r0, [r2, 0x6]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+_08107FE8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107F84
+
+ thumb_func_start sub_8107FF0
+sub_8107FF0: @ 8107FF0
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r4, _08108030
+ ldr r1, _08108034
+ ldr r0, _08108038
+ ldrb r2, [r0]
+ ldr r5, _0810803C
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08108006:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0810801A
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08108022
+_0810801A:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08108006
+_08108022:
+ cmp r3, 0x4
+ bne _08108040
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _08108058
+ .align 2, 0
+_08108030: .4byte gUnknown_02039238
+_08108034: .4byte gBattleMons
+_08108038: .4byte gUnknown_02024C07
+_0810803C: .4byte gBattleMoves
+_08108040:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08108058:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8107FF0
+
+ thumb_func_start sub_8108060
+sub_8108060: @ 8108060
+ push {r4,r5,lr}
+ movs r3, 0
+ ldr r4, _081080A0
+ ldr r1, _081080A4
+ ldr r0, _081080A8
+ ldrb r2, [r0]
+ ldr r5, _081080AC
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08108076:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _0810808A
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r5
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _08108092
+_0810808A:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08108076
+_08108092:
+ cmp r3, 0x4
+ beq _081080B0
+ ldr r0, [r4]
+ adds r0, 0x5
+ str r0, [r4]
+ b _081080C8
+ .align 2, 0
+_081080A0: .4byte gUnknown_02039238
+_081080A4: .4byte gBattleMons
+_081080A8: .4byte gUnknown_02024C07
+_081080AC: .4byte gBattleMoves
+_081080B0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081080C8:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108060
+
+ thumb_func_start sub_81080D0
+sub_81080D0: @ 81080D0
+ ldr r1, _081080E4
+ ldr r0, _081080E8
+ ldrb r0, [r0, 0x13]
+ str r0, [r1, 0x8]
+ ldr r1, _081080EC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081080E4: .4byte 0x02016800
+_081080E8: .4byte gUnknown_030042E0
+_081080EC: .4byte gUnknown_02039238
+ thumb_func_end sub_81080D0
+
+ thumb_func_start sub_81080F0
+sub_81080F0: @ 81080F0
+ push {r4,lr}
+ ldr r1, _08108108
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x4
+ bhi _081081B6
+ lsls r0, 2
+ ldr r1, _0810810C
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08108108: .4byte gUnknown_02039238
+_0810810C: .4byte _08108110
+ .align 2, 0
+_08108110:
+ .4byte _08108144
+ .4byte _08108124
+ .4byte _08108184
+ .4byte _08108164
+ .4byte _081081A4
+_08108124:
+ ldr r3, _08108138
+ ldr r2, _0810813C
+ ldr r0, _08108140
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108138: .4byte 0x02016800
+_0810813C: .4byte gBattleMons
+_08108140: .4byte gUnknown_02024C07
+_08108144:
+ ldr r3, _08108158
+ ldr r2, _0810815C
+ ldr r0, _08108160
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x21
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108158: .4byte 0x02016800
+_0810815C: .4byte gBattleMons
+_08108160: .4byte gUnknown_02024C08
+_08108164:
+ ldr r3, _08108178
+ ldr r2, _0810817C
+ ldr r0, _08108180
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x22
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108178: .4byte 0x02016800
+_0810817C: .4byte gBattleMons
+_08108180: .4byte gUnknown_02024C07
+_08108184:
+ ldr r3, _08108198
+ ldr r2, _0810819C
+ ldr r0, _081081A0
+ ldrb r1, [r0]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ adds r0, 0x22
+ ldrb r0, [r0]
+ b _081081B4
+ .align 2, 0
+_08108198: .4byte 0x02016800
+_0810819C: .4byte gBattleMons
+_081081A0: .4byte gUnknown_02024C08
+_081081A4:
+ ldr r3, _081081C4
+ ldr r2, _081081C8
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+_081081B4:
+ str r0, [r3, 0x8]
+_081081B6:
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081081C4: .4byte 0x02016800
+_081081C8: .4byte gBattleMoves
+ thumb_func_end sub_81080F0
+
+ thumb_func_start sub_81081CC
+sub_81081CC: @ 81081CC
+ ldr r3, _081081E8
+ ldr r2, _081081EC
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ str r0, [r3, 0x8]
+ ldr r1, _081081F0
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081081E8: .4byte 0x02016800
+_081081EC: .4byte gBattleMoves
+_081081F0: .4byte gUnknown_02039238
+ thumb_func_end sub_81081CC
+
+ thumb_func_start sub_81081F4
+sub_81081F4: @ 81081F4
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ movs r3, 0
+ ldr r0, _08108328
+ ldrh r1, [r0]
+ ldr r4, _0810832C
+ ldr r6, _08108330
+ ldr r5, _08108334
+ cmp r1, r4
+ beq _0810822E
+ ldrh r1, [r5, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldrb r2, [r0]
+ ldr r1, _08108328
+_0810821E:
+ ldrh r0, [r1]
+ cmp r2, r0
+ beq _0810822E
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r4
+ bne _0810821E
+_0810822E:
+ ldrh r0, [r5, 0x2]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r6
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bhi _08108240
+ b _081083B2
+_08108240:
+ lsls r0, r3, 1
+ ldr r1, _08108328
+ adds r0, r1
+ ldrh r3, [r0]
+ ldr r0, _0810832C
+ cmp r3, r0
+ beq _08108250
+ b _081083B2
+_08108250:
+ ldr r0, _08108338
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0810833C
+ adds r0, r5, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r5, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r0, _08108340
+ strb r1, [r0]
+ ldr r0, _08108344
+ strb r2, [r0]
+ movs r6, 0
+ mov r9, r3
+ ldr r0, _08108328
+ ldrh r0, [r0]
+ str r0, [sp, 0x10]
+_08108276:
+ movs r3, 0
+ ldr r5, _08108348
+ lsls r4, r6, 1
+ ldr r7, _0810834C
+ lsls r1, r6, 2
+ mov r8, r1
+ adds r2, r6, 0x1
+ mov r10, r2
+ ldr r0, [sp, 0x10]
+ cmp r0, r9
+ beq _081082BA
+ ldr r2, _08108330
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4, r0
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r0, r1
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r2, [r0]
+ ldr r1, _08108328
+_081082AA:
+ ldrh r0, [r1]
+ cmp r2, r0
+ beq _081082BA
+ adds r1, 0x2
+ adds r3, 0x1
+ ldrh r0, [r1]
+ cmp r0, r9
+ bne _081082AA
+_081082BA:
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r4, r0
+ adds r1, r5, 0
+ adds r1, 0xC
+ adds r1, r0, r1
+ ldrh r0, [r1]
+ cmp r0, 0
+ beq _0810835C
+ lsls r0, r3, 1
+ ldr r2, _08108328
+ adds r0, r2
+ ldrh r0, [r0]
+ cmp r0, r9
+ bne _0810835C
+ ldr r0, _08108330
+ ldrh r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0x1
+ bls _0810835C
+ ldr r5, _08108350
+ strh r2, [r5]
+ ldrb r0, [r7]
+ ldr r4, _08108354
+ ldrb r1, [r4]
+ bl sub_801CAF8
+ ldrh r0, [r5]
+ ldrb r1, [r7]
+ ldrb r2, [r4]
+ bl move_effectiveness_something
+ mov r4, sp
+ add r4, r8
+ ldr r2, _08108358
+ ldr r0, _08108334
+ adds r0, 0x18
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ ldr r0, [r2]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _08108364
+ movs r0, 0x1
+ str r0, [r4]
+ b _08108364
+ .align 2, 0
+_08108328: .4byte gUnknown_083F62BC
+_0810832C: .4byte 0x0000ffff
+_08108330: .4byte gBattleMoves
+_08108334: .4byte 0x02016800
+_08108338: .4byte gUnknown_02024DEC
+_0810833C: .4byte 0xfffff81c
+_08108340: .4byte gUnknown_02024C68
+_08108344: .4byte gCritMultiplier
+_08108348: .4byte gBattleMons
+_0810834C: .4byte gUnknown_02024C07
+_08108350: .4byte gUnknown_02024BE6
+_08108354: .4byte gUnknown_02024C08
+_08108358: .4byte gUnknown_02024BEC
+_0810835C:
+ mov r1, sp
+ add r1, r8
+ movs r0, 0
+ str r0, [r1]
+_08108364:
+ mov r6, r10
+ cmp r6, 0x3
+ ble _08108276
+ movs r6, 0
+ ldr r1, _081083A4
+ ldrb r0, [r1, 0x1]
+ lsls r0, 2
+ add r0, sp
+ ldr r2, [sp]
+ ldr r0, [r0]
+ adds r5, r1, 0
+ ldr r4, _081083A8
+ cmp r2, r0
+ bgt _0810839A
+ adds r3, r5, 0
+ mov r2, sp
+_08108384:
+ adds r2, 0x4
+ adds r6, 0x1
+ cmp r6, 0x3
+ bgt _0810839A
+ ldrb r0, [r3, 0x1]
+ lsls r0, 2
+ add r0, sp
+ ldr r1, [r2]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _08108384
+_0810839A:
+ cmp r6, 0x4
+ bne _081083AC
+ movs r0, 0x2
+ str r0, [r5, 0x8]
+ b _081083B8
+ .align 2, 0
+_081083A4: .4byte 0x02016800
+_081083A8: .4byte gUnknown_02039238
+_081083AC:
+ movs r0, 0x1
+ str r0, [r5, 0x8]
+ b _081083B8
+_081083B2:
+ movs r0, 0
+ str r0, [r5, 0x8]
+ ldr r4, _081083D0
+_081083B8:
+ ldr r0, [r4]
+ adds r0, 0x1
+ str r0, [r4]
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081083D0: .4byte gUnknown_02039238
+ thumb_func_end sub_81081F4
+
+ thumb_func_start sub_81083D4
+sub_81083D4: @ 81083D4
+ push {lr}
+ ldr r0, _081083EC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r3, r0, 0
+ cmp r1, 0x1
+ bne _081083FC
+ ldr r2, _081083F0
+ ldr r1, _081083F4
+ ldr r0, _081083F8
+ b _08108402
+ .align 2, 0
+_081083EC: .4byte gUnknown_02039238
+_081083F0: .4byte 0x02016800
+_081083F4: .4byte gUnknown_02024C34
+_081083F8: .4byte gUnknown_02024C07
+_081083FC:
+ ldr r2, _08108418
+ ldr r1, _0810841C
+ ldr r0, _08108420
+_08108402:
+ ldrb r0, [r0]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ str r0, [r2, 0x8]
+ ldr r0, [r3]
+ adds r0, 0x2
+ str r0, [r3]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108418: .4byte 0x02016800
+_0810841C: .4byte gUnknown_02024C34
+_08108420: .4byte gUnknown_02024C08
+ thumb_func_end sub_81083D4
+
+ thumb_func_start sub_8108424
+sub_8108424: @ 8108424
+ push {lr}
+ ldr r3, _0810844C
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ ldr r1, _08108450
+ ldr r1, [r1, 0x8]
+ cmp r0, r1
+ bne _08108454
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108458
+ .align 2, 0
+_0810844C: .4byte gUnknown_02039238
+_08108450: .4byte 0x02016800
+_08108454:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108458:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108424
+
+ thumb_func_start sub_810845C
+sub_810845C: @ 810845C
+ push {lr}
+ ldr r3, _08108484
+ ldr r2, [r3]
+ ldrb r0, [r2, 0x1]
+ ldr r1, _08108488
+ ldr r1, [r1, 0x8]
+ cmp r0, r1
+ beq _0810848C
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108490
+ .align 2, 0
+_08108484: .4byte gUnknown_02039238
+_08108488: .4byte 0x02016800
+_0810848C:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108490:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_810845C
+
+ thumb_func_start tai28_unk
+tai28_unk: @ 8108494
+ push {lr}
+ ldr r0, _081084CC
+ ldrb r0, [r0]
+ ldr r1, _081084D0
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl b_first_side
+ ldr r3, _081084D4
+ ldr r2, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _081084D8
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081084DC
+ .align 2, 0
+_081084CC: .4byte gUnknown_02024C07
+_081084D0: .4byte gUnknown_02024C08
+_081084D4: .4byte gUnknown_02039238
+_081084D8:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_081084DC:
+ pop {r0}
+ bx r0
+ thumb_func_end tai28_unk
+
+ thumb_func_start tai29_unk
+tai29_unk: @ 81084E0
+ push {lr}
+ ldr r0, _08108518
+ ldrb r0, [r0]
+ ldr r1, _0810851C
+ ldrb r1, [r1]
+ movs r2, 0x1
+ bl b_first_side
+ ldr r3, _08108520
+ ldr r2, [r3]
+ lsls r0, 24
+ lsrs r0, 24
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08108524
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108528
+ .align 2, 0
+_08108518: .4byte gUnknown_02024C07
+_0810851C: .4byte gUnknown_02024C08
+_08108520: .4byte gUnknown_02039238
+_08108524:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108528:
+ pop {r0}
+ bx r0
+ thumb_func_end tai29_unk
+
+ thumb_func_start nullsub_25
+nullsub_25: @ 810852C
+ bx lr
+ thumb_func_end nullsub_25
+
+ thumb_func_start nullsub_26
+nullsub_26: @ 8108530
+ bx lr
+ thumb_func_end nullsub_26
+
+ thumb_func_start tai2C_unk
+tai2C_unk: @ 8108534
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r1, _08108550
+ movs r0, 0
+ str r0, [r1, 0x8]
+ ldr r0, _08108554
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _0810855C
+ ldr r0, _08108558
+ b _0810855E
+ .align 2, 0
+_08108550: .4byte 0x02016800
+_08108554: .4byte gUnknown_02039238
+_08108558: .4byte gUnknown_02024C07
+_0810855C:
+ ldr r0, _081085A8
+_0810855E:
+ ldrb r5, [r0]
+ adds r0, r5, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ ldr r1, _081085AC
+ mov r9, r1
+ cmp r0, 0
+ bne _08108574
+ ldr r0, _081085B0
+ mov r9, r0
+_08108574:
+ ldr r0, _081085B4
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _081085BC
+ ldr r4, _081085B8
+ lsls r0, r5, 1
+ adds r0, r4
+ ldrb r0, [r0]
+ mov r8, r0
+ adds r0, r5, 0
+ bl battle_get_per_side_status
+ movs r1, 0x2
+ eors r0, r1
+ lsls r0, 24
+ lsrs r0, 24
+ bl battle_get_side_with_given_state
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrb r6, [r0]
+ b _081085C6
+ .align 2, 0
+_081085A8: .4byte gUnknown_02024C08
+_081085AC: .4byte gEnemyParty
+_081085B0: .4byte gPlayerParty
+_081085B4: .4byte gUnknown_020239F8
+_081085B8: .4byte gUnknown_02024A6A
+_081085BC:
+ ldr r1, _08108624
+ lsls r0, r5, 1
+ adds r0, r1
+ ldrb r6, [r0]
+ mov r8, r6
+_081085C6:
+ movs r5, 0
+ ldr r7, _08108628
+_081085CA:
+ cmp r5, r8
+ beq _08108608
+ cmp r5, r6
+ beq _08108608
+ movs r0, 0x64
+ muls r0, r5
+ mov r1, r9
+ adds r4, r1, r0
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ cmp r0, 0
+ beq _08108608
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ cmp r0, 0
+ beq _08108608
+ adds r0, r4, 0
+ movs r1, 0x41
+ bl GetMonData
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r0, r1
+ beq _08108608
+ ldr r0, [r7, 0x8]
+ adds r0, 0x1
+ str r0, [r7, 0x8]
+_08108608:
+ adds r5, 0x1
+ cmp r5, 0x5
+ ble _081085CA
+ ldr r1, _0810862C
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108624: .4byte gUnknown_02024A6A
+_08108628: .4byte 0x02016800
+_0810862C: .4byte gUnknown_02039238
+ thumb_func_end tai2C_unk
+
+ thumb_func_start sub_8108630
+sub_8108630: @ 8108630
+ ldr r1, _08108640
+ ldrh r0, [r1, 0x2]
+ str r0, [r1, 0x8]
+ ldr r1, _08108644
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08108640: .4byte 0x02016800
+_08108644: .4byte gUnknown_02039238
+ thumb_func_end sub_8108630
+
+ thumb_func_start sub_8108648
+sub_8108648: @ 8108648
+ ldr r3, _08108664
+ ldr r2, _08108668
+ ldrh r1, [r3, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [r3, 0x8]
+ ldr r1, _0810866C
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08108664: .4byte 0x02016800
+_08108668: .4byte gBattleMoves
+_0810866C: .4byte gUnknown_02039238
+ thumb_func_end sub_8108648
+
+ thumb_func_start sub_8108670
+sub_8108670: @ 8108670
+ push {r4-r7,lr}
+ ldr r0, _08108680
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08108688
+ ldr r0, _08108684
+ b _0810868A
+ .align 2, 0
+_08108680: .4byte gUnknown_02039238
+_08108684: .4byte gUnknown_02024C07
+_08108688:
+ ldr r0, _081086BC
+_0810868A:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08108774
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ movs r7, 0x1
+ adds r1, r7, 0
+ ands r1, r0
+ ldr r6, _081086C0
+ adds r0, r6, 0
+ adds r0, 0x20
+ adds r3, r1, r0
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _081086C8
+ ldr r0, _081086C4
+ adds r1, r6, r0
+ ldrb r0, [r3]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_081086BC: .4byte gUnknown_02024C08
+_081086C0: .4byte 0x02016a00
+_081086C4: .4byte 0xfffffe00
+_081086C8:
+ ldr r1, _081086F4
+ movs r0, 0x58
+ muls r0, r4
+ adds r5, r0, r1
+ adds r0, r5, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ adds r2, r1, 0
+ cmp r0, 0x17
+ beq _081086E4
+ cmp r0, 0x2A
+ beq _081086E4
+ cmp r0, 0x47
+ bne _081086FC
+_081086E4:
+ ldr r1, _081086F8
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r2
+ adds r0, 0x20
+ ldrb r0, [r0]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_081086F4: .4byte gBattleMons
+_081086F8: .4byte 0x02016800
+_081086FC:
+ ldr r4, _08108734
+ ldrh r0, [r5]
+ lsls r1, r0, 3
+ subs r1, r0
+ lsls r1, 2
+ adds r3, r1, r4
+ ldrb r0, [r3, 0x16]
+ cmp r0, 0
+ beq _08108764
+ ldrb r0, [r3, 0x17]
+ cmp r0, 0
+ beq _08108754
+ bl Random
+ adds r1, r7, 0
+ ands r1, r0
+ cmp r1, 0
+ beq _0810873C
+ ldr r0, _08108738
+ adds r2, r6, r0
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x16]
+ b _08108782
+ .align 2, 0
+_08108734: .4byte gBaseStats
+_08108738: .4byte 0xfffffe00
+_0810873C:
+ ldr r0, _08108750
+ adds r2, r6, r0
+ ldrh r1, [r5]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r4
+ ldrb r0, [r0, 0x17]
+ b _08108782
+ .align 2, 0
+_08108750: .4byte 0xfffffe00
+_08108754:
+ ldr r0, _08108760
+ adds r1, r6, r0
+ ldrb r0, [r3, 0x16]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_08108760: .4byte 0xfffffe00
+_08108764:
+ ldr r0, _08108770
+ adds r1, r6, r0
+ ldrb r0, [r3, 0x17]
+ str r0, [r1, 0x8]
+ b _08108784
+ .align 2, 0
+_08108770: .4byte 0xfffffe00
+_08108774:
+ ldr r2, _08108794
+ ldr r1, _08108798
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ adds r0, 0x20
+ ldrb r0, [r0]
+_08108782:
+ str r0, [r2, 0x8]
+_08108784:
+ ldr r1, _0810879C
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108794: .4byte 0x02016800
+_08108798: .4byte gBattleMons
+_0810879C: .4byte gUnknown_02039238
+ thumb_func_end sub_8108670
+
+ thumb_func_start tai30_unk
+tai30_unk: @ 81087A0
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r0, _0810885C
+ movs r2, 0
+ strh r2, [r0]
+ ldr r1, _08108860
+ ldr r3, _08108864
+ adds r0, r1, r3
+ movs r4, 0
+ strb r2, [r0]
+ adds r3, 0x3
+ adds r0, r1, r3
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r0, _08108868
+ strb r2, [r0]
+ ldr r0, _0810886C
+ strb r3, [r0]
+ movs r0, 0xB4
+ lsls r0, 9
+ adds r1, r0
+ str r4, [r1, 0x8]
+ movs r5, 0
+ ldr r4, _08108870
+ ldr r7, _08108874
+ ldr r3, _08108878
+ mov r8, r3
+ ldr r6, _0810887C
+_081087DA:
+ movs r0, 0x28
+ str r0, [r4]
+ lsls r1, r5, 1
+ ldrb r2, [r6]
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, r0
+ add r1, r8
+ ldrh r0, [r1]
+ strh r0, [r7]
+ lsls r0, 16
+ cmp r0, 0
+ beq _08108844
+ ldrh r0, [r7]
+ ldrb r1, [r6]
+ ldr r2, _08108880
+ ldrb r2, [r2]
+ bl move_effectiveness_something
+ ldr r0, [r4]
+ cmp r0, 0x78
+ bne _0810880A
+ movs r0, 0x50
+ str r0, [r4]
+_0810880A:
+ ldr r0, [r4]
+ cmp r0, 0xF0
+ bne _08108814
+ movs r0, 0xA0
+ str r0, [r4]
+_08108814:
+ ldr r0, [r4]
+ cmp r0, 0x1E
+ bne _0810881E
+ movs r0, 0x14
+ str r0, [r4]
+_0810881E:
+ ldr r0, [r4]
+ cmp r0, 0xF
+ bne _08108828
+ movs r0, 0xA
+ str r0, [r4]
+_08108828:
+ ldr r0, _08108868
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08108838
+ movs r0, 0
+ str r0, [r4]
+_08108838:
+ ldr r2, _08108884
+ ldr r0, [r2, 0x8]
+ ldr r1, [r4]
+ cmp r0, r1
+ bcs _08108844
+ str r1, [r2, 0x8]
+_08108844:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _081087DA
+ ldr r1, _08108888
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810885C: .4byte gUnknown_02024DEC
+_08108860: .4byte 0x02000000
+_08108864: .4byte 0x0001601c
+_08108868: .4byte gUnknown_02024C68
+_0810886C: .4byte gCritMultiplier
+_08108870: .4byte gUnknown_02024BEC
+_08108874: .4byte gUnknown_02024BE6
+_08108878: .4byte gUnknown_02024A8C
+_0810887C: .4byte gUnknown_02024C07
+_08108880: .4byte gUnknown_02024C08
+_08108884: .4byte 0x02016800
+_08108888: .4byte gUnknown_02039238
+ thumb_func_end tai30_unk
+
+ thumb_func_start dp15_simulate_damage_bonus_jump_if_eq
+dp15_simulate_damage_bonus_jump_if_eq: @ 810888C
+ push {r4,r5,lr}
+ ldr r0, _08108928
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _0810892C
+ ldr r3, _08108930
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r3, 0x3
+ adds r0, r2, r3
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r5, _08108934
+ strb r1, [r5]
+ ldr r0, _08108938
+ strb r3, [r0]
+ ldr r4, _0810893C
+ movs r0, 0x28
+ str r0, [r4]
+ ldr r1, _08108940
+ movs r0, 0xB4
+ lsls r0, 9
+ adds r2, r0
+ ldrh r0, [r2, 0x2]
+ strh r0, [r1]
+ ldrh r0, [r1]
+ ldr r1, _08108944
+ ldrb r1, [r1]
+ ldr r2, _08108948
+ ldrb r2, [r2]
+ bl move_effectiveness_something
+ ldr r0, [r4]
+ cmp r0, 0x78
+ bne _081088D6
+ movs r0, 0x50
+ str r0, [r4]
+_081088D6:
+ ldr r0, [r4]
+ cmp r0, 0xF0
+ bne _081088E0
+ movs r0, 0xA0
+ str r0, [r4]
+_081088E0:
+ ldr r0, [r4]
+ cmp r0, 0x1E
+ bne _081088EA
+ movs r0, 0x14
+ str r0, [r4]
+_081088EA:
+ ldr r0, [r4]
+ cmp r0, 0xF
+ bne _081088F4
+ movs r0, 0xA
+ str r0, [r4]
+_081088F4:
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08108902
+ movs r0, 0
+ str r0, [r4]
+_08108902:
+ ldrb r0, [r4]
+ ldr r3, _0810894C
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08108950
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108954
+ .align 2, 0
+_08108928: .4byte gUnknown_02024DEC
+_0810892C: .4byte 0x02000000
+_08108930: .4byte 0x0001601c
+_08108934: .4byte gUnknown_02024C68
+_08108938: .4byte gCritMultiplier
+_0810893C: .4byte gUnknown_02024BEC
+_08108940: .4byte gUnknown_02024BE6
+_08108944: .4byte gUnknown_02024C07
+_08108948: .4byte gUnknown_02024C08
+_0810894C: .4byte gUnknown_02039238
+_08108950:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108954:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp15_simulate_damage_bonus_jump_if_eq
+
+ thumb_func_start nullsub_71
+nullsub_71: @ 810895C
+ bx lr
+ thumb_func_end nullsub_71
+
+ thumb_func_start nullsub_90
+nullsub_90: @ 8108960
+ bx lr
+ thumb_func_end nullsub_90
+
+ thumb_func_start sub_8108964
+sub_8108964: @ 8108964
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _0810897C
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ cmp r1, 0x1
+ bne _081089A4
+ ldr r1, _08108980
+ b _081089A6
+ .align 2, 0
+_0810897C: .4byte gUnknown_02039238
+_08108980: .4byte gEnemyParty
+_08108984:
+ ldr r3, _081089A0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108A12
+ .align 2, 0
+_081089A0: .4byte gUnknown_02039238
+_081089A4:
+ ldr r1, _08108A20
+_081089A6:
+ mov r9, r1
+ ldr r1, [r0]
+ ldrb r7, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r7, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r7, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r7, r0
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0xCE
+ lsls r1, 1
+ mov r10, r1
+_081089C8:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r9
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r5, 0
+ beq _08108A00
+ cmp r5, r10
+ beq _08108A00
+ cmp r6, 0
+ beq _08108A00
+ cmp r0, r7
+ beq _08108984
+_08108A00:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _081089C8
+ ldr r1, _08108A24
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_08108A12:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108A20: .4byte gPlayerParty
+_08108A24: .4byte gUnknown_02039238
+ thumb_func_end sub_8108964
+
+ thumb_func_start sub_8108A28
+sub_8108A28: @ 8108A28
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r0, _08108A44
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _08108A4C
+ ldr r0, _08108A48
+ mov r10, r0
+ b _08108A50
+ .align 2, 0
+_08108A44: .4byte gUnknown_02039238
+_08108A48: .4byte gEnemyParty
+_08108A4C:
+ ldr r1, _08108AE4
+ mov r10, r1
+_08108A50:
+ ldr r1, [r2]
+ ldrb r7, [r1, 0x2]
+ ldrb r0, [r1, 0x3]
+ lsls r0, 8
+ orrs r7, r0
+ ldrb r0, [r1, 0x4]
+ lsls r0, 16
+ orrs r7, r0
+ ldrb r0, [r1, 0x5]
+ lsls r0, 24
+ orrs r7, r0
+ movs r0, 0
+ mov r8, r0
+ mov r9, r2
+_08108A6C:
+ movs r0, 0x64
+ mov r4, r8
+ muls r4, r0
+ add r4, r10
+ adds r0, r4, 0
+ movs r1, 0xB
+ bl GetMonData
+ lsls r0, 16
+ lsrs r5, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x39
+ bl GetMonData
+ lsls r0, 16
+ lsrs r6, r0, 16
+ adds r0, r4, 0
+ movs r1, 0x37
+ bl GetMonData
+ cmp r5, 0
+ beq _08108AB0
+ movs r1, 0xCE
+ lsls r1, 1
+ cmp r5, r1
+ beq _08108AB0
+ cmp r6, 0
+ beq _08108AB0
+ cmp r0, r7
+ bne _08108AB0
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xA
+ str r0, [r1]
+_08108AB0:
+ movs r0, 0x1
+ add r8, r0
+ mov r1, r8
+ cmp r1, 0x5
+ ble _08108A6C
+ ldr r3, _08108AE8
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x6]
+ ldrb r0, [r2, 0x7]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x8]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x9]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108AE4: .4byte gPlayerParty
+_08108AE8: .4byte gUnknown_02039238
+ thumb_func_end sub_8108A28
+
+ thumb_func_start sub_8108AEC
+sub_8108AEC: @ 8108AEC
+ push {lr}
+ ldr r2, _08108B3C
+ ldrh r1, [r2]
+ movs r0, 0x7
+ ands r0, r1
+ cmp r0, 0
+ beq _08108B00
+ ldr r1, _08108B40
+ movs r0, 0x1
+ str r0, [r1, 0x8]
+_08108B00:
+ ldrh r2, [r2]
+ movs r0, 0x18
+ ands r0, r2
+ adds r3, r2, 0
+ cmp r0, 0
+ beq _08108B12
+ ldr r1, _08108B40
+ movs r0, 0x2
+ str r0, [r1, 0x8]
+_08108B12:
+ movs r0, 0x60
+ ands r0, r3
+ cmp r0, 0
+ beq _08108B20
+ ldr r1, _08108B40
+ movs r0, 0
+ str r0, [r1, 0x8]
+_08108B20:
+ movs r0, 0x80
+ ands r0, r2
+ cmp r0, 0
+ beq _08108B2E
+ ldr r1, _08108B40
+ movs r0, 0x3
+ str r0, [r1, 0x8]
+_08108B2E:
+ ldr r1, _08108B44
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108B3C: .4byte word_2024DB8
+_08108B40: .4byte 0x02016800
+_08108B44: .4byte gUnknown_02039238
+ thumb_func_end sub_8108AEC
+
+ thumb_func_start sub_8108B48
+sub_8108B48: @ 8108B48
+ push {lr}
+ ldr r2, _08108B7C
+ ldr r0, _08108B80
+ ldrh r1, [r0, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, _08108B84
+ ldr r2, [r3]
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ bne _08108B88
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108B8C
+ .align 2, 0
+_08108B7C: .4byte gBattleMoves
+_08108B80: .4byte 0x02016800
+_08108B84: .4byte gUnknown_02039238
+_08108B88:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108B8C:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108B48
+
+ thumb_func_start sub_8108B90
+sub_8108B90: @ 8108B90
+ push {lr}
+ ldr r2, _08108BC4
+ ldr r0, _08108BC8
+ ldrh r1, [r0, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r3, _08108BCC
+ ldr r2, [r3]
+ ldrb r0, [r0]
+ ldrb r1, [r2, 0x1]
+ cmp r0, r1
+ beq _08108BD0
+ ldrb r1, [r2, 0x2]
+ ldrb r0, [r2, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108BD4
+ .align 2, 0
+_08108BC4: .4byte gBattleMoves
+_08108BC8: .4byte 0x02016800
+_08108BCC: .4byte gUnknown_02039238
+_08108BD0:
+ adds r0, r2, 0x6
+ str r0, [r3]
+_08108BD4:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108B90
+
+ thumb_func_start sub_8108BD8
+sub_8108BD8: @ 8108BD8
+ push {r4,lr}
+ ldr r0, _08108BEC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108BF4
+ ldr r0, _08108BF0
+ b _08108BF6
+ .align 2, 0
+_08108BEC: .4byte gUnknown_02039238
+_08108BF0: .4byte gUnknown_02024C07
+_08108BF4:
+ ldr r0, _08108C2C
+_08108BF6:
+ ldrb r3, [r0]
+ ldr r1, _08108C30
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bge _08108C34
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108C3A
+ .align 2, 0
+_08108C2C: .4byte gUnknown_02024C08
+_08108C30: .4byte gBattleMons
+_08108C34:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108C3A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108BD8
+
+ thumb_func_start sub_8108C40
+sub_8108C40: @ 8108C40
+ push {r4,lr}
+ ldr r0, _08108C54
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108C5C
+ ldr r0, _08108C58
+ b _08108C5E
+ .align 2, 0
+_08108C54: .4byte gUnknown_02039238
+_08108C58: .4byte gUnknown_02024C07
+_08108C5C:
+ ldr r0, _08108C94
+_08108C5E:
+ ldrb r3, [r0]
+ ldr r1, _08108C98
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ ble _08108C9C
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108CA2
+ .align 2, 0
+_08108C94: .4byte gUnknown_02024C08
+_08108C98: .4byte gBattleMons
+_08108C9C:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108CA2:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108C40
+
+ thumb_func_start sub_8108CA8
+sub_8108CA8: @ 8108CA8
+ push {r4,lr}
+ ldr r0, _08108CBC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108CC4
+ ldr r0, _08108CC0
+ b _08108CC6
+ .align 2, 0
+_08108CBC: .4byte gUnknown_02039238
+_08108CC0: .4byte gUnknown_02024C07
+_08108CC4:
+ ldr r0, _08108CFC
+_08108CC6:
+ ldrb r3, [r0]
+ ldr r1, _08108D00
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ bne _08108D04
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108D0A
+ .align 2, 0
+_08108CFC: .4byte gUnknown_02024C08
+_08108D00: .4byte gBattleMons
+_08108D04:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108D0A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108CA8
+
+ thumb_func_start sub_8108D10
+sub_8108D10: @ 8108D10
+ push {r4,lr}
+ ldr r0, _08108D24
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08108D2C
+ ldr r0, _08108D28
+ b _08108D2E
+ .align 2, 0
+_08108D24: .4byte gUnknown_02039238
+_08108D28: .4byte gUnknown_02024C07
+_08108D2C:
+ ldr r0, _08108D64
+_08108D2E:
+ ldrb r3, [r0]
+ ldr r1, _08108D68
+ ldr r2, [r4]
+ movs r0, 0x58
+ muls r0, r3
+ ldrb r3, [r2, 0x2]
+ adds r0, r3
+ adds r1, 0x18
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ ldrb r1, [r2, 0x3]
+ cmp r0, r1
+ beq _08108D6C
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08108D72
+ .align 2, 0
+_08108D64: .4byte gUnknown_02024C08
+_08108D68: .4byte gBattleMons
+_08108D6C:
+ adds r0, r2, 0
+ adds r0, 0x8
+ str r0, [r4]
+_08108D72:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8108D10
+
+ thumb_func_start tai3D_unk
+tai3D_unk: @ 8108D78
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r2, _08108E1C
+ ldr r6, _08108E20
+ ldrh r1, [r6, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bls _08108E4C
+ ldr r0, _08108E24
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08108E28
+ adds r0, r6, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r6, r2
+ movs r2, 0x1
+ mov r8, r2
+ mov r2, r8
+ strb r2, [r0]
+ ldr r0, _08108E2C
+ strb r1, [r0]
+ ldr r0, _08108E30
+ strb r2, [r0]
+ ldr r5, _08108E34
+ ldrh r0, [r6, 0x2]
+ strh r0, [r5]
+ ldr r4, _08108E38
+ ldrb r0, [r4]
+ ldr r7, _08108E3C
+ ldrb r1, [r7]
+ bl sub_801CAF8
+ ldrh r0, [r5]
+ ldrb r1, [r4]
+ ldrb r2, [r7]
+ bl move_effectiveness_something
+ ldr r4, _08108E40
+ adds r0, r6, 0
+ adds r0, 0x18
+ ldrb r6, [r6, 0x1]
+ adds r0, r6
+ ldrb r1, [r0]
+ ldr r0, [r4]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ cmp r0, 0
+ bne _08108DEE
+ mov r0, r8
+ str r0, [r4]
+_08108DEE:
+ ldr r2, _08108E44
+ ldrb r1, [r7]
+ movs r0, 0x58
+ muls r0, r1
+ adds r0, r2
+ ldrh r1, [r0, 0x28]
+ ldr r0, [r4]
+ cmp r1, r0
+ bgt _08108E4C
+ ldr r3, _08108E48
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108E54
+ .align 2, 0
+_08108E1C: .4byte gBattleMoves
+_08108E20: .4byte 0x02016800
+_08108E24: .4byte gUnknown_02024DEC
+_08108E28: .4byte 0xfffff81c
+_08108E2C: .4byte gUnknown_02024C68
+_08108E30: .4byte gCritMultiplier
+_08108E34: .4byte gUnknown_02024BE6
+_08108E38: .4byte gUnknown_02024C07
+_08108E3C: .4byte gUnknown_02024C08
+_08108E40: .4byte gUnknown_02024BEC
+_08108E44: .4byte gBattleMons
+_08108E48: .4byte gUnknown_02039238
+_08108E4C:
+ ldr r1, _08108E60
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08108E54:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108E60: .4byte gUnknown_02039238
+ thumb_func_end tai3D_unk
+
+ thumb_func_start dp15_determine_move_damage_jump_if_not_fatal
+dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64
+ push {r4-r7,lr}
+ ldr r2, _08108EF8
+ ldr r7, _08108EFC
+ ldrh r1, [r7, 0x2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bls _08108F28
+ ldr r0, _08108F00
+ movs r1, 0
+ strh r1, [r0]
+ ldr r2, _08108F04
+ adds r0, r7, r2
+ strb r1, [r0]
+ adds r2, 0x3
+ adds r0, r7, r2
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r0, _08108F08
+ strb r1, [r0]
+ ldr r0, _08108F0C
+ strb r2, [r0]
+ ldr r6, _08108F10
+ ldrh r0, [r7, 0x2]
+ strh r0, [r6]
+ ldr r4, _08108F14
+ ldrb r0, [r4]
+ ldr r5, _08108F18
+ ldrb r1, [r5]
+ bl sub_801CAF8
+ ldrh r0, [r6]
+ ldrb r1, [r4]
+ ldrb r2, [r5]
+ bl move_effectiveness_something
+ ldr r4, _08108F1C
+ adds r0, r7, 0
+ adds r0, 0x18
+ ldrb r7, [r7, 0x1]
+ adds r0, r7
+ ldrb r1, [r0]
+ ldr r0, [r4]
+ muls r0, r1
+ movs r1, 0x64
+ bl __divsi3
+ str r0, [r4]
+ ldr r3, _08108F20
+ ldrb r2, [r5]
+ movs r1, 0x58
+ muls r1, r2
+ adds r1, r3
+ ldrh r1, [r1, 0x28]
+ cmp r1, r0
+ ble _08108F28
+ ldr r3, _08108F24
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08108F30
+ .align 2, 0
+_08108EF8: .4byte gBattleMoves
+_08108EFC: .4byte 0x02016800
+_08108F00: .4byte gUnknown_02024DEC
+_08108F04: .4byte 0xfffff81c
+_08108F08: .4byte gUnknown_02024C68
+_08108F0C: .4byte gCritMultiplier
+_08108F10: .4byte gUnknown_02024BE6
+_08108F14: .4byte gUnknown_02024C07
+_08108F18: .4byte gUnknown_02024C08
+_08108F1C: .4byte gUnknown_02024BEC
+_08108F20: .4byte gBattleMons
+_08108F24: .4byte gUnknown_02039238
+_08108F28:
+ ldr r1, _08108F38
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08108F30:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08108F38: .4byte gUnknown_02039238
+ thumb_func_end dp15_determine_move_damage_jump_if_not_fatal
+
+ thumb_func_start tai40_unk
+tai40_unk: @ 8108F3C
+ push {r4-r7,lr}
+ ldr r1, _08108F58
+ ldr r0, [r1]
+ adds r6, r0, 0x2
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08108F64
+ cmp r0, 0x1
+ bgt _08108F5C
+ cmp r0, 0
+ beq _08108FA8
+ b _08109008
+ .align 2, 0
+_08108F58: .4byte gUnknown_02039238
+_08108F5C:
+ cmp r0, 0x2
+ beq _08108FA8
+ cmp r0, 0x3
+ bne _08109008
+_08108F64:
+ movs r3, 0
+ ldr r2, _08108FA0
+ ldr r5, _08108FA4
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r1, [r6]
+ cmp r0, r1
+ beq _08108F9A
+ adds r7, r5, 0
+ movs r6, 0x58
+ adds r5, r2, 0
+ adds r2, r1, 0
+_08108F84:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _08108F9A
+ lsls r1, r3, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r1, r0
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08108F84
+_08108F9A:
+ cmp r3, 0x4
+ beq _08108FDE
+ b _08108FF0
+ .align 2, 0
+_08108FA0: .4byte gBattleMons
+_08108FA4: .4byte gUnknown_02024C07
+_08108FA8:
+ movs r3, 0
+ ldr r5, _08108FE8
+ ldr r1, _08108FEC
+ ldrb r0, [r1]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r5
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ cmp r0, r2
+ beq _08108FDA
+ adds r6, r5, 0
+ adds r5, r1, 0
+_08108FC2:
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _08108FDA
+ lsls r0, r3, 1
+ ldrb r1, [r5]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08108FC2
+_08108FDA:
+ cmp r3, 0x8
+ bne _08108FF0
+_08108FDE:
+ ldr r0, [r4]
+ adds r0, 0x8
+ str r0, [r4]
+ b _08109008
+ .align 2, 0
+_08108FE8: .4byte 0x02016a00
+_08108FEC: .4byte gUnknown_02024C08
+_08108FF0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_08109008:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end tai40_unk
+
+ thumb_func_start sub_8109010
+sub_8109010: @ 8109010
+ push {r4-r7,lr}
+ ldr r1, _0810902C
+ ldr r0, [r1]
+ adds r6, r0, 0x2
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08109038
+ cmp r0, 0x1
+ bgt _08109030
+ cmp r0, 0
+ beq _0810907C
+ b _081090DC
+ .align 2, 0
+_0810902C: .4byte gUnknown_02039238
+_08109030:
+ cmp r0, 0x2
+ beq _0810907C
+ cmp r0, 0x3
+ bne _081090DC
+_08109038:
+ movs r3, 0
+ ldr r2, _08109074
+ ldr r5, _08109078
+ ldrb r1, [r5]
+ movs r0, 0x58
+ muls r0, r1
+ adds r2, 0xC
+ adds r0, r2
+ ldrh r0, [r0]
+ ldrh r1, [r6]
+ cmp r0, r1
+ beq _0810906E
+ adds r7, r5, 0
+ movs r6, 0x58
+ adds r5, r2, 0
+ adds r2, r1, 0
+_08109058:
+ adds r3, 0x1
+ cmp r3, 0x3
+ bgt _0810906E
+ lsls r1, r3, 1
+ ldrb r0, [r7]
+ muls r0, r6
+ adds r1, r0
+ adds r1, r5
+ ldrh r0, [r1]
+ cmp r0, r2
+ bne _08109058
+_0810906E:
+ cmp r3, 0x4
+ bne _081090B2
+ b _081090C4
+ .align 2, 0
+_08109074: .4byte gBattleMons
+_08109078: .4byte gUnknown_02024C07
+_0810907C:
+ movs r3, 0
+ ldr r5, _081090BC
+ ldr r1, _081090C0
+ ldrb r0, [r1]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r5
+ ldrh r0, [r0]
+ ldrh r2, [r6]
+ cmp r0, r2
+ beq _081090AE
+ adds r6, r5, 0
+ adds r5, r1, 0
+_08109096:
+ adds r3, 0x1
+ cmp r3, 0x7
+ bgt _081090AE
+ lsls r0, r3, 1
+ ldrb r1, [r5]
+ lsrs r1, 1
+ lsls r1, 4
+ adds r0, r1
+ adds r0, r6
+ ldrh r0, [r0]
+ cmp r0, r2
+ bne _08109096
+_081090AE:
+ cmp r3, 0x8
+ beq _081090C4
+_081090B2:
+ ldr r0, [r4]
+ adds r0, 0x8
+ str r0, [r4]
+ b _081090DC
+ .align 2, 0
+_081090BC: .4byte 0x02016a00
+_081090C0: .4byte gUnknown_02024C08
+_081090C4:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x4]
+ ldrb r0, [r2, 0x5]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x7]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081090DC:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109010
+
+ thumb_func_start sub_81090E4
+sub_81090E4: @ 81090E4
+ push {r4-r7,lr}
+ ldr r1, _081090FC
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _08109108
+ cmp r0, 0x1
+ bgt _08109100
+ cmp r0, 0
+ beq _0810915C
+ b _081091B8
+ .align 2, 0
+_081090FC: .4byte gUnknown_02039238
+_08109100:
+ cmp r0, 0x2
+ beq _0810915C
+ cmp r0, 0x3
+ bne _081091B8
+_08109108:
+ movs r3, 0
+ ldr r1, _0810914C
+ ldr r0, _08109150
+ ldrb r2, [r0]
+ ldr r6, _08109154
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+ ldr r5, _08109158
+_0810911C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109136
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r5]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810913E
+_08109136:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810911C
+_0810913E:
+ cmp r3, 0x4
+ bne _081091A0
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+ b _081091B8
+ .align 2, 0
+_0810914C: .4byte gBattleMons
+_08109150: .4byte gUnknown_02024C07
+_08109154: .4byte gBattleMoves
+_08109158: .4byte gUnknown_02039238
+_0810915C:
+ movs r3, 0
+ ldr r1, _081091C0
+ ldr r0, _081091C4
+ ldrb r2, [r0]
+ ldr r7, _081091C8
+ ldr r6, _081091CC
+ ldr r5, _081091D0
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+_08109172:
+ lsls r1, r3, 1
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109198
+ ldrb r0, [r5]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r0, r1, r0
+ adds r0, r6
+ ldrh r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r4]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _081091A0
+_08109198:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _08109172
+_081091A0:
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+_081091B8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081091C0: .4byte gBattleMons
+_081091C4: .4byte gUnknown_02024C07
+_081091C8: .4byte gBattleMoves
+_081091CC: .4byte 0x02016a00
+_081091D0: .4byte gUnknown_02024C08
+ thumb_func_end sub_81090E4
+
+ thumb_func_start sub_81091D4
+sub_81091D4: @ 81091D4
+ push {r4-r6,lr}
+ ldr r1, _081091EC
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x1]
+ adds r4, r1, 0
+ cmp r0, 0x1
+ beq _081091F8
+ cmp r0, 0x1
+ bgt _081091F0
+ cmp r0, 0
+ beq _0810925C
+ b _08109294
+ .align 2, 0
+_081091EC: .4byte gUnknown_02039238
+_081091F0:
+ cmp r0, 0x2
+ beq _0810925C
+ cmp r0, 0x3
+ bne _08109294
+_081091F8:
+ movs r3, 0
+ ldr r1, _0810924C
+ ldr r0, _08109250
+ ldrb r2, [r0]
+ ldr r6, _08109254
+ movs r0, 0x58
+ muls r0, r2
+ adds r1, 0xC
+ adds r2, r0, r1
+ ldr r5, _08109258
+_0810920C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109226
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r6
+ ldr r1, [r5]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810922E
+_08109226:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0810920C
+_0810922E:
+ cmp r3, 0x4
+ bne _0810928E
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08109294
+ .align 2, 0
+_0810924C: .4byte gBattleMons
+_08109250: .4byte gUnknown_02024C07
+_08109254: .4byte gBattleMoves
+_08109258: .4byte gUnknown_02039238
+_0810925C:
+ movs r3, 0
+ ldr r1, _0810929C
+ ldr r0, _081092A0
+ ldrb r0, [r0]
+ lsrs r0, 1
+ lsls r0, 4
+ adds r2, r0, r1
+ ldr r5, _081092A4
+_0810926C:
+ ldrh r0, [r2]
+ cmp r0, 0
+ beq _08109286
+ adds r1, r0, 0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r5
+ ldr r1, [r4]
+ ldrb r0, [r0]
+ ldrb r1, [r1, 0x2]
+ cmp r0, r1
+ beq _0810928E
+_08109286:
+ adds r2, 0x2
+ adds r3, 0x1
+ cmp r3, 0x7
+ ble _0810926C
+_0810928E:
+ ldr r0, [r4]
+ adds r0, 0x7
+ str r0, [r4]
+_08109294:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0810929C: .4byte 0x02016a00
+_081092A0: .4byte gUnknown_02024C08
+_081092A4: .4byte gBattleMoves
+ thumb_func_end sub_81091D4
+
+ thumb_func_start tai43_unk
+tai43_unk: @ 81092A8
+ push {r4,r5,lr}
+ ldr r0, _081092BC
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r5, r0, 0
+ cmp r1, 0x1
+ bne _081092C4
+ ldr r0, _081092C0
+ b _081092C6
+ .align 2, 0
+_081092BC: .4byte gUnknown_02039238
+_081092C0: .4byte gUnknown_02024C07
+_081092C4:
+ ldr r0, _081092E4
+_081092C6:
+ ldrb r3, [r0]
+ adds r4, r5, 0
+ ldr r2, [r4]
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _081092EC
+ ldr r0, _081092E8
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x4]
+ cmp r0, 0
+ beq _081092F0
+ b _08109306
+ .align 2, 0
+_081092E4: .4byte gUnknown_02024C08
+_081092E8: .4byte gUnknown_02024CA8
+_081092EC:
+ cmp r0, 0x1
+ beq _081092F6
+_081092F0:
+ adds r0, r2, 0x7
+ str r0, [r4]
+ b _08109328
+_081092F6:
+ ldr r0, _08109320
+ lsls r1, r3, 3
+ subs r1, r3
+ lsls r1, 2
+ adds r1, r0
+ ldrh r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08109324
+_08109306:
+ ldrb r1, [r2, 0x3]
+ ldrb r0, [r2, 0x4]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x5]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x6]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _08109328
+ .align 2, 0
+_08109320: .4byte gUnknown_02024CA8
+_08109324:
+ adds r0, r2, 0x7
+ str r0, [r5]
+_08109328:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end tai43_unk
+
+ thumb_func_start sub_8109330
+sub_8109330: @ 8109330
+ push {r4,lr}
+ ldr r4, _08109344
+ ldr r3, [r4]
+ ldrb r0, [r3, 0x1]
+ cmp r0, 0
+ beq _08109348
+ cmp r0, 0x1
+ beq _08109370
+ b _081093AC
+ .align 2, 0
+_08109344: .4byte gUnknown_02039238
+_08109348:
+ ldr r2, _08109364
+ ldr r0, _08109368
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _0810936C
+ ldrh r0, [r0, 0x4]
+ ldrh r1, [r1, 0x2]
+ cmp r0, r1
+ beq _08109388
+ b _081093AC
+ .align 2, 0
+_08109364: .4byte gUnknown_02024CA8
+_08109368: .4byte gUnknown_02024A60
+_0810936C: .4byte 0x02016800
+_08109370:
+ ldr r2, _081093A0
+ ldr r0, _081093A4
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldr r1, _081093A8
+ ldrh r0, [r0, 0x6]
+ ldrh r1, [r1, 0x2]
+ cmp r0, r1
+ bne _081093AC
+_08109388:
+ ldrb r1, [r3, 0x2]
+ ldrb r0, [r3, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r3, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r3, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ b _081093B0
+ .align 2, 0
+_081093A0: .4byte gUnknown_02024CA8
+_081093A4: .4byte gUnknown_02024A60
+_081093A8: .4byte 0x02016800
+_081093AC:
+ adds r0, r3, 0x6
+ str r0, [r4]
+_081093B0:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109330
+
+ thumb_func_start sub_81093B8
+sub_81093B8: @ 81093B8
+ ldr r2, _081093C4
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xB
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_081093C4: .4byte 0x02016800
+ thumb_func_end sub_81093B8
+
+ thumb_func_start sub_81093C8
+sub_81093C8: @ 81093C8
+ push {r4,lr}
+ ldr r0, _0810940C
+ ldr r1, _08109410
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r4, r0, 2
+ adds r4, r0
+ lsls r4, 24
+ lsrs r4, 24
+ bl Random
+ lsls r0, 16
+ lsrs r0, 16
+ movs r1, 0x64
+ bl __umodsi3
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r4
+ bcs _08109418
+ ldr r3, _08109414
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _08109420
+ .align 2, 0
+_0810940C: .4byte 0x02000000
+_08109410: .4byte 0x00016088
+_08109414: .4byte gUnknown_02039238
+_08109418:
+ ldr r1, _08109428
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_08109420:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109428: .4byte gUnknown_02039238
+ thumb_func_end sub_81093C8
+
+ thumb_func_start sub_810942C
+sub_810942C: @ 810942C
+ ldr r2, _08109438
+ ldrb r1, [r2, 0x10]
+ movs r0, 0xD
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+ bx lr
+ .align 2, 0
+_08109438: .4byte 0x02016800
+ thumb_func_end sub_810942C
+
+ thumb_func_start dp15_get_held_item_x12__8
+dp15_get_held_item_x12__8: @ 810943C
+ push {r4,lr}
+ ldr r0, _0810944C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _08109454
+ ldr r0, _08109450
+ b _08109456
+ .align 2, 0
+_0810944C: .4byte gUnknown_02039238
+_08109450: .4byte gUnknown_02024C07
+_08109454:
+ ldr r0, _0810947C
+_08109456:
+ ldrb r4, [r0]
+ adds r0, r4, 0
+ bl battle_side_get_owner
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109488
+ adds r0, r4, 0
+ bl battle_get_per_side_status
+ movs r1, 0x1
+ ands r1, r0
+ ldr r2, _08109480
+ ldr r3, _08109484
+ adds r0, r2, r3
+ adds r1, r0
+ ldrb r0, [r1]
+ str r0, [r2, 0x8]
+ b _0810949E
+ .align 2, 0
+_0810947C: .4byte gUnknown_02024C08
+_08109480: .4byte 0x02016800
+_08109484: .4byte 0x00000222
+_08109488:
+ ldr r1, _081094AC
+ movs r0, 0x58
+ muls r0, r4
+ adds r0, r1
+ ldrh r0, [r0, 0x2E]
+ bl itemid_get_x12
+ ldr r1, _081094B0
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x8]
+_0810949E:
+ ldr r1, _081094B4
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081094AC: .4byte gBattleMons
+_081094B0: .4byte 0x02016800
+_081094B4: .4byte gUnknown_02039238
+ thumb_func_end dp15_get_held_item_x12__8
+
+ thumb_func_start tai49_unk
+tai49_unk: @ 81094B8
+ push {lr}
+ ldr r0, _081094C8
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x1]
+ cmp r0, 0x1
+ bne _081094D0
+ ldr r0, _081094CC
+ b _081094D2
+ .align 2, 0
+_081094C8: .4byte gUnknown_02039238
+_081094CC: .4byte gUnknown_02024C07
+_081094D0:
+ ldr r0, _081094FC
+_081094D2:
+ ldrb r1, [r0]
+ ldr r2, _08109500
+ movs r0, 0x58
+ muls r1, r0
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ adds r2, 0x48
+ adds r1, r2
+ ldr r1, [r1]
+ bl GetGenderFromSpeciesAndPersonality
+ ldr r1, _08109504
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [r1, 0x8]
+ ldr r1, _08109508
+ ldr r0, [r1]
+ adds r0, 0x2
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081094FC: .4byte gUnknown_02024C08
+_08109500: .4byte gBattleMons
+_08109504: .4byte 0x02016800
+_08109508: .4byte gUnknown_02039238
+ thumb_func_end tai49_unk
+
+ thumb_func_start sub_810950C
+sub_810950C: @ 810950C
+ push {r4,lr}
+ ldr r0, _08109520
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109528
+ ldr r0, _08109524
+ b _0810952A
+ .align 2, 0
+_08109520: .4byte gUnknown_02039238
+_08109524: .4byte gUnknown_02024C07
+_08109528:
+ ldr r0, _08109548
+_0810952A:
+ ldrb r3, [r0]
+ ldr r2, _0810954C
+ ldr r1, _08109550
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109548: .4byte gUnknown_02024C08
+_0810954C: .4byte 0x02016800
+_08109550: .4byte gUnknown_02024CA8
+ thumb_func_end sub_810950C
+
+ thumb_func_start sub_8109554
+sub_8109554: @ 8109554
+ push {r4,lr}
+ ldr r0, _08109568
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109570
+ ldr r0, _0810956C
+ b _08109572
+ .align 2, 0
+_08109568: .4byte gUnknown_02039238
+_0810956C: .4byte gUnknown_02024C07
+_08109570:
+ ldr r0, _08109590
+_08109572:
+ ldrb r3, [r0]
+ ldr r2, _08109594
+ ldr r1, _08109598
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x9]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109590: .4byte gUnknown_02024C08
+_08109594: .4byte 0x02016800
+_08109598: .4byte gUnknown_02024CA8
+ thumb_func_end sub_8109554
+
+ thumb_func_start sub_810959C
+sub_810959C: @ 810959C
+ ldr r2, _081095B4
+ ldr r0, _081095B8
+ ldrh r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ str r0, [r2, 0x8]
+ ldr r1, _081095BC
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_081095B4: .4byte 0x02016800
+_081095B8: .4byte gUnknown_020239F8
+_081095BC: .4byte gUnknown_02039238
+ thumb_func_end sub_810959C
+
+ thumb_func_start sub_81095C0
+sub_81095C0: @ 81095C0
+ push {lr}
+ ldr r0, _081095D4
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r2, r0, 0
+ cmp r1, 0x1
+ bne _081095DC
+ ldr r0, _081095D8
+ b _081095DE
+ .align 2, 0
+_081095D4: .4byte gUnknown_02039238
+_081095D8: .4byte gUnknown_02024C07
+_081095DC:
+ ldr r0, _081095F8
+_081095DE:
+ ldrb r0, [r0]
+ ldr r1, _081095FC
+ lsls r0, 1
+ adds r0, r1
+ ldr r3, _08109600
+ adds r0, r3
+ ldrb r0, [r0]
+ str r0, [r1, 0x8]
+ ldr r0, [r2]
+ adds r0, 0x2
+ str r0, [r2]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081095F8: .4byte gUnknown_02024C08
+_081095FC: .4byte 0x02016800
+_08109600: .4byte 0xfffff8cc
+ thumb_func_end sub_81095C0
+
+ thumb_func_start sub_8109604
+sub_8109604: @ 8109604
+ ldr r3, _08109620
+ ldr r2, _08109624
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x2]
+ str r0, [r3, 0x8]
+ ldr r1, _08109628
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109620: .4byte 0x02016800
+_08109624: .4byte gBattleMoves
+_08109628: .4byte gUnknown_02039238
+ thumb_func_end sub_8109604
+
+ thumb_func_start sub_810962C
+sub_810962C: @ 810962C
+ ldr r3, _08109648
+ ldr r2, _0810964C
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x1]
+ str r0, [r3, 0x8]
+ ldr r1, _08109650
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109648: .4byte 0x02016800
+_0810964C: .4byte gBattleMoves
+_08109650: .4byte gUnknown_02039238
+ thumb_func_end sub_810962C
+
+ thumb_func_start sub_8109654
+sub_8109654: @ 8109654
+ ldr r3, _08109670
+ ldr r2, _08109674
+ ldr r1, [r3, 0x8]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [r3, 0x8]
+ ldr r1, _08109678
+ ldr r0, [r1]
+ adds r0, 0x1
+ str r0, [r1]
+ bx lr
+ .align 2, 0
+_08109670: .4byte 0x02016800
+_08109674: .4byte gBattleMoves
+_08109678: .4byte gUnknown_02039238
+ thumb_func_end sub_8109654
+
+ thumb_func_start sub_810967C
+sub_810967C: @ 810967C
+ push {r4,lr}
+ ldr r0, _08109690
+ ldr r1, [r0]
+ ldrb r1, [r1, 0x1]
+ adds r4, r0, 0
+ cmp r1, 0x1
+ bne _08109698
+ ldr r0, _08109694
+ b _0810969A
+ .align 2, 0
+_08109690: .4byte gUnknown_02039238
+_08109694: .4byte gUnknown_02024C07
+_08109698:
+ ldr r0, _081096B8
+_0810969A:
+ ldrb r3, [r0]
+ ldr r2, _081096BC
+ ldr r1, _081096C0
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x8]
+ str r0, [r2, 0x8]
+ ldr r0, [r4]
+ adds r0, 0x2
+ str r0, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081096B8: .4byte gUnknown_02024C08
+_081096BC: .4byte 0x02016800
+_081096C0: .4byte gUnknown_02024CA8
+ thumb_func_end sub_810967C
+
+ thumb_func_start nullsub_27
+nullsub_27: @ 81096C4
+ bx lr
+ thumb_func_end nullsub_27
+
+ thumb_func_start nullsub_28
+nullsub_28: @ 81096C8
+ bx lr
+ thumb_func_end nullsub_28
+
+ thumb_func_start nullsub_29
+nullsub_29: @ 81096CC
+ bx lr
+ thumb_func_end nullsub_29
+
+ thumb_func_start nullsub_30
+nullsub_30: @ 81096D0
+ bx lr
+ thumb_func_end nullsub_30
+
+ thumb_func_start nullsub_31
+nullsub_31: @ 81096D4
+ bx lr
+ thumb_func_end nullsub_31
+
+ thumb_func_start nullsub_32
+nullsub_32: @ 81096D8
+ bx lr
+ thumb_func_end nullsub_32
+
+ thumb_func_start sub_81096DC
+sub_81096DC: @ 81096DC
+ push {r4,lr}
+ ldr r4, _08109708
+ ldr r0, [r4]
+ adds r0, 0x5
+ bl sub_81098C4
+ ldr r2, [r4]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r4]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109708: .4byte gUnknown_02039238
+ thumb_func_end sub_81096DC
+
+ thumb_func_start sub_810970C
+sub_810970C: @ 810970C
+ ldr r3, _08109728
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ bx lr
+ .align 2, 0
+_08109728: .4byte gUnknown_02039238
+ thumb_func_end sub_810970C
+
+ thumb_func_start sub_810972C
+sub_810972C: @ 810972C
+ push {lr}
+ bl sub_8109908
+ lsls r0, 24
+ cmp r0, 0
+ bne _08109742
+ ldr r2, _08109748
+ ldrb r1, [r2, 0x10]
+ movs r0, 0x1
+ orrs r0, r1
+ strb r0, [r2, 0x10]
+_08109742:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109748: .4byte 0x02016800
+ thumb_func_end sub_810972C
+
+ thumb_func_start dp15_compare_attacker_defender_levels
+dp15_compare_attacker_defender_levels: @ 810974C
+ push {r4,r5,lr}
+ ldr r5, _08109764
+ ldr r4, [r5]
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0x1
+ beq _081097A0
+ cmp r0, 0x1
+ bgt _08109768
+ cmp r0, 0
+ beq _0810976E
+ b _0810981C
+ .align 2, 0
+_08109764: .4byte gUnknown_02039238
+_08109768:
+ cmp r0, 0x2
+ beq _081097D0
+ b _0810981C
+_0810976E:
+ ldr r3, _08109794
+ ldr r0, _08109798
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _0810979C
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bhi _081097F2
+ b _08109818
+ .align 2, 0
+_08109794: .4byte gBattleMons
+_08109798: .4byte gUnknown_02024C07
+_0810979C: .4byte gUnknown_02024C08
+_081097A0:
+ ldr r3, _081097C4
+ ldr r0, _081097C8
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _081097CC
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bcc _081097F2
+ b _08109818
+ .align 2, 0
+_081097C4: .4byte gBattleMons
+_081097C8: .4byte gUnknown_02024C07
+_081097CC: .4byte gUnknown_02024C08
+_081097D0:
+ ldr r3, _0810980C
+ ldr r0, _08109810
+ ldrb r0, [r0]
+ movs r2, 0x58
+ adds r1, r0, 0
+ muls r1, r2
+ adds r1, r3
+ adds r1, 0x2A
+ ldr r0, _08109814
+ ldrb r0, [r0]
+ muls r0, r2
+ adds r0, r3
+ adds r0, 0x2A
+ ldrb r1, [r1]
+ ldrb r0, [r0]
+ cmp r1, r0
+ bne _08109818
+_081097F2:
+ ldrb r1, [r4, 0x2]
+ ldrb r0, [r4, 0x3]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r4, 0x4]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r4, 0x5]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r5]
+ b _0810981C
+ .align 2, 0
+_0810980C: .4byte gBattleMons
+_08109810: .4byte gUnknown_02024C07
+_08109814: .4byte gUnknown_02024C08
+_08109818:
+ adds r0, r4, 0x6
+ str r0, [r5]
+_0810981C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end dp15_compare_attacker_defender_levels
+
+ thumb_func_start sub_8109824
+sub_8109824: @ 8109824
+ push {lr}
+ ldr r2, _08109858
+ ldr r0, _0810985C
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ beq _08109864
+ ldr r3, _08109860
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _0810986C
+ .align 2, 0
+_08109858: .4byte gUnknown_02024CA8
+_0810985C: .4byte gUnknown_02024C08
+_08109860: .4byte gUnknown_02039238
+_08109864:
+ ldr r1, _08109870
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_0810986C:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109870: .4byte gUnknown_02039238
+ thumb_func_end sub_8109824
+
+ thumb_func_start sub_8109874
+sub_8109874: @ 8109874
+ push {lr}
+ ldr r2, _081098A8
+ ldr r0, _081098AC
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ adds r0, r2
+ ldrb r0, [r0, 0x13]
+ lsls r0, 28
+ cmp r0, 0
+ bne _081098B4
+ ldr r3, _081098B0
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r2, 0x2]
+ lsls r0, 8
+ orrs r1, r0
+ ldrb r0, [r2, 0x3]
+ lsls r0, 16
+ orrs r1, r0
+ ldrb r0, [r2, 0x4]
+ lsls r0, 24
+ orrs r1, r0
+ str r1, [r3]
+ b _081098BC
+ .align 2, 0
+_081098A8: .4byte gUnknown_02024CA8
+_081098AC: .4byte gUnknown_02024C08
+_081098B0: .4byte gUnknown_02039238
+_081098B4:
+ ldr r1, _081098C0
+ ldr r0, [r1]
+ adds r0, 0x5
+ str r0, [r1]
+_081098BC:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081098C0: .4byte gUnknown_02039238
+ thumb_func_end sub_8109874
+
+ thumb_func_start sub_81098C4
+sub_81098C4: @ 81098C4
+ push {r4,lr}
+ ldr r4, _081098E0
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r1, [r3]
+ adds r2, r1, 0x1
+ strb r2, [r3]
+ lsls r1, 24
+ lsrs r1, 22
+ adds r1, r4
+ str r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081098E0: .4byte 0x02016c00
+ thumb_func_end sub_81098C4
+
+ thumb_func_start unref_sub_81098E4
+unref_sub_81098E4: @ 81098E4
+ ldr r3, _08109900
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ adds r1, r0, 0x1
+ strb r1, [r2]
+ lsls r0, 24
+ lsrs r0, 22
+ adds r0, r3
+ ldr r1, _08109904
+ ldr r1, [r1]
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08109900: .4byte 0x02016c00
+_08109904: .4byte gUnknown_02039238
+ thumb_func_end unref_sub_81098E4
+
+ thumb_func_start sub_8109908
+sub_8109908: @ 8109908
+ push {lr}
+ ldr r3, _0810991C
+ adds r2, r3, 0
+ adds r2, 0x20
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08109920
+ movs r0, 0
+ b _08109932
+ .align 2, 0
+_0810991C: .4byte 0x02016c00
+_08109920:
+ subs r0, 0x1
+ strb r0, [r2]
+ ldr r1, _08109938
+ ldrb r0, [r2]
+ lsls r0, 2
+ adds r0, r3
+ ldr r0, [r0]
+ str r0, [r1]
+ movs r0, 0x1
+_08109932:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08109938: .4byte gUnknown_02039238
+ thumb_func_end sub_8109908
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/asm/rom_80B5054.s b/asm/rom_80B5054.s
index 98ecb8692..3c2c8dfb0 100644
--- a/asm/rom_80B5054.s
+++ b/asm/rom_80B5054.s
@@ -169548,6148 +169548,4 @@ sub_8107090: @ 8107090
_081070D0: .4byte gUnknown_03005E8C
thumb_func_end sub_8107090
- thumb_func_start sub_81070D4
-sub_81070D4: @ 81070D4
- push {r4-r7,lr}
- ldr r2, _08107144
- movs r3, 0
- ldr r4, _08107148
- movs r1, 0
-_081070DE:
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0x2F
- bls _081070DE
- ldrh r2, [r4]
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- beq _08107138
- ldr r5, _0810714C
- ldrh r1, [r5]
- movs r0, 0x80
- lsls r0, 3
- cmp r1, r0
- beq _08107138
- ldr r0, _08107150
- ands r0, r2
- cmp r0, 0
- bne _08107138
- movs r3, 0
- ldr r7, _08107154
- ldr r4, _08107158
- adds r6, r4, 0
- subs r6, 0x8
-_08107110:
- lsls r2, r3, 1
- ldrh r1, [r5]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, r0
- adds r2, r7
- ldrh r2, [r2]
- cmp r2, 0
- beq _08107132
- ldrb r0, [r4]
- lsls r0, 1
- adds r0, r6
- strh r2, [r0]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08107132:
- adds r3, 0x1
- cmp r3, 0x3
- ble _08107110
-_08107138:
- bl sub_810715C
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08107144: .4byte 0x02016a00
-_08107148: .4byte gUnknown_020239F8
-_0810714C: .4byte gTrainerBattleOpponent
-_08107150: .4byte 0x00000982
-_08107154: .4byte gTrainers + 0x10
-_08107158: .4byte 0x02016a2c
- thumb_func_end sub_81070D4
-
- thumb_func_start sub_810715C
-sub_810715C: @ 810715C
- push {r4-r7,lr}
- ldr r2, _08107204
- movs r4, 0
- ldr r3, _08107208
- movs r1, 0
-_08107166:
- adds r0, r2, r4
- strb r1, [r0]
- adds r4, 0x1
- cmp r4, 0x1B
- bls _08107166
- ldr r0, _08107204
- movs r1, 0x64
- movs r4, 0x3
- adds r0, 0x7
-_08107178:
- strb r1, [r0]
- subs r0, 0x1
- subs r4, 0x1
- cmp r4, 0
- bge _08107178
- ldrb r0, [r3]
- movs r1, 0
- movs r2, 0xFF
- bl sub_8015A98
- lsls r0, 24
- lsrs r7, r0, 24
- movs r4, 0
- ldr r0, _08107204
- adds r5, r0, 0x4
- ldr r6, _0810720C
-_08107198:
- ldr r0, [r6]
- ands r0, r7
- cmp r0, 0
- beq _081071A4
- movs r0, 0
- strb r0, [r5]
-_081071A4:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x64
- subs r1, r0
- strb r1, [r5, 0x14]
- adds r5, 0x1
- adds r6, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _08107198
- ldr r0, _08107210
- adds r0, 0x20
- movs r1, 0
- strb r1, [r0]
- ldr r1, _08107214
- ldr r0, _08107208
- ldrb r2, [r0]
- strb r2, [r1]
- ldr r0, _08107218
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08107224
- ldr r4, _0810721C
- bl Random
- movs r5, 0x2
- ands r0, r5
- strb r0, [r4]
- ldr r0, _08107220
- ldrb r1, [r0]
- ldr r2, _0810720C
- ldrb r3, [r4]
- lsls r0, r3, 2
- adds r0, r2
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _0810722C
- eors r3, r5
- strb r3, [r4]
- b _0810722C
- .align 2, 0
-_08107204: .4byte 0x02016800
-_08107208: .4byte gUnknown_02024A60
-_0810720C: .4byte gBitTable
-_08107210: .4byte 0x02016c00
-_08107214: .4byte gUnknown_02024C07
-_08107218: .4byte gUnknown_020239F8
-_0810721C: .4byte gUnknown_02024C08
-_08107220: .4byte gUnknown_02024C0C
-_08107224:
- ldr r0, _08107244
- movs r1, 0x1
- eors r1, r2
- strb r1, [r0]
-_0810722C:
- ldr r0, _08107248
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08107250
- ldr r1, _0810724C
- movs r0, 0x80
- lsls r0, 23
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_08107244: .4byte gUnknown_02024C08
-_08107248: .4byte gUnknown_020239F8
-_0810724C: .4byte 0x02016800
-_08107250:
- movs r0, 0x80
- lsls r0, 3
- ands r0, r1
- cmp r0, 0
- beq _08107268
- ldr r1, _08107264
- movs r0, 0x80
- lsls r0, 22
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_08107264: .4byte 0x02016800
-_08107268:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08107280
- ldr r1, _0810727C
- movs r0, 0x80
- lsls r0, 24
- str r0, [r1, 0xC]
- b _08107296
- .align 2, 0
-_0810727C: .4byte 0x02016800
-_08107280:
- ldr r3, _0810729C
- ldr r2, _081072A0
- ldr r0, _081072A4
- ldrh r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r2, 0x1C
- adds r0, r2
- ldr r0, [r0]
- str r0, [r3, 0xC]
-_08107296:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810729C: .4byte 0x02016800
-_081072A0: .4byte gTrainers
-_081072A4: .4byte gTrainerBattleOpponent
- thumb_func_end sub_810715C
-
- thumb_func_start sub_81072A8
-sub_81072A8: @ 81072A8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- bl sub_810745C
- ldr r1, _081072F4
- ldr r0, [r1, 0xC]
- cmp r0, 0
- beq _081072E2
- adds r4, r1, 0
- movs r5, 0
-_081072C0:
- ldr r0, [r4, 0xC]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081072D0
- strb r5, [r4]
- bl sub_8107374
-_081072D0:
- ldr r1, [r4, 0xC]
- lsrs r1, 1
- str r1, [r4, 0xC]
- ldrb r0, [r4, 0x11]
- adds r0, 0x1
- strb r0, [r4, 0x11]
- strb r5, [r4, 0x1]
- cmp r1, 0
- bne _081072C0
-_081072E2:
- ldr r7, _081072F4
- ldrb r1, [r7, 0x10]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081072F8
- movs r0, 0x4
- b _08107368
- .align 2, 0
-_081072F4: .4byte 0x02016800
-_081072F8:
- movs r0, 0x4
- ands r0, r1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _08107308
- movs r0, 0x5
- b _08107368
-_08107308:
- movs r5, 0x1
- mov r0, sp
- ldrb r1, [r7, 0x4]
- strb r1, [r0]
- add r0, sp, 0x4
- strb r2, [r0]
- movs r3, 0x1
- mov r8, r0
- mov r4, sp
- mov r6, r8
- adds r2, r7, 0x5
-_0810731E:
- ldrb r1, [r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bge _08107330
- movs r5, 0x1
- ldrb r0, [r2]
- strb r0, [r4]
- strb r3, [r6]
-_08107330:
- ldrb r1, [r4]
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r1, r0
- bne _0810734E
- mov r0, sp
- adds r1, r0, r5
- ldrb r0, [r2]
- strb r0, [r1]
- adds r1, r5, 0
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r1, r6, r1
- strb r3, [r1]
-_0810734E:
- adds r2, 0x1
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810731E
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __modsi3
- add r0, r8
- ldrb r0, [r0]
-_08107368:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81072A8
-
- thumb_func_start sub_8107374
-sub_8107374: @ 8107374
- push {r4-r7,lr}
- ldr r1, _081073D0
- ldrb r0, [r1]
- adds r6, r1, 0
- cmp r0, 0x2
- beq _08107456
- adds r4, r1, 0
- ldr r7, _081073D4
-_08107384:
- ldrb r0, [r4]
- cmp r0, 0x1
- beq _081073E4
- cmp r0, 0x1
- bgt _0810744E
- cmp r0, 0
- bne _0810744E
- ldr r1, _081073D8
- ldrb r0, [r4, 0x11]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r7]
- ldr r5, _081073DC
- ldrb r3, [r4, 0x1]
- ldr r0, _081073E0
- ldrb r1, [r0]
- movs r0, 0x58
- adds r2, r1, 0
- muls r2, r0
- adds r0, r3, r2
- adds r1, r5, 0
- adds r1, 0x24
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _081073C6
- lsls r0, r3, 1
- adds r0, r2
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r0, [r0]
-_081073C6:
- strh r0, [r4, 0x2]
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0810744E
- .align 2, 0
-_081073D0: .4byte 0x02016800
-_081073D4: .4byte gUnknown_02039238
-_081073D8: .4byte BattleAIs
-_081073DC: .4byte gBattleMons
-_081073E0: .4byte gUnknown_02024C07
-_081073E4:
- ldrh r1, [r1, 0x2]
- cmp r1, 0
- beq _08107400
- ldr r1, _081073FC
- ldr r0, [r7]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- b _08107410
- .align 2, 0
-_081073FC: .4byte gUnknown_083F6144
-_08107400:
- adds r0, r4, 0x4
- ldrb r2, [r4, 0x1]
- adds r0, r2
- strb r1, [r0]
- ldrb r1, [r4, 0x10]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r4, 0x10]
-_08107410:
- ldr r1, _0810743C
- ldrb r2, [r1, 0x10]
- movs r0, 0x1
- ands r0, r2
- adds r6, r1, 0
- cmp r0, 0
- beq _0810744E
- ldrb r0, [r6, 0x1]
- adds r0, 0x1
- strb r0, [r6, 0x1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bhi _08107440
- movs r0, 0x8
- ands r0, r2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08107440
- strb r0, [r6]
- b _08107446
- .align 2, 0
-_0810743C: .4byte 0x02016800
-_08107440:
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
-_08107446:
- ldrb r1, [r4, 0x10]
- movs r0, 0xFE
- ands r0, r1
- strb r0, [r4, 0x10]
-_0810744E:
- adds r1, r6, 0
- ldrb r0, [r1]
- cmp r0, 0x2
- bne _08107384
-_08107456:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8107374
-
- thumb_func_start sub_810745C
-sub_810745C: @ 810745C
- push {r4-r6,lr}
- movs r2, 0
- ldr r3, _08107488
- ldr r5, _0810748C
- ldr r6, _08107490
- adds r4, r3, 0
-_08107468:
- lsls r0, r2, 1
- ldrb r1, [r4]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r1, r0, r5
- ldrh r0, [r1]
- cmp r0, 0
- bne _08107494
- ldrb r0, [r3]
- lsls r0, 1
- adds r0, r6
- ldrh r0, [r0]
- strh r0, [r1]
- b _0810749A
- .align 2, 0
-_08107488: .4byte gUnknown_02024C08
-_0810748C: .4byte 0x02016a00
-_08107490: .4byte gUnknown_02024C34
-_08107494:
- adds r2, 0x1
- cmp r2, 0x7
- ble _08107468
-_0810749A:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_810745C
-
- thumb_func_start unref_sub_81074A0
-unref_sub_81074A0: @ 81074A0
- push {lr}
- lsls r0, 24
- ldr r1, _081074C0
- lsrs r0, 25
- movs r2, 0x7
- lsls r0, 4
- adds r0, r1
- adds r0, 0xE
- movs r1, 0
-_081074B2:
- strh r1, [r0]
- subs r0, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _081074B2
- pop {r0}
- bx r0
- .align 2, 0
-_081074C0: .4byte 0x02016a00
- thumb_func_end unref_sub_81074A0
-
- thumb_func_start sub_81074C4
-sub_81074C4: @ 81074C4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _081074EC
- adds r0, r4, 0
- bl battle_get_per_side_status
- ldr r2, _081074F4
- movs r1, 0x1
- ands r1, r0
- adds r2, 0x20
- adds r1, r2
- strb r5, [r1]
-_081074EC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_081074F4: .4byte 0x02016a00
- thumb_func_end sub_81074C4
-
- thumb_func_start sub_81074F8
-sub_81074F8: @ 81074F8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08107520
- adds r0, r4, 0
- bl battle_get_per_side_status
- ldr r2, _08107528
- movs r1, 0x1
- ands r1, r0
- adds r2, 0x22
- adds r1, r2
- strb r5, [r1]
-_08107520:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107528: .4byte 0x02016a00
- thumb_func_end sub_81074F8
-
- thumb_func_start sub_810752C
-sub_810752C: @ 810752C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107560
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bcs _08107564
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107568
- .align 2, 0
-_08107560: .4byte gUnknown_02039238
-_08107564:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107568:
- pop {r0}
- bx r0
- thumb_func_end sub_810752C
-
- thumb_func_start sub_810756C
-sub_810756C: @ 810756C
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075A0
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bls _081075A4
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081075A8
- .align 2, 0
-_081075A0: .4byte gUnknown_02039238
-_081075A4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075A8:
- pop {r0}
- bx r0
- thumb_func_end sub_810756C
-
- thumb_func_start sub_81075AC
-sub_81075AC: @ 81075AC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _081075E0
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- bne _081075E4
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081075E8
- .align 2, 0
-_081075E0: .4byte gUnknown_02039238
-_081075E4:
- adds r0, r2, 0x6
- str r0, [r3]
-_081075E8:
- pop {r0}
- bx r0
- thumb_func_end sub_81075AC
-
- thumb_func_start sub_81075EC
-sub_81075EC: @ 81075EC
- push {lr}
- bl Random
- lsls r0, 16
- movs r1, 0xFF
- lsls r1, 16
- ldr r3, _08107620
- ldr r2, [r3]
- ands r1, r0
- lsrs r1, 16
- ldrb r0, [r2, 0x1]
- cmp r1, r0
- beq _08107624
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107628
- .align 2, 0
-_08107620: .4byte gUnknown_02039238
-_08107624:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107628:
- pop {r0}
- bx r0
- thumb_func_end sub_81075EC
-
- thumb_func_start sub_810762C
-sub_810762C: @ 810762C
- push {r4,r5,lr}
- ldr r2, _08107660
- ldrb r1, [r2, 0x1]
- adds r3, r2, 0x4
- adds r1, r3
- ldr r4, _08107664
- ldr r0, [r4]
- ldrb r0, [r0, 0x1]
- ldrb r5, [r1]
- adds r0, r5
- strb r0, [r1]
- ldrb r0, [r2, 0x1]
- adds r1, r0, r3
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- bge _08107652
- movs r0, 0
- strb r0, [r1]
-_08107652:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08107660: .4byte 0x02016800
-_08107664: .4byte gUnknown_02039238
- thumb_func_end sub_810762C
-
- thumb_func_start sub_8107668
-sub_8107668: @ 8107668
- push {r4,lr}
- ldr r0, _0810767C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107684
- ldr r0, _08107680
- b _08107686
- .align 2, 0
-_0810767C: .4byte gUnknown_02039238
-_08107680: .4byte gUnknown_02024C07
-_08107684:
- ldr r0, _081076BC
-_08107686:
- ldrb r1, [r0]
- ldr r2, _081076C0
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bcs _081076C4
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081076C8
- .align 2, 0
-_081076BC: .4byte gUnknown_02024C08
-_081076C0: .4byte gBattleMons
-_081076C4:
- adds r0, r2, 0x7
- str r0, [r4]
-_081076C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107668
-
- thumb_func_start sub_81076D0
-sub_81076D0: @ 81076D0
- push {r4,lr}
- ldr r0, _081076E4
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081076EC
- ldr r0, _081076E8
- b _081076EE
- .align 2, 0
-_081076E4: .4byte gUnknown_02039238
-_081076E8: .4byte gUnknown_02024C07
-_081076EC:
- ldr r0, _08107724
-_081076EE:
- ldrb r1, [r0]
- ldr r2, _08107728
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bls _0810772C
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107730
- .align 2, 0
-_08107724: .4byte gUnknown_02024C08
-_08107728: .4byte gBattleMons
-_0810772C:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107730:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81076D0
-
- thumb_func_start sub_8107738
-sub_8107738: @ 8107738
- push {r4,lr}
- ldr r0, _0810774C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08107754
- ldr r0, _08107750
- b _08107756
- .align 2, 0
-_0810774C: .4byte gUnknown_02039238
-_08107750: .4byte gUnknown_02024C07
-_08107754:
- ldr r0, _0810778C
-_08107756:
- ldrb r1, [r0]
- ldr r2, _08107790
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- bne _08107794
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107798
- .align 2, 0
-_0810778C: .4byte gUnknown_02024C08
-_08107790: .4byte gBattleMons
-_08107794:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107798:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107738
-
- thumb_func_start sub_81077A0
-sub_81077A0: @ 81077A0
- push {r4,lr}
- ldr r0, _081077B4
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _081077BC
- ldr r0, _081077B8
- b _081077BE
- .align 2, 0
-_081077B4: .4byte gUnknown_02039238
-_081077B8: .4byte gUnknown_02024C07
-_081077BC:
- ldr r0, _081077F4
-_081077BE:
- ldrb r1, [r0]
- ldr r2, _081077F8
- movs r0, 0x58
- muls r1, r0
- adds r1, r2
- ldrh r2, [r1, 0x28]
- movs r0, 0x64
- muls r0, r2
- ldrh r1, [r1, 0x2C]
- bl __divsi3
- ldr r2, [r4]
- ldrb r1, [r2, 0x2]
- cmp r0, r1
- beq _081077FC
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107800
- .align 2, 0
-_081077F4: .4byte gUnknown_02024C08
-_081077F8: .4byte gBattleMons
-_081077FC:
- adds r0, r2, 0x7
- str r0, [r4]
-_08107800:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81077A0
-
- thumb_func_start sub_8107808
-sub_8107808: @ 8107808
- push {r4,r5,lr}
- ldr r0, _0810781C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107824
- ldr r0, _08107820
- b _08107826
- .align 2, 0
-_0810781C: .4byte gUnknown_02039238
-_08107820: .4byte gUnknown_02024C07
-_08107824:
- ldr r0, _08107868
-_08107826:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _0810786C
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107870
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107876
- .align 2, 0
-_08107868: .4byte gUnknown_02024C08
-_0810786C: .4byte gBattleMons
-_08107870:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107876:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107808
-
- thumb_func_start sub_810787C
-sub_810787C: @ 810787C
- push {r4,r5,lr}
- ldr r0, _08107890
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107898
- ldr r0, _08107894
- b _0810789A
- .align 2, 0
-_08107890: .4byte gUnknown_02039238
-_08107894: .4byte gUnknown_02024C07
-_08107898:
- ldr r0, _081078DC
-_0810789A:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081078E0
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x4C
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081078E4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081078EA
- .align 2, 0
-_081078DC: .4byte gUnknown_02024C08
-_081078E0: .4byte gBattleMons
-_081078E4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081078EA:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_810787C
-
- thumb_func_start sub_81078F0
-sub_81078F0: @ 81078F0
- push {r4,r5,lr}
- ldr r0, _08107904
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0810790C
- ldr r0, _08107908
- b _0810790E
- .align 2, 0
-_08107904: .4byte gUnknown_02039238
-_08107908: .4byte gUnknown_02024C07
-_0810790C:
- ldr r0, _08107950
-_0810790E:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _08107954
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- beq _08107958
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _0810795E
- .align 2, 0
-_08107950: .4byte gUnknown_02024C08
-_08107954: .4byte gBattleMons
-_08107958:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_0810795E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81078F0
-
- thumb_func_start sub_8107964
-sub_8107964: @ 8107964
- push {r4,r5,lr}
- ldr r0, _08107978
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107980
- ldr r0, _0810797C
- b _08107982
- .align 2, 0
-_08107978: .4byte gUnknown_02039238
-_0810797C: .4byte gUnknown_02024C07
-_08107980:
- ldr r0, _081079C4
-_08107982:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r2, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r2, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r2, r0
- ldr r1, _081079C8
- movs r0, 0x58
- muls r0, r4
- adds r1, 0x50
- adds r0, r1
- ldr r0, [r0]
- ands r0, r2
- cmp r0, 0
- bne _081079CC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _081079D2
- .align 2, 0
-_081079C4: .4byte gUnknown_02024C08
-_081079C8: .4byte gBattleMons
-_081079CC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_081079D2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107964
-
- thumb_func_start sub_81079D8
-sub_81079D8: @ 81079D8
- push {r4,r5,lr}
- ldr r0, _081079EC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081079F4
- ldr r0, _081079F0
- b _081079F6
- .align 2, 0
-_081079EC: .4byte gUnknown_02039238
-_081079F0: .4byte gUnknown_02024C07
-_081079F4:
- ldr r0, _08107A34
-_081079F6:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107A38
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- beq _08107A3C
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107A42
- .align 2, 0
-_08107A34: .4byte gUnknown_02024C08
-_08107A38: .4byte gUnknown_02024C98
-_08107A3C:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107A42:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81079D8
-
- thumb_func_start sub_8107A48
-sub_8107A48: @ 8107A48
- push {r4,r5,lr}
- ldr r0, _08107A5C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _08107A64
- ldr r0, _08107A60
- b _08107A66
- .align 2, 0
-_08107A5C: .4byte gUnknown_02039238
-_08107A60: .4byte gUnknown_02024C07
-_08107A64:
- ldr r0, _08107AA4
-_08107A66:
- ldrb r4, [r0]
- ldr r3, [r5]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r2, _08107AA8
- lsls r0, r4, 2
- adds r0, r2
- ldr r0, [r0]
- ands r0, r1
- cmp r0, 0
- bne _08107AAC
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _08107AB2
- .align 2, 0
-_08107AA4: .4byte gUnknown_02024C08
-_08107AA8: .4byte gUnknown_02024C98
-_08107AAC:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r5]
-_08107AB2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107A48
-
- thumb_func_start sub_8107AB8
-sub_8107AB8: @ 8107AB8
- push {r4,lr}
- ldr r0, _08107AC8
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107AD0
- ldr r0, _08107ACC
- b _08107AD2
- .align 2, 0
-_08107AC8: .4byte gUnknown_02039238
-_08107ACC: .4byte gUnknown_02024C07
-_08107AD0:
- ldr r0, _08107B1C
-_08107AD2:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B20
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107B24
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08107B28
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107B2E
- .align 2, 0
-_08107B1C: .4byte gUnknown_02024C08
-_08107B20: .4byte gUnknown_02039238
-_08107B24: .4byte gUnknown_02024C7A
-_08107B28:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107B2E:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107AB8
-
- thumb_func_start sub_8107B34
-sub_8107B34: @ 8107B34
- push {r4,lr}
- ldr r0, _08107B44
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08107B4C
- ldr r0, _08107B48
- b _08107B4E
- .align 2, 0
-_08107B44: .4byte gUnknown_02039238
-_08107B48: .4byte gUnknown_02024C07
-_08107B4C:
- ldr r0, _08107B98
-_08107B4E:
- ldrb r0, [r0]
- bl battle_get_per_side_status
- movs r2, 0x1
- ands r2, r0
- ldr r4, _08107B9C
- ldr r3, [r4]
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107BA0
- lsls r2, 1
- adds r2, r0
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- bne _08107BA4
- ldrb r1, [r3, 0x6]
- ldrb r0, [r3, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107BAA
- .align 2, 0
-_08107B98: .4byte gUnknown_02024C08
-_08107B9C: .4byte gUnknown_02039238
-_08107BA0: .4byte gUnknown_02024C7A
-_08107BA4:
- adds r0, r3, 0
- adds r0, 0xA
- str r0, [r4]
-_08107BAA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107B34
-
- thumb_func_start sub_8107BB0
-sub_8107BB0: @ 8107BB0
- push {lr}
- ldr r0, _08107BD8
- ldr r3, _08107BDC
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bcs _08107BE0
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107BE4
- .align 2, 0
-_08107BD8: .4byte 0x02016800
-_08107BDC: .4byte gUnknown_02039238
-_08107BE0:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107BE4:
- pop {r0}
- bx r0
- thumb_func_end sub_8107BB0
-
- thumb_func_start sub_8107BE8
-sub_8107BE8: @ 8107BE8
- push {lr}
- ldr r0, _08107C10
- ldr r3, _08107C14
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bls _08107C18
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C1C
- .align 2, 0
-_08107C10: .4byte 0x02016800
-_08107C14: .4byte gUnknown_02039238
-_08107C18:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C1C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107BE8
-
- thumb_func_start sub_8107C20
-sub_8107C20: @ 8107C20
- push {lr}
- ldr r0, _08107C48
- ldr r3, _08107C4C
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08107C50
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C54
- .align 2, 0
-_08107C48: .4byte 0x02016800
-_08107C4C: .4byte gUnknown_02039238
-_08107C50:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C54:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C20
-
- thumb_func_start sub_8107C58
-sub_8107C58: @ 8107C58
- push {lr}
- ldr r0, _08107C80
- ldr r3, _08107C84
- ldr r2, [r3]
- ldr r0, [r0, 0x8]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08107C88
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107C8C
- .align 2, 0
-_08107C80: .4byte 0x02016800
-_08107C84: .4byte gUnknown_02039238
-_08107C88:
- adds r0, r2, 0x6
- str r0, [r3]
-_08107C8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C58
-
- thumb_func_start sub_8107C90
-sub_8107C90: @ 8107C90
- push {lr}
- ldr r3, _08107CCC
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107CD0
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bcs _08107CD4
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107CDA
- .align 2, 0
-_08107CCC: .4byte gUnknown_02039238
-_08107CD0: .4byte 0x02016800
-_08107CD4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107CDA:
- pop {r0}
- bx r0
- thumb_func_end sub_8107C90
-
- thumb_func_start sub_8107CE0
-sub_8107CE0: @ 8107CE0
- push {lr}
- ldr r3, _08107D1C
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107D20
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bls _08107D24
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D2A
- .align 2, 0
-_08107D1C: .4byte gUnknown_02039238
-_08107D20: .4byte 0x02016800
-_08107D24:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D2A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107CE0
-
- thumb_func_start sub_8107D30
-sub_8107D30: @ 8107D30
- push {lr}
- ldr r3, _08107D6C
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107D70
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08107D74
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107D7A
- .align 2, 0
-_08107D6C: .4byte gUnknown_02039238
-_08107D70: .4byte 0x02016800
-_08107D74:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107D7A:
- pop {r0}
- bx r0
- thumb_func_end sub_8107D30
-
- thumb_func_start sub_8107D80
-sub_8107D80: @ 8107D80
- push {lr}
- ldr r3, _08107DBC
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- ldr r0, _08107DC0
- ldr r0, [r0, 0x8]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08107DC4
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107DCA
- .align 2, 0
-_08107DBC: .4byte gUnknown_02039238
-_08107DC0: .4byte 0x02016800
-_08107DC4:
- adds r0, r2, 0
- adds r0, 0x9
- str r0, [r3]
-_08107DCA:
- pop {r0}
- bx r0
- thumb_func_end sub_8107D80
-
- thumb_func_start sub_8107DD0
-sub_8107DD0: @ 8107DD0
- push {lr}
- ldr r3, _08107E00
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E04
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- bne _08107E08
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E0C
- .align 2, 0
-_08107E00: .4byte gUnknown_02039238
-_08107E04: .4byte 0x02016800
-_08107E08:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E0C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107DD0
-
- thumb_func_start sub_8107E10
-sub_8107E10: @ 8107E10
- push {lr}
- ldr r3, _08107E40
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldr r0, _08107E44
- ldrh r0, [r0, 0x2]
- cmp r0, r1
- beq _08107E48
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08107E4C
- .align 2, 0
-_08107E40: .4byte gUnknown_02039238
-_08107E44: .4byte 0x02016800
-_08107E48:
- adds r0, r2, 0x7
- str r0, [r3]
-_08107E4C:
- pop {r0}
- bx r0
- thumb_func_end sub_8107E10
-
- thumb_func_start sub_8107E50
-sub_8107E50: @ 8107E50
- push {r4,lr}
- ldr r2, _08107E98
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- cmp r0, 0xFF
- beq _08107EA8
- ldr r0, _08107E9C
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107E76:
- ldrb r0, [r3]
- cmp r1, r0
- bne _08107EA0
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107EAE
- .align 2, 0
-_08107E98: .4byte gUnknown_02039238
-_08107E9C: .4byte 0x02016800
-_08107EA0:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107E76
-_08107EA8:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107EAE:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107E50
-
- thumb_func_start sub_8107EB4
-sub_8107EB4: @ 8107EB4
- push {r4,lr}
- ldr r2, _08107EEC
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrb r0, [r3]
- adds r4, r2, 0
- cmp r0, 0xFF
- beq _08107EFC
- ldr r0, _08107EF0
- ldr r2, [r0, 0x8]
- adds r1, r4, 0
-_08107EDC:
- ldrb r0, [r3]
- cmp r2, r0
- bne _08107EF4
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107F14
- .align 2, 0
-_08107EEC: .4byte gUnknown_02039238
-_08107EF0: .4byte 0x02016800
-_08107EF4:
- adds r3, 0x1
- ldrb r0, [r3]
- cmp r0, 0xFF
- bne _08107EDC
-_08107EFC:
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08107F14:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8107EB4
-
- thumb_func_start sub_8107F1C
-sub_8107F1C: @ 8107F1C
- push {r4,r5,lr}
- ldr r2, _08107F64
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r5, _08107F68
- cmp r0, r5
- beq _08107F78
- ldr r0, _08107F6C
- ldr r1, [r0, 0x8]
- adds r4, r2, 0
-_08107F44:
- ldrh r0, [r3]
- cmp r1, r0
- bne _08107F70
- ldr r2, [r4]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08107F7E
- .align 2, 0
-_08107F64: .4byte gUnknown_02039238
-_08107F68: .4byte 0x0000ffff
-_08107F6C: .4byte 0x02016800
-_08107F70:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r5
- bne _08107F44
-_08107F78:
- ldr r0, [r2]
- adds r0, 0x9
- str r0, [r2]
-_08107F7E:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107F1C
-
- thumb_func_start sub_8107F84
-sub_8107F84: @ 8107F84
- push {r4,r5,lr}
- ldr r2, _08107FBC
- ldr r1, [r2]
- ldrb r3, [r1, 0x1]
- ldrb r0, [r1, 0x2]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0x3]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 24
- orrs r3, r0
- ldrh r0, [r3]
- ldr r4, _08107FC0
- adds r5, r2, 0
- cmp r0, r4
- beq _08107FD0
- ldr r0, _08107FC4
- ldr r2, [r0, 0x8]
- adds r1, r5, 0
-_08107FAE:
- ldrh r0, [r3]
- cmp r2, r0
- bne _08107FC8
- ldr r0, [r1]
- adds r0, 0x9
- str r0, [r1]
- b _08107FE8
- .align 2, 0
-_08107FBC: .4byte gUnknown_02039238
-_08107FC0: .4byte 0x0000ffff
-_08107FC4: .4byte 0x02016800
-_08107FC8:
- adds r3, 0x2
- ldrh r0, [r3]
- cmp r0, r4
- bne _08107FAE
-_08107FD0:
- ldr r2, [r5]
- ldrb r1, [r2, 0x5]
- ldrb r0, [r2, 0x6]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
-_08107FE8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107F84
-
- thumb_func_start sub_8107FF0
-sub_8107FF0: @ 8107FF0
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _08108030
- ldr r1, _08108034
- ldr r0, _08108038
- ldrb r2, [r0]
- ldr r5, _0810803C
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108006:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810801A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108022
-_0810801A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108006
-_08108022:
- cmp r3, 0x4
- bne _08108040
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _08108058
- .align 2, 0
-_08108030: .4byte gUnknown_02039238
-_08108034: .4byte gBattleMons
-_08108038: .4byte gUnknown_02024C07
-_0810803C: .4byte gBattleMoves
-_08108040:
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08108058:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8107FF0
-
- thumb_func_start sub_8108060
-sub_8108060: @ 8108060
- push {r4,r5,lr}
- movs r3, 0
- ldr r4, _081080A0
- ldr r1, _081080A4
- ldr r0, _081080A8
- ldrb r2, [r0]
- ldr r5, _081080AC
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08108076:
- ldrh r0, [r2]
- cmp r0, 0
- beq _0810808A
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _08108092
-_0810808A:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _08108076
-_08108092:
- cmp r3, 0x4
- beq _081080B0
- ldr r0, [r4]
- adds r0, 0x5
- str r0, [r4]
- b _081080C8
- .align 2, 0
-_081080A0: .4byte gUnknown_02039238
-_081080A4: .4byte gBattleMons
-_081080A8: .4byte gUnknown_02024C07
-_081080AC: .4byte gBattleMoves
-_081080B0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081080C8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8108060
-
- thumb_func_start sub_81080D0
-sub_81080D0: @ 81080D0
- ldr r1, _081080E4
- ldr r0, _081080E8
- ldrb r0, [r0, 0x13]
- str r0, [r1, 0x8]
- ldr r1, _081080EC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081080E4: .4byte 0x02016800
-_081080E8: .4byte gUnknown_030042E0
-_081080EC: .4byte gUnknown_02039238
- thumb_func_end sub_81080D0
-
- thumb_func_start sub_81080F0
-sub_81080F0: @ 81080F0
- push {r4,lr}
- ldr r1, _08108108
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x4
- bhi _081081B6
- lsls r0, 2
- ldr r1, _0810810C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08108108: .4byte gUnknown_02039238
-_0810810C: .4byte _08108110
- .align 2, 0
-_08108110:
- .4byte _08108144
- .4byte _08108124
- .4byte _08108184
- .4byte _08108164
- .4byte _081081A4
-_08108124:
- ldr r3, _08108138
- ldr r2, _0810813C
- ldr r0, _08108140
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108138: .4byte 0x02016800
-_0810813C: .4byte gBattleMons
-_08108140: .4byte gUnknown_02024C07
-_08108144:
- ldr r3, _08108158
- ldr r2, _0810815C
- ldr r0, _08108160
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x21
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108158: .4byte 0x02016800
-_0810815C: .4byte gBattleMons
-_08108160: .4byte gUnknown_02024C08
-_08108164:
- ldr r3, _08108178
- ldr r2, _0810817C
- ldr r0, _08108180
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108178: .4byte 0x02016800
-_0810817C: .4byte gBattleMons
-_08108180: .4byte gUnknown_02024C07
-_08108184:
- ldr r3, _08108198
- ldr r2, _0810819C
- ldr r0, _081081A0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x22
- ldrb r0, [r0]
- b _081081B4
- .align 2, 0
-_08108198: .4byte 0x02016800
-_0810819C: .4byte gBattleMons
-_081081A0: .4byte gUnknown_02024C08
-_081081A4:
- ldr r3, _081081C4
- ldr r2, _081081C8
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
-_081081B4:
- str r0, [r3, 0x8]
-_081081B6:
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081081C4: .4byte 0x02016800
-_081081C8: .4byte gBattleMoves
- thumb_func_end sub_81080F0
-
- thumb_func_start sub_81081CC
-sub_81081CC: @ 81081CC
- ldr r3, _081081E8
- ldr r2, _081081EC
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- str r0, [r3, 0x8]
- ldr r1, _081081F0
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081081E8: .4byte 0x02016800
-_081081EC: .4byte gBattleMoves
-_081081F0: .4byte gUnknown_02039238
- thumb_func_end sub_81081CC
-
- thumb_func_start sub_81081F4
-sub_81081F4: @ 81081F4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- movs r3, 0
- ldr r0, _08108328
- ldrh r1, [r0]
- ldr r4, _0810832C
- ldr r6, _08108330
- ldr r5, _08108334
- cmp r1, r4
- beq _0810822E
- ldrh r1, [r5, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r2, [r0]
- ldr r1, _08108328
-_0810821E:
- ldrh r0, [r1]
- cmp r2, r0
- beq _0810822E
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r4
- bne _0810821E
-_0810822E:
- ldrh r0, [r5, 0x2]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bhi _08108240
- b _081083B2
-_08108240:
- lsls r0, r3, 1
- ldr r1, _08108328
- adds r0, r1
- ldrh r3, [r0]
- ldr r0, _0810832C
- cmp r3, r0
- beq _08108250
- b _081083B2
-_08108250:
- ldr r0, _08108338
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810833C
- adds r0, r5, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r5, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, _08108340
- strb r1, [r0]
- ldr r0, _08108344
- strb r2, [r0]
- movs r6, 0
- mov r9, r3
- ldr r0, _08108328
- ldrh r0, [r0]
- str r0, [sp, 0x10]
-_08108276:
- movs r3, 0
- ldr r5, _08108348
- lsls r4, r6, 1
- ldr r7, _0810834C
- lsls r1, r6, 2
- mov r8, r1
- adds r2, r6, 0x1
- mov r10, r2
- ldr r0, [sp, 0x10]
- cmp r0, r9
- beq _081082BA
- ldr r2, _08108330
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r0, r1
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r2, [r0]
- ldr r1, _08108328
-_081082AA:
- ldrh r0, [r1]
- cmp r2, r0
- beq _081082BA
- adds r1, 0x2
- adds r3, 0x1
- ldrh r0, [r1]
- cmp r0, r9
- bne _081082AA
-_081082BA:
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r4, r0
- adds r1, r5, 0
- adds r1, 0xC
- adds r1, r0, r1
- ldrh r0, [r1]
- cmp r0, 0
- beq _0810835C
- lsls r0, r3, 1
- ldr r2, _08108328
- adds r0, r2
- ldrh r0, [r0]
- cmp r0, r9
- bne _0810835C
- ldr r0, _08108330
- ldrh r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x1]
- cmp r0, 0x1
- bls _0810835C
- ldr r5, _08108350
- strh r2, [r5]
- ldrb r0, [r7]
- ldr r4, _08108354
- ldrb r1, [r4]
- bl sub_801CAF8
- ldrh r0, [r5]
- ldrb r1, [r7]
- ldrb r2, [r4]
- bl move_effectiveness_something
- mov r4, sp
- add r4, r8
- ldr r2, _08108358
- ldr r0, _08108334
- adds r0, 0x18
- adds r0, r6, r0
- ldrb r1, [r0]
- ldr r0, [r2]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08108364
- movs r0, 0x1
- str r0, [r4]
- b _08108364
- .align 2, 0
-_08108328: .4byte gUnknown_083F62BC
-_0810832C: .4byte 0x0000ffff
-_08108330: .4byte gBattleMoves
-_08108334: .4byte 0x02016800
-_08108338: .4byte gUnknown_02024DEC
-_0810833C: .4byte 0xfffff81c
-_08108340: .4byte gUnknown_02024C68
-_08108344: .4byte gCritMultiplier
-_08108348: .4byte gBattleMons
-_0810834C: .4byte gUnknown_02024C07
-_08108350: .4byte gUnknown_02024BE6
-_08108354: .4byte gUnknown_02024C08
-_08108358: .4byte gUnknown_02024BEC
-_0810835C:
- mov r1, sp
- add r1, r8
- movs r0, 0
- str r0, [r1]
-_08108364:
- mov r6, r10
- cmp r6, 0x3
- ble _08108276
- movs r6, 0
- ldr r1, _081083A4
- ldrb r0, [r1, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r2, [sp]
- ldr r0, [r0]
- adds r5, r1, 0
- ldr r4, _081083A8
- cmp r2, r0
- bgt _0810839A
- adds r3, r5, 0
- mov r2, sp
-_08108384:
- adds r2, 0x4
- adds r6, 0x1
- cmp r6, 0x3
- bgt _0810839A
- ldrb r0, [r3, 0x1]
- lsls r0, 2
- add r0, sp
- ldr r1, [r2]
- ldr r0, [r0]
- cmp r1, r0
- ble _08108384
-_0810839A:
- cmp r6, 0x4
- bne _081083AC
- movs r0, 0x2
- str r0, [r5, 0x8]
- b _081083B8
- .align 2, 0
-_081083A4: .4byte 0x02016800
-_081083A8: .4byte gUnknown_02039238
-_081083AC:
- movs r0, 0x1
- str r0, [r5, 0x8]
- b _081083B8
-_081083B2:
- movs r0, 0
- str r0, [r5, 0x8]
- ldr r4, _081083D0
-_081083B8:
- ldr r0, [r4]
- adds r0, 0x1
- str r0, [r4]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081083D0: .4byte gUnknown_02039238
- thumb_func_end sub_81081F4
-
- thumb_func_start sub_81083D4
-sub_81083D4: @ 81083D4
- push {lr}
- ldr r0, _081083EC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r3, r0, 0
- cmp r1, 0x1
- bne _081083FC
- ldr r2, _081083F0
- ldr r1, _081083F4
- ldr r0, _081083F8
- b _08108402
- .align 2, 0
-_081083EC: .4byte gUnknown_02039238
-_081083F0: .4byte 0x02016800
-_081083F4: .4byte gUnknown_02024C34
-_081083F8: .4byte gUnknown_02024C07
-_081083FC:
- ldr r2, _08108418
- ldr r1, _0810841C
- ldr r0, _08108420
-_08108402:
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- str r0, [r2, 0x8]
- ldr r0, [r3]
- adds r0, 0x2
- str r0, [r3]
- pop {r0}
- bx r0
- .align 2, 0
-_08108418: .4byte 0x02016800
-_0810841C: .4byte gUnknown_02024C34
-_08108420: .4byte gUnknown_02024C08
- thumb_func_end sub_81083D4
-
- thumb_func_start sub_8108424
-sub_8108424: @ 8108424
- push {lr}
- ldr r3, _0810844C
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108450
- ldr r1, [r1, 0x8]
- cmp r0, r1
- bne _08108454
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108458
- .align 2, 0
-_0810844C: .4byte gUnknown_02039238
-_08108450: .4byte 0x02016800
-_08108454:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108458:
- pop {r0}
- bx r0
- thumb_func_end sub_8108424
-
- thumb_func_start sub_810845C
-sub_810845C: @ 810845C
- push {lr}
- ldr r3, _08108484
- ldr r2, [r3]
- ldrb r0, [r2, 0x1]
- ldr r1, _08108488
- ldr r1, [r1, 0x8]
- cmp r0, r1
- beq _0810848C
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108490
- .align 2, 0
-_08108484: .4byte gUnknown_02039238
-_08108488: .4byte 0x02016800
-_0810848C:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108490:
- pop {r0}
- bx r0
- thumb_func_end sub_810845C
-
- thumb_func_start tai28_unk
-tai28_unk: @ 8108494
- push {lr}
- ldr r0, _081084CC
- ldrb r0, [r0]
- ldr r1, _081084D0
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _081084D4
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _081084D8
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081084DC
- .align 2, 0
-_081084CC: .4byte gUnknown_02024C07
-_081084D0: .4byte gUnknown_02024C08
-_081084D4: .4byte gUnknown_02039238
-_081084D8:
- adds r0, r2, 0x6
- str r0, [r3]
-_081084DC:
- pop {r0}
- bx r0
- thumb_func_end tai28_unk
-
- thumb_func_start tai29_unk
-tai29_unk: @ 81084E0
- push {lr}
- ldr r0, _08108518
- ldrb r0, [r0]
- ldr r1, _0810851C
- ldrb r1, [r1]
- movs r2, 0x1
- bl b_first_side
- ldr r3, _08108520
- ldr r2, [r3]
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08108524
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108528
- .align 2, 0
-_08108518: .4byte gUnknown_02024C07
-_0810851C: .4byte gUnknown_02024C08
-_08108520: .4byte gUnknown_02039238
-_08108524:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108528:
- pop {r0}
- bx r0
- thumb_func_end tai29_unk
-
- thumb_func_start nullsub_25
-nullsub_25: @ 810852C
- bx lr
- thumb_func_end nullsub_25
-
- thumb_func_start nullsub_26
-nullsub_26: @ 8108530
- bx lr
- thumb_func_end nullsub_26
-
- thumb_func_start tai2C_unk
-tai2C_unk: @ 8108534
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, _08108550
- movs r0, 0
- str r0, [r1, 0x8]
- ldr r0, _08108554
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _0810855C
- ldr r0, _08108558
- b _0810855E
- .align 2, 0
-_08108550: .4byte 0x02016800
-_08108554: .4byte gUnknown_02039238
-_08108558: .4byte gUnknown_02024C07
-_0810855C:
- ldr r0, _081085A8
-_0810855E:
- ldrb r5, [r0]
- adds r0, r5, 0
- bl battle_side_get_owner
- lsls r0, 24
- ldr r1, _081085AC
- mov r9, r1
- cmp r0, 0
- bne _08108574
- ldr r0, _081085B0
- mov r9, r0
-_08108574:
- ldr r0, _081085B4
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081085BC
- ldr r4, _081085B8
- lsls r0, r5, 1
- adds r0, r4
- ldrb r0, [r0]
- mov r8, r0
- adds r0, r5, 0
- bl battle_get_per_side_status
- movs r1, 0x2
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl battle_get_side_with_given_state
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrb r6, [r0]
- b _081085C6
- .align 2, 0
-_081085A8: .4byte gUnknown_02024C08
-_081085AC: .4byte gEnemyParty
-_081085B0: .4byte gPlayerParty
-_081085B4: .4byte gUnknown_020239F8
-_081085B8: .4byte gUnknown_02024A6A
-_081085BC:
- ldr r1, _08108624
- lsls r0, r5, 1
- adds r0, r1
- ldrb r6, [r0]
- mov r8, r6
-_081085C6:
- movs r5, 0
- ldr r7, _08108628
-_081085CA:
- cmp r5, r8
- beq _08108608
- cmp r5, r6
- beq _08108608
- movs r0, 0x64
- muls r0, r5
- mov r1, r9
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- cmp r0, 0
- beq _08108608
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _08108608
- ldr r0, [r7, 0x8]
- adds r0, 0x1
- str r0, [r7, 0x8]
-_08108608:
- adds r5, 0x1
- cmp r5, 0x5
- ble _081085CA
- ldr r1, _0810862C
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108624: .4byte gUnknown_02024A6A
-_08108628: .4byte 0x02016800
-_0810862C: .4byte gUnknown_02039238
- thumb_func_end tai2C_unk
-
- thumb_func_start sub_8108630
-sub_8108630: @ 8108630
- ldr r1, _08108640
- ldrh r0, [r1, 0x2]
- str r0, [r1, 0x8]
- ldr r1, _08108644
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108640: .4byte 0x02016800
-_08108644: .4byte gUnknown_02039238
- thumb_func_end sub_8108630
-
- thumb_func_start sub_8108648
-sub_8108648: @ 8108648
- ldr r3, _08108664
- ldr r2, _08108668
- ldrh r1, [r3, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r3, 0x8]
- ldr r1, _0810866C
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08108664: .4byte 0x02016800
-_08108668: .4byte gBattleMoves
-_0810866C: .4byte gUnknown_02039238
- thumb_func_end sub_8108648
-
- thumb_func_start sub_8108670
-sub_8108670: @ 8108670
- push {r4-r7,lr}
- ldr r0, _08108680
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08108688
- ldr r0, _08108684
- b _0810868A
- .align 2, 0
-_08108680: .4byte gUnknown_02039238
-_08108684: .4byte gUnknown_02024C07
-_08108688:
- ldr r0, _081086BC
-_0810868A:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08108774
- adds r0, r4, 0
- bl battle_get_per_side_status
- movs r7, 0x1
- adds r1, r7, 0
- ands r1, r0
- ldr r6, _081086C0
- adds r0, r6, 0
- adds r0, 0x20
- adds r3, r1, r0
- ldrb r0, [r3]
- cmp r0, 0
- beq _081086C8
- ldr r0, _081086C4
- adds r1, r6, r0
- ldrb r0, [r3]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086BC: .4byte gUnknown_02024C08
-_081086C0: .4byte 0x02016a00
-_081086C4: .4byte 0xfffffe00
-_081086C8:
- ldr r1, _081086F4
- movs r0, 0x58
- muls r0, r4
- adds r5, r0, r1
- adds r0, r5, 0
- adds r0, 0x20
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0x17
- beq _081086E4
- cmp r0, 0x2A
- beq _081086E4
- cmp r0, 0x47
- bne _081086FC
-_081086E4:
- ldr r1, _081086F8
- movs r0, 0x58
- muls r0, r4
- adds r0, r2
- adds r0, 0x20
- ldrb r0, [r0]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_081086F4: .4byte gBattleMons
-_081086F8: .4byte 0x02016800
-_081086FC:
- ldr r4, _08108734
- ldrh r0, [r5]
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r3, r1, r4
- ldrb r0, [r3, 0x16]
- cmp r0, 0
- beq _08108764
- ldrb r0, [r3, 0x17]
- cmp r0, 0
- beq _08108754
- bl Random
- adds r1, r7, 0
- ands r1, r0
- cmp r1, 0
- beq _0810873C
- ldr r0, _08108738
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x16]
- b _08108782
- .align 2, 0
-_08108734: .4byte gBaseStats
-_08108738: .4byte 0xfffffe00
-_0810873C:
- ldr r0, _08108750
- adds r2, r6, r0
- ldrh r1, [r5]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x17]
- b _08108782
- .align 2, 0
-_08108750: .4byte 0xfffffe00
-_08108754:
- ldr r0, _08108760
- adds r1, r6, r0
- ldrb r0, [r3, 0x16]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108760: .4byte 0xfffffe00
-_08108764:
- ldr r0, _08108770
- adds r1, r6, r0
- ldrb r0, [r3, 0x17]
- str r0, [r1, 0x8]
- b _08108784
- .align 2, 0
-_08108770: .4byte 0xfffffe00
-_08108774:
- ldr r2, _08108794
- ldr r1, _08108798
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- adds r0, 0x20
- ldrb r0, [r0]
-_08108782:
- str r0, [r2, 0x8]
-_08108784:
- ldr r1, _0810879C
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108794: .4byte 0x02016800
-_08108798: .4byte gBattleMons
-_0810879C: .4byte gUnknown_02039238
- thumb_func_end sub_8108670
-
- thumb_func_start tai30_unk
-tai30_unk: @ 81087A0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r0, _0810885C
- movs r2, 0
- strh r2, [r0]
- ldr r1, _08108860
- ldr r3, _08108864
- adds r0, r1, r3
- movs r4, 0
- strb r2, [r0]
- adds r3, 0x3
- adds r0, r1, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r0, _08108868
- strb r2, [r0]
- ldr r0, _0810886C
- strb r3, [r0]
- movs r0, 0xB4
- lsls r0, 9
- adds r1, r0
- str r4, [r1, 0x8]
- movs r5, 0
- ldr r4, _08108870
- ldr r7, _08108874
- ldr r3, _08108878
- mov r8, r3
- ldr r6, _0810887C
-_081087DA:
- movs r0, 0x28
- str r0, [r4]
- lsls r1, r5, 1
- ldrb r2, [r6]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- add r1, r8
- ldrh r0, [r1]
- strh r0, [r7]
- lsls r0, 16
- cmp r0, 0
- beq _08108844
- ldrh r0, [r7]
- ldrb r1, [r6]
- ldr r2, _08108880
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _0810880A
- movs r0, 0x50
- str r0, [r4]
-_0810880A:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _08108814
- movs r0, 0xA0
- str r0, [r4]
-_08108814:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _0810881E
- movs r0, 0x14
- str r0, [r4]
-_0810881E:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _08108828
- movs r0, 0xA
- str r0, [r4]
-_08108828:
- ldr r0, _08108868
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108838
- movs r0, 0
- str r0, [r4]
-_08108838:
- ldr r2, _08108884
- ldr r0, [r2, 0x8]
- ldr r1, [r4]
- cmp r0, r1
- bcs _08108844
- str r1, [r2, 0x8]
-_08108844:
- adds r5, 0x1
- cmp r5, 0x3
- ble _081087DA
- ldr r1, _08108888
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0810885C: .4byte gUnknown_02024DEC
-_08108860: .4byte 0x02000000
-_08108864: .4byte 0x0001601c
-_08108868: .4byte gUnknown_02024C68
-_0810886C: .4byte gCritMultiplier
-_08108870: .4byte gUnknown_02024BEC
-_08108874: .4byte gUnknown_02024BE6
-_08108878: .4byte gUnknown_02024A8C
-_0810887C: .4byte gUnknown_02024C07
-_08108880: .4byte gUnknown_02024C08
-_08108884: .4byte 0x02016800
-_08108888: .4byte gUnknown_02039238
- thumb_func_end tai30_unk
-
- thumb_func_start dp15_simulate_damage_bonus_jump_if_eq
-dp15_simulate_damage_bonus_jump_if_eq: @ 810888C
- push {r4,r5,lr}
- ldr r0, _08108928
- movs r1, 0
- strh r1, [r0]
- ldr r2, _0810892C
- ldr r3, _08108930
- adds r0, r2, r3
- strb r1, [r0]
- adds r3, 0x3
- adds r0, r2, r3
- movs r3, 0x1
- strb r3, [r0]
- ldr r5, _08108934
- strb r1, [r5]
- ldr r0, _08108938
- strb r3, [r0]
- ldr r4, _0810893C
- movs r0, 0x28
- str r0, [r4]
- ldr r1, _08108940
- movs r0, 0xB4
- lsls r0, 9
- adds r2, r0
- ldrh r0, [r2, 0x2]
- strh r0, [r1]
- ldrh r0, [r1]
- ldr r1, _08108944
- ldrb r1, [r1]
- ldr r2, _08108948
- ldrb r2, [r2]
- bl move_effectiveness_something
- ldr r0, [r4]
- cmp r0, 0x78
- bne _081088D6
- movs r0, 0x50
- str r0, [r4]
-_081088D6:
- ldr r0, [r4]
- cmp r0, 0xF0
- bne _081088E0
- movs r0, 0xA0
- str r0, [r4]
-_081088E0:
- ldr r0, [r4]
- cmp r0, 0x1E
- bne _081088EA
- movs r0, 0x14
- str r0, [r4]
-_081088EA:
- ldr r0, [r4]
- cmp r0, 0xF
- bne _081088F4
- movs r0, 0xA
- str r0, [r4]
-_081088F4:
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08108902
- movs r0, 0
- str r0, [r4]
-_08108902:
- ldrb r0, [r4]
- ldr r3, _0810894C
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08108950
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108954
- .align 2, 0
-_08108928: .4byte gUnknown_02024DEC
-_0810892C: .4byte 0x02000000
-_08108930: .4byte 0x0001601c
-_08108934: .4byte gUnknown_02024C68
-_08108938: .4byte gCritMultiplier
-_0810893C: .4byte gUnknown_02024BEC
-_08108940: .4byte gUnknown_02024BE6
-_08108944: .4byte gUnknown_02024C07
-_08108948: .4byte gUnknown_02024C08
-_0810894C: .4byte gUnknown_02039238
-_08108950:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108954:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp15_simulate_damage_bonus_jump_if_eq
-
- thumb_func_start nullsub_71
-nullsub_71: @ 810895C
- bx lr
- thumb_func_end nullsub_71
-
- thumb_func_start nullsub_90
-nullsub_90: @ 8108960
- bx lr
- thumb_func_end nullsub_90
-
- thumb_func_start sub_8108964
-sub_8108964: @ 8108964
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _0810897C
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- cmp r1, 0x1
- bne _081089A4
- ldr r1, _08108980
- b _081089A6
- .align 2, 0
-_0810897C: .4byte gUnknown_02039238
-_08108980: .4byte gEnemyParty
-_08108984:
- ldr r3, _081089A0
- ldr r2, [r3]
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108A12
- .align 2, 0
-_081089A0: .4byte gUnknown_02039238
-_081089A4:
- ldr r1, _08108A20
-_081089A6:
- mov r9, r1
- ldr r1, [r0]
- ldrb r7, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r7, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r7, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r7, r0
- movs r0, 0
- mov r8, r0
- movs r1, 0xCE
- lsls r1, 1
- mov r10, r1
-_081089C8:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r9
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- cmp r5, 0
- beq _08108A00
- cmp r5, r10
- beq _08108A00
- cmp r6, 0
- beq _08108A00
- cmp r0, r7
- beq _08108984
-_08108A00:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _081089C8
- ldr r1, _08108A24
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_08108A12:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108A20: .4byte gPlayerParty
-_08108A24: .4byte gUnknown_02039238
- thumb_func_end sub_8108964
-
- thumb_func_start sub_8108A28
-sub_8108A28: @ 8108A28
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, _08108A44
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _08108A4C
- ldr r0, _08108A48
- mov r10, r0
- b _08108A50
- .align 2, 0
-_08108A44: .4byte gUnknown_02039238
-_08108A48: .4byte gEnemyParty
-_08108A4C:
- ldr r1, _08108AE4
- mov r10, r1
-_08108A50:
- ldr r1, [r2]
- ldrb r7, [r1, 0x2]
- ldrb r0, [r1, 0x3]
- lsls r0, 8
- orrs r7, r0
- ldrb r0, [r1, 0x4]
- lsls r0, 16
- orrs r7, r0
- ldrb r0, [r1, 0x5]
- lsls r0, 24
- orrs r7, r0
- movs r0, 0
- mov r8, r0
- mov r9, r2
-_08108A6C:
- movs r0, 0x64
- mov r4, r8
- muls r4, r0
- add r4, r10
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r4, 0
- movs r1, 0x37
- bl GetMonData
- cmp r5, 0
- beq _08108AB0
- movs r1, 0xCE
- lsls r1, 1
- cmp r5, r1
- beq _08108AB0
- cmp r6, 0
- beq _08108AB0
- cmp r0, r7
- bne _08108AB0
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xA
- str r0, [r1]
-_08108AB0:
- movs r0, 0x1
- add r8, r0
- mov r1, r8
- cmp r1, 0x5
- ble _08108A6C
- ldr r3, _08108AE8
- ldr r2, [r3]
- ldrb r1, [r2, 0x6]
- ldrb r0, [r2, 0x7]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x8]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x9]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108AE4: .4byte gPlayerParty
-_08108AE8: .4byte gUnknown_02039238
- thumb_func_end sub_8108A28
-
- thumb_func_start sub_8108AEC
-sub_8108AEC: @ 8108AEC
- push {lr}
- ldr r2, _08108B3C
- ldrh r1, [r2]
- movs r0, 0x7
- ands r0, r1
- cmp r0, 0
- beq _08108B00
- ldr r1, _08108B40
- movs r0, 0x1
- str r0, [r1, 0x8]
-_08108B00:
- ldrh r2, [r2]
- movs r0, 0x18
- ands r0, r2
- adds r3, r2, 0
- cmp r0, 0
- beq _08108B12
- ldr r1, _08108B40
- movs r0, 0x2
- str r0, [r1, 0x8]
-_08108B12:
- movs r0, 0x60
- ands r0, r3
- cmp r0, 0
- beq _08108B20
- ldr r1, _08108B40
- movs r0, 0
- str r0, [r1, 0x8]
-_08108B20:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _08108B2E
- ldr r1, _08108B40
- movs r0, 0x3
- str r0, [r1, 0x8]
-_08108B2E:
- ldr r1, _08108B44
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_08108B3C: .4byte word_2024DB8
-_08108B40: .4byte 0x02016800
-_08108B44: .4byte gUnknown_02039238
- thumb_func_end sub_8108AEC
-
- thumb_func_start sub_8108B48
-sub_8108B48: @ 8108B48
- push {lr}
- ldr r2, _08108B7C
- ldr r0, _08108B80
- ldrh r1, [r0, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r3, _08108B84
- ldr r2, [r3]
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- bne _08108B88
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108B8C
- .align 2, 0
-_08108B7C: .4byte gBattleMoves
-_08108B80: .4byte 0x02016800
-_08108B84: .4byte gUnknown_02039238
-_08108B88:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108B8C:
- pop {r0}
- bx r0
- thumb_func_end sub_8108B48
-
- thumb_func_start sub_8108B90
-sub_8108B90: @ 8108B90
- push {lr}
- ldr r2, _08108BC4
- ldr r0, _08108BC8
- ldrh r1, [r0, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r3, _08108BCC
- ldr r2, [r3]
- ldrb r0, [r0]
- ldrb r1, [r2, 0x1]
- cmp r0, r1
- beq _08108BD0
- ldrb r1, [r2, 0x2]
- ldrb r0, [r2, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108BD4
- .align 2, 0
-_08108BC4: .4byte gBattleMoves
-_08108BC8: .4byte 0x02016800
-_08108BCC: .4byte gUnknown_02039238
-_08108BD0:
- adds r0, r2, 0x6
- str r0, [r3]
-_08108BD4:
- pop {r0}
- bx r0
- thumb_func_end sub_8108B90
-
- thumb_func_start sub_8108BD8
-sub_8108BD8: @ 8108BD8
- push {r4,lr}
- ldr r0, _08108BEC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108BF4
- ldr r0, _08108BF0
- b _08108BF6
- .align 2, 0
-_08108BEC: .4byte gUnknown_02039238
-_08108BF0: .4byte gUnknown_02024C07
-_08108BF4:
- ldr r0, _08108C2C
-_08108BF6:
- ldrb r3, [r0]
- ldr r1, _08108C30
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bge _08108C34
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108C3A
- .align 2, 0
-_08108C2C: .4byte gUnknown_02024C08
-_08108C30: .4byte gBattleMons
-_08108C34:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108C3A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108BD8
-
- thumb_func_start sub_8108C40
-sub_8108C40: @ 8108C40
- push {r4,lr}
- ldr r0, _08108C54
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108C5C
- ldr r0, _08108C58
- b _08108C5E
- .align 2, 0
-_08108C54: .4byte gUnknown_02039238
-_08108C58: .4byte gUnknown_02024C07
-_08108C5C:
- ldr r0, _08108C94
-_08108C5E:
- ldrb r3, [r0]
- ldr r1, _08108C98
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- ble _08108C9C
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108CA2
- .align 2, 0
-_08108C94: .4byte gUnknown_02024C08
-_08108C98: .4byte gBattleMons
-_08108C9C:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108CA2:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108C40
-
- thumb_func_start sub_8108CA8
-sub_8108CA8: @ 8108CA8
- push {r4,lr}
- ldr r0, _08108CBC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108CC4
- ldr r0, _08108CC0
- b _08108CC6
- .align 2, 0
-_08108CBC: .4byte gUnknown_02039238
-_08108CC0: .4byte gUnknown_02024C07
-_08108CC4:
- ldr r0, _08108CFC
-_08108CC6:
- ldrb r3, [r0]
- ldr r1, _08108D00
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- bne _08108D04
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108D0A
- .align 2, 0
-_08108CFC: .4byte gUnknown_02024C08
-_08108D00: .4byte gBattleMons
-_08108D04:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108D0A:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108CA8
-
- thumb_func_start sub_8108D10
-sub_8108D10: @ 8108D10
- push {r4,lr}
- ldr r0, _08108D24
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08108D2C
- ldr r0, _08108D28
- b _08108D2E
- .align 2, 0
-_08108D24: .4byte gUnknown_02039238
-_08108D28: .4byte gUnknown_02024C07
-_08108D2C:
- ldr r0, _08108D64
-_08108D2E:
- ldrb r3, [r0]
- ldr r1, _08108D68
- ldr r2, [r4]
- movs r0, 0x58
- muls r0, r3
- ldrb r3, [r2, 0x2]
- adds r0, r3
- adds r1, 0x18
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrb r1, [r2, 0x3]
- cmp r0, r1
- beq _08108D6C
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08108D72
- .align 2, 0
-_08108D64: .4byte gUnknown_02024C08
-_08108D68: .4byte gBattleMons
-_08108D6C:
- adds r0, r2, 0
- adds r0, 0x8
- str r0, [r4]
-_08108D72:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8108D10
-
- thumb_func_start tai3D_unk
-tai3D_unk: @ 8108D78
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r2, _08108E1C
- ldr r6, _08108E20
- ldrh r1, [r6, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bls _08108E4C
- ldr r0, _08108E24
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08108E28
- adds r0, r6, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r6, r2
- movs r2, 0x1
- mov r8, r2
- mov r2, r8
- strb r2, [r0]
- ldr r0, _08108E2C
- strb r1, [r0]
- ldr r0, _08108E30
- strb r2, [r0]
- ldr r5, _08108E34
- ldrh r0, [r6, 0x2]
- strh r0, [r5]
- ldr r4, _08108E38
- ldrb r0, [r4]
- ldr r7, _08108E3C
- ldrb r1, [r7]
- bl sub_801CAF8
- ldrh r0, [r5]
- ldrb r1, [r4]
- ldrb r2, [r7]
- bl move_effectiveness_something
- ldr r4, _08108E40
- adds r0, r6, 0
- adds r0, 0x18
- ldrb r6, [r6, 0x1]
- adds r0, r6
- ldrb r1, [r0]
- ldr r0, [r4]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- cmp r0, 0
- bne _08108DEE
- mov r0, r8
- str r0, [r4]
-_08108DEE:
- ldr r2, _08108E44
- ldrb r1, [r7]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- ldrh r1, [r0, 0x28]
- ldr r0, [r4]
- cmp r1, r0
- bgt _08108E4C
- ldr r3, _08108E48
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108E54
- .align 2, 0
-_08108E1C: .4byte gBattleMoves
-_08108E20: .4byte 0x02016800
-_08108E24: .4byte gUnknown_02024DEC
-_08108E28: .4byte 0xfffff81c
-_08108E2C: .4byte gUnknown_02024C68
-_08108E30: .4byte gCritMultiplier
-_08108E34: .4byte gUnknown_02024BE6
-_08108E38: .4byte gUnknown_02024C07
-_08108E3C: .4byte gUnknown_02024C08
-_08108E40: .4byte gUnknown_02024BEC
-_08108E44: .4byte gBattleMons
-_08108E48: .4byte gUnknown_02039238
-_08108E4C:
- ldr r1, _08108E60
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08108E54:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108E60: .4byte gUnknown_02039238
- thumb_func_end tai3D_unk
-
- thumb_func_start dp15_determine_move_damage_jump_if_not_fatal
-dp15_determine_move_damage_jump_if_not_fatal: @ 8108E64
- push {r4-r7,lr}
- ldr r2, _08108EF8
- ldr r7, _08108EFC
- ldrh r1, [r7, 0x2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bls _08108F28
- ldr r0, _08108F00
- movs r1, 0
- strh r1, [r0]
- ldr r2, _08108F04
- adds r0, r7, r2
- strb r1, [r0]
- adds r2, 0x3
- adds r0, r7, r2
- movs r2, 0x1
- strb r2, [r0]
- ldr r0, _08108F08
- strb r1, [r0]
- ldr r0, _08108F0C
- strb r2, [r0]
- ldr r6, _08108F10
- ldrh r0, [r7, 0x2]
- strh r0, [r6]
- ldr r4, _08108F14
- ldrb r0, [r4]
- ldr r5, _08108F18
- ldrb r1, [r5]
- bl sub_801CAF8
- ldrh r0, [r6]
- ldrb r1, [r4]
- ldrb r2, [r5]
- bl move_effectiveness_something
- ldr r4, _08108F1C
- adds r0, r7, 0
- adds r0, 0x18
- ldrb r7, [r7, 0x1]
- adds r0, r7
- ldrb r1, [r0]
- ldr r0, [r4]
- muls r0, r1
- movs r1, 0x64
- bl __divsi3
- str r0, [r4]
- ldr r3, _08108F20
- ldrb r2, [r5]
- movs r1, 0x58
- muls r1, r2
- adds r1, r3
- ldrh r1, [r1, 0x28]
- cmp r1, r0
- ble _08108F28
- ldr r3, _08108F24
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08108F30
- .align 2, 0
-_08108EF8: .4byte gBattleMoves
-_08108EFC: .4byte 0x02016800
-_08108F00: .4byte gUnknown_02024DEC
-_08108F04: .4byte 0xfffff81c
-_08108F08: .4byte gUnknown_02024C68
-_08108F0C: .4byte gCritMultiplier
-_08108F10: .4byte gUnknown_02024BE6
-_08108F14: .4byte gUnknown_02024C07
-_08108F18: .4byte gUnknown_02024C08
-_08108F1C: .4byte gUnknown_02024BEC
-_08108F20: .4byte gBattleMons
-_08108F24: .4byte gUnknown_02039238
-_08108F28:
- ldr r1, _08108F38
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08108F30:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08108F38: .4byte gUnknown_02039238
- thumb_func_end dp15_determine_move_damage_jump_if_not_fatal
-
- thumb_func_start tai40_unk
-tai40_unk: @ 8108F3C
- push {r4-r7,lr}
- ldr r1, _08108F58
- ldr r0, [r1]
- adds r6, r0, 0x2
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08108F64
- cmp r0, 0x1
- bgt _08108F5C
- cmp r0, 0
- beq _08108FA8
- b _08109008
- .align 2, 0
-_08108F58: .4byte gUnknown_02039238
-_08108F5C:
- cmp r0, 0x2
- beq _08108FA8
- cmp r0, 0x3
- bne _08109008
-_08108F64:
- movs r3, 0
- ldr r2, _08108FA0
- ldr r5, _08108FA4
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldrh r1, [r6]
- cmp r0, r1
- beq _08108F9A
- adds r7, r5, 0
- movs r6, 0x58
- adds r5, r2, 0
- adds r2, r1, 0
-_08108F84:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _08108F9A
- lsls r1, r3, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r1, r0
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, r2
- bne _08108F84
-_08108F9A:
- cmp r3, 0x4
- beq _08108FDE
- b _08108FF0
- .align 2, 0
-_08108FA0: .4byte gBattleMons
-_08108FA4: .4byte gUnknown_02024C07
-_08108FA8:
- movs r3, 0
- ldr r5, _08108FE8
- ldr r1, _08108FEC
- ldrb r0, [r1]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r5
- ldrh r0, [r0]
- ldrh r2, [r6]
- cmp r0, r2
- beq _08108FDA
- adds r6, r5, 0
- adds r5, r1, 0
-_08108FC2:
- adds r3, 0x1
- cmp r3, 0x7
- bgt _08108FDA
- lsls r0, r3, 1
- ldrb r1, [r5]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r2
- bne _08108FC2
-_08108FDA:
- cmp r3, 0x8
- bne _08108FF0
-_08108FDE:
- ldr r0, [r4]
- adds r0, 0x8
- str r0, [r4]
- b _08109008
- .align 2, 0
-_08108FE8: .4byte 0x02016a00
-_08108FEC: .4byte gUnknown_02024C08
-_08108FF0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_08109008:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end tai40_unk
-
- thumb_func_start sub_8109010
-sub_8109010: @ 8109010
- push {r4-r7,lr}
- ldr r1, _0810902C
- ldr r0, [r1]
- adds r6, r0, 0x2
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08109038
- cmp r0, 0x1
- bgt _08109030
- cmp r0, 0
- beq _0810907C
- b _081090DC
- .align 2, 0
-_0810902C: .4byte gUnknown_02039238
-_08109030:
- cmp r0, 0x2
- beq _0810907C
- cmp r0, 0x3
- bne _081090DC
-_08109038:
- movs r3, 0
- ldr r2, _08109074
- ldr r5, _08109078
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, 0xC
- adds r0, r2
- ldrh r0, [r0]
- ldrh r1, [r6]
- cmp r0, r1
- beq _0810906E
- adds r7, r5, 0
- movs r6, 0x58
- adds r5, r2, 0
- adds r2, r1, 0
-_08109058:
- adds r3, 0x1
- cmp r3, 0x3
- bgt _0810906E
- lsls r1, r3, 1
- ldrb r0, [r7]
- muls r0, r6
- adds r1, r0
- adds r1, r5
- ldrh r0, [r1]
- cmp r0, r2
- bne _08109058
-_0810906E:
- cmp r3, 0x4
- bne _081090B2
- b _081090C4
- .align 2, 0
-_08109074: .4byte gBattleMons
-_08109078: .4byte gUnknown_02024C07
-_0810907C:
- movs r3, 0
- ldr r5, _081090BC
- ldr r1, _081090C0
- ldrb r0, [r1]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r5
- ldrh r0, [r0]
- ldrh r2, [r6]
- cmp r0, r2
- beq _081090AE
- adds r6, r5, 0
- adds r5, r1, 0
-_08109096:
- adds r3, 0x1
- cmp r3, 0x7
- bgt _081090AE
- lsls r0, r3, 1
- ldrb r1, [r5]
- lsrs r1, 1
- lsls r1, 4
- adds r0, r1
- adds r0, r6
- ldrh r0, [r0]
- cmp r0, r2
- bne _08109096
-_081090AE:
- cmp r3, 0x8
- beq _081090C4
-_081090B2:
- ldr r0, [r4]
- adds r0, 0x8
- str r0, [r4]
- b _081090DC
- .align 2, 0
-_081090BC: .4byte 0x02016a00
-_081090C0: .4byte gUnknown_02024C08
-_081090C4:
- ldr r2, [r4]
- ldrb r1, [r2, 0x4]
- ldrb r0, [r2, 0x5]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x7]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081090DC:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8109010
-
- thumb_func_start sub_81090E4
-sub_81090E4: @ 81090E4
- push {r4-r7,lr}
- ldr r1, _081090FC
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _08109108
- cmp r0, 0x1
- bgt _08109100
- cmp r0, 0
- beq _0810915C
- b _081091B8
- .align 2, 0
-_081090FC: .4byte gUnknown_02039238
-_08109100:
- cmp r0, 0x2
- beq _0810915C
- cmp r0, 0x3
- bne _081091B8
-_08109108:
- movs r3, 0
- ldr r1, _0810914C
- ldr r0, _08109150
- ldrb r2, [r0]
- ldr r6, _08109154
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
- ldr r5, _08109158
-_0810911C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109136
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, [r5]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810913E
-_08109136:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810911C
-_0810913E:
- cmp r3, 0x4
- bne _081091A0
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- b _081091B8
- .align 2, 0
-_0810914C: .4byte gBattleMons
-_08109150: .4byte gUnknown_02024C07
-_08109154: .4byte gBattleMoves
-_08109158: .4byte gUnknown_02039238
-_0810915C:
- movs r3, 0
- ldr r1, _081091C0
- ldr r0, _081091C4
- ldrb r2, [r0]
- ldr r7, _081091C8
- ldr r6, _081091CC
- ldr r5, _081091D0
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
-_08109172:
- lsls r1, r3, 1
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109198
- ldrb r0, [r5]
- lsrs r0, 1
- lsls r0, 4
- adds r0, r1, r0
- adds r0, r6
- ldrh r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldr r1, [r4]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _081091A0
-_08109198:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _08109172
-_081091A0:
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
-_081091B8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081091C0: .4byte gBattleMons
-_081091C4: .4byte gUnknown_02024C07
-_081091C8: .4byte gBattleMoves
-_081091CC: .4byte 0x02016a00
-_081091D0: .4byte gUnknown_02024C08
- thumb_func_end sub_81090E4
-
- thumb_func_start sub_81091D4
-sub_81091D4: @ 81091D4
- push {r4-r6,lr}
- ldr r1, _081091EC
- ldr r0, [r1]
- ldrb r0, [r0, 0x1]
- adds r4, r1, 0
- cmp r0, 0x1
- beq _081091F8
- cmp r0, 0x1
- bgt _081091F0
- cmp r0, 0
- beq _0810925C
- b _08109294
- .align 2, 0
-_081091EC: .4byte gUnknown_02039238
-_081091F0:
- cmp r0, 0x2
- beq _0810925C
- cmp r0, 0x3
- bne _08109294
-_081091F8:
- movs r3, 0
- ldr r1, _0810924C
- ldr r0, _08109250
- ldrb r2, [r0]
- ldr r6, _08109254
- movs r0, 0x58
- muls r0, r2
- adds r1, 0xC
- adds r2, r0, r1
- ldr r5, _08109258
-_0810920C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109226
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, [r5]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810922E
-_08109226:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x3
- ble _0810920C
-_0810922E:
- cmp r3, 0x4
- bne _0810928E
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08109294
- .align 2, 0
-_0810924C: .4byte gBattleMons
-_08109250: .4byte gUnknown_02024C07
-_08109254: .4byte gBattleMoves
-_08109258: .4byte gUnknown_02039238
-_0810925C:
- movs r3, 0
- ldr r1, _0810929C
- ldr r0, _081092A0
- ldrb r0, [r0]
- lsrs r0, 1
- lsls r0, 4
- adds r2, r0, r1
- ldr r5, _081092A4
-_0810926C:
- ldrh r0, [r2]
- cmp r0, 0
- beq _08109286
- adds r1, r0, 0
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldr r1, [r4]
- ldrb r0, [r0]
- ldrb r1, [r1, 0x2]
- cmp r0, r1
- beq _0810928E
-_08109286:
- adds r2, 0x2
- adds r3, 0x1
- cmp r3, 0x7
- ble _0810926C
-_0810928E:
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
-_08109294:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0810929C: .4byte 0x02016a00
-_081092A0: .4byte gUnknown_02024C08
-_081092A4: .4byte gBattleMoves
- thumb_func_end sub_81091D4
-
- thumb_func_start tai43_unk
-tai43_unk: @ 81092A8
- push {r4,r5,lr}
- ldr r0, _081092BC
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _081092C4
- ldr r0, _081092C0
- b _081092C6
- .align 2, 0
-_081092BC: .4byte gUnknown_02039238
-_081092C0: .4byte gUnknown_02024C07
-_081092C4:
- ldr r0, _081092E4
-_081092C6:
- ldrb r3, [r0]
- adds r4, r5, 0
- ldr r2, [r4]
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _081092EC
- ldr r0, _081092E8
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x4]
- cmp r0, 0
- beq _081092F0
- b _08109306
- .align 2, 0
-_081092E4: .4byte gUnknown_02024C08
-_081092E8: .4byte gUnknown_02024CA8
-_081092EC:
- cmp r0, 0x1
- beq _081092F6
-_081092F0:
- adds r0, r2, 0x7
- str r0, [r4]
- b _08109328
-_081092F6:
- ldr r0, _08109320
- lsls r1, r3, 3
- subs r1, r3
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r1, 0x6]
- cmp r0, 0
- beq _08109324
-_08109306:
- ldrb r1, [r2, 0x3]
- ldrb r0, [r2, 0x4]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x5]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x6]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _08109328
- .align 2, 0
-_08109320: .4byte gUnknown_02024CA8
-_08109324:
- adds r0, r2, 0x7
- str r0, [r5]
-_08109328:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end tai43_unk
-
- thumb_func_start sub_8109330
-sub_8109330: @ 8109330
- push {r4,lr}
- ldr r4, _08109344
- ldr r3, [r4]
- ldrb r0, [r3, 0x1]
- cmp r0, 0
- beq _08109348
- cmp r0, 0x1
- beq _08109370
- b _081093AC
- .align 2, 0
-_08109344: .4byte gUnknown_02039238
-_08109348:
- ldr r2, _08109364
- ldr r0, _08109368
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _0810936C
- ldrh r0, [r0, 0x4]
- ldrh r1, [r1, 0x2]
- cmp r0, r1
- beq _08109388
- b _081093AC
- .align 2, 0
-_08109364: .4byte gUnknown_02024CA8
-_08109368: .4byte gUnknown_02024A60
-_0810936C: .4byte 0x02016800
-_08109370:
- ldr r2, _081093A0
- ldr r0, _081093A4
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, _081093A8
- ldrh r0, [r0, 0x6]
- ldrh r1, [r1, 0x2]
- cmp r0, r1
- bne _081093AC
-_08109388:
- ldrb r1, [r3, 0x2]
- ldrb r0, [r3, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r3, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r3, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- b _081093B0
- .align 2, 0
-_081093A0: .4byte gUnknown_02024CA8
-_081093A4: .4byte gUnknown_02024A60
-_081093A8: .4byte 0x02016800
-_081093AC:
- adds r0, r3, 0x6
- str r0, [r4]
-_081093B0:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8109330
-
- thumb_func_start sub_81093B8
-sub_81093B8: @ 81093B8
- ldr r2, _081093C4
- ldrb r1, [r2, 0x10]
- movs r0, 0xB
- orrs r0, r1
- strb r0, [r2, 0x10]
- bx lr
- .align 2, 0
-_081093C4: .4byte 0x02016800
- thumb_func_end sub_81093B8
-
- thumb_func_start sub_81093C8
-sub_81093C8: @ 81093C8
- push {r4,lr}
- ldr r0, _0810940C
- ldr r1, _08109410
- adds r0, r1
- ldrb r0, [r0]
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r4
- bcs _08109418
- ldr r3, _08109414
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _08109420
- .align 2, 0
-_0810940C: .4byte 0x02000000
-_08109410: .4byte 0x00016088
-_08109414: .4byte gUnknown_02039238
-_08109418:
- ldr r1, _08109428
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_08109420:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109428: .4byte gUnknown_02039238
- thumb_func_end sub_81093C8
-
- thumb_func_start sub_810942C
-sub_810942C: @ 810942C
- ldr r2, _08109438
- ldrb r1, [r2, 0x10]
- movs r0, 0xD
- orrs r0, r1
- strb r0, [r2, 0x10]
- bx lr
- .align 2, 0
-_08109438: .4byte 0x02016800
- thumb_func_end sub_810942C
-
- thumb_func_start dp15_get_held_item_x12__8
-dp15_get_held_item_x12__8: @ 810943C
- push {r4,lr}
- ldr r0, _0810944C
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _08109454
- ldr r0, _08109450
- b _08109456
- .align 2, 0
-_0810944C: .4byte gUnknown_02039238
-_08109450: .4byte gUnknown_02024C07
-_08109454:
- ldr r0, _0810947C
-_08109456:
- ldrb r4, [r0]
- adds r0, r4, 0
- bl battle_side_get_owner
- lsls r0, 24
- cmp r0, 0
- bne _08109488
- adds r0, r4, 0
- bl battle_get_per_side_status
- movs r1, 0x1
- ands r1, r0
- ldr r2, _08109480
- ldr r3, _08109484
- adds r0, r2, r3
- adds r1, r0
- ldrb r0, [r1]
- str r0, [r2, 0x8]
- b _0810949E
- .align 2, 0
-_0810947C: .4byte gUnknown_02024C08
-_08109480: .4byte 0x02016800
-_08109484: .4byte 0x00000222
-_08109488:
- ldr r1, _081094AC
- movs r0, 0x58
- muls r0, r4
- adds r0, r1
- ldrh r0, [r0, 0x2E]
- bl itemid_get_x12
- ldr r1, _081094B0
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x8]
-_0810949E:
- ldr r1, _081094B4
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081094AC: .4byte gBattleMons
-_081094B0: .4byte 0x02016800
-_081094B4: .4byte gUnknown_02039238
- thumb_func_end dp15_get_held_item_x12__8
-
- thumb_func_start tai49_unk
-tai49_unk: @ 81094B8
- push {lr}
- ldr r0, _081094C8
- ldr r0, [r0]
- ldrb r0, [r0, 0x1]
- cmp r0, 0x1
- bne _081094D0
- ldr r0, _081094CC
- b _081094D2
- .align 2, 0
-_081094C8: .4byte gUnknown_02039238
-_081094CC: .4byte gUnknown_02024C07
-_081094D0:
- ldr r0, _081094FC
-_081094D2:
- ldrb r1, [r0]
- ldr r2, _08109500
- movs r0, 0x58
- muls r1, r0
- adds r0, r1, r2
- ldrh r0, [r0]
- adds r2, 0x48
- adds r1, r2
- ldr r1, [r1]
- bl GetGenderFromSpeciesAndPersonality
- ldr r1, _08109504
- lsls r0, 24
- lsrs r0, 24
- str r0, [r1, 0x8]
- ldr r1, _08109508
- ldr r0, [r1]
- adds r0, 0x2
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_081094FC: .4byte gUnknown_02024C08
-_08109500: .4byte gBattleMons
-_08109504: .4byte 0x02016800
-_08109508: .4byte gUnknown_02039238
- thumb_func_end tai49_unk
-
- thumb_func_start sub_810950C
-sub_810950C: @ 810950C
- push {r4,lr}
- ldr r0, _08109520
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109528
- ldr r0, _08109524
- b _0810952A
- .align 2, 0
-_08109520: .4byte gUnknown_02039238
-_08109524: .4byte gUnknown_02024C07
-_08109528:
- ldr r0, _08109548
-_0810952A:
- ldrb r3, [r0]
- ldr r2, _0810954C
- ldr r1, _08109550
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x16]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109548: .4byte gUnknown_02024C08
-_0810954C: .4byte 0x02016800
-_08109550: .4byte gUnknown_02024CA8
- thumb_func_end sub_810950C
-
- thumb_func_start sub_8109554
-sub_8109554: @ 8109554
- push {r4,lr}
- ldr r0, _08109568
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109570
- ldr r0, _0810956C
- b _08109572
- .align 2, 0
-_08109568: .4byte gUnknown_02039238
-_0810956C: .4byte gUnknown_02024C07
-_08109570:
- ldr r0, _08109590
-_08109572:
- ldrb r3, [r0]
- ldr r2, _08109594
- ldr r1, _08109598
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x9]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109590: .4byte gUnknown_02024C08
-_08109594: .4byte 0x02016800
-_08109598: .4byte gUnknown_02024CA8
- thumb_func_end sub_8109554
-
- thumb_func_start sub_810959C
-sub_810959C: @ 810959C
- ldr r2, _081095B4
- ldr r0, _081095B8
- ldrh r1, [r0]
- movs r0, 0x1
- ands r0, r1
- str r0, [r2, 0x8]
- ldr r1, _081095BC
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_081095B4: .4byte 0x02016800
-_081095B8: .4byte gUnknown_020239F8
-_081095BC: .4byte gUnknown_02039238
- thumb_func_end sub_810959C
-
- thumb_func_start sub_81095C0
-sub_81095C0: @ 81095C0
- push {lr}
- ldr r0, _081095D4
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r2, r0, 0
- cmp r1, 0x1
- bne _081095DC
- ldr r0, _081095D8
- b _081095DE
- .align 2, 0
-_081095D4: .4byte gUnknown_02039238
-_081095D8: .4byte gUnknown_02024C07
-_081095DC:
- ldr r0, _081095F8
-_081095DE:
- ldrb r0, [r0]
- ldr r1, _081095FC
- lsls r0, 1
- adds r0, r1
- ldr r3, _08109600
- adds r0, r3
- ldrb r0, [r0]
- str r0, [r1, 0x8]
- ldr r0, [r2]
- adds r0, 0x2
- str r0, [r2]
- pop {r0}
- bx r0
- .align 2, 0
-_081095F8: .4byte gUnknown_02024C08
-_081095FC: .4byte 0x02016800
-_08109600: .4byte 0xfffff8cc
- thumb_func_end sub_81095C0
-
- thumb_func_start sub_8109604
-sub_8109604: @ 8109604
- ldr r3, _08109620
- ldr r2, _08109624
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x2]
- str r0, [r3, 0x8]
- ldr r1, _08109628
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109620: .4byte 0x02016800
-_08109624: .4byte gBattleMoves
-_08109628: .4byte gUnknown_02039238
- thumb_func_end sub_8109604
-
- thumb_func_start sub_810962C
-sub_810962C: @ 810962C
- ldr r3, _08109648
- ldr r2, _0810964C
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x1]
- str r0, [r3, 0x8]
- ldr r1, _08109650
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109648: .4byte 0x02016800
-_0810964C: .4byte gBattleMoves
-_08109650: .4byte gUnknown_02039238
- thumb_func_end sub_810962C
-
- thumb_func_start sub_8109654
-sub_8109654: @ 8109654
- ldr r3, _08109670
- ldr r2, _08109674
- ldr r1, [r3, 0x8]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0]
- str r0, [r3, 0x8]
- ldr r1, _08109678
- ldr r0, [r1]
- adds r0, 0x1
- str r0, [r1]
- bx lr
- .align 2, 0
-_08109670: .4byte 0x02016800
-_08109674: .4byte gBattleMoves
-_08109678: .4byte gUnknown_02039238
- thumb_func_end sub_8109654
-
- thumb_func_start sub_810967C
-sub_810967C: @ 810967C
- push {r4,lr}
- ldr r0, _08109690
- ldr r1, [r0]
- ldrb r1, [r1, 0x1]
- adds r4, r0, 0
- cmp r1, 0x1
- bne _08109698
- ldr r0, _08109694
- b _0810969A
- .align 2, 0
-_08109690: .4byte gUnknown_02039238
-_08109694: .4byte gUnknown_02024C07
-_08109698:
- ldr r0, _081096B8
-_0810969A:
- ldrb r3, [r0]
- ldr r2, _081096BC
- ldr r1, _081096C0
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- str r0, [r2, 0x8]
- ldr r0, [r4]
- adds r0, 0x2
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081096B8: .4byte gUnknown_02024C08
-_081096BC: .4byte 0x02016800
-_081096C0: .4byte gUnknown_02024CA8
- thumb_func_end sub_810967C
-
- thumb_func_start nullsub_27
-nullsub_27: @ 81096C4
- bx lr
- thumb_func_end nullsub_27
-
- thumb_func_start nullsub_28
-nullsub_28: @ 81096C8
- bx lr
- thumb_func_end nullsub_28
-
- thumb_func_start nullsub_29
-nullsub_29: @ 81096CC
- bx lr
- thumb_func_end nullsub_29
-
- thumb_func_start nullsub_30
-nullsub_30: @ 81096D0
- bx lr
- thumb_func_end nullsub_30
-
- thumb_func_start nullsub_31
-nullsub_31: @ 81096D4
- bx lr
- thumb_func_end nullsub_31
-
- thumb_func_start nullsub_32
-nullsub_32: @ 81096D8
- bx lr
- thumb_func_end nullsub_32
-
- thumb_func_start sub_81096DC
-sub_81096DC: @ 81096DC
- push {r4,lr}
- ldr r4, _08109708
- ldr r0, [r4]
- adds r0, 0x5
- bl sub_81098C4
- ldr r2, [r4]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109708: .4byte gUnknown_02039238
- thumb_func_end sub_81096DC
-
- thumb_func_start sub_810970C
-sub_810970C: @ 810970C
- ldr r3, _08109728
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- bx lr
- .align 2, 0
-_08109728: .4byte gUnknown_02039238
- thumb_func_end sub_810970C
-
- thumb_func_start sub_810972C
-sub_810972C: @ 810972C
- push {lr}
- bl sub_8109908
- lsls r0, 24
- cmp r0, 0
- bne _08109742
- ldr r2, _08109748
- ldrb r1, [r2, 0x10]
- movs r0, 0x1
- orrs r0, r1
- strb r0, [r2, 0x10]
-_08109742:
- pop {r0}
- bx r0
- .align 2, 0
-_08109748: .4byte 0x02016800
- thumb_func_end sub_810972C
-
- thumb_func_start dp15_compare_attacker_defender_levels
-dp15_compare_attacker_defender_levels: @ 810974C
- push {r4,r5,lr}
- ldr r5, _08109764
- ldr r4, [r5]
- ldrb r0, [r4, 0x1]
- cmp r0, 0x1
- beq _081097A0
- cmp r0, 0x1
- bgt _08109768
- cmp r0, 0
- beq _0810976E
- b _0810981C
- .align 2, 0
-_08109764: .4byte gUnknown_02039238
-_08109768:
- cmp r0, 0x2
- beq _081097D0
- b _0810981C
-_0810976E:
- ldr r3, _08109794
- ldr r0, _08109798
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _0810979C
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bhi _081097F2
- b _08109818
- .align 2, 0
-_08109794: .4byte gBattleMons
-_08109798: .4byte gUnknown_02024C07
-_0810979C: .4byte gUnknown_02024C08
-_081097A0:
- ldr r3, _081097C4
- ldr r0, _081097C8
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _081097CC
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bcc _081097F2
- b _08109818
- .align 2, 0
-_081097C4: .4byte gBattleMons
-_081097C8: .4byte gUnknown_02024C07
-_081097CC: .4byte gUnknown_02024C08
-_081097D0:
- ldr r3, _0810980C
- ldr r0, _08109810
- ldrb r0, [r0]
- movs r2, 0x58
- adds r1, r0, 0
- muls r1, r2
- adds r1, r3
- adds r1, 0x2A
- ldr r0, _08109814
- ldrb r0, [r0]
- muls r0, r2
- adds r0, r3
- adds r0, 0x2A
- ldrb r1, [r1]
- ldrb r0, [r0]
- cmp r1, r0
- bne _08109818
-_081097F2:
- ldrb r1, [r4, 0x2]
- ldrb r0, [r4, 0x3]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r4, 0x4]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r4, 0x5]
- lsls r0, 24
- orrs r1, r0
- str r1, [r5]
- b _0810981C
- .align 2, 0
-_0810980C: .4byte gBattleMons
-_08109810: .4byte gUnknown_02024C07
-_08109814: .4byte gUnknown_02024C08
-_08109818:
- adds r0, r4, 0x6
- str r0, [r5]
-_0810981C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end dp15_compare_attacker_defender_levels
-
- thumb_func_start sub_8109824
-sub_8109824: @ 8109824
- push {lr}
- ldr r2, _08109858
- ldr r0, _0810985C
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- beq _08109864
- ldr r3, _08109860
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _0810986C
- .align 2, 0
-_08109858: .4byte gUnknown_02024CA8
-_0810985C: .4byte gUnknown_02024C08
-_08109860: .4byte gUnknown_02039238
-_08109864:
- ldr r1, _08109870
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_0810986C:
- pop {r0}
- bx r0
- .align 2, 0
-_08109870: .4byte gUnknown_02039238
- thumb_func_end sub_8109824
-
- thumb_func_start sub_8109874
-sub_8109874: @ 8109874
- push {lr}
- ldr r2, _081098A8
- ldr r0, _081098AC
- ldrb r1, [r0]
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- lsls r0, 28
- cmp r0, 0
- bne _081098B4
- ldr r3, _081098B0
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r2, 0x2]
- lsls r0, 8
- orrs r1, r0
- ldrb r0, [r2, 0x3]
- lsls r0, 16
- orrs r1, r0
- ldrb r0, [r2, 0x4]
- lsls r0, 24
- orrs r1, r0
- str r1, [r3]
- b _081098BC
- .align 2, 0
-_081098A8: .4byte gUnknown_02024CA8
-_081098AC: .4byte gUnknown_02024C08
-_081098B0: .4byte gUnknown_02039238
-_081098B4:
- ldr r1, _081098C0
- ldr r0, [r1]
- adds r0, 0x5
- str r0, [r1]
-_081098BC:
- pop {r0}
- bx r0
- .align 2, 0
-_081098C0: .4byte gUnknown_02039238
- thumb_func_end sub_8109874
-
- thumb_func_start sub_81098C4
-sub_81098C4: @ 81098C4
- push {r4,lr}
- ldr r4, _081098E0
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r1, [r3]
- adds r2, r1, 0x1
- strb r2, [r3]
- lsls r1, 24
- lsrs r1, 22
- adds r1, r4
- str r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081098E0: .4byte 0x02016c00
- thumb_func_end sub_81098C4
-
- thumb_func_start unref_sub_81098E4
-unref_sub_81098E4: @ 81098E4
- ldr r3, _08109900
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- adds r1, r0, 0x1
- strb r1, [r2]
- lsls r0, 24
- lsrs r0, 22
- adds r0, r3
- ldr r1, _08109904
- ldr r1, [r1]
- str r1, [r0]
- bx lr
- .align 2, 0
-_08109900: .4byte 0x02016c00
-_08109904: .4byte gUnknown_02039238
- thumb_func_end unref_sub_81098E4
-
- thumb_func_start sub_8109908
-sub_8109908: @ 8109908
- push {lr}
- ldr r3, _0810991C
- adds r2, r3, 0
- adds r2, 0x20
- ldrb r0, [r2]
- cmp r0, 0
- bne _08109920
- movs r0, 0
- b _08109932
- .align 2, 0
-_0810991C: .4byte 0x02016c00
-_08109920:
- subs r0, 0x1
- strb r0, [r2]
- ldr r1, _08109938
- ldrb r0, [r2]
- lsls r0, 2
- adds r0, r3
- ldr r0, [r0]
- str r0, [r1]
- movs r0, 0x1
-_08109932:
- pop {r1}
- bx r1
- .align 2, 0
-_08109938: .4byte gUnknown_02039238
- thumb_func_end sub_8109908
-
- thumb_func_start sub_810993C
-sub_810993C: @ 810993C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, _081099C8
- mov r9, r0
- movs r2, 0
-_0810994E:
- adds r1, r2, 0x1
- lsls r0, r1, 24
- lsrs r5, r0, 24
- str r1, [sp, 0xC]
- cmp r5, 0x3
- bhi _081099AC
- movs r1, 0x1
- add r1, r9
- mov r8, r1
- adds r6, r1, r2
- movs r0, 0xB
- mov r10, r0
- mov r0, r10
- muls r0, r2
- adds r0, 0x5
- mov r1, r9
- adds r7, r1, r0
-_08109970:
- ldrb r0, [r6]
- cmp r0, 0
- bne _081099A2
- adds r2, r0, 0
- mov r0, r8
- adds r1, r0, r5
- ldrb r0, [r1]
- strb r0, [r6]
- strb r2, [r1]
- mov r0, sp
- adds r1, r7, 0
- bl StringCopy
- mov r4, r10
- muls r4, r5
- adds r4, 0x5
- add r4, r9
- adds r0, r7, 0
- adds r1, r4, 0
- bl StringCopy
- adds r0, r4, 0
- mov r1, sp
- bl StringCopy
-_081099A2:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08109970
-_081099AC:
- ldr r1, [sp, 0xC]
- lsls r0, r1, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0810994E
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_081099C8: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_810993C
-
- thumb_func_start sub_81099CC
-sub_81099CC: @ 81099CC
- push {r4-r6,lr}
- ldr r5, _08109A14
- movs r1, 0
- movs r0, 0x2
- strb r0, [r5]
- adds r0, r5, 0
- adds r0, 0x31
- strb r1, [r0]
- movs r4, 0
- ldr r6, _08109A18
-_081099E0:
- movs r0, 0xB
- muls r0, r4
- adds r0, 0x5
- adds r0, r5, r0
- lsls r1, r4, 2
- adds r1, r6
- ldr r1, [r1]
- bl StringCopy
- adds r1, r5, 0x1
- adds r1, r4
- ldr r0, _08109A1C
- adds r0, r4, r0
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _081099E0
- bl sub_810993C
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109A14: .4byte gSaveBlock1 + 0x2D94
-_08109A18: .4byte gUnknown_083F62D8
-_08109A1C: .4byte gTraderDecorations
- thumb_func_end sub_81099CC
-
- thumb_func_start sub_8109A20
-sub_8109A20: @ 8109A20
- ldr r0, _08109A2C
- adds r0, 0x31
- movs r1, 0
- strb r1, [r0]
- bx lr
- .align 2, 0
-_08109A2C: .4byte gSaveBlock1 + 0x2D94
- thumb_func_end sub_8109A20
-
- thumb_func_start sub_8109A30
-sub_8109A30: @ 8109A30
- push {lr}
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08109A44
- bl VarSet
- pop {r0}
- bx r0
- .align 2, 0
-_08109A44: .4byte 0x00004020
- thumb_func_end sub_8109A30
-
- thumb_func_start sub_8109A48
-sub_8109A48: @ 8109A48
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r6, 0x1
- movs r5, 0
- ldr r0, _08109AB8
- movs r4, 0
- adds r7, r0, 0x1
- adds r1, r7, 0
-_08109A64:
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08109A72
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_08109A72:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08109A64
- lsls r3, r6, 25
- movs r0, 0x80
- lsls r0, 18
- adds r3, r0
- lsrs r3, 24
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xC
- bl MenuDrawTextWindow
- movs r4, 0
- mov r1, r9
- lsls r1, 2
- mov r8, r1
-_08109A98:
- adds r1, r7, r4
- ldrb r0, [r1]
- cmp r0, 0
- beq _08109ADE
- cmp r0, 0x78
- bls _08109AC0
- lsls r2, r5, 25
- movs r0, 0x80
- lsls r0, 18
- adds r2, r0
- lsrs r2, 24
- ldr r0, _08109ABC
- movs r1, 0x1
- bl MenuPrint
- b _08109AD8
- .align 2, 0
-_08109AB8: .4byte gSaveBlock1 + 0x2D94
-_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash
-_08109AC0:
- ldrb r0, [r1]
- lsls r0, 5
- ldr r1, _08109B28
- adds r0, r1
- lsls r2, r5, 25
- movs r1, 0x80
- lsls r1, 18
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
-_08109AD8:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_08109ADE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08109A98
- ldr r0, _08109B2C
- lsls r2, r5, 25
- movs r1, 0x80
- lsls r1, 18
- adds r2, r1
- lsrs r2, 24
- movs r1, 0x1
- bl MenuPrint
- movs r0, 0
- str r0, [sp]
- movs r0, 0xB
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- adds r3, r6, 0
- bl InitMenu
- ldr r1, _08109B30
- mov r0, r8
- add r0, r9
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xA]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08109B28: .4byte gDecorations + 0x1
-_08109B2C: .4byte gOtherText_CancelNoTerminator
-_08109B30: .4byte gTasks
- thumb_func_end sub_8109A48
-
- thumb_func_start sub_8109B34
-sub_8109B34: @ 8109B34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x78
- bls _08109B54
- ldr r1, _08109B4C
- ldr r2, _08109B50
- adds r0, r2, 0
- strh r0, [r1]
- b _08109B58
- .align 2, 0
-_08109B4C: .4byte gUnknown_0202E8CC
-_08109B50: .4byte 0x0000ffff
-_08109B54:
- ldr r0, _08109B78
- strh r1, [r0]
-_08109B58:
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xC
- movs r3, 0xC
- bl MenuZeroFillWindowRect
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109B78: .4byte gUnknown_0202E8CC
- thumb_func_end sub_8109B34
-
- thumb_func_start sub_8109B7C
-sub_8109B7C: @ 8109B7C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r6, _08109BA4
- ldr r0, _08109BA8
- ldrh r1, [r0, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08109BAC
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl MoveMenuCursor
- b _08109C3E
- .align 2, 0
-_08109BA4: .4byte gSaveBlock1 + 0x2D94
-_08109BA8: .4byte gMain
-_08109BAC:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08109BC2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl MoveMenuCursor
- b _08109C3E
-_08109BC2:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08109C28
- movs r0, 0x5
- bl PlaySE
- ldr r5, _08109BFC
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5]
- ldr r1, _08109C00
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- ldrh r2, [r5]
- cmp r0, r2
- bne _08109C04
- adds r0, r4, 0
- movs r1, 0
- bl sub_8109B34
- b _08109C3E
- .align 2, 0
-_08109BFC: .4byte gUnknown_0202E8CE
-_08109C00: .4byte gTasks
-_08109C04:
- ldr r0, _08109C24
- movs r1, 0xB
- muls r1, r2
- adds r1, 0x5
- adds r1, r6
- bl StringCopy
- adds r0, r6, 0x1
- ldrh r5, [r5]
- adds r0, r5
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_8109B34
- b _08109C3E
- .align 2, 0
-_08109C24: .4byte gStringVar1
-_08109C28:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08109C3E
- movs r0, 0x5
- bl PlaySE
- adds r0, r5, 0
- movs r1, 0
- bl sub_8109B34
-_08109C3E:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8109B7C
-
- thumb_func_start sub_8109C44
-sub_8109C44: @ 8109C44
- ldr r0, _08109C50
- ldr r1, _08109C54
- adds r0, 0x31
- ldrb r0, [r0]
- strh r0, [r1]
- bx lr
- .align 2, 0
-_08109C50: .4byte gSaveBlock1 + 0x2D94
-_08109C54: .4byte gScriptResult
- thumb_func_end sub_8109C44
-
- thumb_func_start sub_8109C58
-sub_8109C58: @ 8109C58
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, _08109C70
-_08109C5E:
- adds r0, r4, 0
- bl sub_8134194
- lsls r0, 24
- cmp r0, 0
- beq _08109C74
- movs r0, 0
- strh r0, [r5]
- b _08109C84
- .align 2, 0
-_08109C70: .4byte gScriptResult
-_08109C74:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x7
- bls _08109C5E
- ldr r1, _08109C8C
- movs r0, 0x1
- strh r0, [r1]
-_08109C84:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08109C8C: .4byte gScriptResult
- thumb_func_end sub_8109C58
-
- thumb_func_start sub_8109C90
-sub_8109C90: @ 8109C90
- push {r4-r6,lr}
- ldr r6, _08109CDC
- movs r0, 0
- strh r0, [r6]
- ldr r4, _08109CE0
- ldr r5, _08109CE4
- ldrh r0, [r5]
- lsls r0, 5
- adds r2, r0, r4
- ldr r0, _08109CE8
- ldrh r0, [r0]
- lsls r0, 5
- adds r0, r4
- ldrb r1, [r2, 0x13]
- ldrb r0, [r0, 0x13]
- cmp r1, r0
- beq _08109CD6
- adds r0, r1, 0
- bl sub_8133F9C
- lsls r0, 24
- asrs r0, 24
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- bne _08109CD6
- ldr r0, _08109CEC
- ldrh r1, [r5]
- lsls r1, 5
- adds r1, r4
- ldrb r1, [r1, 0x13]
- bl sub_80FE7D4
- movs r0, 0x1
- strh r0, [r6]
-_08109CD6:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109CDC: .4byte gScriptResult
-_08109CE0: .4byte gDecorations
-_08109CE4: .4byte gUnknown_0202E8CC
-_08109CE8: .4byte gUnknown_0202E8D0
-_08109CEC: .4byte gStringVar2
- thumb_func_end sub_8109C90
-
- thumb_func_start sub_8109CF0
-sub_8109CF0: @ 8109CF0
- push {lr}
- ldr r0, _08109D00
- movs r1, 0
- bl CreateTask
- pop {r0}
- bx r0
- .align 2, 0
-_08109D00: .4byte sub_80FE7A8
- thumb_func_end sub_8109CF0
-
- thumb_func_start sub_8109D04
-sub_8109D04: @ 8109D04
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- movs r0, 0
- bl SetBgTilemapBuffer
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r0, _08109D6C
- movs r1, 0x8
- bl sub_80F9520
- bl BuyMenuFreeMemory
- bl sub_80FEFA4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08109D8C
- ldr r5, _08109D70
- ldr r0, _08109D74
- ldrb r1, [r0]
- ldr r0, _08109D78
- ldr r0, [r0]
- adds r0, r1
- ldrb r0, [r0]
- strh r0, [r5]
- ldr r0, _08109D7C
- ldr r1, _08109D80
- ldrh r1, [r1]
- lsls r1, 5
- ldr r4, _08109D84
- adds r1, r4
- bl StringCopy
- ldr r0, _08109D88
- ldrh r1, [r5]
- lsls r1, 5
- adds r1, r4
- bl StringCopy
- b _08109D94
- .align 2, 0
-_08109D6C: .4byte gUnknown_020388F7
-_08109D70: .4byte gUnknown_0202E8D0
-_08109D74: .4byte gUnknown_020388F5
-_08109D78: .4byte gUnknown_020388D0
-_08109D7C: .4byte gStringVar3
-_08109D80: .4byte gUnknown_0202E8CC
-_08109D84: .4byte gDecorations + 0x1
-_08109D88: .4byte gStringVar2
-_08109D8C:
- ldr r1, _08109DA4
- ldr r2, _08109DA8
- adds r0, r2, 0
- strh r0, [r1]
-_08109D94:
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109DA4: .4byte gUnknown_0202E8D0
-_08109DA8: .4byte 0x0000ffff
- thumb_func_end sub_8109D04
-
- thumb_func_start sub_8109DAC
-sub_8109DAC: @ 8109DAC
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8072DEC
- movs r0, 0
- movs r1, 0
- movs r2, 0x1D
- movs r3, 0x13
- bl MenuZeroFillWindowRect
- ldr r1, _08109DDC
- movs r0, 0
- strh r0, [r1]
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08109DDC: .4byte gUnknown_0202E8D0
- thumb_func_end sub_8109DAC
-
- thumb_func_start sub_8109DE0
-sub_8109DE0: @ 8109DE0
- push {r4-r6,lr}
- ldr r4, _08109E20
- ldr r6, _08109E24
- ldrb r0, [r6]
- bl sub_81340A8
- ldr r0, _08109E28
- ldrb r0, [r0]
- bl IsThereStorageSpaceForDecoration
- ldr r5, _08109E2C
- ldrh r1, [r5]
- movs r0, 0xB
- muls r0, r1
- adds r0, 0x5
- adds r0, r4
- ldr r1, _08109E30
- bl StringCopy
- adds r0, r4, 0x1
- ldrh r5, [r5]
- adds r0, r5
- ldrh r1, [r6]
- strb r1, [r0]
- bl sub_810993C
- adds r4, 0x31
- movs r0, 0x1
- strb r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08109E20: .4byte gSaveBlock1 + 0x2D94
-_08109E24: .4byte gUnknown_0202E8D0
-_08109E28: .4byte gUnknown_0202E8CC
-_08109E2C: .4byte gUnknown_0202E8CE
-_08109E30: .4byte gSaveBlock2
- thumb_func_end sub_8109DE0
-
- thumb_func_start sub_8109E34
-sub_8109E34: @ 8109E34
- push {lr}
- ldr r0, _08109E4C
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- bl sub_8109A48
- pop {r0}
- bx r0
- .align 2, 0
-_08109E4C: .4byte sub_8109B7C
- thumb_func_end sub_8109E34
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/trader.s b/asm/trader.s
new file mode 100644
index 000000000..784bd6071
--- /dev/null
+++ b/asm/trader.s
@@ -0,0 +1,656 @@
+ .include "constants/gba_constants.s"
+ .include "constants/species_constants.s"
+ .include "asm/macros.s"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_810993C
+sub_810993C: @ 810993C
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ ldr r0, _081099C8
+ mov r9, r0
+ movs r2, 0
+_0810994E:
+ adds r1, r2, 0x1
+ lsls r0, r1, 24
+ lsrs r5, r0, 24
+ str r1, [sp, 0xC]
+ cmp r5, 0x3
+ bhi _081099AC
+ movs r1, 0x1
+ add r1, r9
+ mov r8, r1
+ adds r6, r1, r2
+ movs r0, 0xB
+ mov r10, r0
+ mov r0, r10
+ muls r0, r2
+ adds r0, 0x5
+ mov r1, r9
+ adds r7, r1, r0
+_08109970:
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _081099A2
+ adds r2, r0, 0
+ mov r0, r8
+ adds r1, r0, r5
+ ldrb r0, [r1]
+ strb r0, [r6]
+ strb r2, [r1]
+ mov r0, sp
+ adds r1, r7, 0
+ bl StringCopy
+ mov r4, r10
+ muls r4, r5
+ adds r4, 0x5
+ add r4, r9
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl StringCopy
+ adds r0, r4, 0
+ mov r1, sp
+ bl StringCopy
+_081099A2:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+ cmp r5, 0x3
+ bls _08109970
+_081099AC:
+ ldr r1, [sp, 0xC]
+ lsls r0, r1, 24
+ lsrs r2, r0, 24
+ cmp r2, 0x2
+ bls _0810994E
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_081099C8: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_810993C
+
+ thumb_func_start sub_81099CC
+sub_81099CC: @ 81099CC
+ push {r4-r6,lr}
+ ldr r5, _08109A14
+ movs r1, 0
+ movs r0, 0x2
+ strb r0, [r5]
+ adds r0, r5, 0
+ adds r0, 0x31
+ strb r1, [r0]
+ movs r4, 0
+ ldr r6, _08109A18
+_081099E0:
+ movs r0, 0xB
+ muls r0, r4
+ adds r0, 0x5
+ adds r0, r5, r0
+ lsls r1, r4, 2
+ adds r1, r6
+ ldr r1, [r1]
+ bl StringCopy
+ adds r1, r5, 0x1
+ adds r1, r4
+ ldr r0, _08109A1C
+ adds r0, r4, r0
+ ldrb r0, [r0]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _081099E0
+ bl sub_810993C
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109A14: .4byte gSaveBlock1 + 0x2D94
+_08109A18: .4byte gUnknown_083F62D8
+_08109A1C: .4byte gTraderDecorations
+ thumb_func_end sub_81099CC
+
+ thumb_func_start sub_8109A20
+sub_8109A20: @ 8109A20
+ ldr r0, _08109A2C
+ adds r0, 0x31
+ movs r1, 0
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_08109A2C: .4byte gSaveBlock1 + 0x2D94
+ thumb_func_end sub_8109A20
+
+ thumb_func_start sub_8109A30
+sub_8109A30: @ 8109A30
+ push {lr}
+ adds r1, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, _08109A44
+ bl VarSet
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109A44: .4byte 0x00004020
+ thumb_func_end sub_8109A30
+
+ thumb_func_start sub_8109A48
+sub_8109A48: @ 8109A48
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ movs r6, 0x1
+ movs r5, 0
+ ldr r0, _08109AB8
+ movs r4, 0
+ adds r7, r0, 0x1
+ adds r1, r7, 0
+_08109A64:
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08109A72
+ adds r0, r6, 0x1
+ lsls r0, 24
+ lsrs r6, r0, 24
+_08109A72:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08109A64
+ lsls r3, r6, 25
+ movs r0, 0x80
+ lsls r0, 18
+ adds r3, r0
+ lsrs r3, 24
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xC
+ bl MenuDrawTextWindow
+ movs r4, 0
+ mov r1, r9
+ lsls r1, 2
+ mov r8, r1
+_08109A98:
+ adds r1, r7, r4
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08109ADE
+ cmp r0, 0x78
+ bls _08109AC0
+ lsls r2, r5, 25
+ movs r0, 0x80
+ lsls r0, 18
+ adds r2, r0
+ lsrs r2, 24
+ ldr r0, _08109ABC
+ movs r1, 0x1
+ bl MenuPrint
+ b _08109AD8
+ .align 2, 0
+_08109AB8: .4byte gSaveBlock1 + 0x2D94
+_08109ABC: .4byte gOtherText_FiveQuestionsAndSlash
+_08109AC0:
+ ldrb r0, [r1]
+ lsls r0, 5
+ ldr r1, _08109B28
+ adds r0, r1
+ lsls r2, r5, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+_08109AD8:
+ adds r0, r5, 0x1
+ lsls r0, 24
+ lsrs r5, r0, 24
+_08109ADE:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x3
+ bls _08109A98
+ ldr r0, _08109B2C
+ lsls r2, r5, 25
+ movs r1, 0x80
+ lsls r1, 18
+ adds r2, r1
+ lsrs r2, 24
+ movs r1, 0x1
+ bl MenuPrint
+ movs r0, 0
+ str r0, [sp]
+ movs r0, 0xB
+ str r0, [sp, 0x4]
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0x2
+ adds r3, r6, 0
+ bl InitMenu
+ ldr r1, _08109B30
+ mov r0, r8
+ add r0, r9
+ lsls r0, 3
+ adds r0, r1
+ strh r5, [r0, 0xA]
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109B28: .4byte gDecorations + 0x1
+_08109B2C: .4byte gOtherText_CancelNoTerminator
+_08109B30: .4byte gTasks
+ thumb_func_end sub_8109A48
+
+ thumb_func_start sub_8109B34
+sub_8109B34: @ 8109B34
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ cmp r1, 0x78
+ bls _08109B54
+ ldr r1, _08109B4C
+ ldr r2, _08109B50
+ adds r0, r2, 0
+ strh r0, [r1]
+ b _08109B58
+ .align 2, 0
+_08109B4C: .4byte gUnknown_0202E8CC
+_08109B50: .4byte 0x0000ffff
+_08109B54:
+ ldr r0, _08109B78
+ strh r1, [r0]
+_08109B58:
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0x1
+ movs r2, 0xC
+ movs r3, 0xC
+ bl MenuZeroFillWindowRect
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109B78: .4byte gUnknown_0202E8CC
+ thumb_func_end sub_8109B34
+
+ thumb_func_start sub_8109B7C
+sub_8109B7C: @ 8109B7C
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ adds r5, r4, 0
+ ldr r6, _08109BA4
+ ldr r0, _08109BA8
+ ldrh r1, [r0, 0x2E]
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _08109BAC
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ negs r0, r0
+ bl MoveMenuCursor
+ b _08109C3E
+ .align 2, 0
+_08109BA4: .4byte gSaveBlock1 + 0x2D94
+_08109BA8: .4byte gMain
+_08109BAC:
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08109BC2
+ movs r0, 0x5
+ bl PlaySE
+ movs r0, 0x1
+ bl MoveMenuCursor
+ b _08109C3E
+_08109BC2:
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08109C28
+ movs r0, 0x5
+ bl PlaySE
+ ldr r5, _08109BFC
+ bl GetMenuCursorPos
+ lsls r0, 24
+ lsrs r0, 24
+ strh r0, [r5]
+ ldr r1, _08109C00
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 3
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ ldrh r2, [r5]
+ cmp r0, r2
+ bne _08109C04
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8109B34
+ b _08109C3E
+ .align 2, 0
+_08109BFC: .4byte gUnknown_0202E8CE
+_08109C00: .4byte gTasks
+_08109C04:
+ ldr r0, _08109C24
+ movs r1, 0xB
+ muls r1, r2
+ adds r1, 0x5
+ adds r1, r6
+ bl StringCopy
+ adds r0, r6, 0x1
+ ldrh r5, [r5]
+ adds r0, r5
+ ldrb r1, [r0]
+ adds r0, r4, 0
+ bl sub_8109B34
+ b _08109C3E
+ .align 2, 0
+_08109C24: .4byte gStringVar1
+_08109C28:
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08109C3E
+ movs r0, 0x5
+ bl PlaySE
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8109B34
+_08109C3E:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8109B7C
+
+ thumb_func_start sub_8109C44
+sub_8109C44: @ 8109C44
+ ldr r0, _08109C50
+ ldr r1, _08109C54
+ adds r0, 0x31
+ ldrb r0, [r0]
+ strh r0, [r1]
+ bx lr
+ .align 2, 0
+_08109C50: .4byte gSaveBlock1 + 0x2D94
+_08109C54: .4byte gScriptResult
+ thumb_func_end sub_8109C44
+
+ thumb_func_start sub_8109C58
+sub_8109C58: @ 8109C58
+ push {r4,r5,lr}
+ movs r4, 0
+ ldr r5, _08109C70
+_08109C5E:
+ adds r0, r4, 0
+ bl sub_8134194
+ lsls r0, 24
+ cmp r0, 0
+ beq _08109C74
+ movs r0, 0
+ strh r0, [r5]
+ b _08109C84
+ .align 2, 0
+_08109C70: .4byte gScriptResult
+_08109C74:
+ adds r0, r4, 0x1
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0x7
+ bls _08109C5E
+ ldr r1, _08109C8C
+ movs r0, 0x1
+ strh r0, [r1]
+_08109C84:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109C8C: .4byte gScriptResult
+ thumb_func_end sub_8109C58
+
+ thumb_func_start sub_8109C90
+sub_8109C90: @ 8109C90
+ push {r4-r6,lr}
+ ldr r6, _08109CDC
+ movs r0, 0
+ strh r0, [r6]
+ ldr r4, _08109CE0
+ ldr r5, _08109CE4
+ ldrh r0, [r5]
+ lsls r0, 5
+ adds r2, r0, r4
+ ldr r0, _08109CE8
+ ldrh r0, [r0]
+ lsls r0, 5
+ adds r0, r4
+ ldrb r1, [r2, 0x13]
+ ldrb r0, [r0, 0x13]
+ cmp r1, r0
+ beq _08109CD6
+ adds r0, r1, 0
+ bl sub_8133F9C
+ lsls r0, 24
+ asrs r0, 24
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ bne _08109CD6
+ ldr r0, _08109CEC
+ ldrh r1, [r5]
+ lsls r1, 5
+ adds r1, r4
+ ldrb r1, [r1, 0x13]
+ bl sub_80FE7D4
+ movs r0, 0x1
+ strh r0, [r6]
+_08109CD6:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109CDC: .4byte gScriptResult
+_08109CE0: .4byte gDecorations
+_08109CE4: .4byte gUnknown_0202E8CC
+_08109CE8: .4byte gUnknown_0202E8D0
+_08109CEC: .4byte gStringVar2
+ thumb_func_end sub_8109C90
+
+ thumb_func_start sub_8109CF0
+sub_8109CF0: @ 8109CF0
+ push {lr}
+ ldr r0, _08109D00
+ movs r1, 0
+ bl CreateTask
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109D00: .4byte sub_80FE7A8
+ thumb_func_end sub_8109CF0
+
+ thumb_func_start sub_8109D04
+sub_8109D04: @ 8109D04
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ movs r0, 0
+ bl SetBgTilemapBuffer
+ movs r0, 0x1
+ bl SetBgTilemapBuffer
+ ldr r0, _08109D6C
+ movs r1, 0x8
+ bl sub_80F9520
+ bl BuyMenuFreeMemory
+ bl sub_80FEFA4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _08109D8C
+ ldr r5, _08109D70
+ ldr r0, _08109D74
+ ldrb r1, [r0]
+ ldr r0, _08109D78
+ ldr r0, [r0]
+ adds r0, r1
+ ldrb r0, [r0]
+ strh r0, [r5]
+ ldr r0, _08109D7C
+ ldr r1, _08109D80
+ ldrh r1, [r1]
+ lsls r1, 5
+ ldr r4, _08109D84
+ adds r1, r4
+ bl StringCopy
+ ldr r0, _08109D88
+ ldrh r1, [r5]
+ lsls r1, 5
+ adds r1, r4
+ bl StringCopy
+ b _08109D94
+ .align 2, 0
+_08109D6C: .4byte gUnknown_020388F7
+_08109D70: .4byte gUnknown_0202E8D0
+_08109D74: .4byte gUnknown_020388F5
+_08109D78: .4byte gUnknown_020388D0
+_08109D7C: .4byte gStringVar3
+_08109D80: .4byte gUnknown_0202E8CC
+_08109D84: .4byte gDecorations + 0x1
+_08109D88: .4byte gStringVar2
+_08109D8C:
+ ldr r1, _08109DA4
+ ldr r2, _08109DA8
+ adds r0, r2, 0
+ strh r0, [r1]
+_08109D94:
+ adds r0, r6, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109DA4: .4byte gUnknown_0202E8D0
+_08109DA8: .4byte 0x0000ffff
+ thumb_func_end sub_8109D04
+
+ thumb_func_start sub_8109DAC
+sub_8109DAC: @ 8109DAC
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8072DEC
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x1D
+ movs r3, 0x13
+ bl MenuZeroFillWindowRect
+ ldr r1, _08109DDC
+ movs r0, 0
+ strh r0, [r1]
+ adds r0, r4, 0
+ bl DestroyTask
+ bl EnableBothScriptContexts
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109DDC: .4byte gUnknown_0202E8D0
+ thumb_func_end sub_8109DAC
+
+ thumb_func_start sub_8109DE0
+sub_8109DE0: @ 8109DE0
+ push {r4-r6,lr}
+ ldr r4, _08109E20
+ ldr r6, _08109E24
+ ldrb r0, [r6]
+ bl sub_81340A8
+ ldr r0, _08109E28
+ ldrb r0, [r0]
+ bl IsThereStorageSpaceForDecoration
+ ldr r5, _08109E2C
+ ldrh r1, [r5]
+ movs r0, 0xB
+ muls r0, r1
+ adds r0, 0x5
+ adds r0, r4
+ ldr r1, _08109E30
+ bl StringCopy
+ adds r0, r4, 0x1
+ ldrh r5, [r5]
+ adds r0, r5
+ ldrh r1, [r6]
+ strb r1, [r0]
+ bl sub_810993C
+ adds r4, 0x31
+ movs r0, 0x1
+ strb r0, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109E20: .4byte gSaveBlock1 + 0x2D94
+_08109E24: .4byte gUnknown_0202E8D0
+_08109E28: .4byte gUnknown_0202E8CC
+_08109E2C: .4byte gUnknown_0202E8CE
+_08109E30: .4byte gSaveBlock2
+ thumb_func_end sub_8109DE0
+
+ thumb_func_start sub_8109E34
+sub_8109E34: @ 8109E34
+ push {lr}
+ ldr r0, _08109E4C
+ movs r1, 0
+ bl CreateTask
+ lsls r0, 24
+ lsrs r0, 24
+ bl sub_8109A48
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08109E4C: .4byte sub_8109B7C
+ thumb_func_end sub_8109E34
+
+ .align 2, 0 @ Don't pad with nop.
diff --git a/ld_script.txt b/ld_script.txt
index ff60b837e..12566bb29 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -88,6 +88,8 @@ SECTIONS {
asm/rom5_part2.o(.text);
asm/berry.o(.text);
asm/rom_80B5054.o(.text);
+ asm/battle_ai.o(.text);
+ asm/trader.o(.text);
src/starter_choose.o(.text);
src/wallclock.o(.text);
asm/rom6.o(.text);