.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_80C6D0C sub_80C6D0C: @ 80C6D0C push {r4-r7,lr} ldr r1, _080C6D8C @ =gUnknown_2023FF4 ldr r0, [r1] ldr r3, [r0, 0x18] movs r4, 0 adds r7, r1, 0 ldr r2, _080C6D90 @ =gUnknown_2022B4C movs r1, 0 _080C6D1C: adds r0, r3, r4 strb r1, [r0] adds r4, 0x1 cmp r4, 0x2F bls _080C6D1C ldr r3, [r2] movs r0, 0x8 ands r0, r3 cmp r0, 0 beq _080C6D80 ldr r0, _080C6D94 @ =gUnknown_20386AE ldrh r2, [r0] movs r1, 0x80 lsls r1, 3 adds r6, r0, 0 cmp r2, r1 beq _080C6D80 ldr r0, _080C6D98 @ =0x00080982 ands r3, r0 cmp r3, 0 bne _080C6D80 movs r4, 0 ldr r5, _080C6D9C @ =gUnknown_823EAD8 _080C6D4A: lsls r2, r4, 1 ldrh r1, [r6] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, r0 adds r2, r5 ldrh r3, [r2] cmp r3, 0 beq _080C6D7A ldr r2, [r7] ldr r1, [r2, 0x18] adds r0, r1, 0 adds r0, 0x2C ldrb r0, [r0] lsls r0, 1 adds r1, 0x24 adds r1, r0 strh r3, [r1] ldr r1, [r2, 0x18] adds r1, 0x2C ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080C6D7A: adds r4, 0x1 cmp r4, 0x3 ble _080C6D4A _080C6D80: bl sub_80C6DA0 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6D8C: .4byte gUnknown_2023FF4 _080C6D90: .4byte gUnknown_2022B4C _080C6D94: .4byte gUnknown_20386AE _080C6D98: .4byte 0x00080982 _080C6D9C: .4byte gUnknown_823EAD8 thumb_func_end sub_80C6D0C thumb_func_start sub_80C6DA0 sub_80C6DA0: @ 80C6DA0 push {r4-r7,lr} ldr r0, _080C6E60 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r4, 0 ldr r3, _080C6E64 @ =gUnknown_2023BC4 movs r2, 0 _080C6DAE: adds r0, r1, r4 strb r2, [r0] adds r4, 0x1 cmp r4, 0x1B bls _080C6DAE movs r4, 0 ldr r2, _080C6E60 @ =gUnknown_2023FF4 movs r1, 0x64 _080C6DBE: ldr r0, [r2] ldr r0, [r0, 0x14] adds r0, 0x4 adds r0, r4 strb r1, [r0] adds r4, 0x1 cmp r4, 0x3 ble _080C6DBE ldrb r0, [r3] movs r1, 0 movs r2, 0xFF bl sub_801779C lsls r0, 24 lsrs r6, r0, 24 movs r4, 0 ldr r5, _080C6E60 @ =gUnknown_2023FF4 _080C6DE0: ldr r7, _080C6E68 @ =gUnknown_825E45C lsls r0, r4, 2 adds r0, r7 ldr r0, [r0] ands r0, r6 cmp r0, 0 beq _080C6DFA ldr r0, [r5] ldr r0, [r0, 0x14] adds r0, 0x4 adds r0, r4 movs r1, 0 strb r1, [r0] _080C6DFA: bl Random ldr r1, [r5] ldr r2, [r1, 0x14] adds r2, 0x18 adds r2, r4 lsls r0, 16 lsrs r0, 16 movs r1, 0xF ands r0, r1 movs r1, 0x64 subs r1, r0 strb r1, [r2] adds r4, 0x1 cmp r4, 0x3 ble _080C6DE0 ldr r0, _080C6E60 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x1C] adds r0, 0x20 movs r1, 0 strb r1, [r0] ldr r1, _080C6E6C @ =gUnknown_2023D6B ldr r0, _080C6E64 @ =gUnknown_2023BC4 ldrb r2, [r0] strb r2, [r1] ldr r0, _080C6E70 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080C6E7C ldr r4, _080C6E74 @ =gUnknown_2023D6C bl Random movs r3, 0x2 ands r0, r3 strb r0, [r4] ldr r0, _080C6E78 @ =gUnknown_2023D70 ldrb r1, [r0] ldrb r2, [r4] lsls r0, r2, 2 adds r0, r7 ldr r0, [r0] ands r1, r0 cmp r1, 0 beq _080C6E84 eors r2, r3 strb r2, [r4] b _080C6E84 .align 2, 0 _080C6E60: .4byte gUnknown_2023FF4 _080C6E64: .4byte gUnknown_2023BC4 _080C6E68: .4byte gUnknown_825E45C _080C6E6C: .4byte gUnknown_2023D6B _080C6E70: .4byte gUnknown_2022B4C _080C6E74: .4byte gUnknown_2023D6C _080C6E78: .4byte gUnknown_2023D70 _080C6E7C: ldr r0, _080C6EA0 @ =gUnknown_2023D6C movs r1, 0x1 eors r1, r2 strb r1, [r0] _080C6E84: ldr r0, _080C6EA4 @ =gUnknown_2022B4C ldr r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C6EAC ldr r0, _080C6EA8 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x80 lsls r0, 23 str r0, [r1, 0xC] b _080C6F34 .align 2, 0 _080C6EA0: .4byte gUnknown_2023D6C _080C6EA4: .4byte gUnknown_2022B4C _080C6EA8: .4byte gUnknown_2023FF4 _080C6EAC: movs r2, 0x80 lsls r2, 3 adds r0, r1, 0 ands r0, r2 cmp r0, 0 beq _080C6ECC ldr r0, _080C6EC8 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x80 lsls r0, 22 str r0, [r1, 0xC] b _080C6F34 .align 2, 0 _080C6EC8: .4byte gUnknown_2023FF4 _080C6ECC: ldr r0, _080C6EF4 @ =0x00080900 ands r0, r1 cmp r0, 0 bne _080C6F0A ldr r4, _080C6EF8 @ =gUnknown_20386AE ldrh r0, [r4] cmp r0, r2 beq _080C6F0A movs r0, 0x80 lsls r0, 10 ands r0, r1 cmp r0, 0 beq _080C6F00 ldr r0, _080C6EFC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x1 str r0, [r1, 0xC] b _080C6F34 .align 2, 0 _080C6EF4: .4byte 0x00080900 _080C6EF8: .4byte gUnknown_20386AE _080C6EFC: .4byte gUnknown_2023FF4 _080C6F00: movs r0, 0x80 lsls r0, 11 ands r1, r0 cmp r1, 0 beq _080C6F1C _080C6F0A: ldr r0, _080C6F18 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x7 str r0, [r1, 0xC] b _080C6F34 .align 2, 0 _080C6F18: .4byte gUnknown_2023FF4 _080C6F1C: ldr r0, _080C6F3C @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C6F40 @ =gUnknown_823EAC8 ldrh r1, [r4] lsls r0, r1, 2 adds r0, r1 lsls r0, 3 adds r2, 0x1C adds r0, r2 ldr r0, [r0] str r0, [r3, 0xC] _080C6F34: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C6F3C: .4byte gUnknown_2023FF4 _080C6F40: .4byte gUnknown_823EAC8 thumb_func_end sub_80C6DA0 thumb_func_start sub_80C6F44 sub_80C6F44: @ 80C6F44 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x8 bl sub_80C7164 ldr r1, _080C6FA8 @ =gUnknown_2023FF4 ldr r0, [r1] ldr r0, [r0, 0x14] ldr r0, [r0, 0xC] cmp r0, 0 beq _080C6F94 adds r4, r1, 0 movs r5, 0 _080C6F60: ldr r0, [r4] ldr r2, [r0, 0x14] ldr r0, [r2, 0xC] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080C6F74 strb r5, [r2] bl sub_80C7038 _080C6F74: ldr r0, [r4] ldr r1, [r0, 0x14] ldr r0, [r1, 0xC] lsrs r0, 1 str r0, [r1, 0xC] ldrb r0, [r1, 0x11] adds r0, 0x1 strb r0, [r1, 0x11] ldr r0, [r4] ldr r0, [r0, 0x14] strb r5, [r0, 0x1] ldr r0, [r4] ldr r0, [r0, 0x14] ldr r0, [r0, 0xC] cmp r0, 0 bne _080C6F60 _080C6F94: ldr r6, _080C6FA8 @ =gUnknown_2023FF4 ldr r0, [r6] ldr r3, [r0, 0x14] ldrb r1, [r3, 0x10] movs r0, 0x2 ands r0, r1 cmp r0, 0 beq _080C6FAC movs r0, 0x4 b _080C702A .align 2, 0 _080C6FA8: .4byte gUnknown_2023FF4 _080C6FAC: movs r0, 0x4 ands r0, r1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080C6FBC movs r0, 0x5 b _080C702A _080C6FBC: movs r5, 0x1 mov r0, sp ldrb r1, [r3, 0x4] strb r1, [r0] add r0, sp, 0x4 strb r2, [r0] movs r3, 0x1 mov r8, r0 mov r4, sp adds r7, r6, 0 mov r6, r8 _080C6FD2: ldrb r1, [r4] ldr r0, [r7] ldr r0, [r0, 0x14] adds r0, 0x4 adds r2, r0, r3 movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bge _080C6FEC movs r5, 0x1 ldrb r0, [r2] strb r0, [r4] strb r3, [r6] _080C6FEC: ldrb r1, [r4] ldr r0, [r7] ldr r0, [r0, 0x14] adds r0, 0x4 adds r2, r0, r3 movs r0, 0 ldrsb r0, [r2, r0] cmp r1, r0 bne _080C7012 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] _080C7012: adds r3, 0x1 cmp r3, 0x3 ble _080C6FD2 bl Random lsls r0, 16 lsrs r0, 16 adds r1, r5, 0 bl __modsi3 add r0, r8 ldrb r0, [r0] _080C702A: add sp, 0x8 pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_80C6F44 thumb_func_start sub_80C7038 sub_80C7038: @ 80C7038 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} ldr r7, _080C70B0 @ =gUnknown_2023FF4 ldr r0, [r7] ldr r0, [r0, 0x14] ldrb r0, [r0] adds r6, r7, 0 cmp r0, 0x2 bne _080C7050 b _080C7156 _080C7050: mov r9, r7 ldr r0, _080C70B4 @ =gUnknown_2039A00 mov r8, r0 _080C7056: mov r1, r9 ldr r0, [r1] ldr r2, [r0, 0x14] ldrb r0, [r2] cmp r0, 0x1 beq _080C70C4 cmp r0, 0x1 bgt _080C714A cmp r0, 0 bne _080C714A ldr r1, _080C70B8 @ =gUnknown_81D9BF4 ldrb r0, [r2, 0x11] lsls r0, 2 adds r0, r1 ldr r0, [r0] mov r1, r8 str r0, [r1] ldr r5, _080C70BC @ =gUnknown_2023BE4 ldrb r4, [r2, 0x1] ldr r0, _080C70C0 @ =gUnknown_2023D6B ldrb r1, [r0] movs r0, 0x58 adds r3, r1, 0 muls r3, r0 adds r0, r4, r3 adds r1, r5, 0 adds r1, 0x24 adds r0, r1 ldrb r0, [r0] cmp r0, 0 beq _080C70A0 lsls r0, r4, 1 adds r0, r3 adds r1, r5, 0 adds r1, 0xC adds r0, r1 ldrh r0, [r0] _080C70A0: strh r0, [r2, 0x2] ldr r0, [r6] ldr r1, [r0, 0x14] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] b _080C714A .align 2, 0 _080C70B0: .4byte gUnknown_2023FF4 _080C70B4: .4byte gUnknown_2039A00 _080C70B8: .4byte gUnknown_81D9BF4 _080C70BC: .4byte gUnknown_2023BE4 _080C70C0: .4byte gUnknown_2023D6B _080C70C4: ldrh r1, [r2, 0x2] cmp r1, 0 beq _080C70E4 ldr r1, _080C70E0 @ =gUnknown_83F55A4 mov r2, r8 ldr r0, [r2] ldrb r0, [r0] lsls r0, 2 adds r0, r1 ldr r0, [r0] bl _call_via_r0 b _080C70FA .align 2, 0 _080C70E0: .4byte gUnknown_83F55A4 _080C70E4: adds r0, r2, 0x4 ldrb r2, [r2, 0x1] adds r0, r2 strb r1, [r0] mov r1, r9 ldr r0, [r1] ldr r2, [r0, 0x14] ldrb r1, [r2, 0x10] movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x10] _080C70FA: ldr r2, _080C7130 @ =gUnknown_2023FF4 ldr r0, [r2] ldr r3, [r0, 0x14] ldrb r1, [r3, 0x10] movs r0, 0x1 ands r0, r1 adds r6, r2, 0 cmp r0, 0 beq _080C714A ldrb r0, [r3, 0x1] adds r0, 0x1 strb r0, [r3, 0x1] ldr r0, [r6] ldr r2, [r0, 0x14] ldrb r0, [r2, 0x1] cmp r0, 0x3 bhi _080C7134 ldrb r1, [r2, 0x10] movs r0, 0x8 ands r0, r1 lsls r0, 24 lsrs r0, 24 cmp r0, 0 bne _080C7134 strb r0, [r2] b _080C713E .align 2, 0 _080C7130: .4byte gUnknown_2023FF4 _080C7134: ldr r0, [r6] ldr r1, [r0, 0x14] ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _080C713E: ldr r0, [r6] ldr r2, [r0, 0x14] ldrb r1, [r2, 0x10] movs r0, 0xFE ands r0, r1 strb r0, [r2, 0x10] _080C714A: ldr r0, [r7] ldr r0, [r0, 0x14] ldrb r0, [r0] cmp r0, 0x2 beq _080C7156 b _080C7056 _080C7156: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C7038 thumb_func_start sub_80C7164 sub_80C7164: @ 80C7164 push {r4-r6,lr} movs r3, 0 ldr r5, _080C7190 @ =gUnknown_2023FF4 ldr r4, _080C7194 @ =gUnknown_2023D6C ldr r6, _080C7198 @ =gUnknown_2023D98 _080C716E: ldr r0, [r5] ldr r2, [r0, 0x18] lsls r1, r3, 1 ldrb r0, [r4] lsrs r0, 1 lsls r0, 4 adds r1, r0 adds r2, r1 ldrh r0, [r2] cmp r0, 0 bne _080C719C ldrb r0, [r4] lsls r0, 1 adds r0, r6 ldrh r0, [r0] strh r0, [r2] b _080C71A2 .align 2, 0 _080C7190: .4byte gUnknown_2023FF4 _080C7194: .4byte gUnknown_2023D6C _080C7198: .4byte gUnknown_2023D98 _080C719C: adds r3, 0x1 cmp r3, 0x7 ble _080C716E _080C71A2: pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_80C7164 thumb_func_start sub_80C71A8 sub_80C71A8: @ 80C71A8 push {r4,lr} lsls r0, 24 ldr r4, _080C71CC @ =gUnknown_2023FF4 lsrs r0, 25 lsls r1, r0, 4 movs r3, 0 movs r2, 0x7 _080C71B6: ldr r0, [r4] ldr r0, [r0, 0x18] adds r0, r1 strh r3, [r0] adds r1, 0x2 subs r2, 0x1 cmp r2, 0 bge _080C71B6 pop {r4} pop {r0} bx r0 .align 2, 0 _080C71CC: .4byte gUnknown_2023FF4 thumb_func_end sub_80C71A8 thumb_func_start sub_80C71D0 sub_80C71D0: @ 80C71D0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080C71FC adds r0, r4, 0 bl GetBankIdentity ldr r1, _080C7204 @ =gUnknown_2023FF4 ldr r1, [r1] ldr r2, [r1, 0x18] movs r1, 0x1 ands r1, r0 adds r2, 0x20 adds r2, r1 strb r5, [r2] _080C71FC: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C7204: .4byte gUnknown_2023FF4 thumb_func_end sub_80C71D0 thumb_func_start sub_80C7208 sub_80C7208: @ 80C7208 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 adds r0, r4, 0 bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080C7234 adds r0, r4, 0 bl GetBankIdentity ldr r1, _080C723C @ =gUnknown_2023FF4 ldr r1, [r1] ldr r2, [r1, 0x18] movs r1, 0x1 ands r1, r0 adds r2, 0x22 adds r2, r1 strb r5, [r2] _080C7234: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _080C723C: .4byte gUnknown_2023FF4 thumb_func_end sub_80C7208 thumb_func_start sub_80C7240 sub_80C7240: @ 80C7240 push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _080C7274 @ =gUnknown_2039A00 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bcs _080C7278 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 _080C727C .align 2, 0 _080C7274: .4byte gUnknown_2039A00 _080C7278: adds r0, r2, 0x6 str r0, [r3] _080C727C: pop {r0} bx r0 thumb_func_end sub_80C7240 thumb_func_start sub_80C7280 sub_80C7280: @ 80C7280 push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _080C72B4 @ =gUnknown_2039A00 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bls _080C72B8 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 _080C72BC .align 2, 0 _080C72B4: .4byte gUnknown_2039A00 _080C72B8: adds r0, r2, 0x6 str r0, [r3] _080C72BC: pop {r0} bx r0 thumb_func_end sub_80C7280 thumb_func_start sub_80C72C0 sub_80C72C0: @ 80C72C0 push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _080C72F4 @ =gUnknown_2039A00 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 bne _080C72F8 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 _080C72FC .align 2, 0 _080C72F4: .4byte gUnknown_2039A00 _080C72F8: adds r0, r2, 0x6 str r0, [r3] _080C72FC: pop {r0} bx r0 thumb_func_end sub_80C72C0 thumb_func_start sub_80C7300 sub_80C7300: @ 80C7300 push {lr} bl Random lsls r0, 16 movs r1, 0xFF lsls r1, 16 ldr r3, _080C7334 @ =gUnknown_2039A00 ldr r2, [r3] ands r1, r0 lsrs r1, 16 ldrb r0, [r2, 0x1] cmp r1, r0 beq _080C7338 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 _080C733C .align 2, 0 _080C7334: .4byte gUnknown_2039A00 _080C7338: adds r0, r2, 0x6 str r0, [r3] _080C733C: pop {r0} bx r0 thumb_func_end sub_80C7300 thumb_func_start BattleAICmd_score BattleAICmd_score: @ 80C7340 push {r4,lr} ldr r2, _080C737C @ =gUnknown_2023FF4 ldr r0, [r2] ldr r0, [r0, 0x14] adds r1, r0, 0x4 ldrb r0, [r0, 0x1] adds r1, r0 ldr r3, _080C7380 @ =gUnknown_2039A00 ldr r0, [r3] ldrb r0, [r0, 0x1] ldrb r4, [r1] adds r0, r4 strb r0, [r1] ldr r0, [r2] ldr r1, [r0, 0x14] adds r0, r1, 0x4 ldrb r1, [r1, 0x1] adds r1, r0, r1 movs r0, 0 ldrsb r0, [r1, r0] cmp r0, 0 bge _080C7370 movs r0, 0 strb r0, [r1] _080C7370: ldr r0, [r3] adds r0, 0x2 str r0, [r3] pop {r4} pop {r0} bx r0 .align 2, 0 _080C737C: .4byte gUnknown_2023FF4 _080C7380: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_score thumb_func_start sub_80C7384 sub_80C7384: @ 80C7384 push {r4,lr} ldr r0, _080C7398 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C73A0 ldr r0, _080C739C @ =gUnknown_2023D6B b _080C73A2 .align 2, 0 _080C7398: .4byte gUnknown_2039A00 _080C739C: .4byte gUnknown_2023D6B _080C73A0: ldr r0, _080C73D8 @ =gUnknown_2023D6C _080C73A2: ldrb r1, [r0] ldr r2, _080C73DC @ =gUnknown_2023BE4 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 _080C73E0 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 _080C73E4 .align 2, 0 _080C73D8: .4byte gUnknown_2023D6C _080C73DC: .4byte gUnknown_2023BE4 _080C73E0: adds r0, r2, 0x7 str r0, [r4] _080C73E4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C7384 thumb_func_start sub_80C73EC sub_80C73EC: @ 80C73EC push {r4,lr} ldr r0, _080C7400 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C7408 ldr r0, _080C7404 @ =gUnknown_2023D6B b _080C740A .align 2, 0 _080C7400: .4byte gUnknown_2039A00 _080C7404: .4byte gUnknown_2023D6B _080C7408: ldr r0, _080C7440 @ =gUnknown_2023D6C _080C740A: ldrb r1, [r0] ldr r2, _080C7444 @ =gUnknown_2023BE4 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 _080C7448 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 _080C744C .align 2, 0 _080C7440: .4byte gUnknown_2023D6C _080C7444: .4byte gUnknown_2023BE4 _080C7448: adds r0, r2, 0x7 str r0, [r4] _080C744C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C73EC thumb_func_start sub_80C7454 sub_80C7454: @ 80C7454 push {r4,lr} ldr r0, _080C7468 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C7470 ldr r0, _080C746C @ =gUnknown_2023D6B b _080C7472 .align 2, 0 _080C7468: .4byte gUnknown_2039A00 _080C746C: .4byte gUnknown_2023D6B _080C7470: ldr r0, _080C74A8 @ =gUnknown_2023D6C _080C7472: ldrb r1, [r0] ldr r2, _080C74AC @ =gUnknown_2023BE4 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 _080C74B0 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 _080C74B4 .align 2, 0 _080C74A8: .4byte gUnknown_2023D6C _080C74AC: .4byte gUnknown_2023BE4 _080C74B0: adds r0, r2, 0x7 str r0, [r4] _080C74B4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C7454 thumb_func_start sub_80C74BC sub_80C74BC: @ 80C74BC push {r4,lr} ldr r0, _080C74D0 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C74D8 ldr r0, _080C74D4 @ =gUnknown_2023D6B b _080C74DA .align 2, 0 _080C74D0: .4byte gUnknown_2039A00 _080C74D4: .4byte gUnknown_2023D6B _080C74D8: ldr r0, _080C7510 @ =gUnknown_2023D6C _080C74DA: ldrb r1, [r0] ldr r2, _080C7514 @ =gUnknown_2023BE4 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 _080C7518 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 _080C751C .align 2, 0 _080C7510: .4byte gUnknown_2023D6C _080C7514: .4byte gUnknown_2023BE4 _080C7518: adds r0, r2, 0x7 str r0, [r4] _080C751C: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C74BC thumb_func_start sub_80C7524 sub_80C7524: @ 80C7524 push {r4,r5,lr} ldr r0, _080C7538 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _080C7540 ldr r0, _080C753C @ =gUnknown_2023D6B b _080C7542 .align 2, 0 _080C7538: .4byte gUnknown_2039A00 _080C753C: .4byte gUnknown_2023D6B _080C7540: ldr r0, _080C7584 @ =gUnknown_2023D6C _080C7542: 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, _080C7588 @ =gUnknown_2023BE4 movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 beq _080C758C 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 _080C7592 .align 2, 0 _080C7584: .4byte gUnknown_2023D6C _080C7588: .4byte gUnknown_2023BE4 _080C758C: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _080C7592: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7524 thumb_func_start sub_80C7598 sub_80C7598: @ 80C7598 push {r4,r5,lr} ldr r0, _080C75AC @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _080C75B4 ldr r0, _080C75B0 @ =gUnknown_2023D6B b _080C75B6 .align 2, 0 _080C75AC: .4byte gUnknown_2039A00 _080C75B0: .4byte gUnknown_2023D6B _080C75B4: ldr r0, _080C75F8 @ =gUnknown_2023D6C _080C75B6: 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, _080C75FC @ =gUnknown_2023BE4 movs r0, 0x58 muls r0, r4 adds r1, 0x4C adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _080C7600 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 _080C7606 .align 2, 0 _080C75F8: .4byte gUnknown_2023D6C _080C75FC: .4byte gUnknown_2023BE4 _080C7600: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _080C7606: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7598 thumb_func_start sub_80C760C sub_80C760C: @ 80C760C push {r4,r5,lr} ldr r0, _080C7620 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _080C7628 ldr r0, _080C7624 @ =gUnknown_2023D6B b _080C762A .align 2, 0 _080C7620: .4byte gUnknown_2039A00 _080C7624: .4byte gUnknown_2023D6B _080C7628: ldr r0, _080C766C @ =gUnknown_2023D6C _080C762A: 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, _080C7670 @ =gUnknown_2023BE4 movs r0, 0x58 muls r0, r4 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 beq _080C7674 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 _080C767A .align 2, 0 _080C766C: .4byte gUnknown_2023D6C _080C7670: .4byte gUnknown_2023BE4 _080C7674: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _080C767A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C760C thumb_func_start sub_80C7680 sub_80C7680: @ 80C7680 push {r4,r5,lr} ldr r0, _080C7694 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _080C769C ldr r0, _080C7698 @ =gUnknown_2023D6B b _080C769E .align 2, 0 _080C7694: .4byte gUnknown_2039A00 _080C7698: .4byte gUnknown_2023D6B _080C769C: ldr r0, _080C76E0 @ =gUnknown_2023D6C _080C769E: 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, _080C76E4 @ =gUnknown_2023BE4 movs r0, 0x58 muls r0, r4 adds r1, 0x50 adds r0, r1 ldr r0, [r0] ands r0, r2 cmp r0, 0 bne _080C76E8 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 _080C76EE .align 2, 0 _080C76E0: .4byte gUnknown_2023D6C _080C76E4: .4byte gUnknown_2023BE4 _080C76E8: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _080C76EE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7680 thumb_func_start sub_80C76F4 sub_80C76F4: @ 80C76F4 push {r4,r5,lr} ldr r0, _080C7708 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _080C7710 ldr r0, _080C770C @ =gUnknown_2023D6B b _080C7712 .align 2, 0 _080C7708: .4byte gUnknown_2039A00 _080C770C: .4byte gUnknown_2023D6B _080C7710: ldr r0, _080C7750 @ =gUnknown_2023D6C _080C7712: 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, _080C7754 @ =gUnknown_2023DFC lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r0, r1 cmp r0, 0 beq _080C7758 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 _080C775E .align 2, 0 _080C7750: .4byte gUnknown_2023D6C _080C7754: .4byte gUnknown_2023DFC _080C7758: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _080C775E: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C76F4 thumb_func_start sub_80C7764 sub_80C7764: @ 80C7764 push {r4,r5,lr} ldr r0, _080C7778 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _080C7780 ldr r0, _080C777C @ =gUnknown_2023D6B b _080C7782 .align 2, 0 _080C7778: .4byte gUnknown_2039A00 _080C777C: .4byte gUnknown_2023D6B _080C7780: ldr r0, _080C77C0 @ =gUnknown_2023D6C _080C7782: 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, _080C77C4 @ =gUnknown_2023DFC lsls r0, r4, 2 adds r0, r2 ldr r0, [r0] ands r0, r1 cmp r0, 0 bne _080C77C8 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 _080C77CE .align 2, 0 _080C77C0: .4byte gUnknown_2023D6C _080C77C4: .4byte gUnknown_2023DFC _080C77C8: adds r0, r3, 0 adds r0, 0xA str r0, [r5] _080C77CE: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7764 thumb_func_start sub_80C77D4 sub_80C77D4: @ 80C77D4 push {r4,lr} ldr r0, _080C77E4 @ =gUnknown_2039A00 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _080C77EC ldr r0, _080C77E8 @ =gUnknown_2023D6B b _080C77EE .align 2, 0 _080C77E4: .4byte gUnknown_2039A00 _080C77E8: .4byte gUnknown_2023D6B _080C77EC: ldr r0, _080C7838 @ =gUnknown_2023D6C _080C77EE: ldrb r0, [r0] bl GetBankIdentity movs r2, 0x1 ands r2, r0 ldr r4, _080C783C @ =gUnknown_2039A00 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, _080C7840 @ =gUnknown_2023DDE lsls r2, 1 adds r2, r0 ldrh r0, [r2] ands r0, r1 cmp r0, 0 beq _080C7844 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 _080C784A .align 2, 0 _080C7838: .4byte gUnknown_2023D6C _080C783C: .4byte gUnknown_2039A00 _080C7840: .4byte gUnknown_2023DDE _080C7844: adds r0, r3, 0 adds r0, 0xA str r0, [r4] _080C784A: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C77D4 thumb_func_start sub_80C7850 sub_80C7850: @ 80C7850 push {r4,lr} ldr r0, _080C7860 @ =gUnknown_2039A00 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _080C7868 ldr r0, _080C7864 @ =gUnknown_2023D6B b _080C786A .align 2, 0 _080C7860: .4byte gUnknown_2039A00 _080C7864: .4byte gUnknown_2023D6B _080C7868: ldr r0, _080C78B4 @ =gUnknown_2023D6C _080C786A: ldrb r0, [r0] bl GetBankIdentity movs r2, 0x1 ands r2, r0 ldr r4, _080C78B8 @ =gUnknown_2039A00 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, _080C78BC @ =gUnknown_2023DDE lsls r2, 1 adds r2, r0 ldrh r0, [r2] ands r0, r1 cmp r0, 0 bne _080C78C0 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 _080C78C6 .align 2, 0 _080C78B4: .4byte gUnknown_2023D6C _080C78B8: .4byte gUnknown_2039A00 _080C78BC: .4byte gUnknown_2023DDE _080C78C0: adds r0, r3, 0 adds r0, 0xA str r0, [r4] _080C78C6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C7850 thumb_func_start sub_80C78CC sub_80C78CC: @ 80C78CC push {lr} ldr r0, _080C78F8 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r3, _080C78FC @ =gUnknown_2039A00 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bcs _080C7900 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 _080C7904 .align 2, 0 _080C78F8: .4byte gUnknown_2023FF4 _080C78FC: .4byte gUnknown_2039A00 _080C7900: adds r0, r2, 0x6 str r0, [r3] _080C7904: pop {r0} bx r0 thumb_func_end sub_80C78CC thumb_func_start sub_80C7908 sub_80C7908: @ 80C7908 push {lr} ldr r0, _080C7934 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r3, _080C7938 @ =gUnknown_2039A00 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bls _080C793C 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 _080C7940 .align 2, 0 _080C7934: .4byte gUnknown_2023FF4 _080C7938: .4byte gUnknown_2039A00 _080C793C: adds r0, r2, 0x6 str r0, [r3] _080C7940: pop {r0} bx r0 thumb_func_end sub_80C7908 thumb_func_start sub_80C7944 sub_80C7944: @ 80C7944 push {lr} ldr r0, _080C7970 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r3, _080C7974 @ =gUnknown_2039A00 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 bne _080C7978 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 _080C797C .align 2, 0 _080C7970: .4byte gUnknown_2023FF4 _080C7974: .4byte gUnknown_2039A00 _080C7978: adds r0, r2, 0x6 str r0, [r3] _080C797C: pop {r0} bx r0 thumb_func_end sub_80C7944 thumb_func_start sub_80C7980 sub_80C7980: @ 80C7980 push {lr} ldr r0, _080C79AC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r3, _080C79B0 @ =gUnknown_2039A00 ldr r2, [r3] ldr r0, [r0, 0x8] ldrb r1, [r2, 0x1] cmp r0, r1 beq _080C79B4 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 _080C79B8 .align 2, 0 _080C79AC: .4byte gUnknown_2023FF4 _080C79B0: .4byte gUnknown_2039A00 _080C79B4: adds r0, r2, 0x6 str r0, [r3] _080C79B8: pop {r0} bx r0 thumb_func_end sub_80C7980 thumb_func_start sub_80C79BC sub_80C79BC: @ 80C79BC push {lr} ldr r3, _080C79FC @ =gUnknown_2039A00 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, _080C7A00 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bcs _080C7A04 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 _080C7A0A .align 2, 0 _080C79FC: .4byte gUnknown_2039A00 _080C7A00: .4byte gUnknown_2023FF4 _080C7A04: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _080C7A0A: pop {r0} bx r0 thumb_func_end sub_80C79BC thumb_func_start sub_80C7A10 sub_80C7A10: @ 80C7A10 push {lr} ldr r3, _080C7A50 @ =gUnknown_2039A00 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, _080C7A54 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bls _080C7A58 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 _080C7A5E .align 2, 0 _080C7A50: .4byte gUnknown_2039A00 _080C7A54: .4byte gUnknown_2023FF4 _080C7A58: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _080C7A5E: pop {r0} bx r0 thumb_func_end sub_80C7A10 thumb_func_start sub_80C7A64 sub_80C7A64: @ 80C7A64 push {lr} ldr r3, _080C7AA4 @ =gUnknown_2039A00 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, _080C7AA8 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 bne _080C7AAC 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 _080C7AB2 .align 2, 0 _080C7AA4: .4byte gUnknown_2039A00 _080C7AA8: .4byte gUnknown_2023FF4 _080C7AAC: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _080C7AB2: pop {r0} bx r0 thumb_func_end sub_80C7A64 thumb_func_start sub_80C7AB8 sub_80C7AB8: @ 80C7AB8 push {lr} ldr r3, _080C7AF8 @ =gUnknown_2039A00 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, _080C7AFC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r0, [r0, 0x8] ldrb r1, [r1] cmp r0, r1 beq _080C7B00 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 _080C7B06 .align 2, 0 _080C7AF8: .4byte gUnknown_2039A00 _080C7AFC: .4byte gUnknown_2023FF4 _080C7B00: adds r0, r2, 0 adds r0, 0x9 str r0, [r3] _080C7B06: pop {r0} bx r0 thumb_func_end sub_80C7AB8 thumb_func_start sub_80C7B0C sub_80C7B0C: @ 80C7B0C push {lr} ldr r3, _080C7B40 @ =gUnknown_2039A00 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _080C7B44 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldrh r0, [r0, 0x2] cmp r0, r1 bne _080C7B48 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 _080C7B4C .align 2, 0 _080C7B40: .4byte gUnknown_2039A00 _080C7B44: .4byte gUnknown_2023FF4 _080C7B48: adds r0, r2, 0x7 str r0, [r3] _080C7B4C: pop {r0} bx r0 thumb_func_end sub_80C7B0C thumb_func_start sub_80C7B50 sub_80C7B50: @ 80C7B50 push {lr} ldr r3, _080C7B84 @ =gUnknown_2039A00 ldr r2, [r3] ldrb r1, [r2, 0x1] ldrb r0, [r2, 0x2] lsls r0, 8 orrs r1, r0 ldr r0, _080C7B88 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldrh r0, [r0, 0x2] cmp r0, r1 beq _080C7B8C 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 _080C7B90 .align 2, 0 _080C7B84: .4byte gUnknown_2039A00 _080C7B88: .4byte gUnknown_2023FF4 _080C7B8C: adds r0, r2, 0x7 str r0, [r3] _080C7B90: pop {r0} bx r0 thumb_func_end sub_80C7B50 thumb_func_start BattleAICmd_if_in_bytes BattleAICmd_if_in_bytes: @ 80C7B94 push {r4,lr} ldr r2, _080C7BE0 @ =gUnknown_2039A00 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 _080C7BF0 ldr r0, _080C7BE4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r1, [r0, 0x8] adds r4, r2, 0 _080C7BBE: ldrb r0, [r3] cmp r1, r0 bne _080C7BE8 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 _080C7BF6 .align 2, 0 _080C7BE0: .4byte gUnknown_2039A00 _080C7BE4: .4byte gUnknown_2023FF4 _080C7BE8: adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _080C7BBE _080C7BF0: ldr r0, [r2] adds r0, 0x9 str r0, [r2] _080C7BF6: pop {r4} pop {r0} bx r0 thumb_func_end BattleAICmd_if_in_bytes thumb_func_start BattleAICmd_if_not_in_bytes BattleAICmd_if_not_in_bytes: @ 80C7BFC push {r4,lr} ldr r2, _080C7C38 @ =gUnknown_2039A00 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 _080C7C48 ldr r0, _080C7C3C @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r2, [r0, 0x8] adds r1, r4, 0 _080C7C28: ldrb r0, [r3] cmp r2, r0 bne _080C7C40 ldr r0, [r1] adds r0, 0x9 str r0, [r1] b _080C7C60 .align 2, 0 _080C7C38: .4byte gUnknown_2039A00 _080C7C3C: .4byte gUnknown_2023FF4 _080C7C40: adds r3, 0x1 ldrb r0, [r3] cmp r0, 0xFF bne _080C7C28 _080C7C48: 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] _080C7C60: pop {r4} pop {r0} bx r0 thumb_func_end BattleAICmd_if_not_in_bytes thumb_func_start BattleAICmd_if_in_hwords BattleAICmd_if_in_hwords: @ 80C7C68 push {r4,r5,lr} ldr r2, _080C7CB4 @ =gUnknown_2039A00 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, _080C7CB8 @ =0x0000ffff cmp r0, r5 beq _080C7CC8 ldr r0, _080C7CBC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r1, [r0, 0x8] adds r4, r2, 0 _080C7C94: ldrh r0, [r3] cmp r1, r0 bne _080C7CC0 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 _080C7CCE .align 2, 0 _080C7CB4: .4byte gUnknown_2039A00 _080C7CB8: .4byte 0x0000ffff _080C7CBC: .4byte gUnknown_2023FF4 _080C7CC0: adds r3, 0x2 ldrh r0, [r3] cmp r0, r5 bne _080C7C94 _080C7CC8: ldr r0, [r2] adds r0, 0x9 str r0, [r2] _080C7CCE: pop {r4,r5} pop {r0} bx r0 thumb_func_end BattleAICmd_if_in_hwords thumb_func_start BattleAICmd_if_not_in_hwords BattleAICmd_if_not_in_hwords: @ 80C7CD4 push {r4,r5,lr} ldr r2, _080C7D10 @ =gUnknown_2039A00 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, _080C7D14 @ =0x0000ffff adds r5, r2, 0 cmp r0, r4 beq _080C7D24 ldr r0, _080C7D18 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r2, [r0, 0x8] adds r1, r5, 0 _080C7D02: ldrh r0, [r3] cmp r2, r0 bne _080C7D1C ldr r0, [r1] adds r0, 0x9 str r0, [r1] b _080C7D3C .align 2, 0 _080C7D10: .4byte gUnknown_2039A00 _080C7D14: .4byte 0x0000ffff _080C7D18: .4byte gUnknown_2023FF4 _080C7D1C: adds r3, 0x2 ldrh r0, [r3] cmp r0, r4 bne _080C7D02 _080C7D24: 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] _080C7D3C: pop {r4,r5} pop {r0} bx r0 thumb_func_end BattleAICmd_if_not_in_hwords thumb_func_start sub_80C7D44 sub_80C7D44: @ 80C7D44 push {r4,r5,lr} movs r3, 0 ldr r4, _080C7D84 @ =gUnknown_2039A00 ldr r1, _080C7D88 @ =gUnknown_2023BE4 ldr r0, _080C7D8C @ =gUnknown_2023D6B ldrb r2, [r0] ldr r5, _080C7D90 @ =gUnknown_8250C04 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _080C7D5A: ldrh r0, [r2] cmp r0, 0 beq _080C7D6E lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080C7D76 _080C7D6E: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080C7D5A _080C7D76: cmp r3, 0x4 bne _080C7D94 ldr r0, [r4] adds r0, 0x5 str r0, [r4] b _080C7DAC .align 2, 0 _080C7D84: .4byte gUnknown_2039A00 _080C7D88: .4byte gUnknown_2023BE4 _080C7D8C: .4byte gUnknown_2023D6B _080C7D90: .4byte gUnknown_8250C04 _080C7D94: 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] _080C7DAC: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7D44 thumb_func_start sub_80C7DB4 sub_80C7DB4: @ 80C7DB4 push {r4,r5,lr} movs r3, 0 ldr r4, _080C7DF4 @ =gUnknown_2039A00 ldr r1, _080C7DF8 @ =gUnknown_2023BE4 ldr r0, _080C7DFC @ =gUnknown_2023D6B ldrb r2, [r0] ldr r5, _080C7E00 @ =gUnknown_8250C04 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 _080C7DCA: ldrh r0, [r2] cmp r0, 0 beq _080C7DDE lsls r1, r0, 1 adds r1, r0 lsls r1, 2 adds r1, r5 ldrb r0, [r1, 0x1] cmp r0, 0 bne _080C7DE6 _080C7DDE: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080C7DCA _080C7DE6: cmp r3, 0x4 beq _080C7E04 ldr r0, [r4] adds r0, 0x5 str r0, [r4] b _080C7E1C .align 2, 0 _080C7DF4: .4byte gUnknown_2039A00 _080C7DF8: .4byte gUnknown_2023BE4 _080C7DFC: .4byte gUnknown_2023D6B _080C7E00: .4byte gUnknown_8250C04 _080C7E04: 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] _080C7E1C: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80C7DB4 thumb_func_start BattleAICmd_get_turn_count BattleAICmd_get_turn_count: @ 80C7E24 ldr r0, _080C7E3C @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] ldr r0, _080C7E40 @ =gUnknown_3004F90 ldrb r0, [r0, 0x13] str r0, [r1, 0x8] ldr r1, _080C7E44 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C7E3C: .4byte gUnknown_2023FF4 _080C7E40: .4byte gUnknown_3004F90 _080C7E44: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_turn_count thumb_func_start BattleAICmd_get_type BattleAICmd_get_type: @ 80C7E48 push {r4,lr} ldr r1, _080C7E60 @ =gUnknown_2039A00 ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x4 bhi _080C7F22 lsls r0, 2 ldr r1, _080C7E64 @ =_080C7E68 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080C7E60: .4byte gUnknown_2039A00 _080C7E64: .4byte _080C7E68 .align 2, 0 _080C7E68: .4byte _080C7EA0 .4byte _080C7E7C .4byte _080C7EE8 .4byte _080C7EC4 .4byte _080C7F0C _080C7E7C: ldr r0, _080C7E94 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C7E98 @ =gUnknown_2023BE4 ldr r0, _080C7E9C @ =gUnknown_2023D6B ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x21 ldrb r0, [r0] b _080C7F20 .align 2, 0 _080C7E94: .4byte gUnknown_2023FF4 _080C7E98: .4byte gUnknown_2023BE4 _080C7E9C: .4byte gUnknown_2023D6B _080C7EA0: ldr r0, _080C7EB8 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C7EBC @ =gUnknown_2023BE4 ldr r0, _080C7EC0 @ =gUnknown_2023D6C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x21 ldrb r0, [r0] b _080C7F20 .align 2, 0 _080C7EB8: .4byte gUnknown_2023FF4 _080C7EBC: .4byte gUnknown_2023BE4 _080C7EC0: .4byte gUnknown_2023D6C _080C7EC4: ldr r0, _080C7EDC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C7EE0 @ =gUnknown_2023BE4 ldr r0, _080C7EE4 @ =gUnknown_2023D6B ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] b _080C7F20 .align 2, 0 _080C7EDC: .4byte gUnknown_2023FF4 _080C7EE0: .4byte gUnknown_2023BE4 _080C7EE4: .4byte gUnknown_2023D6B _080C7EE8: ldr r0, _080C7F00 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C7F04 @ =gUnknown_2023BE4 ldr r0, _080C7F08 @ =gUnknown_2023D6C ldrb r1, [r0] movs r0, 0x58 muls r0, r1 adds r0, r2 adds r0, 0x22 ldrb r0, [r0] b _080C7F20 .align 2, 0 _080C7F00: .4byte gUnknown_2023FF4 _080C7F04: .4byte gUnknown_2023BE4 _080C7F08: .4byte gUnknown_2023D6C _080C7F0C: ldr r0, _080C7F30 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C7F34 @ =gUnknown_8250C04 ldrh r1, [r3, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x2] _080C7F20: str r0, [r3, 0x8] _080C7F22: ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C7F30: .4byte gUnknown_2023FF4 _080C7F34: .4byte gUnknown_8250C04 thumb_func_end BattleAICmd_get_type thumb_func_start BattleAICmd_get_last_used_bank_move_power BattleAICmd_get_last_used_bank_move_power: @ 80C7F38 ldr r0, _080C7F58 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C7F5C @ =gUnknown_8250C04 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, _080C7F60 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C7F58: .4byte gUnknown_2023FF4 _080C7F5C: .4byte gUnknown_8250C04 _080C7F60: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_last_used_bank_move_power thumb_func_start BattleAICmd_is_most_powerful_move BattleAICmd_is_most_powerful_move: @ 80C7F64 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 movs r3, 0 ldr r0, _080C80A4 @ =gUnknown_83F571C ldrh r1, [r0] ldr r5, _080C80A8 @ =0x0000ffff ldr r6, _080C80AC @ =gUnknown_8250C04 ldr r2, _080C80B0 @ =gUnknown_2023FF4 cmp r1, r5 beq _080C7FA2 ldr r0, [r2] ldr r0, [r0, 0x14] ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r4, [r0] ldr r1, _080C80A4 @ =gUnknown_83F571C _080C7F92: ldrh r0, [r1] cmp r4, r0 beq _080C7FA2 adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r5 bne _080C7F92 _080C7FA2: ldr r0, [r2] ldr r0, [r0, 0x14] ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldrb r0, [r0, 0x1] cmp r0, 0x1 bhi _080C7FB8 b _080C8142 _080C7FB8: lsls r0, r3, 1 ldr r1, _080C80A4 @ =gUnknown_83F571C adds r0, r1 ldrh r3, [r0] ldr r0, _080C80A8 @ =0x0000ffff cmp r3, r0 beq _080C7FC8 b _080C8142 _080C7FC8: ldr r0, _080C80B4 @ =gUnknown_2023F50 movs r1, 0 strh r1, [r0] ldr r0, _080C80B8 @ =gUnknown_2023FE8 ldr r0, [r0] strb r1, [r0, 0x13] ldr r0, _080C80BC @ =gUnknown_2023FC4 movs r2, 0x1 strb r2, [r0, 0xE] ldr r0, _080C80C0 @ =gUnknown_2023DCC strb r1, [r0] ldr r0, _080C80C4 @ =gUnknown_2023D71 strb r2, [r0] movs r6, 0 mov r9, r3 ldr r2, _080C80A4 @ =gUnknown_83F571C ldrh r2, [r2] str r2, [sp, 0x10] _080C7FEC: movs r3, 0 ldr r5, _080C80C8 @ =gUnknown_2023BE4 lsls r4, r6, 1 ldr r7, _080C80CC @ =gUnknown_2023D6B lsls r0, r6, 2 mov r8, r0 adds r1, r6, 0x1 mov r10, r1 ldr r2, [sp, 0x10] cmp r2, r9 beq _080C8030 ldr r2, _080C80AC @ =gUnknown_8250C04 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, _080C80A4 @ =gUnknown_83F571C _080C8020: ldrh r0, [r1] cmp r2, r0 beq _080C8030 adds r1, 0x2 adds r3, 0x1 ldrh r0, [r1] cmp r0, r9 bne _080C8020 _080C8030: 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 _080C80DC lsls r0, r3, 1 ldr r2, _080C80A4 @ =gUnknown_83F571C adds r0, r2 ldrh r0, [r0] cmp r0, r9 bne _080C80DC ldr r0, _080C80AC @ =gUnknown_8250C04 ldrh r2, [r1] lsls r1, r2, 1 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x1] cmp r0, 0x1 bls _080C80DC ldr r5, _080C80D0 @ =gUnknown_2023D4A strh r2, [r5] ldrb r0, [r7] ldr r4, _080C80D4 @ =gUnknown_2023D6C ldrb r1, [r4] bl AI_CalcDmg ldrh r0, [r5] ldrb r1, [r7] ldrb r2, [r4] bl TypeCalc mov r4, sp add r4, r8 ldr r2, _080C80D8 @ =gUnknown_2023D50 ldr r0, _080C80B0 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] adds r0, 0x18 adds r0, r6 ldrb r1, [r0] ldr r0, [r2] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _080C80E4 movs r0, 0x1 str r0, [r4] b _080C80E4 .align 2, 0 _080C80A4: .4byte gUnknown_83F571C _080C80A8: .4byte 0x0000ffff _080C80AC: .4byte gUnknown_8250C04 _080C80B0: .4byte gUnknown_2023FF4 _080C80B4: .4byte gUnknown_2023F50 _080C80B8: .4byte gUnknown_2023FE8 _080C80BC: .4byte gUnknown_2023FC4 _080C80C0: .4byte gUnknown_2023DCC _080C80C4: .4byte gUnknown_2023D71 _080C80C8: .4byte gUnknown_2023BE4 _080C80CC: .4byte gUnknown_2023D6B _080C80D0: .4byte gUnknown_2023D4A _080C80D4: .4byte gUnknown_2023D6C _080C80D8: .4byte gUnknown_2023D50 _080C80DC: mov r1, sp add r1, r8 movs r0, 0 str r0, [r1] _080C80E4: mov r6, r10 cmp r6, 0x3 bgt _080C80EC b _080C7FEC _080C80EC: movs r6, 0 ldr r2, _080C8130 @ =gUnknown_2023FF4 ldr r0, [r2] ldr r0, [r0, 0x14] ldrb r0, [r0, 0x1] lsls r0, 2 add r0, sp ldr r1, [sp] ldr r0, [r0] ldr r5, _080C8134 @ =gUnknown_2039A00 cmp r1, r0 bgt _080C8122 adds r4, r2, 0 mov r3, sp _080C8108: adds r3, 0x4 adds r6, 0x1 cmp r6, 0x3 bgt _080C8122 ldr r0, [r4] ldr r0, [r0, 0x14] ldrb r0, [r0, 0x1] lsls r0, 2 add r0, sp ldr r1, [r3] ldr r0, [r0] cmp r1, r0 ble _080C8108 _080C8122: cmp r6, 0x4 bne _080C8138 ldr r0, [r2] ldr r1, [r0, 0x14] movs r0, 0x2 str r0, [r1, 0x8] b _080C814C .align 2, 0 _080C8130: .4byte gUnknown_2023FF4 _080C8134: .4byte gUnknown_2039A00 _080C8138: ldr r0, [r2] ldr r1, [r0, 0x14] movs r0, 0x1 str r0, [r1, 0x8] b _080C814C _080C8142: ldr r0, [r2] ldr r1, [r0, 0x14] movs r0, 0 str r0, [r1, 0x8] ldr r5, _080C8164 @ =gUnknown_2039A00 _080C814C: ldr r0, [r5] adds r0, 0x1 str r0, [r5] 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 _080C8164: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_is_most_powerful_move thumb_func_start BattleAICmd_get_last_used_bank_move BattleAICmd_get_last_used_bank_move: @ 80C8168 push {lr} ldr r0, _080C8184 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r3, r0, 0 cmp r1, 0x1 bne _080C8194 ldr r0, _080C8188 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r1, _080C818C @ =gUnknown_2023D98 ldr r0, _080C8190 @ =gUnknown_2023D6B b _080C819E .align 2, 0 _080C8184: .4byte gUnknown_2039A00 _080C8188: .4byte gUnknown_2023FF4 _080C818C: .4byte gUnknown_2023D98 _080C8190: .4byte gUnknown_2023D6B _080C8194: ldr r0, _080C81B4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r1, _080C81B8 @ =gUnknown_2023D98 ldr r0, _080C81BC @ =gUnknown_2023D6C _080C819E: 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 _080C81B4: .4byte gUnknown_2023FF4 _080C81B8: .4byte gUnknown_2023D98 _080C81BC: .4byte gUnknown_2023D6C thumb_func_end BattleAICmd_get_last_used_bank_move thumb_func_start sub_80C81C0 sub_80C81C0: @ 80C81C0 push {lr} ldr r3, _080C81EC @ =gUnknown_2039A00 ldr r2, [r3] ldrb r1, [r2, 0x1] ldr r0, _080C81F0 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r0, [r0, 0x8] cmp r1, r0 bne _080C81F4 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 _080C81F8 .align 2, 0 _080C81EC: .4byte gUnknown_2039A00 _080C81F0: .4byte gUnknown_2023FF4 _080C81F4: adds r0, r2, 0x6 str r0, [r3] _080C81F8: pop {r0} bx r0 thumb_func_end sub_80C81C0 thumb_func_start sub_80C81FC sub_80C81FC: @ 80C81FC push {lr} ldr r3, _080C8228 @ =gUnknown_2039A00 ldr r2, [r3] ldrb r1, [r2, 0x1] ldr r0, _080C822C @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldr r0, [r0, 0x8] cmp r1, r0 beq _080C8230 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 _080C8234 .align 2, 0 _080C8228: .4byte gUnknown_2039A00 _080C822C: .4byte gUnknown_2023FF4 _080C8230: adds r0, r2, 0x6 str r0, [r3] _080C8234: pop {r0} bx r0 thumb_func_end sub_80C81FC thumb_func_start sub_80C8238 sub_80C8238: @ 80C8238 push {lr} ldr r0, _080C8270 @ =gUnknown_2023D6B ldrb r0, [r0] ldr r1, _080C8274 @ =gUnknown_2023D6C ldrb r1, [r1] movs r2, 0x1 bl GetWhoStrikesFirst ldr r3, _080C8278 @ =gUnknown_2039A00 ldr r2, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0x1] cmp r0, r1 bne _080C827C 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 _080C8280 .align 2, 0 _080C8270: .4byte gUnknown_2023D6B _080C8274: .4byte gUnknown_2023D6C _080C8278: .4byte gUnknown_2039A00 _080C827C: adds r0, r2, 0x6 str r0, [r3] _080C8280: pop {r0} bx r0 thumb_func_end sub_80C8238 thumb_func_start sub_80C8284 sub_80C8284: @ 80C8284 push {lr} ldr r0, _080C82BC @ =gUnknown_2023D6B ldrb r0, [r0] ldr r1, _080C82C0 @ =gUnknown_2023D6C ldrb r1, [r1] movs r2, 0x1 bl GetWhoStrikesFirst ldr r3, _080C82C4 @ =gUnknown_2039A00 ldr r2, [r3] lsls r0, 24 lsrs r0, 24 ldrb r1, [r2, 0x1] cmp r0, r1 beq _080C82C8 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 _080C82CC .align 2, 0 _080C82BC: .4byte gUnknown_2023D6B _080C82C0: .4byte gUnknown_2023D6C _080C82C4: .4byte gUnknown_2039A00 _080C82C8: adds r0, r2, 0x6 str r0, [r3] _080C82CC: pop {r0} bx r0 thumb_func_end sub_80C8284 thumb_func_start nullsub_64 nullsub_64: @ 80C82D0 bx lr thumb_func_end nullsub_64 thumb_func_start nullsub_65 nullsub_65: @ 80C82D4 bx lr thumb_func_end nullsub_65 thumb_func_start BattleAICmd_count_alive_pokemon BattleAICmd_count_alive_pokemon: @ 80C82D8 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080C82F8 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0 str r0, [r1, 0x8] ldr r0, _080C82FC @ =gUnknown_2039A00 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _080C8304 ldr r0, _080C8300 @ =gUnknown_2023D6B b _080C8306 .align 2, 0 _080C82F8: .4byte gUnknown_2023FF4 _080C82FC: .4byte gUnknown_2039A00 _080C8300: .4byte gUnknown_2023D6B _080C8304: ldr r0, _080C834C @ =gUnknown_2023D6C _080C8306: ldrb r5, [r0] adds r0, r5, 0 bl GetBankSide lsls r0, 24 ldr r1, _080C8350 @ =gUnknown_202402C mov r8, r1 cmp r0, 0 bne _080C831C ldr r0, _080C8354 @ =gUnknown_2024284 mov r8, r0 _080C831C: ldr r0, _080C8358 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _080C8360 ldr r4, _080C835C @ =gUnknown_2023BCE lsls r0, r5, 1 adds r0, r4 ldrb r7, [r0] adds r0, r5, 0 bl GetBankIdentity movs r1, 0x2 eors r0, r1 lsls r0, 24 lsrs r0, 24 bl GetBankByIdentity lsls r0, 24 lsrs r0, 23 adds r0, r4 ldrb r6, [r0] b _080C836A .align 2, 0 _080C834C: .4byte gUnknown_2023D6C _080C8350: .4byte gUnknown_202402C _080C8354: .4byte gUnknown_2024284 _080C8358: .4byte gUnknown_2022B4C _080C835C: .4byte gUnknown_2023BCE _080C8360: ldr r1, _080C83C8 @ =gUnknown_2023BCE lsls r0, r5, 1 adds r0, r1 ldrb r6, [r0] adds r7, r6, 0 _080C836A: movs r5, 0 _080C836C: cmp r5, r7 beq _080C83B0 cmp r5, r6 beq _080C83B0 movs r0, 0x64 muls r0, r5 mov r1, r8 adds r4, r1, r0 adds r0, r4, 0 movs r1, 0x39 bl GetMonData cmp r0, 0 beq _080C83B0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData cmp r0, 0 beq _080C83B0 adds r0, r4, 0 movs r1, 0x41 bl GetMonData movs r1, 0xCE lsls r1, 1 cmp r0, r1 beq _080C83B0 ldr r0, _080C83CC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] ldr r0, [r1, 0x8] adds r0, 0x1 str r0, [r1, 0x8] _080C83B0: adds r5, 0x1 cmp r5, 0x5 ble _080C836C ldr r1, _080C83D0 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C83C8: .4byte gUnknown_2023BCE _080C83CC: .4byte gUnknown_2023FF4 _080C83D0: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_count_alive_pokemon thumb_func_start BattleAICmd_get_considered_move BattleAICmd_get_considered_move: @ 80C83D4 ldr r0, _080C83E8 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] ldrh r0, [r1, 0x2] str r0, [r1, 0x8] ldr r1, _080C83EC @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C83E8: .4byte gUnknown_2023FF4 _080C83EC: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_considered_move thumb_func_start BattleAICmd_get_considered_move_effect BattleAICmd_get_considered_move_effect: @ 80C83F0 ldr r0, _080C8410 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C8414 @ =gUnknown_8250C04 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, _080C8418 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C8410: .4byte gUnknown_2023FF4 _080C8414: .4byte gUnknown_8250C04 _080C8418: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_considered_move_effect thumb_func_start sub_80C841C sub_80C841C: @ 80C841C push {r4-r7,lr} ldr r0, _080C842C @ =gUnknown_2039A00 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _080C8434 ldr r0, _080C8430 @ =gUnknown_2023D6B b _080C8436 .align 2, 0 _080C842C: .4byte gUnknown_2039A00 _080C8430: .4byte gUnknown_2023D6B _080C8434: ldr r0, _080C8468 @ =gUnknown_2023D6C _080C8436: ldrb r4, [r0] adds r0, r4, 0 bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080C8506 adds r0, r4, 0 bl GetBankIdentity movs r7, 0x1 adds r1, r7, 0 ands r1, r0 ldr r6, _080C846C @ =gUnknown_2023FF4 ldr r3, [r6] ldr r0, [r3, 0x18] adds r0, 0x20 adds r2, r0, r1 ldrb r0, [r2] cmp r0, 0 beq _080C8470 ldr r1, [r3, 0x14] str r0, [r1, 0x8] b _080C851A .align 2, 0 _080C8468: .4byte gUnknown_2023D6C _080C846C: .4byte gUnknown_2023FF4 _080C8470: ldr r1, _080C84A0 @ =gUnknown_2023BE4 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 _080C848C cmp r0, 0x2A beq _080C848C cmp r0, 0x47 bne _080C84A8 _080C848C: ldr r0, _080C84A4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x58 muls r0, r4 adds r0, r2 adds r0, 0x20 ldrb r0, [r0] str r0, [r1, 0x8] b _080C851A .align 2, 0 _080C84A0: .4byte gUnknown_2023BE4 _080C84A4: .4byte gUnknown_2023FF4 _080C84A8: ldr r4, _080C84E0 @ =gUnknown_8254784 ldrh r0, [r5] lsls r1, r0, 3 subs r1, r0 lsls r1, 2 adds r2, r1, r4 ldrb r0, [r2, 0x16] cmp r0, 0 beq _080C84FE ldrb r0, [r2, 0x17] cmp r0, 0 beq _080C84F6 bl Random adds r1, r7, 0 ands r1, r0 cmp r1, 0 beq _080C84E4 ldr r0, [r6] ldr r2, [r0, 0x14] ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x16] b _080C8518 .align 2, 0 _080C84E0: .4byte gUnknown_8254784 _080C84E4: ldr r0, [r6] ldr r2, [r0, 0x14] ldrh r1, [r5] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r4 ldrb r0, [r0, 0x17] b _080C8518 _080C84F6: ldr r1, [r3, 0x14] ldrb r0, [r2, 0x16] str r0, [r1, 0x8] b _080C851A _080C84FE: ldr r1, [r3, 0x14] ldrb r0, [r2, 0x17] str r0, [r1, 0x8] b _080C851A _080C8506: ldr r0, _080C8528 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r1, _080C852C @ =gUnknown_2023BE4 movs r0, 0x58 muls r0, r4 adds r0, r1 adds r0, 0x20 ldrb r0, [r0] _080C8518: str r0, [r2, 0x8] _080C851A: ldr r1, _080C8530 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8528: .4byte gUnknown_2023FF4 _080C852C: .4byte gUnknown_2023BE4 _080C8530: .4byte gUnknown_2039A00 thumb_func_end sub_80C841C thumb_func_start BattleAICmd_get_highest_type_effectiveness BattleAICmd_get_highest_type_effectiveness: @ 80C8534 push {r4-r7,lr} mov r7, r8 push {r7} ldr r0, _080C85F0 @ =gUnknown_2023F50 movs r1, 0 strh r1, [r0] ldr r0, _080C85F4 @ =gUnknown_2023FE8 ldr r0, [r0] strb r1, [r0, 0x13] ldr r0, _080C85F8 @ =gUnknown_2023FC4 movs r3, 0 movs r2, 0x1 strb r2, [r0, 0xE] ldr r0, _080C85FC @ =gUnknown_2023DCC strb r1, [r0] ldr r0, _080C8600 @ =gUnknown_2023D71 strb r2, [r0] ldr r0, _080C8604 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] str r3, [r0, 0x8] movs r5, 0 ldr r4, _080C8608 @ =gUnknown_2023D50 ldr r7, _080C860C @ =gUnknown_2023D4A ldr r0, _080C8610 @ =gUnknown_2023BF0 mov r8, r0 ldr r6, _080C8614 @ =gUnknown_2023D6B _080C856A: 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 _080C85D8 ldrh r0, [r7] ldrb r1, [r6] ldr r2, _080C8618 @ =gUnknown_2023D6C ldrb r2, [r2] bl TypeCalc ldr r0, [r4] cmp r0, 0x78 bne _080C859A movs r0, 0x50 str r0, [r4] _080C859A: ldr r0, [r4] cmp r0, 0xF0 bne _080C85A4 movs r0, 0xA0 str r0, [r4] _080C85A4: ldr r0, [r4] cmp r0, 0x1E bne _080C85AE movs r0, 0x14 str r0, [r4] _080C85AE: ldr r0, [r4] cmp r0, 0xF bne _080C85B8 movs r0, 0xA str r0, [r4] _080C85B8: ldr r0, _080C85FC @ =gUnknown_2023DCC ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080C85C8 movs r0, 0 str r0, [r4] _080C85C8: ldr r0, _080C8604 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r0, [r2, 0x8] ldr r1, [r4] cmp r0, r1 bcs _080C85D8 str r1, [r2, 0x8] _080C85D8: adds r5, 0x1 cmp r5, 0x3 ble _080C856A ldr r1, _080C861C @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C85F0: .4byte gUnknown_2023F50 _080C85F4: .4byte gUnknown_2023FE8 _080C85F8: .4byte gUnknown_2023FC4 _080C85FC: .4byte gUnknown_2023DCC _080C8600: .4byte gUnknown_2023D71 _080C8604: .4byte gUnknown_2023FF4 _080C8608: .4byte gUnknown_2023D50 _080C860C: .4byte gUnknown_2023D4A _080C8610: .4byte gUnknown_2023BF0 _080C8614: .4byte gUnknown_2023D6B _080C8618: .4byte gUnknown_2023D6C _080C861C: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_highest_type_effectiveness thumb_func_start BattleAICmd_if_type_effectiveness BattleAICmd_if_type_effectiveness: @ 80C8620 push {r4,r5,lr} ldr r0, _080C86B8 @ =gUnknown_2023F50 movs r1, 0 strh r1, [r0] ldr r0, _080C86BC @ =gUnknown_2023FE8 ldr r0, [r0] strb r1, [r0, 0x13] ldr r0, _080C86C0 @ =gUnknown_2023FC4 movs r2, 0x1 strb r2, [r0, 0xE] ldr r5, _080C86C4 @ =gUnknown_2023DCC strb r1, [r5] ldr r0, _080C86C8 @ =gUnknown_2023D71 strb r2, [r0] ldr r4, _080C86CC @ =gUnknown_2023D50 movs r0, 0x28 str r0, [r4] ldr r1, _080C86D0 @ =gUnknown_2023D4A ldr r0, _080C86D4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldrh r0, [r0, 0x2] strh r0, [r1] ldrh r0, [r1] ldr r1, _080C86D8 @ =gUnknown_2023D6B ldrb r1, [r1] ldr r2, _080C86DC @ =gUnknown_2023D6C ldrb r2, [r2] bl TypeCalc ldr r0, [r4] cmp r0, 0x78 bne _080C8666 movs r0, 0x50 str r0, [r4] _080C8666: ldr r0, [r4] cmp r0, 0xF0 bne _080C8670 movs r0, 0xA0 str r0, [r4] _080C8670: ldr r0, [r4] cmp r0, 0x1E bne _080C867A movs r0, 0x14 str r0, [r4] _080C867A: ldr r0, [r4] cmp r0, 0xF bne _080C8684 movs r0, 0xA str r0, [r4] _080C8684: ldrb r1, [r5] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _080C8692 movs r0, 0 str r0, [r4] _080C8692: ldrb r0, [r4] ldr r3, _080C86E0 @ =gUnknown_2039A00 ldr r2, [r3] ldrb r1, [r2, 0x1] cmp r0, r1 bne _080C86E4 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 _080C86E8 .align 2, 0 _080C86B8: .4byte gUnknown_2023F50 _080C86BC: .4byte gUnknown_2023FE8 _080C86C0: .4byte gUnknown_2023FC4 _080C86C4: .4byte gUnknown_2023DCC _080C86C8: .4byte gUnknown_2023D71 _080C86CC: .4byte gUnknown_2023D50 _080C86D0: .4byte gUnknown_2023D4A _080C86D4: .4byte gUnknown_2023FF4 _080C86D8: .4byte gUnknown_2023D6B _080C86DC: .4byte gUnknown_2023D6C _080C86E0: .4byte gUnknown_2039A00 _080C86E4: adds r0, r2, 0x6 str r0, [r3] _080C86E8: pop {r4,r5} pop {r0} bx r0 thumb_func_end BattleAICmd_if_type_effectiveness thumb_func_start nullsub_66 nullsub_66: @ 80C86F0 bx lr thumb_func_end nullsub_66 thumb_func_start nullsub_67 nullsub_67: @ 80C86F4 bx lr thumb_func_end nullsub_67 thumb_func_start BattleAICmd_if_status_in_party BattleAICmd_if_status_in_party: @ 80C86F8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _080C8710 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] cmp r1, 0x1 bne _080C8738 ldr r1, _080C8714 @ =gUnknown_202402C b _080C873A .align 2, 0 _080C8710: .4byte gUnknown_2039A00 _080C8714: .4byte gUnknown_202402C _080C8718: ldr r3, _080C8734 @ =gUnknown_2039A00 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 _080C87A6 .align 2, 0 _080C8734: .4byte gUnknown_2039A00 _080C8738: ldr r1, _080C87B4 @ =gUnknown_2024284 _080C873A: 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 _080C875C: 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 _080C8794 cmp r5, r10 beq _080C8794 cmp r6, 0 beq _080C8794 cmp r0, r7 beq _080C8718 _080C8794: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _080C875C ldr r1, _080C87B8 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0xA str r0, [r1] _080C87A6: pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C87B4: .4byte gUnknown_2024284 _080C87B8: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_if_status_in_party thumb_func_start BattleAICmd_if_status_not_in_party BattleAICmd_if_status_not_in_party: @ 80C87BC push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} ldr r0, _080C87D8 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r2, r0, 0 cmp r1, 0x1 bne _080C87E0 ldr r0, _080C87DC @ =gUnknown_202402C mov r10, r0 b _080C87E4 .align 2, 0 _080C87D8: .4byte gUnknown_2039A00 _080C87DC: .4byte gUnknown_202402C _080C87E0: ldr r1, _080C8878 @ =gUnknown_2024284 mov r10, r1 _080C87E4: 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 _080C8800: 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 _080C8844 movs r1, 0xCE lsls r1, 1 cmp r5, r1 beq _080C8844 cmp r6, 0 beq _080C8844 cmp r0, r7 bne _080C8844 mov r1, r9 ldr r0, [r1] adds r0, 0xA str r0, [r1] _080C8844: movs r0, 0x1 add r8, r0 mov r1, r8 cmp r1, 0x5 ble _080C8800 ldr r3, _080C887C @ =gUnknown_2039A00 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 _080C8878: .4byte gUnknown_2024284 _080C887C: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_if_status_not_in_party thumb_func_start BattleAICmd_get_weather BattleAICmd_get_weather: @ 80C8880 push {lr} ldr r2, _080C88E0 @ =gUnknown_2023F1C ldrh r1, [r2] movs r0, 0x7 ands r0, r1 cmp r0, 0 beq _080C8898 ldr r0, _080C88E4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x1 str r0, [r1, 0x8] _080C8898: ldrh r1, [r2] movs r0, 0x18 ands r0, r1 cmp r0, 0 beq _080C88AC ldr r0, _080C88E4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x2 str r0, [r1, 0x8] _080C88AC: ldrh r1, [r2] movs r0, 0x60 ands r0, r1 cmp r0, 0 beq _080C88C0 ldr r0, _080C88E4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0 str r0, [r1, 0x8] _080C88C0: ldrh r1, [r2] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _080C88D4 ldr r0, _080C88E4 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x14] movs r0, 0x3 str r0, [r1, 0x8] _080C88D4: ldr r1, _080C88E8 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080C88E0: .4byte gUnknown_2023F1C _080C88E4: .4byte gUnknown_2023FF4 _080C88E8: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_weather thumb_func_start sub_80C88EC sub_80C88EC: @ 80C88EC push {lr} ldr r2, _080C8924 @ =gUnknown_8250C04 ldr r0, _080C8928 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r3, _080C892C @ =gUnknown_2039A00 ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] cmp r0, r1 bne _080C8930 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 _080C8934 .align 2, 0 _080C8924: .4byte gUnknown_8250C04 _080C8928: .4byte gUnknown_2023FF4 _080C892C: .4byte gUnknown_2039A00 _080C8930: adds r0, r2, 0x6 str r0, [r3] _080C8934: pop {r0} bx r0 thumb_func_end sub_80C88EC thumb_func_start sub_80C8938 sub_80C8938: @ 80C8938 push {lr} ldr r2, _080C8970 @ =gUnknown_8250C04 ldr r0, _080C8974 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r0, [r0, 0x14] ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldr r3, _080C8978 @ =gUnknown_2039A00 ldr r2, [r3] ldrb r0, [r0] ldrb r1, [r2, 0x1] cmp r0, r1 beq _080C897C 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 _080C8980 .align 2, 0 _080C8970: .4byte gUnknown_8250C04 _080C8974: .4byte gUnknown_2023FF4 _080C8978: .4byte gUnknown_2039A00 _080C897C: adds r0, r2, 0x6 str r0, [r3] _080C8980: pop {r0} bx r0 thumb_func_end sub_80C8938 thumb_func_start sub_80C8984 sub_80C8984: @ 80C8984 push {r4,lr} ldr r0, _080C8998 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C89A0 ldr r0, _080C899C @ =gUnknown_2023D6B b _080C89A2 .align 2, 0 _080C8998: .4byte gUnknown_2039A00 _080C899C: .4byte gUnknown_2023D6B _080C89A0: ldr r0, _080C89D8 @ =gUnknown_2023D6C _080C89A2: ldrb r3, [r0] ldr r1, _080C89DC @ =gUnknown_2023BE4 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 _080C89E0 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 _080C89E6 .align 2, 0 _080C89D8: .4byte gUnknown_2023D6C _080C89DC: .4byte gUnknown_2023BE4 _080C89E0: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _080C89E6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C8984 thumb_func_start sub_80C89EC sub_80C89EC: @ 80C89EC push {r4,lr} ldr r0, _080C8A00 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C8A08 ldr r0, _080C8A04 @ =gUnknown_2023D6B b _080C8A0A .align 2, 0 _080C8A00: .4byte gUnknown_2039A00 _080C8A04: .4byte gUnknown_2023D6B _080C8A08: ldr r0, _080C8A40 @ =gUnknown_2023D6C _080C8A0A: ldrb r3, [r0] ldr r1, _080C8A44 @ =gUnknown_2023BE4 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 _080C8A48 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 _080C8A4E .align 2, 0 _080C8A40: .4byte gUnknown_2023D6C _080C8A44: .4byte gUnknown_2023BE4 _080C8A48: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _080C8A4E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C89EC thumb_func_start sub_80C8A54 sub_80C8A54: @ 80C8A54 push {r4,lr} ldr r0, _080C8A68 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C8A70 ldr r0, _080C8A6C @ =gUnknown_2023D6B b _080C8A72 .align 2, 0 _080C8A68: .4byte gUnknown_2039A00 _080C8A6C: .4byte gUnknown_2023D6B _080C8A70: ldr r0, _080C8AA8 @ =gUnknown_2023D6C _080C8A72: ldrb r3, [r0] ldr r1, _080C8AAC @ =gUnknown_2023BE4 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 _080C8AB0 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 _080C8AB6 .align 2, 0 _080C8AA8: .4byte gUnknown_2023D6C _080C8AAC: .4byte gUnknown_2023BE4 _080C8AB0: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _080C8AB6: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C8A54 thumb_func_start sub_80C8ABC sub_80C8ABC: @ 80C8ABC push {r4,lr} ldr r0, _080C8AD0 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C8AD8 ldr r0, _080C8AD4 @ =gUnknown_2023D6B b _080C8ADA .align 2, 0 _080C8AD0: .4byte gUnknown_2039A00 _080C8AD4: .4byte gUnknown_2023D6B _080C8AD8: ldr r0, _080C8B10 @ =gUnknown_2023D6C _080C8ADA: ldrb r3, [r0] ldr r1, _080C8B14 @ =gUnknown_2023BE4 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 _080C8B18 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 _080C8B1E .align 2, 0 _080C8B10: .4byte gUnknown_2023D6C _080C8B14: .4byte gUnknown_2023BE4 _080C8B18: adds r0, r2, 0 adds r0, 0x8 str r0, [r4] _080C8B1E: pop {r4} pop {r0} bx r0 thumb_func_end sub_80C8ABC thumb_func_start BattleAICmd_if_can_faint BattleAICmd_if_can_faint: @ 80C8B24 push {r4-r7,lr} mov r7, r8 push {r7} ldr r2, _080C8BD4 @ =gUnknown_8250C04 ldr r0, _080C8BD8 @ =gUnknown_2023FF4 mov r8, r0 ldr r0, [r0] ldr r0, [r0, 0x14] ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x1 bls _080C8C08 ldr r0, _080C8BDC @ =gUnknown_2023F50 movs r1, 0 strh r1, [r0] ldr r0, _080C8BE0 @ =gUnknown_2023FE8 ldr r0, [r0] strb r1, [r0, 0x13] ldr r0, _080C8BE4 @ =gUnknown_2023FC4 movs r7, 0x1 strb r7, [r0, 0xE] ldr r0, _080C8BE8 @ =gUnknown_2023DCC strb r1, [r0] ldr r0, _080C8BEC @ =gUnknown_2023D71 strb r7, [r0] ldr r5, _080C8BF0 @ =gUnknown_2023D4A mov r1, r8 ldr r0, [r1] ldr r0, [r0, 0x14] ldrh r0, [r0, 0x2] strh r0, [r5] ldr r4, _080C8BF4 @ =gUnknown_2023D6B ldrb r0, [r4] ldr r6, _080C8BF8 @ =gUnknown_2023D6C ldrb r1, [r6] bl AI_CalcDmg ldrh r0, [r5] ldrb r1, [r4] ldrb r2, [r6] bl TypeCalc ldr r4, _080C8BFC @ =gUnknown_2023D50 mov r1, r8 ldr r0, [r1] ldr r1, [r0, 0x14] adds r0, r1, 0 adds r0, 0x18 ldrb r1, [r1, 0x1] adds r0, r1 ldrb r1, [r0] ldr r0, [r4] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] cmp r0, 0 bne _080C8BA4 str r7, [r4] _080C8BA4: ldr r2, _080C8C00 @ =gUnknown_2023BE4 ldrb r1, [r6] movs r0, 0x58 muls r0, r1 adds r0, r2 ldrh r1, [r0, 0x28] ldr r0, [r4] cmp r1, r0 bgt _080C8C08 ldr r3, _080C8C04 @ =gUnknown_2039A00 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 _080C8C10 .align 2, 0 _080C8BD4: .4byte gUnknown_8250C04 _080C8BD8: .4byte gUnknown_2023FF4 _080C8BDC: .4byte gUnknown_2023F50 _080C8BE0: .4byte gUnknown_2023FE8 _080C8BE4: .4byte gUnknown_2023FC4 _080C8BE8: .4byte gUnknown_2023DCC _080C8BEC: .4byte gUnknown_2023D71 _080C8BF0: .4byte gUnknown_2023D4A _080C8BF4: .4byte gUnknown_2023D6B _080C8BF8: .4byte gUnknown_2023D6C _080C8BFC: .4byte gUnknown_2023D50 _080C8C00: .4byte gUnknown_2023BE4 _080C8C04: .4byte gUnknown_2039A00 _080C8C08: ldr r1, _080C8C1C @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080C8C10: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8C1C: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_if_can_faint thumb_func_start BattleAICmd_if_cant_faint BattleAICmd_if_cant_faint: @ 80C8C20 push {r4-r7,lr} ldr r2, _080C8CBC @ =gUnknown_8250C04 ldr r7, _080C8CC0 @ =gUnknown_2023FF4 ldr r0, [r7] ldr r0, [r0, 0x14] ldrh r1, [r0, 0x2] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r2 ldrb r0, [r0, 0x1] cmp r0, 0x1 bls _080C8CF0 ldr r0, _080C8CC4 @ =gUnknown_2023F50 movs r1, 0 strh r1, [r0] ldr r0, _080C8CC8 @ =gUnknown_2023FE8 ldr r0, [r0] strb r1, [r0, 0x13] ldr r0, _080C8CCC @ =gUnknown_2023FC4 movs r2, 0x1 strb r2, [r0, 0xE] ldr r0, _080C8CD0 @ =gUnknown_2023DCC strb r1, [r0] ldr r0, _080C8CD4 @ =gUnknown_2023D71 strb r2, [r0] ldr r6, _080C8CD8 @ =gUnknown_2023D4A ldr r0, [r7] ldr r0, [r0, 0x14] ldrh r0, [r0, 0x2] strh r0, [r6] ldr r4, _080C8CDC @ =gUnknown_2023D6B ldrb r0, [r4] ldr r5, _080C8CE0 @ =gUnknown_2023D6C ldrb r1, [r5] bl AI_CalcDmg ldrh r0, [r6] ldrb r1, [r4] ldrb r2, [r5] bl TypeCalc ldr r4, _080C8CE4 @ =gUnknown_2023D50 ldr r0, [r7] ldr r1, [r0, 0x14] adds r0, r1, 0 adds r0, 0x18 ldrb r1, [r1, 0x1] adds r0, r1 ldrb r1, [r0] ldr r0, [r4] muls r0, r1 movs r1, 0x64 bl __divsi3 str r0, [r4] ldr r3, _080C8CE8 @ =gUnknown_2023BE4 ldrb r2, [r5] movs r1, 0x58 muls r1, r2 adds r1, r3 ldrh r1, [r1, 0x28] cmp r1, r0 ble _080C8CF0 ldr r3, _080C8CEC @ =gUnknown_2039A00 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 _080C8CF8 .align 2, 0 _080C8CBC: .4byte gUnknown_8250C04 _080C8CC0: .4byte gUnknown_2023FF4 _080C8CC4: .4byte gUnknown_2023F50 _080C8CC8: .4byte gUnknown_2023FE8 _080C8CCC: .4byte gUnknown_2023FC4 _080C8CD0: .4byte gUnknown_2023DCC _080C8CD4: .4byte gUnknown_2023D71 _080C8CD8: .4byte gUnknown_2023D4A _080C8CDC: .4byte gUnknown_2023D6B _080C8CE0: .4byte gUnknown_2023D6C _080C8CE4: .4byte gUnknown_2023D50 _080C8CE8: .4byte gUnknown_2023BE4 _080C8CEC: .4byte gUnknown_2039A00 _080C8CF0: ldr r1, _080C8D00 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080C8CF8: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8D00: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_if_cant_faint thumb_func_start sub_80C8D04 sub_80C8D04: @ 80C8D04 push {r4-r7,lr} ldr r1, _080C8D20 @ =gUnknown_2039A00 ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] adds r5, r1, 0 cmp r0, 0x1 beq _080C8D2C cmp r0, 0x1 bgt _080C8D24 cmp r0, 0 beq _080C8D70 b _080C8DD8 .align 2, 0 _080C8D20: .4byte gUnknown_2039A00 _080C8D24: cmp r0, 0x2 beq _080C8D70 cmp r0, 0x3 bne _080C8DD8 _080C8D2C: movs r3, 0 ldr r2, _080C8D68 @ =gUnknown_2023BE4 ldr r4, _080C8D6C @ =gUnknown_2023D6B ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r2, 0xC adds r0, r2 ldrh r0, [r0] ldrh r1, [r6] cmp r0, r1 beq _080C8D62 adds r7, r4, 0 movs r6, 0x58 adds r4, r2, 0 adds r2, r1, 0 _080C8D4C: adds r3, 0x1 cmp r3, 0x3 bgt _080C8D62 lsls r1, r3, 1 ldrb r0, [r7] muls r0, r6 adds r1, r0 adds r1, r4 ldrh r0, [r1] cmp r0, r2 bne _080C8D4C _080C8D62: cmp r3, 0x4 beq _080C8DB0 b _080C8DC0 .align 2, 0 _080C8D68: .4byte gUnknown_2023BE4 _080C8D6C: .4byte gUnknown_2023D6B _080C8D70: movs r3, 0 ldr r4, _080C8DB8 @ =gUnknown_2023FF4 ldr r0, [r4] ldr r1, [r0, 0x18] ldr r2, _080C8DBC @ =gUnknown_2023D6C ldrb r0, [r2] lsrs r0, 1 lsls r0, 4 adds r1, r0 ldrh r0, [r1] ldrh r1, [r6] cmp r0, r1 beq _080C8DAC adds r7, r4, 0 adds r4, r1, 0 adds r6, r2, 0 _080C8D90: adds r3, 0x1 cmp r3, 0x7 bgt _080C8DAC ldr r0, [r7] ldr r2, [r0, 0x18] lsls r1, r3, 1 ldrb r0, [r6] lsrs r0, 1 lsls r0, 4 adds r1, r0 adds r2, r1 ldrh r0, [r2] cmp r0, r4 bne _080C8D90 _080C8DAC: cmp r3, 0x8 bne _080C8DC0 _080C8DB0: ldr r0, [r5] adds r0, 0x8 str r0, [r5] b _080C8DD8 .align 2, 0 _080C8DB8: .4byte gUnknown_2023FF4 _080C8DBC: .4byte gUnknown_2023D6C _080C8DC0: ldr r2, [r5] 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, [r5] _080C8DD8: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C8D04 thumb_func_start sub_80C8DE0 sub_80C8DE0: @ 80C8DE0 push {r4-r7,lr} ldr r1, _080C8DFC @ =gUnknown_2039A00 ldr r0, [r1] adds r6, r0, 0x2 ldrb r0, [r0, 0x1] adds r5, r1, 0 cmp r0, 0x1 beq _080C8E08 cmp r0, 0x1 bgt _080C8E00 cmp r0, 0 beq _080C8E4C b _080C8EB4 .align 2, 0 _080C8DFC: .4byte gUnknown_2039A00 _080C8E00: cmp r0, 0x2 beq _080C8E4C cmp r0, 0x3 bne _080C8EB4 _080C8E08: movs r3, 0 ldr r2, _080C8E44 @ =gUnknown_2023BE4 ldr r4, _080C8E48 @ =gUnknown_2023D6B ldrb r1, [r4] movs r0, 0x58 muls r0, r1 adds r2, 0xC adds r0, r2 ldrh r0, [r0] ldrh r1, [r6] cmp r0, r1 beq _080C8E3E adds r7, r4, 0 movs r6, 0x58 adds r4, r2, 0 adds r2, r1, 0 _080C8E28: adds r3, 0x1 cmp r3, 0x3 bgt _080C8E3E lsls r1, r3, 1 ldrb r0, [r7] muls r0, r6 adds r1, r0 adds r1, r4 ldrh r0, [r1] cmp r0, r2 bne _080C8E28 _080C8E3E: cmp r3, 0x4 bne _080C8E8C b _080C8E9C .align 2, 0 _080C8E44: .4byte gUnknown_2023BE4 _080C8E48: .4byte gUnknown_2023D6B _080C8E4C: movs r3, 0 ldr r4, _080C8E94 @ =gUnknown_2023FF4 ldr r0, [r4] ldr r1, [r0, 0x18] ldr r2, _080C8E98 @ =gUnknown_2023D6C ldrb r0, [r2] lsrs r0, 1 lsls r0, 4 adds r1, r0 ldrh r0, [r1] ldrh r1, [r6] cmp r0, r1 beq _080C8E88 adds r7, r4, 0 adds r4, r1, 0 adds r6, r2, 0 _080C8E6C: adds r3, 0x1 cmp r3, 0x7 bgt _080C8E88 ldr r0, [r7] ldr r2, [r0, 0x18] lsls r1, r3, 1 ldrb r0, [r6] lsrs r0, 1 lsls r0, 4 adds r1, r0 adds r2, r1 ldrh r0, [r2] cmp r0, r4 bne _080C8E6C _080C8E88: cmp r3, 0x8 beq _080C8E9C _080C8E8C: ldr r0, [r5] adds r0, 0x8 str r0, [r5] b _080C8EB4 .align 2, 0 _080C8E94: .4byte gUnknown_2023FF4 _080C8E98: .4byte gUnknown_2023D6C _080C8E9C: ldr r2, [r5] 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, [r5] _080C8EB4: pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80C8DE0 thumb_func_start sub_80C8EBC sub_80C8EBC: @ 80C8EBC push {r4-r7,lr} ldr r1, _080C8ED4 @ =gUnknown_2039A00 ldr r0, [r1] ldrb r0, [r0, 0x1] adds r5, r1, 0 cmp r0, 0x1 beq _080C8EE0 cmp r0, 0x1 bgt _080C8ED8 cmp r0, 0 beq _080C8F34 b _080C8F96 .align 2, 0 _080C8ED4: .4byte gUnknown_2039A00 _080C8ED8: cmp r0, 0x2 beq _080C8F34 cmp r0, 0x3 bne _080C8F96 _080C8EE0: movs r3, 0 ldr r1, _080C8F24 @ =gUnknown_2023BE4 ldr r0, _080C8F28 @ =gUnknown_2023D6B ldrb r2, [r0] ldr r6, _080C8F2C @ =gUnknown_8250C04 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 ldr r4, _080C8F30 @ =gUnknown_2039A00 _080C8EF4: ldrh r0, [r2] cmp r0, 0 beq _080C8F0E adds r1, r0, 0 lsls r0, r1, 1 adds r0, r1 lsls r0, 2 adds r0, r6 ldr r1, [r4] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _080C8F16 _080C8F0E: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080C8EF4 _080C8F16: cmp r3, 0x4 bne _080C8F7E ldr r0, [r5] adds r0, 0x7 str r0, [r5] b _080C8F96 .align 2, 0 _080C8F24: .4byte gUnknown_2023BE4 _080C8F28: .4byte gUnknown_2023D6B _080C8F2C: .4byte gUnknown_8250C04 _080C8F30: .4byte gUnknown_2039A00 _080C8F34: movs r3, 0 ldr r1, _080C8F9C @ =gUnknown_2023BE4 ldr r0, _080C8FA0 @ =gUnknown_2023D6B ldrb r2, [r0] ldr r0, _080C8FA4 @ =gUnknown_8250C04 mov r12, r0 ldr r7, _080C8FA8 @ =gUnknown_2023FF4 ldr r6, _080C8FAC @ =gUnknown_2023D6C movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r4, r0, r1 _080C8F4C: lsls r2, r3, 1 ldrh r0, [r4] cmp r0, 0 beq _080C8F76 ldr r0, [r7] ldr r1, [r0, 0x18] ldrb r0, [r6] lsrs r0, 1 lsls r0, 4 adds r0, r2, r0 adds r1, r0 ldrh r1, [r1] lsls r0, r1, 1 adds r0, r1 lsls r0, 2 add r0, r12 ldr r1, [r5] ldrb r0, [r0] ldrb r1, [r1, 0x2] cmp r0, r1 beq _080C8F7E _080C8F76: adds r4, 0x2 adds r3, 0x1 cmp r3, 0x7 ble _080C8F4C _080C8F7E: ldr r2, [r5] 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, [r5] _080C8F96: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _080C8F9C: .4byte gUnknown_2023BE4 _080C8FA0: .4byte gUnknown_2023D6B _080C8FA4: .4byte gUnknown_8250C04 _080C8FA8: .4byte gUnknown_2023FF4 _080C8FAC: .4byte gUnknown_2023D6C thumb_func_end sub_80C8EBC thumb_func_start sub_80C8FB0 sub_80C8FB0: @ 80C8FB0 push {r4-r6,lr} ldr r1, _080C8FC8 @ =gUnknown_2039A00 ldr r0, [r1] ldrb r0, [r0, 0x1] adds r4, r1, 0 cmp r0, 0x1 beq _080C8FD4 cmp r0, 0x1 bgt _080C8FCC cmp r0, 0 beq _080C9038 b _080C9074 .align 2, 0 _080C8FC8: .4byte gUnknown_2039A00 _080C8FCC: cmp r0, 0x2 beq _080C9038 cmp r0, 0x3 bne _080C9074 _080C8FD4: movs r3, 0 ldr r1, _080C9028 @ =gUnknown_2023BE4 ldr r0, _080C902C @ =gUnknown_2023D6B ldrb r2, [r0] ldr r6, _080C9030 @ =gUnknown_8250C04 movs r0, 0x58 muls r0, r2 adds r1, 0xC adds r2, r0, r1 ldr r5, _080C9034 @ =gUnknown_2039A00 _080C8FE8: ldrh r0, [r2] cmp r0, 0 beq _080C9002 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 _080C900A _080C9002: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x3 ble _080C8FE8 _080C900A: cmp r3, 0x4 bne _080C906E 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 _080C9074 .align 2, 0 _080C9028: .4byte gUnknown_2023BE4 _080C902C: .4byte gUnknown_2023D6B _080C9030: .4byte gUnknown_8250C04 _080C9034: .4byte gUnknown_2039A00 _080C9038: movs r3, 0 ldr r0, _080C907C @ =gUnknown_2023FF4 ldr r0, [r0] ldr r1, [r0, 0x18] ldr r0, _080C9080 @ =gUnknown_2023D6C ldrb r0, [r0] lsrs r0, 1 lsls r0, 4 adds r2, r0, r1 ldr r5, _080C9084 @ =gUnknown_8250C04 _080C904C: ldrh r0, [r2] cmp r0, 0 beq _080C9066 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 _080C906E _080C9066: adds r2, 0x2 adds r3, 0x1 cmp r3, 0x7 ble _080C904C _080C906E: ldr r0, [r4] adds r0, 0x7 str r0, [r4] _080C9074: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _080C907C: .4byte gUnknown_2023FF4 _080C9080: .4byte gUnknown_2023D6C _080C9084: .4byte gUnknown_8250C04 thumb_func_end sub_80C8FB0 thumb_func_start BattleAICmd_if_any_move_disabled_or_encored BattleAICmd_if_any_move_disabled_or_encored: @ 80C9088 push {r4,r5,lr} ldr r0, _080C909C @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r5, r0, 0 cmp r1, 0x1 bne _080C90A4 ldr r0, _080C90A0 @ =gUnknown_2023D6B b _080C90A6 .align 2, 0 _080C909C: .4byte gUnknown_2039A00 _080C90A0: .4byte gUnknown_2023D6B _080C90A4: ldr r0, _080C90C4 @ =gUnknown_2023D6C _080C90A6: ldrb r3, [r0] adds r4, r5, 0 ldr r2, [r4] ldrb r0, [r2, 0x2] cmp r0, 0 bne _080C90CC ldr r0, _080C90C8 @ =gUnknown_2023E0C lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x4] cmp r0, 0 beq _080C90D0 b _080C90E6 .align 2, 0 _080C90C4: .4byte gUnknown_2023D6C _080C90C8: .4byte gUnknown_2023E0C _080C90CC: cmp r0, 0x1 beq _080C90D6 _080C90D0: adds r0, r2, 0x7 str r0, [r4] b _080C9108 _080C90D6: ldr r0, _080C9100 @ =gUnknown_2023E0C lsls r1, r3, 3 subs r1, r3 lsls r1, 2 adds r1, r0 ldrh r0, [r1, 0x6] cmp r0, 0 beq _080C9104 _080C90E6: 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 _080C9108 .align 2, 0 _080C9100: .4byte gUnknown_2023E0C _080C9104: adds r0, r2, 0x7 str r0, [r5] _080C9108: pop {r4,r5} pop {r0} bx r0 thumb_func_end BattleAICmd_if_any_move_disabled_or_encored thumb_func_start BattleAICmd_if_curr_move_disabled_or_encored BattleAICmd_if_curr_move_disabled_or_encored: @ 80C9110 push {r4,lr} ldr r4, _080C9124 @ =gUnknown_2039A00 ldr r3, [r4] ldrb r0, [r3, 0x1] cmp r0, 0 beq _080C9128 cmp r0, 0x1 beq _080C9154 b _080C9194 .align 2, 0 _080C9124: .4byte gUnknown_2039A00 _080C9128: ldr r2, _080C9148 @ =gUnknown_2023E0C ldr r0, _080C914C @ =gUnknown_2023BC4 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080C9150 @ =gUnknown_2023FF4 ldr r1, [r1] ldr r1, [r1, 0x14] ldrh r0, [r0, 0x4] ldrh r1, [r1, 0x2] cmp r0, r1 beq _080C9170 b _080C9194 .align 2, 0 _080C9148: .4byte gUnknown_2023E0C _080C914C: .4byte gUnknown_2023BC4 _080C9150: .4byte gUnknown_2023FF4 _080C9154: ldr r2, _080C9188 @ =gUnknown_2023E0C ldr r0, _080C918C @ =gUnknown_2023BC4 ldrb r1, [r0] lsls r0, r1, 3 subs r0, r1 lsls r0, 2 adds r0, r2 ldr r1, _080C9190 @ =gUnknown_2023FF4 ldr r1, [r1] ldr r1, [r1, 0x14] ldrh r0, [r0, 0x6] ldrh r1, [r1, 0x2] cmp r0, r1 bne _080C9194 _080C9170: 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 _080C9198 .align 2, 0 _080C9188: .4byte gUnknown_2023E0C _080C918C: .4byte gUnknown_2023BC4 _080C9190: .4byte gUnknown_2023FF4 _080C9194: adds r0, r3, 0x6 str r0, [r4] _080C9198: pop {r4} pop {r0} bx r0 thumb_func_end BattleAICmd_if_curr_move_disabled_or_encored thumb_func_start BattleAICmd_flee BattleAICmd_flee: @ 80C91A0 ldr r0, _080C91B0 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldrb r1, [r2, 0x10] movs r0, 0xB orrs r0, r1 strb r0, [r2, 0x10] bx lr .align 2, 0 _080C91B0: .4byte gUnknown_2023FF4 thumb_func_end BattleAICmd_flee thumb_func_start sub_80C91B4 sub_80C91B4: @ 80C91B4 push {r4,lr} ldr r0, _080C91D8 @ =gUnknown_2023FE8 ldr r1, [r0] adds r0, r1, 0 adds r0, 0x79 ldrb r0, [r0] cmp r0, 0 beq _080C91DC adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsls r0, 25 lsrs r4, r0, 24 cmp r4, 0x14 bls _080C91FC movs r4, 0x14 b _080C91FC .align 2, 0 _080C91D8: .4byte gUnknown_2023FE8 _080C91DC: adds r0, r1, 0 adds r0, 0x7A ldrb r0, [r0] cmp r0, 0 beq _080C91F6 adds r0, r1, 0 adds r0, 0x7B ldrb r0, [r0] lsrs r4, r0, 2 cmp r4, 0 bne _080C91FC movs r4, 0x1 b _080C91FC _080C91F6: adds r0, r1, 0 adds r0, 0x7B ldrb r4, [r0] _080C91FC: lsls r0, r4, 2 adds r0, r4 lsls r0, 24 lsrs r4, r0, 24 bl Random lsls r0, 16 lsrs r0, 16 movs r1, 0x64 bl __umodsi3 lsls r0, 24 lsrs r0, 24 cmp r0, r4 bcs _080C923C ldr r3, _080C9238 @ =gUnknown_2039A00 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 _080C9244 .align 2, 0 _080C9238: .4byte gUnknown_2039A00 _080C923C: ldr r1, _080C924C @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080C9244: pop {r4} pop {r0} bx r0 .align 2, 0 _080C924C: .4byte gUnknown_2039A00 thumb_func_end sub_80C91B4 thumb_func_start BattleAICmd_watch BattleAICmd_watch: @ 80C9250 ldr r0, _080C9260 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldrb r1, [r2, 0x10] movs r0, 0xD orrs r0, r1 strb r0, [r2, 0x10] bx lr .align 2, 0 _080C9260: .4byte gUnknown_2023FF4 thumb_func_end BattleAICmd_watch thumb_func_start BattleAICmd_get_hold_effect BattleAICmd_get_hold_effect: @ 80C9264 push {r4,lr} ldr r0, _080C9274 @ =gUnknown_2039A00 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _080C927C ldr r0, _080C9278 @ =gUnknown_2023D6B b _080C927E .align 2, 0 _080C9274: .4byte gUnknown_2039A00 _080C9278: .4byte gUnknown_2023D6B _080C927C: ldr r0, _080C92A8 @ =gUnknown_2023D6C _080C927E: ldrb r4, [r0] adds r0, r4, 0 bl GetBankSide lsls r0, 24 cmp r0, 0 bne _080C92B0 adds r0, r4, 0 bl GetBankIdentity movs r1, 0x1 ands r1, r0 ldr r0, _080C92AC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r0, [r0, 0x18] adds r0, 0x22 adds r0, r1 ldrb r0, [r0] str r0, [r2, 0x8] b _080C92CA .align 2, 0 _080C92A8: .4byte gUnknown_2023D6C _080C92AC: .4byte gUnknown_2023FF4 _080C92B0: ldr r1, _080C92D8 @ =gUnknown_2023BE4 movs r0, 0x58 muls r0, r4 adds r0, r1 ldrh r0, [r0, 0x2E] bl ItemId_GetHoldEffect ldr r1, _080C92DC @ =gUnknown_2023FF4 ldr r1, [r1] ldr r1, [r1, 0x14] lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x8] _080C92CA: ldr r1, _080C92E0 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r4} pop {r0} bx r0 .align 2, 0 _080C92D8: .4byte gUnknown_2023BE4 _080C92DC: .4byte gUnknown_2023FF4 _080C92E0: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_hold_effect thumb_func_start BattleAICmd_get_gender BattleAICmd_get_gender: @ 80C92E4 push {lr} ldr r0, _080C92F4 @ =gUnknown_2039A00 ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0x1 bne _080C92FC ldr r0, _080C92F8 @ =gUnknown_2023D6B b _080C92FE .align 2, 0 _080C92F4: .4byte gUnknown_2039A00 _080C92F8: .4byte gUnknown_2023D6B _080C92FC: ldr r0, _080C932C @ =gUnknown_2023D6C _080C92FE: ldrb r1, [r0] ldr r2, _080C9330 @ =gUnknown_2023BE4 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, _080C9334 @ =gUnknown_2023FF4 ldr r1, [r1] ldr r1, [r1, 0x14] lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x8] ldr r1, _080C9338 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x2 str r0, [r1] pop {r0} bx r0 .align 2, 0 _080C932C: .4byte gUnknown_2023D6C _080C9330: .4byte gUnknown_2023BE4 _080C9334: .4byte gUnknown_2023FF4 _080C9338: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_gender thumb_func_start BattleAICmd_is_first_turn BattleAICmd_is_first_turn: @ 80C933C push {r4,lr} ldr r0, _080C9350 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C9358 ldr r0, _080C9354 @ =gUnknown_2023D6B b _080C935A .align 2, 0 _080C9350: .4byte gUnknown_2039A00 _080C9354: .4byte gUnknown_2023D6B _080C9358: ldr r0, _080C937C @ =gUnknown_2023D6C _080C935A: ldrb r3, [r0] ldr r0, _080C9380 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r1, _080C9384 @ =gUnknown_2023E0C 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 _080C937C: .4byte gUnknown_2023D6C _080C9380: .4byte gUnknown_2023FF4 _080C9384: .4byte gUnknown_2023E0C thumb_func_end BattleAICmd_is_first_turn thumb_func_start BattleAICmd_get_stockpile_count BattleAICmd_get_stockpile_count: @ 80C9388 push {r4,lr} ldr r0, _080C939C @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C93A4 ldr r0, _080C93A0 @ =gUnknown_2023D6B b _080C93A6 .align 2, 0 _080C939C: .4byte gUnknown_2039A00 _080C93A0: .4byte gUnknown_2023D6B _080C93A4: ldr r0, _080C93C8 @ =gUnknown_2023D6C _080C93A6: ldrb r3, [r0] ldr r0, _080C93CC @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r1, _080C93D0 @ =gUnknown_2023E0C 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 _080C93C8: .4byte gUnknown_2023D6C _080C93CC: .4byte gUnknown_2023FF4 _080C93D0: .4byte gUnknown_2023E0C thumb_func_end BattleAICmd_get_stockpile_count thumb_func_start BattleAICmd_is_double_battle BattleAICmd_is_double_battle: @ 80C93D4 ldr r0, _080C93F0 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r0, _080C93F4 @ =gUnknown_2022B4C ldr r0, [r0] movs r1, 0x1 ands r0, r1 str r0, [r2, 0x8] ldr r1, _080C93F8 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C93F0: .4byte gUnknown_2023FF4 _080C93F4: .4byte gUnknown_2022B4C _080C93F8: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_is_double_battle thumb_func_start BattleAICmd_get_used_held_item BattleAICmd_get_used_held_item: @ 80C93FC push {r4,lr} ldr r0, _080C9410 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C9418 ldr r0, _080C9414 @ =gUnknown_2023D6B b _080C941A .align 2, 0 _080C9410: .4byte gUnknown_2039A00 _080C9414: .4byte gUnknown_2023D6B _080C9418: ldr r0, _080C943C @ =gUnknown_2023D6C _080C941A: ldrb r3, [r0] ldr r0, _080C9440 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r0, _080C9444 @ =gUnknown_2023FE8 ldr r1, [r0] lsls r0, r3, 1 adds r0, r1 adds r0, 0xB8 ldrb r0, [r0] str r0, [r2, 0x8] ldr r0, [r4] adds r0, 0x2 str r0, [r4] pop {r4} pop {r0} bx r0 .align 2, 0 _080C943C: .4byte gUnknown_2023D6C _080C9440: .4byte gUnknown_2023FF4 _080C9444: .4byte gUnknown_2023FE8 thumb_func_end BattleAICmd_get_used_held_item thumb_func_start BattleAICmd_get_move_type_from_result BattleAICmd_get_move_type_from_result: @ 80C9448 ldr r0, _080C9468 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C946C @ =gUnknown_8250C04 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, _080C9470 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C9468: .4byte gUnknown_2023FF4 _080C946C: .4byte gUnknown_8250C04 _080C9470: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_move_type_from_result thumb_func_start BattleAICmd_get_move_power_from_result BattleAICmd_get_move_power_from_result: @ 80C9474 ldr r0, _080C9494 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C9498 @ =gUnknown_8250C04 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, _080C949C @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C9494: .4byte gUnknown_2023FF4 _080C9498: .4byte gUnknown_8250C04 _080C949C: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_move_power_from_result thumb_func_start BattleAICmd_get_move_effect_from_result BattleAICmd_get_move_effect_from_result: @ 80C94A0 ldr r0, _080C94C0 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r3, [r0, 0x14] ldr r2, _080C94C4 @ =gUnknown_8250C04 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, _080C94C8 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x1 str r0, [r1] bx lr .align 2, 0 _080C94C0: .4byte gUnknown_2023FF4 _080C94C4: .4byte gUnknown_8250C04 _080C94C8: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_get_move_effect_from_result thumb_func_start BattleAICmd_get_protect_count BattleAICmd_get_protect_count: @ 80C94CC push {r4,lr} ldr r0, _080C94E0 @ =gUnknown_2039A00 ldr r1, [r0] ldrb r1, [r1, 0x1] adds r4, r0, 0 cmp r1, 0x1 bne _080C94E8 ldr r0, _080C94E4 @ =gUnknown_2023D6B b _080C94EA .align 2, 0 _080C94E0: .4byte gUnknown_2039A00 _080C94E4: .4byte gUnknown_2023D6B _080C94E8: ldr r0, _080C950C @ =gUnknown_2023D6C _080C94EA: ldrb r3, [r0] ldr r0, _080C9510 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldr r1, _080C9514 @ =gUnknown_2023E0C 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 _080C950C: .4byte gUnknown_2023D6C _080C9510: .4byte gUnknown_2023FF4 _080C9514: .4byte gUnknown_2023E0C thumb_func_end BattleAICmd_get_protect_count thumb_func_start nullsub_68 nullsub_68: @ 80C9518 bx lr thumb_func_end nullsub_68 thumb_func_start nullsub_69 nullsub_69: @ 80C951C bx lr thumb_func_end nullsub_69 thumb_func_start nullsub_70 nullsub_70: @ 80C9520 bx lr thumb_func_end nullsub_70 thumb_func_start nullsub_71 nullsub_71: @ 80C9524 bx lr thumb_func_end nullsub_71 thumb_func_start nullsub_72 nullsub_72: @ 80C9528 bx lr thumb_func_end nullsub_72 thumb_func_start nullsub_73 nullsub_73: @ 80C952C bx lr thumb_func_end nullsub_73 thumb_func_start BattleAICmd_call BattleAICmd_call: @ 80C9530 push {r4,lr} ldr r4, _080C955C @ =gUnknown_2039A00 ldr r0, [r4] adds r0, 0x5 bl AIStackPushVar 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 _080C955C: .4byte gUnknown_2039A00 thumb_func_end BattleAICmd_call thumb_func_start sub_80C9560 sub_80C9560: @ 80C9560 ldr r3, _080C957C @ =gUnknown_2039A00 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 _080C957C: .4byte gUnknown_2039A00 thumb_func_end sub_80C9560 thumb_func_start BattleAICmd_end BattleAICmd_end: @ 80C9580 push {lr} bl AIStackPop lsls r0, 24 cmp r0, 0 bne _080C959A ldr r0, _080C95A0 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x14] ldrb r1, [r2, 0x10] movs r0, 0x1 orrs r0, r1 strb r0, [r2, 0x10] _080C959A: pop {r0} bx r0 .align 2, 0 _080C95A0: .4byte gUnknown_2023FF4 thumb_func_end BattleAICmd_end thumb_func_start BattleAICmd_if_level_cond BattleAICmd_if_level_cond: @ 80C95A4 push {r4,r5,lr} ldr r5, _080C95BC @ =gUnknown_2039A00 ldr r4, [r5] ldrb r0, [r4, 0x1] cmp r0, 0x1 beq _080C95F8 cmp r0, 0x1 bgt _080C95C0 cmp r0, 0 beq _080C95C6 b _080C9674 .align 2, 0 _080C95BC: .4byte gUnknown_2039A00 _080C95C0: cmp r0, 0x2 beq _080C9628 b _080C9674 _080C95C6: ldr r3, _080C95EC @ =gUnknown_2023BE4 ldr r0, _080C95F0 @ =gUnknown_2023D6B ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _080C95F4 @ =gUnknown_2023D6C ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bhi _080C964A b _080C9670 .align 2, 0 _080C95EC: .4byte gUnknown_2023BE4 _080C95F0: .4byte gUnknown_2023D6B _080C95F4: .4byte gUnknown_2023D6C _080C95F8: ldr r3, _080C961C @ =gUnknown_2023BE4 ldr r0, _080C9620 @ =gUnknown_2023D6B ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _080C9624 @ =gUnknown_2023D6C ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bcc _080C964A b _080C9670 .align 2, 0 _080C961C: .4byte gUnknown_2023BE4 _080C9620: .4byte gUnknown_2023D6B _080C9624: .4byte gUnknown_2023D6C _080C9628: ldr r3, _080C9664 @ =gUnknown_2023BE4 ldr r0, _080C9668 @ =gUnknown_2023D6B ldrb r0, [r0] movs r2, 0x58 adds r1, r0, 0 muls r1, r2 adds r1, r3 adds r1, 0x2A ldr r0, _080C966C @ =gUnknown_2023D6C ldrb r0, [r0] muls r0, r2 adds r0, r3 adds r0, 0x2A ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _080C9670 _080C964A: 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 _080C9674 .align 2, 0 _080C9664: .4byte gUnknown_2023BE4 _080C9668: .4byte gUnknown_2023D6B _080C966C: .4byte gUnknown_2023D6C _080C9670: adds r0, r4, 0x6 str r0, [r5] _080C9674: pop {r4,r5} pop {r0} bx r0 thumb_func_end BattleAICmd_if_level_cond thumb_func_start sub_80C967C sub_80C967C: @ 80C967C push {lr} ldr r2, _080C96B0 @ =gUnknown_2023E0C ldr r0, _080C96B4 @ =gUnknown_2023D6C 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 _080C96BC ldr r3, _080C96B8 @ =gUnknown_2039A00 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 _080C96C4 .align 2, 0 _080C96B0: .4byte gUnknown_2023E0C _080C96B4: .4byte gUnknown_2023D6C _080C96B8: .4byte gUnknown_2039A00 _080C96BC: ldr r1, _080C96C8 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080C96C4: pop {r0} bx r0 .align 2, 0 _080C96C8: .4byte gUnknown_2039A00 thumb_func_end sub_80C967C thumb_func_start sub_80C96CC sub_80C96CC: @ 80C96CC push {lr} ldr r2, _080C9700 @ =gUnknown_2023E0C ldr r0, _080C9704 @ =gUnknown_2023D6C 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 _080C970C ldr r3, _080C9708 @ =gUnknown_2039A00 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 _080C9714 .align 2, 0 _080C9700: .4byte gUnknown_2023E0C _080C9704: .4byte gUnknown_2023D6C _080C9708: .4byte gUnknown_2039A00 _080C970C: ldr r1, _080C9718 @ =gUnknown_2039A00 ldr r0, [r1] adds r0, 0x5 str r0, [r1] _080C9714: pop {r0} bx r0 .align 2, 0 _080C9718: .4byte gUnknown_2039A00 thumb_func_end sub_80C96CC thumb_func_start AIStackPushVar AIStackPushVar: @ 80C971C push {r4,lr} ldr r1, _080C973C @ =gUnknown_2023FF4 ldr r1, [r1] ldr r3, [r1, 0x1C] adds r4, r3, 0 adds r4, 0x20 ldrb r1, [r4] adds r2, r1, 0x1 strb r2, [r4] lsls r1, 24 lsrs r1, 22 adds r3, r1 str r0, [r3] pop {r4} pop {r0} bx r0 .align 2, 0 _080C973C: .4byte gUnknown_2023FF4 thumb_func_end AIStackPushVar thumb_func_start AIStackPushVar_cursor AIStackPushVar_cursor: @ 80C9740 ldr r0, _080C9760 @ =gUnknown_2023FF4 ldr r0, [r0] ldr r2, [r0, 0x1C] adds r3, r2, 0 adds r3, 0x20 ldrb r0, [r3] adds r1, r0, 0x1 strb r1, [r3] lsls r0, 24 lsrs r0, 22 adds r2, r0 ldr r0, _080C9764 @ =gUnknown_2039A00 ldr r0, [r0] str r0, [r2] bx lr .align 2, 0 _080C9760: .4byte gUnknown_2023FF4 _080C9764: .4byte gUnknown_2039A00 thumb_func_end AIStackPushVar_cursor thumb_func_start AIStackPop AIStackPop: @ 80C9768 push {lr} ldr r3, _080C9780 @ =gUnknown_2023FF4 ldr r0, [r3] ldr r0, [r0, 0x1C] adds r1, r0, 0 adds r1, 0x20 ldrb r0, [r1] cmp r0, 0 bne _080C9784 movs r0, 0 b _080C979E .align 2, 0 _080C9780: .4byte gUnknown_2023FF4 _080C9784: subs r0, 0x1 strb r0, [r1] ldr r2, _080C97A4 @ =gUnknown_2039A00 ldr r0, [r3] ldr r1, [r0, 0x1C] adds r0, r1, 0 adds r0, 0x20 ldrb r0, [r0] lsls r0, 2 adds r1, r0 ldr r0, [r1] str r0, [r2] movs r0, 0x1 _080C979E: pop {r1} bx r1 .align 2, 0 _080C97A4: .4byte gUnknown_2039A00 thumb_func_end AIStackPop .align 2, 0 @ Don't pad with nop.