diff options
Diffstat (limited to 'asm/battle_ai.s')
-rw-r--r-- | asm/battle_ai.s | 5506 |
1 files changed, 5506 insertions, 0 deletions
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. |