diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | asm/decompress.s | 287 | ||||
-rw-r--r-- | asm/rom3.s | 89200 | ||||
-rw-r--r-- | asm/rom_800D42C.s | 88931 | ||||
-rw-r--r-- | ld_script.txt | 2 |
5 files changed, 89222 insertions, 89200 deletions
@@ -46,6 +46,8 @@ C_OBJS := $(C_SRCS:%.c=%.o) ASM_OBJS := \ asm/crt0.o \ asm/rom3.o \ +asm/decompress.o \ +asm/rom_800D42C.o \ asm/calculate_base_damage.o \ asm/rom_803D1FC.o \ asm/rom_8040EB4.o \ diff --git a/asm/decompress.s b/asm/decompress.s new file mode 100644 index 000000000..32349001f --- /dev/null +++ b/asm/decompress.s @@ -0,0 +1,287 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_800D238 +sub_800D238: @ 800D238 + push {lr} + bl LZ77UnCompWram + pop {r0} + bx r0 + thumb_func_end sub_800D238 + + thumb_func_start LZDecompressVram +LZDecompressVram: @ 800D244 + push {lr} + bl LZ77UnCompVram + pop {r0} + bx r0 + thumb_func_end LZDecompressVram + + thumb_func_start LoadCompressedObjectPic +LoadCompressedObjectPic: @ 800D250 + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + ldr r0, [r4] + movs r5, 0x80 + lsls r5, 18 + adds r1, r5, 0 + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, 0x6] + lsls r1, 16 + ldrh r0, [r4, 0x4] + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end LoadCompressedObjectPic + + thumb_func_start LoadCompressedObjectPicOverrideBuffer +LoadCompressedObjectPicOverrideBuffer: @ 800D27C + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r0, 0 + adds r5, r1, 0 + ldr r0, [r4] + bl LZ77UnCompWram + str r5, [sp] + ldrh r1, [r4, 0x6] + lsls r1, 16 + ldrh r0, [r4, 0x4] + orrs r0, r1 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpriteSheet + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end LoadCompressedObjectPicOverrideBuffer + + thumb_func_start LoadCompressedObjectPalette +LoadCompressedObjectPalette: @ 800D2A4 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + ldr r0, [r5] + movs r4, 0x80 + lsls r4, 18 + adds r1, r4, 0 + bl LZ77UnCompWram + str r4, [sp] + ldrh r2, [r5, 0x4] + ldr r1, _0800D2D4 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + orrs r0, r2 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpritePalette + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D2D4: .4byte 0xffff0000 + thumb_func_end LoadCompressedObjectPalette + + thumb_func_start LoadCompressedObjectPaletteOverrideBuffer +LoadCompressedObjectPaletteOverrideBuffer: @ 800D2D8 + push {r4,r5,lr} + sub sp, 0x8 + adds r5, r0, 0 + adds r4, r1, 0 + ldr r0, [r5] + bl LZ77UnCompWram + str r4, [sp] + ldrh r2, [r5, 0x4] + ldr r1, _0800D304 @ =0xffff0000 + ldr r0, [sp, 0x4] + ands r0, r1 + orrs r0, r2 + str r0, [sp, 0x4] + mov r0, sp + bl LoadSpritePalette + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D304: .4byte 0xffff0000 + thumb_func_end LoadCompressedObjectPaletteOverrideBuffer + + thumb_func_start DecompressPicFromTable_2 +DecompressPicFromTable_2: @ 800D308 + push {lr} + adds r2, r0, 0 + ldr r3, [sp, 0x4] + ldr r1, [sp, 0x8] + movs r0, 0xCE + lsls r0, 1 + cmp r1, r0 + ble _0800D328 + ldr r0, _0800D324 @ =gMonFrontPicTable + ldr r0, [r0] + adds r1, r3, 0 + bl LZ77UnCompWram + b _0800D330 + .align 2, 0 +_0800D324: .4byte gMonFrontPicTable +_0800D328: + ldr r0, [r2] + adds r1, r3, 0 + bl LZ77UnCompWram +_0800D330: + pop {r0} + bx r0 + thumb_func_end DecompressPicFromTable_2 + + thumb_func_start sub_800D334 +sub_800D334: @ 800D334 + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + ldr r2, [sp, 0x20] + ldr r1, _0800D354 @ =gUnknown_081FAF4C + ldr r0, [r1] + cmp r2, r0 + beq _0800D34E + ldr r0, [r1, 0x8] + cmp r2, r0 + bne _0800D358 +_0800D34E: + movs r1, 0 + b _0800D35A + .align 2, 0 +_0800D354: .4byte gUnknown_081FAF4C +_0800D358: + movs r1, 0x1 +_0800D35A: + str r2, [sp] + ldr r0, [sp, 0x24] + str r0, [sp, 0x4] + ldr r0, [sp, 0x28] + str r0, [sp, 0x8] + str r1, [sp, 0xC] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_800D378 + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_800D334 + + thumb_func_start sub_800D378 +sub_800D378: @ 800D378 + push {r4-r7,lr} + adds r1, r0, 0 + ldr r5, [sp, 0x14] + ldr r6, [sp, 0x18] + ldr r4, [sp, 0x1C] + ldr r0, [sp, 0x20] + lsls r0, 24 + lsrs r7, r0, 24 + cmp r6, SPECIES_UNOWN + bne _0800D3EC + movs r0, 0xC0 + lsls r0, 18 + ands r0, r4 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r4 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r4 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r4 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _0800D3C0 + movs r1, SPECIES_UNOWN + b _0800D3CA +_0800D3C0: + movs r2, 0xCE + lsls r2, 1 + adds r0, r1, r2 + lsls r0, 16 + lsrs r1, r0, 16 +_0800D3CA: + cmp r7, 0 + bne _0800D3DC + ldr r0, _0800D3D8 @ =gMonBackPicTable + lsls r1, 3 + adds r1, r0 + ldr r0, [r1] + b _0800D3F8 + .align 2, 0 +_0800D3D8: .4byte gMonBackPicTable +_0800D3DC: + ldr r0, _0800D3E8 @ =gMonFrontPicTable + lsls r1, 3 + adds r1, r0 + ldr r0, [r1] + b _0800D3F8 + .align 2, 0 +_0800D3E8: .4byte gMonFrontPicTable +_0800D3EC: + movs r0, 0xCE + lsls r0, 1 + cmp r6, r0 + ble _0800D404 + ldr r0, _0800D400 @ =gMonFrontPicTable + ldr r0, [r0] +_0800D3F8: + adds r1, r5, 0 + bl LZ77UnCompWram + b _0800D40C + .align 2, 0 +_0800D400: .4byte gMonFrontPicTable +_0800D404: + ldr r0, [r1] + adds r1, r5, 0 + bl LZ77UnCompWram +_0800D40C: + lsls r0, r6, 16 + lsrs r0, 16 + adds r1, r4, 0 + adds r2, r5, 0 + adds r3, r7, 0 + bl DrawSpindaSpots + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800D378 + + thumb_func_start Unused_LZDecompressWramIndirect +Unused_LZDecompressWramIndirect: @ 800D420 + push {lr} + ldr r0, [r0] + bl LZ77UnCompWram + pop {r0} + bx r0 + thumb_func_end Unused_LZDecompressWramIndirect + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom3.s b/asm/rom3.s index c562583e9..736b7b6ad 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -3408,89204 +3408,4 @@ dp01_build_cmdbuf_x37_a: @ 800D218 _0800D234: .4byte gUnknown_03004040 thumb_func_end dp01_build_cmdbuf_x37_a - thumb_func_start sub_800D238 -sub_800D238: @ 800D238 - push {lr} - bl LZ77UnCompWram - pop {r0} - bx r0 - thumb_func_end sub_800D238 - - thumb_func_start LZDecompressVram -LZDecompressVram: @ 800D244 - push {lr} - bl LZ77UnCompVram - pop {r0} - bx r0 - thumb_func_end LZDecompressVram - - thumb_func_start LoadCompressedObjectPic -LoadCompressedObjectPic: @ 800D250 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r0, [r4] - movs r5, 0x80 - lsls r5, 18 - adds r1, r5, 0 - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadCompressedObjectPic - - thumb_func_start LoadCompressedObjectPicOverrideBuffer -LoadCompressedObjectPicOverrideBuffer: @ 800D27C - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - bl LZ77UnCompWram - str r5, [sp] - ldrh r1, [r4, 0x6] - lsls r1, 16 - ldrh r0, [r4, 0x4] - orrs r0, r1 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadCompressedObjectPicOverrideBuffer - - thumb_func_start LoadCompressedObjectPalette -LoadCompressedObjectPalette: @ 800D2A4 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5] - movs r4, 0x80 - lsls r4, 18 - adds r1, r4, 0 - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, 0x4] - ldr r1, _0800D2D4 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D2D4: .4byte 0xffff0000 - thumb_func_end LoadCompressedObjectPalette - - thumb_func_start LoadCompressedObjectPaletteOverrideBuffer -LoadCompressedObjectPaletteOverrideBuffer: @ 800D2D8 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r0, [r5] - bl LZ77UnCompWram - str r4, [sp] - ldrh r2, [r5, 0x4] - ldr r1, _0800D304 @ =0xffff0000 - ldr r0, [sp, 0x4] - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpritePalette - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D304: .4byte 0xffff0000 - thumb_func_end LoadCompressedObjectPaletteOverrideBuffer - - thumb_func_start DecompressPicFromTable_2 -DecompressPicFromTable_2: @ 800D308 - push {lr} - adds r2, r0, 0 - ldr r3, [sp, 0x4] - ldr r1, [sp, 0x8] - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - ble _0800D328 - ldr r0, _0800D324 @ =gMonFrontPicTable - ldr r0, [r0] - adds r1, r3, 0 - bl LZ77UnCompWram - b _0800D330 - .align 2, 0 -_0800D324: .4byte gMonFrontPicTable -_0800D328: - ldr r0, [r2] - adds r1, r3, 0 - bl LZ77UnCompWram -_0800D330: - pop {r0} - bx r0 - thumb_func_end DecompressPicFromTable_2 - - thumb_func_start sub_800D334 -sub_800D334: @ 800D334 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldr r2, [sp, 0x20] - ldr r1, _0800D354 @ =gUnknown_081FAF4C - ldr r0, [r1] - cmp r2, r0 - beq _0800D34E - ldr r0, [r1, 0x8] - cmp r2, r0 - bne _0800D358 -_0800D34E: - movs r1, 0 - b _0800D35A - .align 2, 0 -_0800D354: .4byte gUnknown_081FAF4C -_0800D358: - movs r1, 0x1 -_0800D35A: - str r2, [sp] - ldr r0, [sp, 0x24] - str r0, [sp, 0x4] - ldr r0, [sp, 0x28] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_800D378 - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_800D334 - - thumb_func_start sub_800D378 -sub_800D378: @ 800D378 - push {r4-r7,lr} - adds r1, r0, 0 - ldr r5, [sp, 0x14] - ldr r6, [sp, 0x18] - ldr r4, [sp, 0x1C] - ldr r0, [sp, 0x20] - lsls r0, 24 - lsrs r7, r0, 24 - cmp r6, SPECIES_UNOWN - bne _0800D3EC - movs r0, 0xC0 - lsls r0, 18 - ands r0, r4 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r4 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r4 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r4 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _0800D3C0 - movs r1, SPECIES_UNOWN - b _0800D3CA -_0800D3C0: - movs r2, 0xCE - lsls r2, 1 - adds r0, r1, r2 - lsls r0, 16 - lsrs r1, r0, 16 -_0800D3CA: - cmp r7, 0 - bne _0800D3DC - ldr r0, _0800D3D8 @ =gMonBackPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _0800D3F8 - .align 2, 0 -_0800D3D8: .4byte gMonBackPicTable -_0800D3DC: - ldr r0, _0800D3E8 @ =gMonFrontPicTable - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] - b _0800D3F8 - .align 2, 0 -_0800D3E8: .4byte gMonFrontPicTable -_0800D3EC: - movs r0, 0xCE - lsls r0, 1 - cmp r6, r0 - ble _0800D404 - ldr r0, _0800D400 @ =gMonFrontPicTable - ldr r0, [r0] -_0800D3F8: - adds r1, r5, 0 - bl LZ77UnCompWram - b _0800D40C - .align 2, 0 -_0800D400: .4byte gMonFrontPicTable -_0800D404: - ldr r0, [r1] - adds r1, r5, 0 - bl LZ77UnCompWram -_0800D40C: - lsls r0, r6, 16 - lsrs r0, 16 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r7, 0 - bl DrawSpindaSpots - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800D378 - - thumb_func_start Unused_LZDecompressWramIndirect -Unused_LZDecompressWramIndirect: @ 800D420 - push {lr} - ldr r0, [r0] - bl LZ77UnCompWram - pop {r0} - bx r0 - thumb_func_end Unused_LZDecompressWramIndirect - - thumb_func_start unref_sub_800D42C -unref_sub_800D42C: @ 800D42C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r9, r0 - str r1, [sp] - str r2, [sp, 0x4] - adds r5, r3, 0 - movs r0, 0x1 - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _0800D44C - b _0800D5E4 -_0800D44C: - asrs r0, r1, 1 - adds r0, 0x4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - movs r0, 0 - ldr r2, [sp] - cmp r0, r2 - blt _0800D460 - b _0800D674 -_0800D460: - movs r4, 0x8 - subs r1, r4, r1 - str r1, [sp, 0x10] -_0800D466: - movs r7, 0 - adds r0, 0x1 - str r0, [sp, 0x14] - ldr r0, [sp, 0x10] - cmp r7, r0 - bge _0800D4E2 - ldr r1, [sp, 0x8] - lsls r1, 8 - str r1, [sp, 0x18] - movs r2, 0 - mov r10, r2 - mov r0, r9 - movs r4, 0x8 - subs r0, r4, r0 - str r0, [sp, 0xC] -_0800D484: - movs r3, 0 - asrs r0, r7, 1 - adds r1, r7, 0 - movs r2, 0x1 - ands r1, r2 - str r1, [sp, 0x20] - lsls r0, 8 - mov r8, r0 - mov r12, r5 -_0800D496: - lsls r1, r3, 5 - ldr r4, [sp, 0x18] - adds r0, r5, r4 - adds r0, r1 - mov r1, r8 - adds r2, r0, r1 - mov r1, r12 - add r1, r8 - movs r6, 0xF -_0800D4A8: - ldr r4, [sp, 0x20] - cmp r4, 0 - bne _0800D4B8 - strb r4, [r1] - add r4, sp, 0x20 - ldrb r4, [r4] - strb r4, [r2, 0x10] - b _0800D4C6 -_0800D4B8: - mov r0, r10 - strb r0, [r1, 0x10] - movs r4, 0x80 - lsls r4, 1 - adds r4, r2, r4 - str r4, [sp, 0x1C] - strb r0, [r4] -_0800D4C6: - adds r2, 0x1 - adds r1, 0x1 - subs r6, 0x1 - cmp r6, 0 - bge _0800D4A8 - movs r0, 0x20 - add r12, r0 - adds r3, 0x1 - cmp r3, 0x7 - ble _0800D496 - adds r7, 0x1 - ldr r1, [sp, 0xC] - cmp r7, r1 - blt _0800D484 -_0800D4E2: - movs r7, 0 - movs r2, 0 -_0800D4E6: - movs r6, 0 - adds r4, r7, 0x1 - mov r8, r4 - lsls r4, r7, 5 -_0800D4EE: - adds r0, r6, 0x1 - mov r10, r0 - lsls r1, r6, 8 - adds r0, r1, 0 - adds r0, 0xC0 - adds r0, r5, r0 - adds r0, r4 - adds r1, r5, r1 - adds r1, r4 - movs r3, 0x1F -_0800D502: - strb r2, [r1] - strb r2, [r0] - adds r0, 0x1 - adds r1, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800D502 - mov r6, r10 - cmp r6, 0x7 - ble _0800D4EE - mov r7, r8 - cmp r7, 0x1 - ble _0800D4E6 - mov r1, r9 - cmp r1, 0x5 - bne _0800D528 - movs r2, 0x90 - lsls r2, 1 - adds r5, r2 -_0800D528: - movs r7, 0 - cmp r7, r9 - bge _0800D5BE -_0800D52E: - movs r3, 0 - adds r7, 0x1 - mov r8, r7 - cmp r3, r9 - bge _0800D59E -_0800D538: - adds r3, 0x1 - mov r10, r3 - ldr r4, [sp, 0x4] - adds r4, 0x20 - adds r7, r5, 0 - adds r7, 0x20 - movs r0, 0x12 - adds r0, r5 - mov r12, r0 - ldr r2, [sp, 0x4] - adds r3, r5, 0 - movs r6, 0x3 -_0800D550: - ldrb r0, [r2] - mov r1, r12 - strb r0, [r1] - ldrb r0, [r2, 0x1] - strb r0, [r1, 0x1] - ldrb r0, [r2, 0x2] - strb r0, [r1, 0x1E] - ldrb r0, [r2, 0x3] - strb r0, [r1, 0x1F] - movs r0, 0x81 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r2, 0x10] - strb r0, [r1] - ldr r0, _0800D5A8 @ =0x00000103 - adds r1, r3, r0 - ldrb r0, [r2, 0x11] - strb r0, [r1] - movs r0, 0x90 - lsls r0, 1 - adds r1, r3, r0 - ldrb r0, [r2, 0x12] - strb r0, [r1] - ldr r0, _0800D5AC @ =0x00000121 - adds r1, r3, r0 - ldrb r0, [r2, 0x13] - strb r0, [r1] - movs r1, 0x4 - add r12, r1 - adds r2, 0x4 - adds r3, 0x4 - subs r6, 0x1 - cmp r6, 0 - bge _0800D550 - str r4, [sp, 0x4] - adds r5, r7, 0 - mov r3, r10 - cmp r3, r9 - blt _0800D538 -_0800D59E: - mov r2, r9 - cmp r2, 0x7 - bne _0800D5B0 - adds r5, 0x20 - b _0800D5B8 - .align 2, 0 -_0800D5A8: .4byte 0x00000103 -_0800D5AC: .4byte 0x00000121 -_0800D5B0: - mov r4, r9 - cmp r4, 0x5 - bne _0800D5B8 - adds r5, 0x60 -_0800D5B8: - mov r7, r8 - cmp r7, r9 - blt _0800D52E -_0800D5BE: - mov r0, r9 - cmp r0, 0x7 - bne _0800D5CC - movs r1, 0x80 - lsls r1, 1 - adds r5, r1 - b _0800D5D8 -_0800D5CC: - mov r2, r9 - cmp r2, 0x5 - bne _0800D5D8 - movs r4, 0xF0 - lsls r4, 1 - adds r5, r4 -_0800D5D8: - ldr r0, [sp, 0x14] - ldr r1, [sp] - cmp r0, r1 - bge _0800D5E2 - b _0800D466 -_0800D5E2: - b _0800D674 -_0800D5E4: - movs r6, 0 - ldr r2, [sp] - cmp r6, r2 - bge _0800D674 -_0800D5EC: - adds r6, 0x1 - mov r10, r6 - mov r4, r9 - cmp r4, 0x6 - bne _0800D604 - movs r0, 0 - movs r3, 0xFF -_0800D5FA: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800D5FA -_0800D604: - movs r7, 0 - cmp r7, r9 - bge _0800D658 -_0800D60A: - adds r7, 0x1 - mov r8, r7 - mov r1, r9 - lsls r0, r1, 5 - cmp r1, 0x6 - bne _0800D624 - movs r1, 0 - movs r3, 0x1F -_0800D61A: - strb r1, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800D61A -_0800D624: - adds r1, r0, 0 - cmp r1, 0 - ble _0800D63E - adds r3, r1, 0 -_0800D62C: - ldr r2, [sp, 0x4] - ldrb r0, [r2] - strb r0, [r5] - adds r2, 0x1 - str r2, [sp, 0x4] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bne _0800D62C -_0800D63E: - mov r4, r9 - cmp r4, 0x6 - bne _0800D652 - movs r0, 0 - movs r3, 0x1F -_0800D648: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800D648 -_0800D652: - mov r7, r8 - cmp r7, r9 - blt _0800D60A -_0800D658: - mov r0, r9 - cmp r0, 0x6 - bne _0800D66C - movs r0, 0 - movs r3, 0xFF -_0800D662: - strb r0, [r5] - adds r5, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _0800D662 -_0800D66C: - mov r6, r10 - ldr r1, [sp] - cmp r6, r1 - blt _0800D5EC -_0800D674: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end unref_sub_800D42C - - thumb_func_start unref_sub_800D684 -unref_sub_800D684: @ 800D684 - push {lr} - bl ResetSpriteData - ldr r0, _0800D6B8 @ =gSpriteTemplate_81F96D0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0800D6BC @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r0, _0800D6C0 @ =sub_800D6C4 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0800D6B8: .4byte gSpriteTemplate_81F96D0 -_0800D6BC: .4byte gSprites -_0800D6C0: .4byte sub_800D6C4 - thumb_func_end unref_sub_800D684 - - thumb_func_start sub_800D6C4 -sub_800D6C4: @ 800D6C4 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end sub_800D6C4 - - thumb_func_start sub_800D6D4 -sub_800D6D4: @ 800D6D4 - push {r4,r5,lr} - ldr r3, _0800D72C @ =0x04000208 - ldrh r2, [r3] - movs r5, 0 - strh r5, [r3] - ldr r4, _0800D730 @ =0x04000200 - ldrh r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r4] - strh r2, [r3] - ldr r1, _0800D734 @ =REG_DISPSTAT - movs r0, 0x8 - strh r0, [r1] - adds r1, 0x4 - movs r2, 0x98 - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0800D738 @ =0x00009c04 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0800D73C @ =0x00005e05 - adds r0, r2, 0 - strh r0, [r1] - adds r1, 0x2 - ldr r2, _0800D740 @ =0x00005a0b - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0800D744 @ =REG_BLDCNT - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - adds r0, 0x2 - strh r5, [r0] - subs r1, 0xE - ldr r2, _0800D748 @ =0x0000bf40 - adds r0, r2, 0 - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800D72C: .4byte 0x04000208 -_0800D730: .4byte 0x04000200 -_0800D734: .4byte REG_DISPSTAT -_0800D738: .4byte 0x00009c04 -_0800D73C: .4byte 0x00005e05 -_0800D740: .4byte 0x00005a0b -_0800D744: .4byte REG_BLDCNT -_0800D748: .4byte 0x0000bf40 - thumb_func_end sub_800D6D4 - - thumb_func_start sub_800D74C -sub_800D74C: @ 800D74C - push {r4,lr} - movs r0, 0x12 - bl SetTextWindowBaseTileNum - ldr r4, _0800D79C @ =gUnknown_03004210 - adds r0, r4, 0 - movs r1, 0x1 - bl LoadTextWindowGraphics_OverridePalSlot - movs r0, 0x22 - bl SetTextWindowBaseTileNum - adds r0, r4, 0 - movs r1, 0x1 - bl LoadTextWindowGraphics_OverridePalSlot - ldr r3, _0800D7A0 @ =gPlttBufferUnfaded - adds r0, r3, 0 - adds r0, 0xB8 - ldr r1, _0800D7A4 @ =0x00007fe0 - strh r1, [r0] - adds r2, r3, 0 - adds r2, 0xBA - ldr r1, _0800D7A8 @ =0x00002529 - strh r1, [r2] - adds r2, 0x2 - ldr r1, _0800D7AC @ =0x00007fff - strh r1, [r2] - adds r2, 0x2 - ldr r1, _0800D7B0 @ =0x0000675a - strh r1, [r2] - ldr r1, _0800D7B4 @ =gPlttBufferFaded + 0xB8 - movs r2, 0x4 - bl CpuSet - bl sub_8032A38 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800D79C: .4byte gUnknown_03004210 -_0800D7A0: .4byte gPlttBufferUnfaded -_0800D7A4: .4byte 0x00007fe0 -_0800D7A8: .4byte 0x00002529 -_0800D7AC: .4byte 0x00007fff -_0800D7B0: .4byte 0x0000675a -_0800D7B4: .4byte gPlttBufferFaded + 0xB8 - thumb_func_end sub_800D74C - - thumb_func_start sub_800D7B8 -sub_800D7B8: @ 800D7B8 - push {r4,r5,lr} - ldr r0, _0800D7DC @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0800D7E0 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - beq _0800D7F8 - ldr r0, _0800D7E4 @ =gBattleTerrainTiles_Building - ldr r1, _0800D7E8 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D7EC @ =gBattleTerrainTilemap_Building - ldr r1, _0800D7F0 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower - b _0800DA66 - .align 2, 0 -_0800D7DC: .4byte gUnknown_020239F8 -_0800D7E0: .4byte 0x00000902 -_0800D7E4: .4byte gBattleTerrainTiles_Building -_0800D7E8: .4byte 0x06008000 -_0800D7EC: .4byte gBattleTerrainTilemap_Building -_0800D7F0: .4byte 0x0600d000 -_0800D7F4: .4byte gBattleTerrainPalette_BattleTower -_0800D7F8: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _0800D860 - ldr r0, _0800D820 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - bne _0800D838 - ldr r0, _0800D824 @ =gBattleTerrainTiles_Cave - ldr r1, _0800D828 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D82C @ =gBattleTerrainTilemap_Cave - ldr r1, _0800D830 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D834 @ =gBattleTerrainPalette_Groudon - b _0800DA66 - .align 2, 0 -_0800D820: .4byte gGameVersion -_0800D824: .4byte gBattleTerrainTiles_Cave -_0800D828: .4byte 0x06008000 -_0800D82C: .4byte gBattleTerrainTilemap_Cave -_0800D830: .4byte 0x0600d000 -_0800D834: .4byte gBattleTerrainPalette_Groudon -_0800D838: - ldr r0, _0800D84C @ =gBattleTerrainTiles_Water - ldr r1, _0800D850 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D854 @ =gBattleTerrainTilemap_Water - ldr r1, _0800D858 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D85C @ =gBattleTerrainPalette_Kyogre - b _0800DA66 - .align 2, 0 -_0800D84C: .4byte gBattleTerrainTiles_Water -_0800D850: .4byte 0x06008000 -_0800D854: .4byte gBattleTerrainTilemap_Water -_0800D858: .4byte 0x0600d000 -_0800D85C: .4byte gBattleTerrainPalette_Kyogre -_0800D860: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0800D8D8 - ldr r2, _0800D890 @ =gTrainers - ldr r0, _0800D894 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0x19 - bne _0800D8AC - ldr r0, _0800D898 @ =gBattleTerrainTiles_Building - ldr r1, _0800D89C @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D8A0 @ =gBattleTerrainTilemap_Building - ldr r1, _0800D8A4 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D8A8 @ =gBattleTerrainPalette_BuildingLeader - b _0800DA66 - .align 2, 0 -_0800D890: .4byte gTrainers -_0800D894: .4byte gTrainerBattleOpponent -_0800D898: .4byte gBattleTerrainTiles_Building -_0800D89C: .4byte 0x06008000 -_0800D8A0: .4byte gBattleTerrainTilemap_Building -_0800D8A4: .4byte 0x0600d000 -_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader -_0800D8AC: - cmp r0, 0x20 - bne _0800D8D8 - ldr r0, _0800D8C4 @ =gBattleTerrainTiles_Stadium - ldr r1, _0800D8C8 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D8CC @ =gBattleTerrainTilemap_Stadium - ldr r1, _0800D8D0 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D8D4 @ =gBattleTerrainPalette_StadiumSteven - b _0800DA66 - .align 2, 0 -_0800D8C4: .4byte gBattleTerrainTiles_Stadium -_0800D8C8: .4byte 0x06008000 -_0800D8CC: .4byte gBattleTerrainTilemap_Stadium -_0800D8D0: .4byte 0x0600d000 -_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven -_0800D8D8: - bl sav1_map_get_battletype - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - bls _0800D8E6 - b _0800DA9E -_0800D8E6: - lsls r0, 2 - ldr r1, _0800D8F0 @ =_0800D8F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800D8F0: .4byte _0800D8F4 - .align 2, 0 -_0800D8F4: - .4byte _0800D918 - .4byte _0800D964 - .4byte _0800D98C - .4byte _0800D9B4 - .4byte _0800D9DC - .4byte _0800DA04 - .4byte _0800DA2C - .4byte _0800DA54 - .4byte _0800DA84 -_0800D918: - ldr r4, _0800D954 @ =gBattleTerrainTable - ldr r5, _0800D958 @ =gUnknown_0300428C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldr r1, _0800D95C @ =0x06008000 - bl LZDecompressVram - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0x4 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0800D960 @ =0x0600d000 - bl LZDecompressVram - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r4, 0x10 - adds r0, r4 - ldr r0, [r0] - b _0800DA66 - .align 2, 0 -_0800D954: .4byte gBattleTerrainTable -_0800D958: .4byte gUnknown_0300428C -_0800D95C: .4byte 0x06008000 -_0800D960: .4byte 0x0600d000 -_0800D964: - ldr r0, _0800D978 @ =gBattleTerrainTiles_Building - ldr r1, _0800D97C @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D980 @ =gBattleTerrainTilemap_Building - ldr r1, _0800D984 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D988 @ =gBattleTerrainPalette_BuildingGym - b _0800DA66 - .align 2, 0 -_0800D978: .4byte gBattleTerrainTiles_Building -_0800D97C: .4byte 0x06008000 -_0800D980: .4byte gBattleTerrainTilemap_Building -_0800D984: .4byte 0x0600d000 -_0800D988: .4byte gBattleTerrainPalette_BuildingGym -_0800D98C: - ldr r0, _0800D9A0 @ =gBattleTerrainTiles_Stadium - ldr r1, _0800D9A4 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D9A8 @ =gBattleTerrainTilemap_Stadium - ldr r1, _0800D9AC @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D9B0 @ =gBattleTerrainPalette_StadiumMagma - b _0800DA66 - .align 2, 0 -_0800D9A0: .4byte gBattleTerrainTiles_Stadium -_0800D9A4: .4byte 0x06008000 -_0800D9A8: .4byte gBattleTerrainTilemap_Stadium -_0800D9AC: .4byte 0x0600d000 -_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma -_0800D9B4: - ldr r0, _0800D9C8 @ =gBattleTerrainTiles_Stadium - ldr r1, _0800D9CC @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D9D0 @ =gBattleTerrainTilemap_Stadium - ldr r1, _0800D9D4 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800D9D8 @ =gBattleTerrainPalette_StadiumAqua - b _0800DA66 - .align 2, 0 -_0800D9C8: .4byte gBattleTerrainTiles_Stadium -_0800D9CC: .4byte 0x06008000 -_0800D9D0: .4byte gBattleTerrainTilemap_Stadium -_0800D9D4: .4byte 0x0600d000 -_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua -_0800D9DC: - ldr r0, _0800D9F0 @ =gBattleTerrainTiles_Stadium - ldr r1, _0800D9F4 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800D9F8 @ =gBattleTerrainTilemap_Stadium - ldr r1, _0800D9FC @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800DA00 @ =gBattleTerrainPalette_StadiumSidney - b _0800DA66 - .align 2, 0 -_0800D9F0: .4byte gBattleTerrainTiles_Stadium -_0800D9F4: .4byte 0x06008000 -_0800D9F8: .4byte gBattleTerrainTilemap_Stadium -_0800D9FC: .4byte 0x0600d000 -_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney -_0800DA04: - ldr r0, _0800DA18 @ =gBattleTerrainTiles_Stadium - ldr r1, _0800DA1C @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800DA20 @ =gBattleTerrainTilemap_Stadium - ldr r1, _0800DA24 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800DA28 @ =gBattleTerrainPalette_StadiumPhoebe - b _0800DA66 - .align 2, 0 -_0800DA18: .4byte gBattleTerrainTiles_Stadium -_0800DA1C: .4byte 0x06008000 -_0800DA20: .4byte gBattleTerrainTilemap_Stadium -_0800DA24: .4byte 0x0600d000 -_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe -_0800DA2C: - ldr r0, _0800DA40 @ =gBattleTerrainTiles_Stadium - ldr r1, _0800DA44 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800DA48 @ =gBattleTerrainTilemap_Stadium - ldr r1, _0800DA4C @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800DA50 @ =gBattleTerrainPalette_StadiumGlacia - b _0800DA66 - .align 2, 0 -_0800DA40: .4byte gBattleTerrainTiles_Stadium -_0800DA44: .4byte 0x06008000 -_0800DA48: .4byte gBattleTerrainTilemap_Stadium -_0800DA4C: .4byte 0x0600d000 -_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia -_0800DA54: - ldr r0, _0800DA70 @ =gBattleTerrainTiles_Stadium - ldr r1, _0800DA74 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800DA78 @ =gBattleTerrainTilemap_Stadium - ldr r1, _0800DA7C @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800DA80 @ =gBattleTerrainPalette_StadiumDrake -_0800DA66: - movs r1, 0x20 - movs r2, 0x60 - bl LoadCompressedPalette - b _0800DA9E - .align 2, 0 -_0800DA70: .4byte gBattleTerrainTiles_Stadium -_0800DA74: .4byte 0x06008000 -_0800DA78: .4byte gBattleTerrainTilemap_Stadium -_0800DA7C: .4byte 0x0600d000 -_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake -_0800DA84: - ldr r0, _0800DAA4 @ =gBattleTerrainTiles_Building - ldr r1, _0800DAA8 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0800DAAC @ =gBattleTerrainTilemap_Building - ldr r1, _0800DAB0 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0800DAB4 @ =gBattleTerrainPalette_BattleTower - movs r1, 0x20 - movs r2, 0x60 - bl LoadCompressedPalette -_0800DA9E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800DAA4: .4byte gBattleTerrainTiles_Building -_0800DAA8: .4byte 0x06008000 -_0800DAAC: .4byte gBattleTerrainTilemap_Building -_0800DAB0: .4byte 0x0600d000 -_0800DAB4: .4byte gBattleTerrainPalette_BattleTower - thumb_func_end sub_800D7B8 - - thumb_func_start sub_800DAB8 -sub_800DAB8: @ 800DAB8 - push {lr} - ldr r0, _0800DAE8 @ =gUnknown_08D00000 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - ldr r0, _0800DAEC @ =gUnknown_08D00524 - ldr r1, _0800DAF0 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 4 - bl CpuSet - ldr r0, _0800DAF4 @ =gUnknown_08D004E0 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - bl sub_800D74C - bl sub_800D7B8 - pop {r0} - bx r0 - .align 2, 0 -_0800DAE8: .4byte gUnknown_08D00000 -_0800DAEC: .4byte gUnknown_08D00524 -_0800DAF0: .4byte 0x0600c000 -_0800DAF4: .4byte gUnknown_08D004E0 - thumb_func_end sub_800DAB8 - - thumb_func_start sub_800DAF8 -sub_800DAF8: @ 800DAF8 - push {r4-r7,lr} - sub sp, 0xC - adds r7, r2, 0 - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - lsls r1, 24 - lsrs r3, r1, 24 - movs r4, 0 - ldr r0, _0800DB38 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800DBB4 - ldr r0, _0800DB3C @ =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - movs r2, 0x12 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _0800DB52 - cmp r3, 0x1 - beq _0800DB7A - cmp r3, 0x1 - bgt _0800DB40 - cmp r3, 0 - beq _0800DB4A - b _0800DB84 - .align 2, 0 -_0800DB38: .4byte gUnknown_020239F8 -_0800DB3C: .4byte gTasks -_0800DB40: - cmp r3, 0x2 - beq _0800DB4E - cmp r3, 0x3 - beq _0800DB6E - b _0800DB84 -_0800DB4A: - ldrh r0, [r1, 0xE] - b _0800DB70 -_0800DB4E: - ldrh r1, [r1, 0xE] - b _0800DB7C -_0800DB52: - cmp r3, 0x1 - beq _0800DB6E - cmp r3, 0x1 - bgt _0800DB60 - cmp r3, 0 - beq _0800DB6A - b _0800DB84 -_0800DB60: - cmp r3, 0x2 - beq _0800DB76 - cmp r3, 0x3 - beq _0800DB7A - b _0800DB84 -_0800DB6A: - ldrh r0, [r1, 0xE] - b _0800DB70 -_0800DB6E: - ldrh r0, [r1, 0x10] -_0800DB70: - movs r4, 0x3F - ands r4, r0 - b _0800DB84 -_0800DB76: - ldrh r1, [r1, 0xE] - b _0800DB7C -_0800DB7A: - ldrh r1, [r1, 0x10] -_0800DB7C: - movs r0, 0xFC - lsls r0, 4 - ands r0, r1 - lsrs r4, r0, 6 -_0800DB84: - movs r3, 0 - movs r6, 0x3 - ldr r0, _0800DBB0 @ =0x00006001 - adds r5, r0, 0 - mov r2, sp -_0800DB8E: - lsls r1, r3, 1 - adds r0, r6, 0 - lsls r0, r1 - ands r0, r4 - asrs r0, r1 - adds r0, r5 - strh r0, [r2] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x2 - ble _0800DB8E - mov r0, sp - adds r1, r7, 0 - movs r2, 0x3 - bl CpuSet - b _0800DC12 - .align 2, 0 -_0800DBB0: .4byte 0x00006001 -_0800DBB4: - ldr r0, _0800DBD0 @ =0x02000000 - ldr r1, _0800DBD4 @ =0x000160cb - adds r0, r1 - ldrb r0, [r0] - cmp r3, r0 - bne _0800DBDC - ldr r1, _0800DBD8 @ =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrh r4, [r0, 0xE] - b _0800DBE8 - .align 2, 0 -_0800DBD0: .4byte 0x02000000 -_0800DBD4: .4byte 0x000160cb -_0800DBD8: .4byte gTasks -_0800DBDC: - ldr r1, _0800DC1C @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrh r4, [r0, 0x10] -_0800DBE8: - movs r3, 0 - movs r6, 0x3 - ldr r2, _0800DC20 @ =0x00006001 - adds r5, r2, 0 - mov r2, sp -_0800DBF2: - lsls r1, r3, 1 - adds r0, r6, 0 - lsls r0, r1 - ands r0, r4 - asrs r0, r1 - adds r0, r5 - strh r0, [r2] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x5 - ble _0800DBF2 - mov r0, sp - adds r1, r7, 0 - movs r2, 0x6 - bl CpuSet -_0800DC12: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800DC1C: .4byte gTasks -_0800DC20: .4byte 0x00006001 - thumb_func_end sub_800DAF8 - - thumb_func_start sub_800DC24 -sub_800DC24: @ 800DC24 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _0800DC40 @ =gUnknown_02024D26 - ldrb r2, [r0] - cmp r2, 0x3 - bne _0800DC4C - ldr r4, _0800DC44 @ =gUnknown_03004210 - ldr r1, _0800DC48 @ =gUnknown_08400E57 - movs r0, 0x2 - str r0, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0xD - b _0800DDCA - .align 2, 0 -_0800DC40: .4byte gUnknown_02024D26 -_0800DC44: .4byte gUnknown_03004210 -_0800DC48: .4byte gUnknown_08400E57 -_0800DC4C: - ldr r0, _0800DC80 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800DD38 - cmp r2, 0x1 - bne _0800DCCC - ldr r2, _0800DC84 @ =gLinkPlayers - ldr r0, _0800DC88 @ =0x02000000 - ldr r1, _0800DC8C @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0x1 - beq _0800DC9C - cmp r0, 0x1 - bgt _0800DC90 - cmp r0, 0 - bne _0800DC7E - b _0800DDA8 -_0800DC7E: - b _0800DE1C - .align 2, 0 -_0800DC80: .4byte gUnknown_020239F8 -_0800DC84: .4byte gLinkPlayers -_0800DC88: .4byte 0x02000000 -_0800DC8C: .4byte 0x000160cb -_0800DC90: - cmp r0, 0x2 - bne _0800DC96 - b _0800DDA8 -_0800DC96: - cmp r0, 0x3 - beq _0800DC9C - b _0800DE1C -_0800DC9C: - ldr r4, _0800DCC0 @ =gUnknown_03004210 - ldr r1, _0800DCC4 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DCC8 @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - b _0800DDCA - .align 2, 0 -_0800DCC0: .4byte gUnknown_03004210 -_0800DCC4: .4byte gUnknown_08400E48 -_0800DCC8: .4byte gUnknown_08400E4F -_0800DCCC: - ldr r2, _0800DCF0 @ =gLinkPlayers - ldr r0, _0800DCF4 @ =0x02000000 - ldr r1, _0800DCF8 @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0x1 - beq _0800DDA8 - cmp r0, 0x1 - bgt _0800DCFC - cmp r0, 0 - beq _0800DD08 - b _0800DE1C - .align 2, 0 -_0800DCF0: .4byte gLinkPlayers -_0800DCF4: .4byte 0x02000000 -_0800DCF8: .4byte 0x000160cb -_0800DCFC: - cmp r0, 0x2 - beq _0800DD08 - cmp r0, 0x3 - beq _0800DD06 - b _0800DE1C -_0800DD06: - b _0800DDA8 -_0800DD08: - ldr r4, _0800DD2C @ =gUnknown_03004210 - ldr r1, _0800DD30 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DD34 @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - b _0800DDCA - .align 2, 0 -_0800DD2C: .4byte gUnknown_03004210 -_0800DD30: .4byte gUnknown_08400E48 -_0800DD34: .4byte gUnknown_08400E4F -_0800DD38: - cmp r2, 0x1 - bne _0800DD90 - ldr r2, _0800DD78 @ =gLinkPlayers - ldr r0, _0800DD7C @ =0x02000000 - ldr r1, _0800DD80 @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0 - beq _0800DDA8 - ldr r4, _0800DD84 @ =gUnknown_03004210 - ldr r1, _0800DD88 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DD8C @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - b _0800DDCA - .align 2, 0 -_0800DD78: .4byte gLinkPlayers -_0800DD7C: .4byte 0x02000000 -_0800DD80: .4byte 0x000160cb -_0800DD84: .4byte gUnknown_03004210 -_0800DD88: .4byte gUnknown_08400E48 -_0800DD8C: .4byte gUnknown_08400E4F -_0800DD90: - ldr r2, _0800DDD8 @ =gLinkPlayers - ldr r0, _0800DDDC @ =0x02000000 - ldr r1, _0800DDE0 @ =0x000160cb - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0 - beq _0800DDF0 -_0800DDA8: - ldr r4, _0800DDE4 @ =gUnknown_03004210 - ldr r1, _0800DDE8 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x6 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DDEC @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x15 -_0800DDCA: - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - b _0800DE1C - .align 2, 0 -_0800DDD8: .4byte gLinkPlayers -_0800DDDC: .4byte 0x02000000 -_0800DDE0: .4byte 0x000160cb -_0800DDE4: .4byte gUnknown_03004210 -_0800DDE8: .4byte gUnknown_08400E48 -_0800DDEC: .4byte gUnknown_08400E4F -_0800DDF0: - ldr r4, _0800DE24 @ =gUnknown_03004210 - ldr r1, _0800DE28 @ =gUnknown_08400E48 - movs r5, 0x2 - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA0 - movs r3, 0x15 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0800DE2C @ =gUnknown_08400E4F - str r5, [sp] - adds r0, r4, 0 - movs r2, 0xA8 - movs r3, 0x6 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 -_0800DE1C: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800DE24: .4byte gUnknown_03004210 -_0800DE28: .4byte gUnknown_08400E48 -_0800DE2C: .4byte gUnknown_08400E4F - thumb_func_end sub_800DC24 - - thumb_func_start sub_800DE30 -sub_800DE30: @ 800DE30 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _0800DE64 @ =gTasks - lsls r0, 2 - mov r10, r0 - add r0, r9 - lsls r0, 3 - adds r6, r0, r1 - movs r1, 0x8 - ldrsh r0, [r6, r1] - cmp r0, 0x1 - bne _0800DE58 - b _0800DF9C -_0800DE58: - cmp r0, 0x1 - bgt _0800DE68 - cmp r0, 0 - beq _0800DE70 - b _0800E212 - .align 2, 0 -_0800DE64: .4byte gTasks -_0800DE68: - cmp r0, 0x2 - bne _0800DE6E - b _0800E03C -_0800DE6E: - b _0800E212 -_0800DE70: - ldr r0, _0800DED0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800DEE0 - ldr r0, _0800DED4 @ =gLinkPlayers - ldr r2, _0800DED8 @ =gUnknown_081F9680 - mov r8, r2 - adds r7, r0, 0 - adds r7, 0x8 - movs r5, 0x3 -_0800DE88: - ldrb r0, [r7, 0x10] - movs r1, 0x3 - ands r1, r0 - str r1, [sp, 0x8] - lsls r4, r1, 1 - adds r4, r1 - lsls r4, 2 - mov r2, r8 - adds r0, r4, r2 - ldr r1, [r0] - str r1, [sp, 0xC] - ldrh r2, [r0, 0x4] - ldrb r3, [r0, 0x6] - ldrb r0, [r0, 0x7] - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r1, 0 - adds r1, r7, 0 - bl sub_8002E4C - ldr r0, [sp, 0xC] - bl sub_8002F44 - ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8 - adds r4, r2 - ldr r2, [r4] - mov r0, r9 - ldr r1, [sp, 0x8] - bl sub_800DAF8 - adds r7, 0x1C - subs r5, 0x1 - cmp r5, 0 - bge _0800DE88 - b _0800DF70 - .align 2, 0 -_0800DED0: .4byte gUnknown_020239F8 -_0800DED4: .4byte gLinkPlayers -_0800DED8: .4byte gUnknown_081F9680 -_0800DEDC: .4byte gUnknown_081F9680 + 0x8 -_0800DEE0: - ldr r0, _0800DF84 @ =0x02000000 - ldr r5, _0800DF88 @ =0x000160cb - adds r0, r5 - ldrb r7, [r0] - movs r0, 0x1 - adds r6, r7, 0 - eors r6, r0 - adds r1, r6, 0 - ldr r2, _0800DF8C @ =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r2 - ldrh r0, [r0, 0x18] - cmp r0, 0 - beq _0800DF04 - adds r6, r7, 0 - adds r7, r1, 0 -_0800DF04: - ldr r0, _0800DF90 @ =gUnknown_081F9680 - mov r8, r0 - adds r0, 0x30 - mov r1, r8 - ldr r4, [r1, 0x30] - lsls r1, r7, 3 - subs r1, r7 - lsls r1, 2 - ldr r2, _0800DF94 @ =gLinkPlayers + 0x8 - adds r1, r2 - ldrh r2, [r0, 0x4] - ldrb r3, [r0, 0x6] - ldrb r0, [r0, 0x7] - str r0, [sp] - movs r5, 0x1 - str r5, [sp, 0x4] - adds r0, r4, 0 - bl sub_8002E4C - adds r0, r4, 0 - bl sub_8002F44 - mov r0, r8 - ldr r2, [r0, 0x38] - mov r0, r9 - adds r1, r7, 0 - bl sub_800DAF8 - mov r0, r8 - adds r0, 0x3C - mov r1, r8 - ldr r4, [r1, 0x3C] - lsls r1, r6, 3 - subs r1, r6 - lsls r1, 2 - ldr r2, _0800DF94 @ =gLinkPlayers + 0x8 - adds r1, r2 - ldrh r2, [r0, 0x4] - ldrb r3, [r0, 0x6] - ldrb r0, [r0, 0x7] - str r0, [sp] - str r5, [sp, 0x4] - adds r0, r4, 0 - bl sub_8002E4C - adds r0, r4, 0 - bl sub_8002F44 - mov r5, r8 - ldr r2, [r5, 0x44] - mov r0, r9 - adds r1, r6, 0 - bl sub_800DAF8 -_0800DF70: - ldr r0, _0800DF98 @ =gTasks - mov r1, r10 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - b _0800E212 - .align 2, 0 -_0800DF84: .4byte 0x02000000 -_0800DF88: .4byte 0x000160cb -_0800DF8C: .4byte gLinkPlayers -_0800DF90: .4byte gUnknown_081F9680 -_0800DF94: .4byte gLinkPlayers + 0x8 -_0800DF98: .4byte gTasks -_0800DF9C: - ldr r0, _0800E010 @ =0x00002710 - bl AllocSpritePalette - lsls r0, 24 - ldr r2, _0800E014 @ =gPlttBufferUnfaded - lsrs r0, 19 - ldr r1, _0800E018 @ =0x0000021e - adds r0, r1 - adds r2, r0, r2 - ldr r1, _0800E01C @ =gPlttBufferFaded - adds r0, r1 - ldr r1, _0800E020 @ =0x00007fff - strh r1, [r0] - strh r1, [r2] - ldr r0, _0800E024 @ =gSpriteTemplate_81F9574 - movs r1, 0x6C - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - ldr r4, _0800E028 @ =0x02000000 - ldr r2, _0800E02C @ =0x0001608a - adds r7, r4, r2 - strb r0, [r7] - ldr r0, _0800E030 @ =gSpriteTemplate_81F958C - movs r1, 0x84 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - ldr r5, _0800E034 @ =0x0001608b - adds r4, r5 - strb r0, [r4] - ldr r3, _0800E038 @ =gSprites - ldrb r1, [r7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r1, [r0] - orrs r1, r2 - strb r1, [r0] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - b _0800E212 - .align 2, 0 -_0800E010: .4byte 0x00002710 -_0800E014: .4byte gPlttBufferUnfaded -_0800E018: .4byte 0x0000021e -_0800E01C: .4byte gPlttBufferFaded -_0800E020: .4byte 0x00007fff -_0800E024: .4byte gSpriteTemplate_81F9574 -_0800E028: .4byte 0x02000000 -_0800E02C: .4byte 0x0001608a -_0800E030: .4byte gSpriteTemplate_81F958C -_0800E034: .4byte 0x0001608b -_0800E038: .4byte gSprites -_0800E03C: - movs r1, 0x12 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0800E0A4 - ldr r4, _0800E090 @ =gUnknown_030042C0 - ldrh r0, [r6, 0xA] - bl Sin2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0800E056 - adds r0, 0x1F -_0800E056: - asrs r1, r0, 5 - movs r2, 0x14 - negs r2, r2 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4] - ldr r4, _0800E094 @ =gUnknown_03004288 - ldrh r0, [r6, 0xC] - bl Sin2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0800E074 - adds r0, 0x1F -_0800E074: - asrs r1, r0, 5 - movs r5, 0x8C - negs r5, r5 - adds r0, r5, 0 - subs r0, r1 - strh r0, [r4] - ldr r0, _0800E098 @ =gUnknown_030041B4 - ldr r2, _0800E09C @ =0x0000ffdc - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _0800E0A0 @ =gUnknown_03004280 - strh r1, [r0] - b _0800E110 - .align 2, 0 -_0800E090: .4byte gUnknown_030042C0 -_0800E094: .4byte gUnknown_03004288 -_0800E098: .4byte gUnknown_030041B4 -_0800E09C: .4byte 0x0000ffdc -_0800E0A0: .4byte gUnknown_03004280 -_0800E0A4: - ldr r4, _0800E134 @ =gUnknown_030042C0 - ldrh r0, [r6, 0xA] - bl Sin2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0800E0B6 - adds r0, 0x1F -_0800E0B6: - asrs r1, r0, 5 - movs r5, 0x14 - negs r5, r5 - adds r0, r5, 0 - subs r0, r1 - strh r0, [r4] - ldr r4, _0800E138 @ =gUnknown_030041B4 - ldrh r0, [r6, 0xA] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0800E0D4 - adds r0, 0x1F -_0800E0D4: - asrs r0, 5 - subs r0, 0xA4 - strh r0, [r4] - ldr r4, _0800E13C @ =gUnknown_03004288 - ldrh r0, [r6, 0xC] - bl Sin2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0800E0EC - adds r0, 0x1F -_0800E0EC: - asrs r1, r0, 5 - movs r2, 0x8C - negs r2, r2 - adds r0, r2, 0 - subs r0, r1 - strh r0, [r4] - ldr r4, _0800E140 @ =gUnknown_03004280 - ldrh r0, [r6, 0xC] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0800E10A - adds r0, 0x1F -_0800E10A: - asrs r0, 5 - subs r0, 0xA4 - strh r0, [r4] -_0800E110: - ldr r1, _0800E144 @ =gTasks - mov r5, r9 - lsls r0, r5, 2 - add r0, r9 - lsls r0, 3 - adds r1, r0, r1 - ldrh r0, [r1, 0xC] - movs r2, 0xC - ldrsh r7, [r1, r2] - cmp r7, 0 - beq _0800E148 - subs r0, 0x2 - strh r0, [r1, 0xC] - ldrh r0, [r1, 0xA] - adds r0, 0x2 - strh r0, [r1, 0xA] - b _0800E212 - .align 2, 0 -_0800E134: .4byte gUnknown_030042C0 -_0800E138: .4byte gUnknown_030041B4 -_0800E13C: .4byte gUnknown_03004288 -_0800E140: .4byte gUnknown_03004280 -_0800E144: .4byte gTasks -_0800E148: - movs r5, 0x12 - ldrsh r0, [r1, r5] - cmp r0, 0 - beq _0800E154 - bl sub_800DC24 -_0800E154: - movs r0, 0x78 - bl PlaySE - mov r0, r9 - bl DestroyTask - ldr r4, _0800E224 @ =gSprites - ldr r0, _0800E228 @ =0x02000000 - mov r8, r0 - ldr r1, _0800E22C @ =0x0001608a - add r1, r8 - mov r9, r1 - ldrb r0, [r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r1, 0x3E - ldrb r3, [r1] - movs r2, 0x5 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - strb r0, [r1] - ldr r5, _0800E230 @ =0x0001608b - add r8, r5 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - mov r1, r8 - ldrb r0, [r1] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldrh r3, [r2, 0x4] - lsls r1, r3, 22 - lsrs r1, 22 - adds r1, 0x40 - ldr r5, _0800E234 @ =0x000003ff - adds r0, r5, 0 - ands r1, r0 - ldr r0, _0800E238 @ =0xfffffc00 - ands r0, r3 - orrs r0, r1 - strh r0, [r2, 0x4] - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x2E] - mov r2, r8 - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - strh r1, [r0, 0x2E] - mov r5, r9 - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x30] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x20] - strh r1, [r0, 0x30] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x32] - ldrb r1, [r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x32] -_0800E212: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800E224: .4byte gSprites -_0800E228: .4byte 0x02000000 -_0800E22C: .4byte 0x0001608a -_0800E230: .4byte 0x0001608b -_0800E234: .4byte 0x000003ff -_0800E238: .4byte 0xfffffc00 - thumb_func_end sub_800DE30 - - thumb_func_start sub_800E23C -sub_800E23C: @ 800E23C - push {r4,r5,lr} - ldr r0, _0800E29C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0800E2DC - ldr r0, _0800E2A0 @ =gVersusFrameGfx - ldr r1, _0800E2A4 @ =0x06004000 - bl LZDecompressVram - ldr r4, _0800E2A8 @ =gVersusFrameTilemap - ldr r1, _0800E2AC @ =0x0600e000 - adds r0, r4, 0 - bl LZDecompressVram - ldr r1, _0800E2B0 @ =0x0600f000 - adds r0, r4, 0 - bl LZDecompressVram - ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C - ldr r1, _0800E2B8 @ =0x06010000 - bl LZDecompressVram - ldr r0, _0800E2BC @ =gVersusFramePal - movs r1, 0x60 - movs r2, 0x20 - bl LoadCompressedPalette - ldr r1, _0800E2C0 @ =REG_BG1CNT - ldr r2, _0800E2C4 @ =0x00005c04 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0800E2C8 @ =REG_WININ - movs r1, 0x36 - strh r1, [r0] - adds r0, 0x2 - strh r1, [r0] - ldr r0, _0800E2CC @ =gUnknown_030041B4 - ldr r2, _0800E2D0 @ =0x0000ff5c - adds r1, r2, 0 - strh r1, [r0] - ldr r0, _0800E2D4 @ =gUnknown_03004280 - strh r1, [r0] - ldr r0, _0800E2D8 @ =gUnknown_081F95A4 - bl LoadCompressedObjectPic - b _0800E3FC - .align 2, 0 -_0800E29C: .4byte gUnknown_020239F8 -_0800E2A0: .4byte gVersusFrameGfx -_0800E2A4: .4byte 0x06004000 -_0800E2A8: .4byte gVersusFrameTilemap -_0800E2AC: .4byte 0x0600e000 -_0800E2B0: .4byte 0x0600f000 -_0800E2B4: .4byte gUnknown_08E5DC2C -_0800E2B8: .4byte 0x06010000 -_0800E2BC: .4byte gVersusFramePal -_0800E2C0: .4byte REG_BG1CNT -_0800E2C4: .4byte 0x00005c04 -_0800E2C8: .4byte REG_WININ -_0800E2CC: .4byte gUnknown_030041B4 -_0800E2D0: .4byte 0x0000ff5c -_0800E2D4: .4byte gUnknown_03004280 -_0800E2D8: .4byte gUnknown_081F95A4 -_0800E2DC: - ldr r0, _0800E2F0 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - beq _0800E300 - ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building - ldr r1, _0800E2F8 @ =0x06004000 - bl LZDecompressVram - ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building - b _0800E3D2 - .align 2, 0 -_0800E2F0: .4byte 0x00000902 -_0800E2F4: .4byte gBattleTerrainAnimTiles_Building -_0800E2F8: .4byte 0x06004000 -_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building -_0800E300: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _0800E348 - ldr r0, _0800E320 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - bne _0800E330 - ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave - ldr r1, _0800E328 @ =0x06004000 - bl LZDecompressVram - ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave - b _0800E3D2 - .align 2, 0 -_0800E320: .4byte gGameVersion -_0800E324: .4byte gBattleTerrainAnimTiles_Cave -_0800E328: .4byte 0x06004000 -_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave -_0800E330: - ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater - ldr r1, _0800E340 @ =0x06004000 - bl LZDecompressVram - ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater - b _0800E3D2 - .align 2, 0 -_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater -_0800E340: .4byte 0x06004000 -_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater -_0800E348: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0800E3A0 - ldr r2, _0800E370 @ =gTrainers - ldr r0, _0800E374 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0x19 - bne _0800E384 - ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building - ldr r1, _0800E37C @ =0x06004000 - bl LZDecompressVram - ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building - b _0800E3D2 - .align 2, 0 -_0800E370: .4byte gTrainers -_0800E374: .4byte gTrainerBattleOpponent -_0800E378: .4byte gBattleTerrainAnimTiles_Building -_0800E37C: .4byte 0x06004000 -_0800E380: .4byte gBattleTerrainAnimTilemap_Building -_0800E384: - cmp r0, 0x20 - bne _0800E3A0 - ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building - ldr r1, _0800E398 @ =0x06004000 - bl LZDecompressVram - ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building - b _0800E3D2 - .align 2, 0 -_0800E394: .4byte gBattleTerrainAnimTiles_Building -_0800E398: .4byte 0x06004000 -_0800E39C: .4byte gBattleTerrainAnimTilemap_Building -_0800E3A0: - bl sav1_map_get_battletype - lsls r0, 24 - cmp r0, 0 - bne _0800E3EC - ldr r4, _0800E3DC @ =gBattleTerrainTable - ldr r5, _0800E3E0 @ =gUnknown_0300428C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x8 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0800E3E4 @ =0x06004000 - bl LZDecompressVram - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r4, 0xC - adds r0, r4 - ldr r0, [r0] -_0800E3D2: - ldr r1, _0800E3E8 @ =0x0600e000 - bl LZDecompressVram - b _0800E3FC - .align 2, 0 -_0800E3DC: .4byte gBattleTerrainTable -_0800E3E0: .4byte gUnknown_0300428C -_0800E3E4: .4byte 0x06004000 -_0800E3E8: .4byte 0x0600e000 -_0800E3EC: - ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building - ldr r1, _0800E408 @ =0x06004000 - bl LZDecompressVram - ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building - ldr r1, _0800E410 @ =0x0600e000 - bl LZDecompressVram -_0800E3FC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800E404: .4byte gBattleTerrainAnimTiles_Building -_0800E408: .4byte 0x06004000 -_0800E40C: .4byte gBattleTerrainAnimTilemap_Building -_0800E410: .4byte 0x0600e000 - thumb_func_end sub_800E23C - - thumb_func_start sub_800E414 -sub_800E414: @ 800E414 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r4, 0 - cmp r0, 0x6 - bls _0800E422 - b _0800E7BA -_0800E422: - lsls r0, 2 - ldr r1, _0800E42C @ =_0800E430 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800E42C: .4byte _0800E430 - .align 2, 0 -_0800E430: - .4byte _0800E44C - .4byte _0800E45C - .4byte _0800E474 - .4byte _0800E484 - .4byte _0800E590 - .4byte _0800E69C - .4byte _0800E7B4 -_0800E44C: - ldr r0, _0800E458 @ =gUnknown_08D00000 - movs r1, 0xC0 - lsls r1, 19 - bl LZDecompressVram - b _0800E7BC - .align 2, 0 -_0800E458: .4byte gUnknown_08D00000 -_0800E45C: - ldr r0, _0800E46C @ =gUnknown_08D00524 - ldr r1, _0800E470 @ =0x0600c000 - movs r2, 0x80 - lsls r2, 4 - bl CpuSet - b _0800E7BC - .align 2, 0 -_0800E46C: .4byte gUnknown_08D00524 -_0800E470: .4byte 0x0600c000 -_0800E474: - ldr r0, _0800E480 @ =gUnknown_08D004E0 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - b _0800E7BC - .align 2, 0 -_0800E480: .4byte gUnknown_08D004E0 -_0800E484: - ldr r0, _0800E4A8 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0800E4AC @ =0x00000902 - ands r0, r1 - cmp r0, 0 - beq _0800E492 - b _0800E57C -_0800E492: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _0800E4C0 - ldr r0, _0800E4B0 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - bne _0800E4B8 - ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave - b _0800E57E - .align 2, 0 -_0800E4A8: .4byte gUnknown_020239F8 -_0800E4AC: .4byte 0x00000902 -_0800E4B0: .4byte gGameVersion -_0800E4B4: .4byte gBattleTerrainTiles_Cave -_0800E4B8: - ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water - b _0800E57E - .align 2, 0 -_0800E4BC: .4byte gBattleTerrainTiles_Water -_0800E4C0: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0800E4F0 - ldr r2, _0800E4E4 @ =gTrainers - ldr r0, _0800E4E8 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0x19 - beq _0800E57C - cmp r0, 0x20 - bne _0800E4F0 - ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium - b _0800E57E - .align 2, 0 -_0800E4E4: .4byte gTrainers -_0800E4E8: .4byte gTrainerBattleOpponent -_0800E4EC: .4byte gBattleTerrainTiles_Stadium -_0800E4F0: - bl sav1_map_get_battletype - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - bls _0800E4FE - b _0800E7BC -_0800E4FE: - lsls r0, 2 - ldr r1, _0800E508 @ =_0800E50C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800E508: .4byte _0800E50C - .align 2, 0 -_0800E50C: - .4byte _0800E530 - .4byte _0800E57C - .4byte _0800E54C - .4byte _0800E554 - .4byte _0800E55C - .4byte _0800E564 - .4byte _0800E56C - .4byte _0800E574 - .4byte _0800E57C -_0800E530: - ldr r2, _0800E544 @ =gBattleTerrainTable - ldr r0, _0800E548 @ =gUnknown_0300428C - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - b _0800E57E - .align 2, 0 -_0800E544: .4byte gBattleTerrainTable -_0800E548: .4byte gUnknown_0300428C -_0800E54C: - ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium - b _0800E57E - .align 2, 0 -_0800E550: .4byte gBattleTerrainTiles_Stadium -_0800E554: - ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium - b _0800E57E - .align 2, 0 -_0800E558: .4byte gBattleTerrainTiles_Stadium -_0800E55C: - ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium - b _0800E57E - .align 2, 0 -_0800E560: .4byte gBattleTerrainTiles_Stadium -_0800E564: - ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium - b _0800E57E - .align 2, 0 -_0800E568: .4byte gBattleTerrainTiles_Stadium -_0800E56C: - ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium - b _0800E57E - .align 2, 0 -_0800E570: .4byte gBattleTerrainTiles_Stadium -_0800E574: - ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium - b _0800E57E - .align 2, 0 -_0800E578: .4byte gBattleTerrainTiles_Stadium -_0800E57C: - ldr r0, _0800E588 @ =gBattleTerrainTiles_Building -_0800E57E: - ldr r1, _0800E58C @ =0x06008000 - bl LZDecompressVram - b _0800E7BC - .align 2, 0 -_0800E588: .4byte gBattleTerrainTiles_Building -_0800E58C: .4byte 0x06008000 -_0800E590: - ldr r0, _0800E5B4 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0800E5B8 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - beq _0800E59E - b _0800E688 -_0800E59E: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _0800E5CC - ldr r0, _0800E5BC @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - bne _0800E5C4 - ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave - b _0800E68A - .align 2, 0 -_0800E5B4: .4byte gUnknown_020239F8 -_0800E5B8: .4byte 0x00000902 -_0800E5BC: .4byte gGameVersion -_0800E5C0: .4byte gBattleTerrainTilemap_Cave -_0800E5C4: - ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water - b _0800E68A - .align 2, 0 -_0800E5C8: .4byte gBattleTerrainTilemap_Water -_0800E5CC: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0800E5FC - ldr r2, _0800E5F0 @ =gTrainers - ldr r0, _0800E5F4 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0x19 - beq _0800E688 - cmp r0, 0x20 - bne _0800E5FC - ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium - b _0800E68A - .align 2, 0 -_0800E5F0: .4byte gTrainers -_0800E5F4: .4byte gTrainerBattleOpponent -_0800E5F8: .4byte gBattleTerrainTilemap_Stadium -_0800E5FC: - bl sav1_map_get_battletype - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - bls _0800E60A - b _0800E7BC -_0800E60A: - lsls r0, 2 - ldr r1, _0800E614 @ =_0800E618 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800E614: .4byte _0800E618 - .align 2, 0 -_0800E618: - .4byte _0800E63C - .4byte _0800E688 - .4byte _0800E658 - .4byte _0800E660 - .4byte _0800E668 - .4byte _0800E670 - .4byte _0800E678 - .4byte _0800E680 - .4byte _0800E688 -_0800E63C: - ldr r2, _0800E650 @ =gBattleTerrainTable - ldr r0, _0800E654 @ =gUnknown_0300428C - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r0, [r0] - b _0800E68A - .align 2, 0 -_0800E650: .4byte gBattleTerrainTable -_0800E654: .4byte gUnknown_0300428C -_0800E658: - ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium - b _0800E68A - .align 2, 0 -_0800E65C: .4byte gBattleTerrainTilemap_Stadium -_0800E660: - ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium - b _0800E68A - .align 2, 0 -_0800E664: .4byte gBattleTerrainTilemap_Stadium -_0800E668: - ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium - b _0800E68A - .align 2, 0 -_0800E66C: .4byte gBattleTerrainTilemap_Stadium -_0800E670: - ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium - b _0800E68A - .align 2, 0 -_0800E674: .4byte gBattleTerrainTilemap_Stadium -_0800E678: - ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium - b _0800E68A - .align 2, 0 -_0800E67C: .4byte gBattleTerrainTilemap_Stadium -_0800E680: - ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium - b _0800E68A - .align 2, 0 -_0800E684: .4byte gBattleTerrainTilemap_Stadium -_0800E688: - ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building -_0800E68A: - ldr r1, _0800E698 @ =0x0600d000 - bl LZDecompressVram - b _0800E7BC - .align 2, 0 -_0800E694: .4byte gBattleTerrainTilemap_Building -_0800E698: .4byte 0x0600d000 -_0800E69C: - ldr r0, _0800E6C0 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0800E6C4 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - beq _0800E6AA - b _0800E7A4 -_0800E6AA: - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _0800E6D8 - ldr r0, _0800E6C8 @ =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - bne _0800E6D0 - ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon - b _0800E7A6 - .align 2, 0 -_0800E6C0: .4byte gUnknown_020239F8 -_0800E6C4: .4byte 0x00000902 -_0800E6C8: .4byte gGameVersion -_0800E6CC: .4byte gBattleTerrainPalette_Groudon -_0800E6D0: - ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre - b _0800E7A6 - .align 2, 0 -_0800E6D4: .4byte gBattleTerrainPalette_Kyogre -_0800E6D8: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0800E710 - ldr r2, _0800E6F8 @ =gTrainers - ldr r0, _0800E6FC @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0x19 - bne _0800E704 - ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader - b _0800E7A6 - .align 2, 0 -_0800E6F8: .4byte gTrainers -_0800E6FC: .4byte gTrainerBattleOpponent -_0800E700: .4byte gBattleTerrainPalette_BuildingLeader -_0800E704: - cmp r0, 0x20 - bne _0800E710 - ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven - b _0800E7A6 - .align 2, 0 -_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven -_0800E710: - bl sav1_map_get_battletype - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - bhi _0800E7BC - lsls r0, 2 - ldr r1, _0800E728 @ =_0800E72C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800E728: .4byte _0800E72C - .align 2, 0 -_0800E72C: - .4byte _0800E750 - .4byte _0800E76C - .4byte _0800E774 - .4byte _0800E77C - .4byte _0800E784 - .4byte _0800E78C - .4byte _0800E794 - .4byte _0800E79C - .4byte _0800E7A4 -_0800E750: - ldr r2, _0800E764 @ =gBattleTerrainTable - ldr r0, _0800E768 @ =gUnknown_0300428C - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x10 - adds r0, r2 - ldr r0, [r0] - b _0800E7A6 - .align 2, 0 -_0800E764: .4byte gBattleTerrainTable -_0800E768: .4byte gUnknown_0300428C -_0800E76C: - ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym - b _0800E7A6 - .align 2, 0 -_0800E770: .4byte gBattleTerrainPalette_BuildingGym -_0800E774: - ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma - b _0800E7A6 - .align 2, 0 -_0800E778: .4byte gBattleTerrainPalette_StadiumMagma -_0800E77C: - ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua - b _0800E7A6 - .align 2, 0 -_0800E780: .4byte gBattleTerrainPalette_StadiumAqua -_0800E784: - ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney - b _0800E7A6 - .align 2, 0 -_0800E788: .4byte gBattleTerrainPalette_StadiumSidney -_0800E78C: - ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe - b _0800E7A6 - .align 2, 0 -_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe -_0800E794: - ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia - b _0800E7A6 - .align 2, 0 -_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia -_0800E79C: - ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake - b _0800E7A6 - .align 2, 0 -_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake -_0800E7A4: - ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower -_0800E7A6: - movs r1, 0x20 - movs r2, 0x60 - bl LoadCompressedPalette - b _0800E7BC - .align 2, 0 -_0800E7B0: .4byte gBattleTerrainPalette_BattleTower -_0800E7B4: - bl sub_800D74C - b _0800E7BC -_0800E7BA: - movs r4, 0x1 -_0800E7BC: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_800E414 - - thumb_func_start sub_800E7C4 -sub_800E7C4: @ 800E7C4 - push {lr} - ldr r0, _0800E7E4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800E7F0 - bl sub_800B858 - ldr r0, _0800E7E8 @ =sub_800F104 - bl SetMainCallback2 - ldr r1, _0800E7EC @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1] - b _0800E7F4 - .align 2, 0 -_0800E7E4: .4byte gUnknown_020239F8 -_0800E7E8: .4byte sub_800F104 -_0800E7EC: .4byte gUnknown_02024D1E -_0800E7F0: - bl sub_800E7F8 -_0800E7F4: - pop {r0} - bx r0 - thumb_func_end sub_800E7C4 - - thumb_func_start sub_800E7F8 -sub_800E7F8: @ 800E7F8 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r4, 0 - str r4, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _0800E90C @ =0x05006000 - mov r0, sp - bl CpuSet - ldr r0, _0800E910 @ =REG_MOSAIC - strh r4, [r0] - subs r0, 0xC - movs r2, 0xF0 - strh r2, [r0] - adds r0, 0x4 - ldr r3, _0800E914 @ =0x00005051 - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x4 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r0, _0800E918 @ =gUnknown_030042C4 - strh r2, [r0] - ldr r0, _0800E91C @ =gUnknown_03004240 - strh r1, [r0] - bl dp12_8087EA4 - ldr r0, _0800E920 @ =gUnknown_03004DE0 - movs r3, 0xF0 - movs r5, 0xF0 - lsls r5, 3 - adds r2, r0, r5 - movs r1, 0x4F -_0800E84A: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _0800E84A - movs r1, 0x50 - ldr r4, _0800E924 @ =gUnknown_081F9674 - ldr r0, _0800E920 @ =gUnknown_03004DE0 - ldr r3, _0800E928 @ =0x0000ff10 - movs r5, 0x82 - lsls r5, 4 - adds r2, r0, r5 - adds r0, 0xA0 -_0800E868: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x9F - ble _0800E868 - ldr r0, [r4] - ldr r1, [r4, 0x4] - ldr r2, [r4, 0x8] - bl sub_80895F8 - ldr r4, _0800E92C @ =gWindowConfig_81E6C58 - adds r0, r4, 0 - bl SetUpWindowConfig - bl ResetPaletteFade - ldr r0, _0800E930 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _0800E934 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r0, _0800E938 @ =gUnknown_030042C0 - strh r1, [r0] - ldr r0, _0800E93C @ =gUnknown_030041B4 - strh r1, [r0] - ldr r0, _0800E940 @ =gUnknown_03004288 - strh r1, [r0] - ldr r0, _0800E944 @ =gUnknown_03004280 - strh r1, [r0] - ldr r0, _0800E948 @ =gUnknown_030041B0 - strh r1, [r0] - ldr r0, _0800E94C @ =gUnknown_030041B8 - strh r1, [r0] - bl sub_8081D3C - ldr r1, _0800E950 @ =gUnknown_0300428C - strb r0, [r1] - ldr r0, _0800E954 @ =gUnknown_03004210 - adds r1, r4, 0 - bl InitWindowFromConfig - ldr r0, _0800E958 @ =gUnknown_030041D0 - ldr r1, _0800E95C @ =gWindowConfig_81E71D0 - bl InitWindowFromConfig - ldr r0, _0800E960 @ =gUnknown_03004250 - ldr r1, _0800E964 @ =gWindowConfig_81E71EC - bl InitWindowFromConfig - bl sub_800D6D4 - bl sub_800DAB8 - bl ResetSpriteData - bl ResetTasks - bl sub_800E23C - bl FreeAllSpritePalettes - ldr r1, _0800E968 @ =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - ldr r0, _0800E96C @ =sub_800FCFC - bl SetVBlankCallback - bl sub_800B884 - ldr r0, _0800E970 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800E978 - ldr r0, _0800E974 @ =sub_800F298 - bl SetMainCallback2 - b _0800E97E - .align 2, 0 -_0800E90C: .4byte 0x05006000 -_0800E910: .4byte REG_MOSAIC -_0800E914: .4byte 0x00005051 -_0800E918: .4byte gUnknown_030042C4 -_0800E91C: .4byte gUnknown_03004240 -_0800E920: .4byte gUnknown_03004DE0 -_0800E924: .4byte gUnknown_081F9674 -_0800E928: .4byte 0x0000ff10 -_0800E92C: .4byte gWindowConfig_81E6C58 -_0800E930: .4byte gUnknown_030042A4 -_0800E934: .4byte gUnknown_030042A0 -_0800E938: .4byte gUnknown_030042C0 -_0800E93C: .4byte gUnknown_030041B4 -_0800E940: .4byte gUnknown_03004288 -_0800E944: .4byte gUnknown_03004280 -_0800E948: .4byte gUnknown_030041B0 -_0800E94C: .4byte gUnknown_030041B8 -_0800E950: .4byte gUnknown_0300428C -_0800E954: .4byte gUnknown_03004210 -_0800E958: .4byte gUnknown_030041D0 -_0800E95C: .4byte gWindowConfig_81E71D0 -_0800E960: .4byte gUnknown_03004250 -_0800E964: .4byte gWindowConfig_81E71EC -_0800E968: .4byte gReservedSpritePaletteCount -_0800E96C: .4byte sub_800FCFC -_0800E970: .4byte gUnknown_020239F8 -_0800E974: .4byte sub_800F298 -_0800E978: - ldr r0, _0800E9CC @ =sub_800EC9C - bl SetMainCallback2 -_0800E97E: - ldr r0, _0800E9D0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0800E998 - ldr r0, _0800E9D4 @ =gEnemyParty - ldr r1, _0800E9D8 @ =gTrainerBattleOpponent - ldrh r1, [r1] - bl sub_800F8E8 - bl sub_8040C38 -_0800E998: - ldr r0, _0800E9DC @ =gMain - ldr r1, _0800E9E0 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldr r4, _0800E9E4 @ =gPlayerParty - movs r3, 0xFA - lsls r3, 1 - adds r5, r4, r3 -_0800E9AE: - adds r0, r4, 0 - movs r1, 0x3 - bl AdjustFriendship - adds r4, 0x64 - cmp r4, r5 - ble _0800E9AE - movs r1, 0 - ldr r0, _0800E9E8 @ =gUnknown_02024D1E - strb r1, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800E9CC: .4byte sub_800EC9C -_0800E9D0: .4byte gUnknown_020239F8 -_0800E9D4: .4byte gEnemyParty -_0800E9D8: .4byte gTrainerBattleOpponent -_0800E9DC: .4byte gMain -_0800E9E0: .4byte 0x0000043d -_0800E9E4: .4byte gPlayerParty -_0800E9E8: .4byte gUnknown_02024D1E - thumb_func_end sub_800E7F8 - - thumb_func_start sub_800E9EC -sub_800E9EC: @ 800E9EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - mov r9, r6 - movs r0, 0xCE - lsls r0, 1 - mov r10, r0 - mov r8, r6 -_0800EA02: - movs r0, 0x64 - mov r4, r9 - muls r4, r0 - ldr r0, _0800EAA4 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - adds r1, r0, 0 - cmp r5, 0 - beq _0800EA7E - cmp r5, r10 - beq _0800EA4A - cmp r7, 0 - beq _0800EA4A - cmp r1, 0 - bne _0800EA4A - movs r0, 0x1 - mov r2, r8 - lsls r0, r2 - orrs r6, r0 - lsls r0, r6, 16 - lsrs r6, r0, 16 -_0800EA4A: - cmp r5, 0 - beq _0800EA7E - cmp r7, 0 - beq _0800EA66 - cmp r5, r10 - beq _0800EA5A - cmp r1, 0 - beq _0800EA66 -_0800EA5A: - movs r0, 0x2 - mov r1, r8 - lsls r0, r1 - orrs r6, r0 - lsls r0, r6, 16 - lsrs r6, r0, 16 -_0800EA66: - cmp r5, 0 - beq _0800EA7E - cmp r5, r10 - beq _0800EA7E - cmp r7, 0 - bne _0800EA7E - movs r0, 0x3 - mov r2, r8 - lsls r0, r2 - orrs r6, r0 - lsls r0, r6, 16 - lsrs r6, r0, 16 -_0800EA7E: - movs r0, 0x2 - add r8, r0 - movs r1, 0x1 - add r9, r1 - mov r2, r9 - cmp r2, 0x5 - ble _0800EA02 - ldr r1, _0800EAA8 @ =0x02000000 - strb r6, [r1, 0x2] - lsrs r0, r6, 8 - strb r0, [r1, 0x3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800EAA4: .4byte gPlayerParty -_0800EAA8: .4byte 0x02000000 - thumb_func_end sub_800E9EC - - thumb_func_start sub_800EAAC -sub_800EAAC: @ 800EAAC - push {r4-r6,lr} - ldr r4, _0800EAF4 @ =0x02000004 - movs r2, 0 - ldr r6, _0800EAF8 @ =gSaveBlock1 - ldr r0, _0800EAFC @ =0x00003160 - adds r3, r6, r0 -_0800EAB8: - adds r0, r4, r2 - adds r1, r2, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x6 - ble _0800EAB8 - movs r2, 0 - adds r3, r4, 0 - adds r3, 0x8 - ldr r5, _0800EB00 @ =gSaveBlock1 + 0x3676 -_0800EACE: - adds r0, r3, r2 - adds r1, r2, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x11 - ble _0800EACE - ldr r1, _0800EB04 @ =0x00003688 - adds r0, r6, r1 - ldrb r0, [r0] - strb r0, [r4, 0x7] - adds r1, 0x1 - adds r0, r6, r1 - ldrb r0, [r0] - strb r0, [r4, 0x1A] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0800EAF4: .4byte 0x02000004 -_0800EAF8: .4byte gSaveBlock1 -_0800EAFC: .4byte 0x00003160 -_0800EB00: .4byte gSaveBlock1 + 0x3676 -_0800EB04: .4byte 0x00003688 - thumb_func_end sub_800EAAC - - thumb_func_start sub_800EB08 -sub_800EB08: @ 800EB08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _0800EB84 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0800EBA4 - movs r3, 0 - ldr r5, _0800EB88 @ =gEnigmaBerries - ldr r0, _0800EB8C @ =gSaveBlock1 - mov r12, r0 - adds r7, r5, 0 - ldr r6, _0800EB90 @ =0x00003160 - add r6, r12 - adds r4, r5, 0 - adds r4, 0x38 -_0800EB30: - adds r1, r3, r7 - adds r2, r3, r6 - ldrb r0, [r2] - strb r0, [r1] - adds r1, r3, r4 - ldrb r0, [r2] - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0x6 - ble _0800EB30 - movs r3, 0 - ldr r4, _0800EB94 @ =gUnknown_02024DF8 - ldr r7, _0800EB98 @ =gSaveBlock1 + 0x3676 - adds r6, r4, 0 - adds r6, 0x38 -_0800EB4E: - adds r1, r3, r4 - adds r2, r3, r7 - ldrb r0, [r2] - strb r0, [r1] - adds r1, r3, r6 - ldrb r0, [r2] - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0x11 - ble _0800EB4E - ldr r1, _0800EB9C @ =0x00003688 - add r1, r12 - ldrb r0, [r1] - strb r0, [r5, 0x7] - ldrb r0, [r1] - adds r1, r5, 0 - adds r1, 0x3F - strb r0, [r1] - ldr r1, _0800EBA0 @ =0x00003689 - add r1, r12 - ldrb r0, [r1] - strb r0, [r5, 0x1A] - ldrb r1, [r1] - adds r0, r5, 0 - adds r0, 0x52 - strb r1, [r0] - b _0800EC28 - .align 2, 0 -_0800EB84: .4byte gUnknown_020239F8 -_0800EB88: .4byte gEnigmaBerries -_0800EB8C: .4byte gSaveBlock1 -_0800EB90: .4byte 0x00003160 -_0800EB94: .4byte gUnknown_02024DF8 -_0800EB98: .4byte gSaveBlock1 + 0x3676 -_0800EB9C: .4byte 0x00003688 -_0800EBA0: .4byte 0x00003689 -_0800EBA4: - movs r0, 0x40 - ands r0, r1 - movs r1, 0x2 - mov r8, r1 - cmp r0, 0 - beq _0800EBB4 - movs r0, 0x4 - mov r8, r0 -_0800EBB4: - movs r3, 0 - cmp r3, r8 - bge _0800EC28 - ldr r1, _0800EC38 @ =gEnigmaBerries - mov r12, r1 - ldr r0, _0800EC3C @ =gBlockRecvBuffer + 0x4 - mov r10, r0 - movs r1, 0x8 - add r1, r12 - mov r9, r1 -_0800EBC8: - lsls r0, r3, 8 - mov r1, r10 - adds r5, r0, r1 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - ldr r1, _0800EC40 @ =gLinkPlayers - adds r0, r1 - ldrb r4, [r0, 0x18] - movs r2, 0 - adds r7, r3, 0x1 - lsls r1, r4, 3 - subs r0, r1, r4 - adds r6, r1, 0 - lsls r0, 2 - mov r1, r12 - adds r3, r0, r1 -_0800EBEA: - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x6 - ble _0800EBEA - movs r2, 0 - subs r0, r6, r4 - lsls r0, 2 - mov r1, r9 - adds r3, r0, r1 - adds r1, r5, 0 - adds r1, 0x8 -_0800EC06: - adds r0, r1, r2 - ldrb r0, [r0] - strb r0, [r3] - adds r3, 0x1 - adds r2, 0x1 - cmp r2, 0x11 - ble _0800EC06 - subs r0, r6, r4 - lsls r0, 2 - add r0, r12 - ldrb r1, [r5, 0x7] - strb r1, [r0, 0x7] - ldrb r1, [r5, 0x1A] - strb r1, [r0, 0x1A] - adds r3, r7, 0 - cmp r3, r8 - blt _0800EBC8 -_0800EC28: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800EC38: .4byte gEnigmaBerries -_0800EC3C: .4byte gBlockRecvBuffer + 0x4 -_0800EC40: .4byte gLinkPlayers - thumb_func_end sub_800EB08 - - thumb_func_start shedinja_something -shedinja_something: @ 800EC44 - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - add r5, sp, 0xC - movs r0, 0x1 - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldr r1, _0800EC94 @ =0x0000012f - cmp r0, r1 - bne _0800EC8C - adds r0, r4, 0 - movs r1, 0x3 - bl GetMonData - ldrb r1, [r5] - cmp r0, r1 - beq _0800EC8C - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - ldr r1, _0800EC98 @ =gUnknown_081F96C8 - mov r0, sp - bl StringCompareWithoutExtCtrlCodes - cmp r0, 0 - bne _0800EC8C - adds r0, r4, 0 - movs r1, 0x3 - adds r2, r5, 0 - bl SetMonData -_0800EC8C: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800EC94: .4byte 0x0000012f -_0800EC98: .4byte gUnknown_081F96C8 - thumb_func_end shedinja_something - - thumb_func_start sub_800EC9C -sub_800EC9C: @ 800EC9C - push {r4-r7,lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl GetMultiplayerId - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0800ECD4 @ =0x02000000 - ldr r1, _0800ECD8 @ =0x000160cb - adds r0, r1 - strb r4, [r0] - movs r0, 0x1 - adds r5, r4, 0 - eors r5, r0 - ldr r0, _0800ECDC @ =gUnknown_02024D1E - ldrb r0, [r0] - cmp r0, 0x9 - bls _0800ECCA - b _0800F008 -_0800ECCA: - lsls r0, 2 - ldr r1, _0800ECE0 @ =_0800ECE4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800ECD4: .4byte 0x02000000 -_0800ECD8: .4byte 0x000160cb -_0800ECDC: .4byte gUnknown_02024D1E -_0800ECE0: .4byte _0800ECE4 - .align 2, 0 -_0800ECE4: - .4byte _0800ED0C - .4byte _0800ED7C - .4byte _0800EE88 - .4byte _0800EEAC - .4byte _0800EED8 - .4byte _0800EEFC - .4byte _0800EF28 - .4byte _0800EF48 - .4byte _0800EFB4 - .4byte _0800EFCC -_0800ED0C: - ldr r2, _0800ED54 @ =gUnknown_020239F8 - ldrh r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0800ED64 - ldr r0, _0800ED58 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0800ED22 - b _0800F008 -_0800ED22: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0800ED2E - b _0800F008 -_0800ED2E: - ldr r4, _0800ED5C @ =0x02000000 - movs r5, 0x1 - strb r5, [r4] - strb r5, [r4, 0x1] - bl sub_800E9EC - bl sub_800EAAC - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - movs r2, 0x20 - bl SendBlock - ldr r0, _0800ED60 @ =gUnknown_02024D1E - strb r5, [r0] - b _0800F008 - .align 2, 0 -_0800ED54: .4byte gUnknown_020239F8 -_0800ED58: .4byte gReceivedRemoteLinkPlayers -_0800ED5C: .4byte 0x02000000 -_0800ED60: .4byte gUnknown_02024D1E -_0800ED64: - movs r0, 0x4 - orrs r0, r1 - strh r0, [r2] - ldr r1, _0800ED78 @ =gUnknown_02024D1E - movs r0, 0x8 - strb r0, [r1] - bl sub_800EB08 - b _0800F008 - .align 2, 0 -_0800ED78: .4byte gUnknown_02024D1E -_0800ED7C: - bl GetBlockRecievedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - beq _0800ED8A - b _0800F008 -_0800ED8A: - bl ResetBlockReceivedFlags - movs r3, 0 - ldr r0, _0800EDA8 @ =gBlockRecvBuffer - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _0800EDBC - cmp r4, 0 - bne _0800EDB0 - ldr r0, _0800EDAC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0xC - b _0800EDB6 - .align 2, 0 -_0800EDA8: .4byte gBlockRecvBuffer -_0800EDAC: .4byte gUnknown_020239F8 -_0800EDB0: - ldr r0, _0800EDE0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0x8 -_0800EDB6: - orrs r1, r2 - strh r1, [r0] - adds r3, 0x1 -_0800EDBC: - lsls r7, r5, 8 - cmp r3, 0 - bne _0800EE38 - ldr r0, _0800EDE4 @ =gBlockRecvBuffer - movs r1, 0x80 - lsls r1, 1 - adds r2, r0, r1 - ldrh r1, [r0] - adds r6, r0, 0 - ldrh r2, [r2] - cmp r1, r2 - bne _0800EDF4 - cmp r4, 0 - bne _0800EDE8 - ldr r0, _0800EDE0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0xC - b _0800EDEE - .align 2, 0 -_0800EDE0: .4byte gUnknown_020239F8 -_0800EDE4: .4byte gBlockRecvBuffer -_0800EDE8: - ldr r0, _0800EE04 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0x8 -_0800EDEE: - orrs r1, r2 - strh r1, [r0] - adds r3, 0x1 -_0800EDF4: - lsls r7, r5, 8 - cmp r3, 0 - bne _0800EE38 - ldrh r1, [r6] - ldr r0, _0800EE08 @ =0x00000101 - ldr r2, _0800EE04 @ =gUnknown_020239F8 - b _0800EE1A - .align 2, 0 -_0800EE04: .4byte gUnknown_020239F8 -_0800EE08: .4byte 0x00000101 -_0800EE0C: - adds r3, 0x1 - cmp r3, 0x1 - bgt _0800EE22 - lsls r0, r3, 8 - adds r0, r6 - ldrh r1, [r0] - ldr r0, _0800EE2C @ =0x00000101 -_0800EE1A: - cmp r1, r0 - bls _0800EE0C - cmp r3, r4 - beq _0800EE0C -_0800EE22: - cmp r3, 0x2 - bne _0800EE30 - ldrh r0, [r2] - movs r1, 0xC - b _0800EE34 - .align 2, 0 -_0800EE2C: .4byte 0x00000101 -_0800EE30: - ldrh r0, [r2] - movs r1, 0x8 -_0800EE34: - orrs r0, r1 - strh r0, [r2] -_0800EE38: - bl sub_800EB08 - ldr r0, _0800EE78 @ =sub_800DE30 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800EE7C @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - movs r1, 0 - movs r0, 0x87 - lsls r0, 1 - strh r0, [r2, 0xA] - movs r0, 0x5A - strh r0, [r2, 0xC] - strh r1, [r2, 0x12] - ldr r0, _0800EE80 @ =0x02000000 - ldrb r1, [r0, 0x2] - ldrb r0, [r0, 0x3] - lsls r0, 8 - orrs r1, r0 - strh r1, [r2, 0xE] - ldr r0, _0800EE84 @ =gBlockRecvBuffer - adds r0, 0x2 - adds r0, r7, r0 - ldrh r0, [r0] - strh r0, [r2, 0x10] - b _0800EF96 - .align 2, 0 -_0800EE78: .4byte sub_800DE30 -_0800EE7C: .4byte gTasks -_0800EE80: .4byte 0x02000000 -_0800EE84: .4byte gBlockRecvBuffer -_0800EE88: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0800EE94 - b _0800F008 -_0800EE94: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800EEA8 @ =gPlayerParty - movs r2, 0xC8 - bl SendBlock - b _0800EF96 - .align 2, 0 -_0800EEA8: .4byte gPlayerParty -_0800EEAC: - bl GetBlockRecievedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - beq _0800EEBA - b _0800F008 -_0800EEBA: - bl ResetBlockReceivedFlags - ldr r0, _0800EED0 @ =gEnemyParty - lsls r1, r5, 8 - ldr r2, _0800EED4 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0xC8 - bl memcpy - b _0800EF96 - .align 2, 0 -_0800EED0: .4byte gEnemyParty -_0800EED4: .4byte gBlockRecvBuffer -_0800EED8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0800EEE4 - b _0800F008 -_0800EEE4: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800EEF8 @ =gUnknown_03004428 - movs r2, 0xC8 - bl SendBlock - b _0800EF96 - .align 2, 0 -_0800EEF8: .4byte gUnknown_03004428 -_0800EEFC: - bl GetBlockRecievedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - beq _0800EF0A - b _0800F008 -_0800EF0A: - bl ResetBlockReceivedFlags - ldr r0, _0800EF20 @ =gUnknown_03004688 - lsls r1, r5, 8 - ldr r2, _0800EF24 @ =gBlockRecvBuffer - adds r1, r2 - movs r2, 0xC8 - bl memcpy - b _0800EF96 - .align 2, 0 -_0800EF20: .4byte gUnknown_03004688 -_0800EF24: .4byte gBlockRecvBuffer -_0800EF28: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - beq _0800F008 - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800EF44 @ =gUnknown_030044F0 - movs r2, 0xC8 - bl SendBlock - b _0800EF96 - .align 2, 0 -_0800EF44: .4byte gUnknown_030044F0 -_0800EF48: - bl GetBlockRecievedStatus - movs r1, 0x3 - ands r1, r0 - cmp r1, 0x3 - bne _0800F008 - bl ResetBlockReceivedFlags - ldr r4, _0800EFA0 @ =gUnknown_03004750 - lsls r1, r5, 8 - ldr r0, _0800EFA4 @ =gBlockRecvBuffer - adds r1, r0 - adds r0, r4, 0 - movs r2, 0xC8 - bl memcpy - ldr r1, _0800EFA8 @ =0xfffffe70 - adds r0, r4, r1 - bl shedinja_something - ldr r1, _0800EFAC @ =0xfffffed4 - adds r0, r4, r1 - bl shedinja_something - adds r0, r4, 0 - subs r0, 0xC8 - bl shedinja_something - adds r0, r4, 0 - subs r0, 0x64 - bl shedinja_something - adds r0, r4, 0 - bl shedinja_something - adds r0, r4, 0 - adds r0, 0x64 - bl shedinja_something -_0800EF96: - ldr r1, _0800EFB0 @ =gUnknown_02024D1E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0800F008 - .align 2, 0 -_0800EFA0: .4byte gUnknown_03004750 -_0800EFA4: .4byte gBlockRecvBuffer -_0800EFA8: .4byte 0xfffffe70 -_0800EFAC: .4byte 0xfffffed4 -_0800EFB0: .4byte gUnknown_02024D1E -_0800EFB4: - bl sub_800B950 - ldr r0, _0800EFC8 @ =gUnknown_02024D1E - ldrb r1, [r0] - adds r1, 0x1 - movs r2, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r2, [r0, 0x2] - b _0800F008 - .align 2, 0 -_0800EFC8: .4byte gUnknown_02024D1E -_0800EFCC: - ldr r0, _0800F010 @ =gUnknown_02024D1F - adds r1, r0, 0x1 - bl battle_load_something - lsls r0, 24 - cmp r0, 0 - beq _0800F008 - ldr r2, _0800F014 @ =gUnknown_030042D0 - ldr r1, _0800F018 @ =gMain - ldr r0, [r1] - str r0, [r2] - ldr r0, _0800F01C @ =sub_8010824 - str r0, [r1] - ldr r0, _0800F020 @ =sub_800F808 - bl SetMainCallback2 - ldr r3, _0800F024 @ =gUnknown_020239F8 - ldrh r2, [r3] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0800F008 - ldr r1, _0800F028 @ =gTrainerBattleOpponent - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - strh r0, [r1] - movs r0, 0x20 - orrs r0, r2 - strh r0, [r3] -_0800F008: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F010: .4byte gUnknown_02024D1F -_0800F014: .4byte gUnknown_030042D0 -_0800F018: .4byte gMain -_0800F01C: .4byte sub_8010824 -_0800F020: .4byte sub_800F808 -_0800F024: .4byte gUnknown_020239F8 -_0800F028: .4byte gTrainerBattleOpponent - thumb_func_end sub_800EC9C - - thumb_func_start sub_800F02C -sub_800F02C: @ 800F02C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r8, r0 - ldr r7, _0800F0F8 @ =gUnknown_02023A04 - mov r10, r7 -_0800F03E: - mov r1, r8 - lsls r6, r1, 5 - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - ldr r0, _0800F0FC @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - movs r1, 0x4 - negs r1, r1 - add r1, r10 - mov r9, r1 - adds r5, r6, r1 - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - strh r0, [r5, 0x2] - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r7, 0 - bl GetMonData - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - strb r0, [r5, 0xF] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5, 0x10] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - strh r0, [r5, 0x12] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - mov r1, r10 - adds r1, 0x10 - adds r6, r1 - str r0, [r6] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [r7, 0x14] - adds r0, r4, 0 - bl GetMonGender - strb r0, [r5, 0x1C] - adds r0, r7, 0 - bl StripExtCtrlCodes - adds r0, r4, 0 - movs r1, 0x3 - bl GetMonData - strb r0, [r5, 0x1D] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0800F0D4 - adds r0, r7, 0 - movs r1, 0 - bl sub_814A518 -_0800F0D4: - adds r7, 0x20 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x2 - ble _0800F03E - ldr r0, _0800F100 @ =0x02000000 - mov r1, r9 - movs r2, 0x60 - bl memcpy - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F0F8: .4byte gUnknown_02023A04 -_0800F0FC: .4byte gPlayerParty -_0800F100: .4byte 0x02000000 - thumb_func_end sub_800F02C - - thumb_func_start sub_800F104 -sub_800F104: @ 800F104 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl GetMultiplayerId - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, _0800F148 @ =0x02000000 - ldr r1, _0800F14C @ =0x000160cb - adds r0, r4, r1 - strb r6, [r0] - ldr r2, _0800F150 @ =0x000160c4 - adds r2, r4 - mov r9, r2 - ldr r0, _0800F154 @ =0x000160c2 - adds r0, r4 - mov r8, r0 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r5, _0800F158 @ =gUnknown_02024D1E - ldrb r0, [r5] - cmp r0, 0x1 - beq _0800F1A0 - cmp r0, 0x1 - bgt _0800F15C - cmp r0, 0 - beq _0800F168 - b _0800F27A - .align 2, 0 -_0800F148: .4byte 0x02000000 -_0800F14C: .4byte 0x000160cb -_0800F150: .4byte 0x000160c4 -_0800F154: .4byte 0x000160c2 -_0800F158: .4byte gUnknown_02024D1E -_0800F15C: - cmp r0, 0x2 - beq _0800F240 - cmp r0, 0x3 - bne _0800F166 - b _0800F25C -_0800F166: - b _0800F27A -_0800F168: - ldr r0, _0800F19C @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0800F172 - b _0800F27A -_0800F172: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0800F17E - b _0800F27A -_0800F17E: - bl sub_800F02C - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - movs r2, 0x60 - bl SendBlock - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0800F27A - .align 2, 0 -_0800F19C: .4byte gReceivedRemoteLinkPlayers -_0800F1A0: - bl GetBlockRecievedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - bne _0800F27A - bl ResetBlockReceivedFlags - movs r4, 0 - lsls r0, r6, 3 - subs r0, r6 - lsls r5, r0, 2 - movs r7, 0 -_0800F1BA: - cmp r4, r6 - beq _0800F1FA - ldr r2, _0800F1DC @ =gLinkPlayers - adds r0, r7, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0800F1E0 - adds r0, r5, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0800F1EC - b _0800F1FA - .align 2, 0 -_0800F1DC: .4byte gLinkPlayers -_0800F1E0: - adds r0, r5, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0800F1FA -_0800F1EC: - lsls r1, r4, 8 - ldr r0, _0800F228 @ =gBlockRecvBuffer - adds r1, r0 - ldr r0, _0800F22C @ =gUnknown_02023A00 - movs r2, 0x60 - bl memcpy -_0800F1FA: - adds r7, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _0800F1BA - ldr r1, _0800F230 @ =gUnknown_02024D1E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _0800F234 @ =gMain - ldr r0, [r1, 0x8] - mov r2, r9 - str r0, [r2] - ldr r0, _0800F238 @ =gUnknown_020239F8 - ldrh r0, [r0] - mov r2, r8 - strh r0, [r2] - ldr r0, _0800F23C @ =sub_800F104 - str r0, [r1, 0x8] - movs r0, 0x5 - movs r1, 0 - bl OpenPartyMenu - b _0800F27A - .align 2, 0 -_0800F228: .4byte gBlockRecvBuffer -_0800F22C: .4byte gUnknown_02023A00 -_0800F230: .4byte gUnknown_02024D1E -_0800F234: .4byte gMain -_0800F238: .4byte gUnknown_020239F8 -_0800F23C: .4byte sub_800F104 -_0800F240: - ldr r0, _0800F258 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0800F27A - movs r0, 0x3 - strb r0, [r5] - bl sub_800832C - b _0800F27A - .align 2, 0 -_0800F258: .4byte gPaletteFade -_0800F25C: - ldr r0, _0800F288 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0800F27A - ldr r1, _0800F28C @ =gUnknown_020239F8 - mov r2, r8 - ldrh r0, [r2] - strh r0, [r1] - ldr r1, _0800F290 @ =gMain - mov r2, r9 - ldr r0, [r2] - str r0, [r1, 0x8] - ldr r0, _0800F294 @ =sub_800E7F8 - bl SetMainCallback2 -_0800F27A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F288: .4byte gReceivedRemoteLinkPlayers -_0800F28C: .4byte gUnknown_020239F8 -_0800F290: .4byte gMain -_0800F294: .4byte sub_800E7F8 - thumb_func_end sub_800F104 - - thumb_func_start sub_800F298 -sub_800F298: @ 800F298 - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl GetMultiplayerId - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _0800F2D0 @ =0x02000000 - ldr r1, _0800F2D4 @ =0x000160cb - adds r0, r1 - strb r6, [r0] - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _0800F2D8 @ =gUnknown_02024D1E - ldrb r0, [r0] - cmp r0, 0x7 - bls _0800F2C4 - b _0800F7E0 -_0800F2C4: - lsls r0, 2 - ldr r1, _0800F2DC @ =_0800F2E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800F2D0: .4byte 0x02000000 -_0800F2D4: .4byte 0x000160cb -_0800F2D8: .4byte gUnknown_02024D1E -_0800F2DC: .4byte _0800F2E0 - .align 2, 0 -_0800F2E0: - .4byte _0800F300 - .4byte _0800F340 - .4byte _0800F4DE - .4byte _0800F504 - .4byte _0800F5F8 - .4byte _0800F61C - .4byte _0800F78C - .4byte _0800F7A4 -_0800F300: - ldr r0, _0800F338 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0800F30A - b _0800F7E0 -_0800F30A: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0800F316 - b _0800F7E0 -_0800F316: - ldr r4, _0800F33C @ =0x02000000 - movs r0, 0x1 - strb r0, [r4] - strb r0, [r4, 0x1] - bl sub_800E9EC - bl sub_800EAAC - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - movs r2, 0x20 - bl SendBlock - b _0800F770 - .align 2, 0 -_0800F338: .4byte gReceivedRemoteLinkPlayers -_0800F33C: .4byte 0x02000000 -_0800F340: - bl GetBlockRecievedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - beq _0800F34E - b _0800F7E0 -_0800F34E: - bl ResetBlockReceivedFlags - movs r4, 0 - ldr r0, _0800F36C @ =gBlockRecvBuffer - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _0800F380 - cmp r6, 0 - bne _0800F374 - ldr r0, _0800F370 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0xC - b _0800F37A - .align 2, 0 -_0800F36C: .4byte gBlockRecvBuffer -_0800F370: .4byte gUnknown_020239F8 -_0800F374: - ldr r0, _0800F3B0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0x8 -_0800F37A: - orrs r1, r2 - strh r1, [r0] - adds r4, 0x1 -_0800F380: - cmp r4, 0 - bne _0800F41C - movs r2, 0 - ldr r1, _0800F3B4 @ =gBlockRecvBuffer - adds r5, r1, 0 - movs r3, 0x80 - lsls r3, 1 -_0800F38E: - adds r1, r3 - adds r2, 0x1 - cmp r2, 0x3 - bgt _0800F39E - ldrh r0, [r5] - ldrh r7, [r1] - cmp r0, r7 - beq _0800F38E -_0800F39E: - cmp r2, 0x4 - bne _0800F3C4 - cmp r6, 0 - bne _0800F3B8 - ldr r0, _0800F3B0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0xC - b _0800F3BE - .align 2, 0 -_0800F3B0: .4byte gUnknown_020239F8 -_0800F3B4: .4byte gBlockRecvBuffer -_0800F3B8: - ldr r0, _0800F408 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0x8 -_0800F3BE: - orrs r1, r2 - strh r1, [r0] - adds r4, 0x1 -_0800F3C4: - cmp r4, 0 - bne _0800F41C - ldr r0, _0800F40C @ =gBlockRecvBuffer - ldrh r2, [r0] - ldr r1, _0800F410 @ =0x00000101 - adds r3, r0, 0 - ldr r5, _0800F408 @ =gUnknown_020239F8 - cmp r2, r1 - beq _0800F3F6 -_0800F3D6: - lsls r0, r4, 8 - adds r0, r3 - ldrh r0, [r0] - ldr r1, _0800F410 @ =0x00000101 - cmp r0, r1 - bls _0800F3E6 - cmp r4, r6 - bne _0800F3FE -_0800F3E6: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0800F3FE - lsls r0, r4, 8 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r1 - bne _0800F3D6 -_0800F3F6: - cmp r4, r6 - beq _0800F3D6 - cmp r4, r6 - bge _0800F3D6 -_0800F3FE: - cmp r4, 0x4 - bne _0800F414 - ldrh r0, [r5] - movs r1, 0xC - b _0800F418 - .align 2, 0 -_0800F408: .4byte gUnknown_020239F8 -_0800F40C: .4byte gBlockRecvBuffer -_0800F410: .4byte 0x00000101 -_0800F414: - ldrh r0, [r5] - movs r1, 0x8 -_0800F418: - orrs r0, r1 - strh r0, [r5] -_0800F41C: - bl sub_800EB08 - ldr r0, _0800F474 @ =0x0201d000 - ldr r1, _0800F478 @ =gPlayerParty - movs r2, 0x96 - lsls r2, 1 - bl memcpy - ldr r0, _0800F47C @ =sub_800DE30 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0800F480 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0 - movs r0, 0x87 - lsls r0, 1 - strh r0, [r1, 0xA] - movs r0, 0x5A - strh r0, [r1, 0xC] - strh r2, [r1, 0x12] - strh r2, [r1, 0xE] - strh r2, [r1, 0x10] - adds r2, r1, 0 - ldr r0, _0800F484 @ =gBlockRecvBuffer - adds r3, r0, 0x2 - ldr r6, _0800F488 @ =gLinkPlayers - movs r5, 0x3F - movs r7, 0x80 - lsls r7, 1 - movs r4, 0x3 -_0800F464: - ldrh r0, [r6, 0x18] - cmp r0, 0x1 - beq _0800F49E - cmp r0, 0x1 - bgt _0800F48C - cmp r0, 0 - beq _0800F496 - b _0800F4C4 - .align 2, 0 -_0800F474: .4byte 0x0201d000 -_0800F478: .4byte gPlayerParty -_0800F47C: .4byte sub_800DE30 -_0800F480: .4byte gTasks -_0800F484: .4byte gBlockRecvBuffer -_0800F488: .4byte gLinkPlayers -_0800F48C: - cmp r0, 0x2 - beq _0800F4A6 - cmp r0, 0x3 - beq _0800F4B6 - b _0800F4C4 -_0800F496: - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - b _0800F4AE -_0800F49E: - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - b _0800F4BE -_0800F4A6: - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r1, 6 -_0800F4AE: - ldrh r0, [r2, 0xE] - orrs r1, r0 - strh r1, [r2, 0xE] - b _0800F4C4 -_0800F4B6: - ldrh r0, [r3] - adds r1, r5, 0 - ands r1, r0 - lsls r1, 6 -_0800F4BE: - ldrh r0, [r2, 0x10] - orrs r1, r0 - strh r1, [r2, 0x10] -_0800F4C4: - adds r3, r7 - adds r6, 0x1C - subs r4, 0x1 - cmp r4, 0 - bge _0800F464 - bl ZeroPlayerPartyMons - bl ZeroEnemyPartyMons - ldr r1, _0800F4FC @ =gUnknown_02024D1E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0800F4DE: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0800F4EA - b _0800F7E0 -_0800F4EA: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800F500 @ =0x0201d000 - movs r2, 0xC8 - bl SendBlock - b _0800F770 - .align 2, 0 -_0800F4FC: .4byte gUnknown_02024D1E -_0800F500: .4byte 0x0201d000 -_0800F504: - bl GetBlockRecievedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - beq _0800F512 - b _0800F7E0 -_0800F512: - bl ResetBlockReceivedFlags - movs r4, 0 - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - mov r8, r0 - ldr r5, _0800F53C @ =gBlockRecvBuffer - movs r7, 0 -_0800F524: - cmp r4, r6 - bne _0800F558 - ldr r0, _0800F540 @ =gLinkPlayers - adds r0, r7, r0 - ldrh r0, [r0, 0x18] - cmp r0, 0x2 - bgt _0800F544 - cmp r0, 0x1 - bge _0800F550 - cmp r0, 0 - beq _0800F548 - b _0800F5E2 - .align 2, 0 -_0800F53C: .4byte gBlockRecvBuffer -_0800F540: .4byte gLinkPlayers -_0800F544: - cmp r0, 0x3 - bne _0800F5E2 -_0800F548: - ldr r0, _0800F54C @ =gPlayerParty - b _0800F5C8 - .align 2, 0 -_0800F54C: .4byte gPlayerParty -_0800F550: - ldr r0, _0800F554 @ =gUnknown_0300448C - b _0800F5C8 - .align 2, 0 -_0800F554: .4byte gUnknown_0300448C -_0800F558: - ldr r2, _0800F578 @ =gLinkPlayers - adds r0, r7, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0800F57C - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0800F58A - b _0800F5B0 - .align 2, 0 -_0800F578: .4byte gLinkPlayers -_0800F57C: - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0800F5B0 -_0800F58A: - adds r0, r7, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _0800F59C - cmp r2, 0x1 - bge _0800F5A8 - cmp r2, 0 - beq _0800F5A0 - b _0800F5E2 -_0800F59C: - cmp r2, 0x3 - bne _0800F5E2 -_0800F5A0: - ldr r0, _0800F5A4 @ =gPlayerParty - b _0800F5C8 - .align 2, 0 -_0800F5A4: .4byte gPlayerParty -_0800F5A8: - ldr r0, _0800F5AC @ =gUnknown_0300448C - b _0800F5C8 - .align 2, 0 -_0800F5AC: .4byte gUnknown_0300448C -_0800F5B0: - adds r0, r7, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _0800F5C2 - cmp r2, 0x1 - bge _0800F5D8 - cmp r2, 0 - beq _0800F5C6 - b _0800F5E2 -_0800F5C2: - cmp r2, 0x3 - bne _0800F5E2 -_0800F5C6: - ldr r0, _0800F5D4 @ =gEnemyParty -_0800F5C8: - adds r1, r5, 0 - movs r2, 0xC8 - bl memcpy - b _0800F5E2 - .align 2, 0 -_0800F5D4: .4byte gEnemyParty -_0800F5D8: - ldr r0, _0800F5F4 @ =gUnknown_030046EC - adds r1, r5, 0 - movs r2, 0xC8 - bl memcpy -_0800F5E2: - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - adds r7, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _0800F524 - b _0800F770 - .align 2, 0 -_0800F5F4: .4byte gUnknown_030046EC -_0800F5F8: - bl sub_8007ECC - lsls r0, 24 - cmp r0, 0 - bne _0800F604 - b _0800F7E0 -_0800F604: - bl bitmask_all_link_players_but_self - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0800F618 @ =0x0201d0c8 - movs r2, 0x64 - bl SendBlock - b _0800F770 - .align 2, 0 -_0800F618: .4byte 0x0201d0c8 -_0800F61C: - bl GetBlockRecievedStatus - movs r1, 0xF - ands r1, r0 - cmp r1, 0xF - beq _0800F62A - b _0800F7E0 -_0800F62A: - bl ResetBlockReceivedFlags - movs r4, 0 - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - mov r8, r0 - ldr r5, _0800F654 @ =gBlockRecvBuffer - movs r7, 0 -_0800F63C: - cmp r4, r6 - bne _0800F670 - ldr r0, _0800F658 @ =gLinkPlayers - adds r0, r7, r0 - ldrh r0, [r0, 0x18] - cmp r0, 0x2 - bgt _0800F65C - cmp r0, 0x1 - bge _0800F668 - cmp r0, 0 - beq _0800F660 - b _0800F6FA - .align 2, 0 -_0800F654: .4byte gBlockRecvBuffer -_0800F658: .4byte gLinkPlayers -_0800F65C: - cmp r0, 0x3 - bne _0800F6FA -_0800F660: - ldr r0, _0800F664 @ =gUnknown_03004428 - b _0800F6E0 - .align 2, 0 -_0800F664: .4byte gUnknown_03004428 -_0800F668: - ldr r0, _0800F66C @ =gUnknown_03004554 - b _0800F6E0 - .align 2, 0 -_0800F66C: .4byte gUnknown_03004554 -_0800F670: - ldr r2, _0800F690 @ =gLinkPlayers - adds r0, r7, r2 - ldrh r1, [r0, 0x18] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0800F694 - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0800F6A2 - b _0800F6C8 - .align 2, 0 -_0800F690: .4byte gLinkPlayers -_0800F694: - mov r1, r8 - adds r0, r1, r2 - ldrh r1, [r0, 0x18] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0800F6C8 -_0800F6A2: - adds r0, r7, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _0800F6B4 - cmp r2, 0x1 - bge _0800F6C0 - cmp r2, 0 - beq _0800F6B8 - b _0800F6FA -_0800F6B4: - cmp r2, 0x3 - bne _0800F6FA -_0800F6B8: - ldr r0, _0800F6BC @ =gUnknown_03004428 - b _0800F6E0 - .align 2, 0 -_0800F6BC: .4byte gUnknown_03004428 -_0800F6C0: - ldr r0, _0800F6C4 @ =gUnknown_03004554 - b _0800F6E0 - .align 2, 0 -_0800F6C4: .4byte gUnknown_03004554 -_0800F6C8: - adds r0, r7, r2 - ldrh r2, [r0, 0x18] - cmp r2, 0x2 - bgt _0800F6DA - cmp r2, 0x1 - bge _0800F6F0 - cmp r2, 0 - beq _0800F6DE - b _0800F6FA -_0800F6DA: - cmp r2, 0x3 - bne _0800F6FA -_0800F6DE: - ldr r0, _0800F6EC @ =gUnknown_03004688 -_0800F6E0: - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy - b _0800F6FA - .align 2, 0 -_0800F6EC: .4byte gUnknown_03004688 -_0800F6F0: - ldr r0, _0800F77C @ =gUnknown_030047B4 - adds r1, r5, 0 - movs r2, 0x64 - bl memcpy -_0800F6FA: - movs r0, 0x80 - lsls r0, 1 - adds r5, r0 - adds r7, 0x1C - adds r4, 0x1 - cmp r4, 0x3 - ble _0800F63C - ldr r4, _0800F780 @ =gPlayerParty - adds r0, r4, 0 - bl shedinja_something - adds r0, r4, 0 - adds r0, 0x64 - bl shedinja_something - adds r0, r4, 0 - adds r0, 0xC8 - bl shedinja_something - movs r1, 0x96 - lsls r1, 1 - adds r0, r4, r1 - bl shedinja_something - movs r7, 0xC8 - lsls r7, 1 - adds r0, r4, r7 - bl shedinja_something - movs r1, 0xFA - lsls r1, 1 - adds r0, r4, r1 - bl shedinja_something - ldr r4, _0800F784 @ =gEnemyParty - adds r0, r4, 0 - bl shedinja_something - adds r0, r4, 0 - adds r0, 0x64 - bl shedinja_something - adds r0, r4, 0 - adds r0, 0xC8 - bl shedinja_something - subs r7, 0x64 - adds r0, r4, r7 - bl shedinja_something - movs r1, 0xC8 - lsls r1, 1 - adds r0, r4, r1 - bl shedinja_something - adds r7, 0xC8 - adds r0, r4, r7 - bl shedinja_something -_0800F770: - ldr r1, _0800F788 @ =gUnknown_02024D1E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0800F7E0 - .align 2, 0 -_0800F77C: .4byte gUnknown_030047B4 -_0800F780: .4byte gPlayerParty -_0800F784: .4byte gEnemyParty -_0800F788: .4byte gUnknown_02024D1E -_0800F78C: - bl sub_800B950 - ldr r0, _0800F7A0 @ =gUnknown_02024D1E - ldrb r1, [r0] - adds r1, 0x1 - movs r2, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - strb r2, [r0, 0x2] - b _0800F7E0 - .align 2, 0 -_0800F7A0: .4byte gUnknown_02024D1E -_0800F7A4: - ldr r0, _0800F7EC @ =gUnknown_02024D1F - adds r1, r0, 0x1 - bl battle_load_something - lsls r0, 24 - cmp r0, 0 - beq _0800F7E0 - ldr r2, _0800F7F0 @ =gUnknown_030042D0 - ldr r1, _0800F7F4 @ =gMain - ldr r0, [r1] - str r0, [r2] - ldr r0, _0800F7F8 @ =sub_8010824 - str r0, [r1] - ldr r0, _0800F7FC @ =sub_800F808 - bl SetMainCallback2 - ldr r3, _0800F800 @ =gUnknown_020239F8 - ldrh r2, [r3] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0800F7E0 - ldr r1, _0800F804 @ =gTrainerBattleOpponent - movs r4, 0x80 - lsls r4, 4 - adds r0, r4, 0 - strh r0, [r1] - movs r0, 0x20 - orrs r0, r2 - strh r0, [r3] -_0800F7E0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0800F7EC: .4byte gUnknown_02024D1F -_0800F7F0: .4byte gUnknown_030042D0 -_0800F7F4: .4byte gMain -_0800F7F8: .4byte sub_8010824 -_0800F7FC: .4byte sub_800F808 -_0800F800: .4byte gUnknown_020239F8 -_0800F804: .4byte gTrainerBattleOpponent - thumb_func_end sub_800F298 - - thumb_func_start sub_800F808 -sub_800F808: @ 800F808 - push {lr} - bl AnimateSprites - bl BuildOamBuffer - ldr r0, _0800F824 @ =gUnknown_03004210 - bl sub_800374C - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - .align 2, 0 -_0800F824: .4byte gUnknown_03004210 - thumb_func_end sub_800F808 - - thumb_func_start sub_800F828 -sub_800F828: @ 800F828 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r1, _0800F834 @ =sub_800F838 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_0800F834: .4byte sub_800F838 - thumb_func_end sub_800F828 - - thumb_func_start sub_800F838 -sub_800F838: @ 800F838 - push {r4,r5,lr} - adds r3, r0, 0 - ldr r5, _0800F850 @ =0x02000000 - movs r0, 0x2E - ldrsh r1, [r3, r0] - cmp r1, 0x1 - beq _0800F86C - cmp r1, 0x1 - bgt _0800F854 - cmp r1, 0 - beq _0800F85A - b _0800F8DC - .align 2, 0 -_0800F850: .4byte 0x02000000 -_0800F854: - cmp r1, 0x2 - beq _0800F8C8 - b _0800F8DC -_0800F85A: - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - strh r1, [r3, 0x30] - ldr r0, _0800F8C4 @ =0x00000281 - strh r0, [r3, 0x32] - strh r1, [r3, 0x34] - movs r0, 0x1 - strh r0, [r3, 0x36] -_0800F86C: - ldrh r0, [r3, 0x36] - subs r0, 0x1 - strh r0, [r3, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _0800F8DC - movs r0, 0x2 - strh r0, [r3, 0x36] - movs r4, 0x30 - ldrsh r2, [r3, r4] - movs r0, 0x34 - ldrsh r1, [r3, r0] - lsls r1, 5 - adds r2, r1 - movs r4, 0x32 - ldrsh r0, [r3, r4] - subs r0, r1 - movs r4, 0x3D - lsls r0, 1 - adds r0, r5 - lsls r2, 1 - adds r2, r5 - movs r1, 0x1C -_0800F89A: - strh r4, [r2] - strh r4, [r0] - adds r0, 0x4 - adds r2, 0x4 - subs r1, 0x2 - cmp r1, 0 - bge _0800F89A - ldrh r0, [r3, 0x34] - adds r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _0800F8DC - ldrh r0, [r3, 0x2E] - adds r0, 0x1 - strh r0, [r3, 0x2E] - movs r0, 0x20 - strh r0, [r3, 0x30] - b _0800F8DC - .align 2, 0 -_0800F8C4: .4byte 0x00000281 -_0800F8C8: - ldrh r0, [r3, 0x30] - subs r0, 0x1 - strh r0, [r3, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _0800F8DC - ldr r0, _0800F8E4 @ =sub_800E7C4 - bl SetMainCallback2 -_0800F8DC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800F8E4: .4byte sub_800E7C4 - thumb_func_end sub_800F838 - - thumb_func_start sub_800F8E8 -sub_800F8E8: @ 800F8E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r0, [sp, 0x10] - lsls r1, 16 - lsrs r1, 16 - str r1, [sp, 0x14] - movs r0, 0 - mov r9, r0 - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _0800F90C - movs r0, 0 - b _0800FCB4 -_0800F90C: - ldr r0, _0800F93C @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0800F940 @ =0x00000908 - ands r0, r1 - ldr r1, [sp, 0x14] - lsls r1, 2 - str r1, [sp, 0x20] - cmp r0, 0x8 - beq _0800F920 - b _0800FCA4 -_0800F920: - bl ZeroEnemyPartyMons - movs r2, 0 - str r2, [sp, 0x18] - ldr r2, _0800F944 @ =gTrainers - ldr r1, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - adds r0, 0x20 - ldr r4, [sp, 0x18] - b _0800FC86 - .align 2, 0 -_0800F93C: .4byte gUnknown_020239F8 -_0800F940: .4byte 0x00000908 -_0800F944: .4byte gTrainers -_0800F948: - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r0, 3 - adds r1, r0, r2 - ldrb r0, [r1, 0x18] - cmp r0, 0x1 - bne _0800F95C - movs r4, 0x80 - mov r10, r4 - b _0800F96E -_0800F95C: - ldrb r1, [r1, 0x2] - movs r0, 0x80 - ands r0, r1 - movs r1, 0x88 - mov r10, r1 - cmp r0, 0 - beq _0800F96E - movs r2, 0x78 - mov r10, r2 -_0800F96E: - movs r6, 0 - ldr r0, _0800F9C4 @ =gTrainers - ldr r2, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r1, r2, r3 - lsls r1, 3 - adds r3, r0, 0x4 - adds r1, r3 - ldrb r1, [r1] - adds r4, r0, 0 - ldr r0, [sp, 0x18] - adds r0, 0x1 - str r0, [sp, 0x1C] - cmp r1, 0xFF - beq _0800F9A6 -_0800F98C: - ldr r0, [sp, 0x14] - adds r1, r2, r0 - lsls r1, 3 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0800F98C -_0800F9A6: - adds r2, r4, 0 - ldr r1, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r1, r0, 3 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0800FA5C - cmp r0, 0x1 - bgt _0800F9C8 - cmp r0, 0 - beq _0800F9D6 - b _0800FC74 - .align 2, 0 -_0800F9C4: .4byte gTrainers -_0800F9C8: - cmp r0, 0x2 - bne _0800F9CE - b _0800FB1C -_0800F9CE: - cmp r0, 0x3 - bne _0800F9D4 - b _0800FBB0 -_0800F9D4: - b _0800FC74 -_0800F9D6: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r4, [r0] - movs r6, 0 - ldr r0, [sp, 0x18] - lsls r2, r0, 3 - adds r0, r2, r4 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _0800FA58 @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - adds r5, r2, 0 - cmp r0, 0xFF - beq _0800FA18 - adds r3, r1, 0 - movs r7, 0xB -_0800F9FC: - adds r0, r2, r4 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r7 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0800F9FC -_0800FA18: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - adds r4, r5, r4 - ldrh r1, [r4] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - movs r1, 0x64 - adds r0, r3, 0 - muls r0, r1 - ldr r2, [sp, 0x10] - adds r0, r2, r0 - ldrh r1, [r4, 0x4] - ldrb r2, [r4, 0x2] - movs r3, 0x1 - str r3, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r3, 0x2 - str r3, [sp, 0x8] - movs r3, 0 - str r3, [sp, 0xC] - adds r3, r6, 0 - bl CreateMon - b _0800FC74 - .align 2, 0 -_0800FA58: .4byte gSpeciesNames -_0800FA5C: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r7, [r0] - movs r6, 0 - ldr r4, [sp, 0x18] - lsls r2, r4, 4 - adds r0, r2, r7 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _0800FB14 @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - mov r8, r2 - cmp r0, 0xFF - beq _0800FA9E - adds r3, r1, 0 - movs r4, 0xB -_0800FA82: - adds r0, r2, r7 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r4 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0800FA82 -_0800FA9E: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - mov r3, r8 - adds r4, r3, r7 - ldrh r1, [r4] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x18] - movs r1, 0x64 - adds r5, r0, 0 - muls r5, r1 - ldr r2, [sp, 0x10] - adds r5, r2, r5 - ldrh r1, [r4, 0x4] - ldrb r2, [r4, 0x2] - movs r0, 0x1 - str r0, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - adds r0, r5, 0 - adds r3, r6, 0 - bl CreateMon - movs r6, 0 - mov r0, r8 - adds r0, 0x6 - adds r4, r7, r0 -_0800FAE8: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r5, 0 - adds r2, r4, 0 - bl SetMonData - adds r1, r6, 0 - adds r1, 0x11 - ldrh r0, [r4] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - ldr r0, _0800FB18 @ =gBattleMoves + 0x4 @ PP offset - adds r2, r0 - adds r0, r5, 0 - bl SetMonData - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0800FAE8 - b _0800FC74 - .align 2, 0 -_0800FB14: .4byte gSpeciesNames -_0800FB18: .4byte gBattleMoves + 0x4 @ PP offset -_0800FB1C: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r4, [r0] - movs r6, 0 - ldr r0, [sp, 0x18] - lsls r2, r0, 3 - adds r0, r2, r4 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _0800FBAC @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - adds r5, r2, 0 - cmp r0, 0xFF - beq _0800FB5E - adds r3, r1, 0 - movs r7, 0xB -_0800FB42: - adds r0, r2, r4 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r7 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0800FB42 -_0800FB5E: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - adds r5, r4 - ldrh r1, [r5] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, [sp, 0x18] - movs r0, 0x64 - adds r4, r3, 0 - muls r4, r0 - ldr r1, [sp, 0x10] - adds r4, r1, r4 - ldrh r1, [r5, 0x4] - ldrb r2, [r5, 0x2] - movs r0, 0x1 - str r0, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - adds r0, r4, 0 - adds r3, r6, 0 - bl CreateMon - adds r5, 0x6 - adds r0, r4, 0 - movs r1, 0xC - adds r2, r5, 0 - bl SetMonData - b _0800FC74 - .align 2, 0 -_0800FBAC: .4byte gSpeciesNames -_0800FBB0: - adds r0, r4, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r7, [r0] - movs r6, 0 - ldr r4, [sp, 0x18] - lsls r2, r4, 4 - adds r0, r2, r7 - ldrh r1, [r0, 0x4] - movs r0, 0xB - muls r0, r1 - ldr r1, _0800FCC4 @ =gSpeciesNames - adds r0, r1 - ldrb r0, [r0] - mov r8, r2 - cmp r0, 0xFF - beq _0800FBF2 - adds r3, r1, 0 - movs r4, 0xB -_0800FBD6: - adds r0, r2, r7 - ldrh r0, [r0, 0x4] - adds r1, r0, 0 - muls r1, r4 - adds r0, r6, r1 - adds r0, r3 - ldrb r0, [r0] - add r9, r0 - adds r6, 0x1 - adds r1, r6, r1 - adds r1, r3 - ldrb r0, [r1] - cmp r0, 0xFF - bne _0800FBD6 -_0800FBF2: - mov r2, r9 - lsls r0, r2, 8 - add r10, r0 - mov r3, r8 - adds r5, r3, r7 - ldrh r1, [r5] - lsls r0, r1, 5 - subs r0, r1 - movs r1, 0xFF - bl __divsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, [sp, 0x18] - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r2, [sp, 0x10] - adds r4, r2, r4 - ldrh r1, [r5, 0x4] - ldrb r2, [r5, 0x2] - movs r0, 0x1 - str r0, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - adds r0, r4, 0 - adds r3, r6, 0 - bl CreateMon - adds r5, 0x6 - adds r0, r4, 0 - movs r1, 0xC - adds r2, r5, 0 - bl SetMonData - movs r6, 0 - adds r5, r4, 0 - mov r0, r8 - adds r0, 0x8 - adds r4, r7, r0 -_0800FC4A: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r5, 0 - adds r2, r4, 0 - bl SetMonData - adds r1, r6, 0 - adds r1, 0x11 - ldrh r0, [r4] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - ldr r0, _0800FCC8 @ =gBattleMoves + 0x4 @ PP offset - adds r2, r0 - adds r0, r5, 0 - bl SetMonData - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0800FC4A -_0800FC74: - ldr r4, [sp, 0x1C] - str r4, [sp, 0x18] - ldr r2, _0800FCCC @ =gTrainers - ldr r1, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r1, r3 - lsls r0, 3 - adds r0, r2 - adds r0, 0x20 -_0800FC86: - ldrb r0, [r0] - cmp r4, r0 - bge _0800FC8E - b _0800F948 -_0800FC8E: - ldr r2, _0800FCD0 @ =gUnknown_020239F8 - ldr r1, _0800FCCC @ =gTrainers - ldr r4, [sp, 0x20] - ldr r3, [sp, 0x14] - adds r0, r4, r3 - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x18] - ldrh r1, [r2] - orrs r0, r1 - strh r0, [r2] -_0800FCA4: - ldr r0, _0800FCCC @ =gTrainers - ldr r4, [sp, 0x20] - ldr r2, [sp, 0x14] - adds r1, r4, r2 - lsls r1, 3 - adds r1, r0 - adds r1, 0x20 - ldrb r0, [r1] -_0800FCB4: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0800FCC4: .4byte gSpeciesNames -_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset -_0800FCCC: .4byte gTrainers -_0800FCD0: .4byte gUnknown_020239F8 - thumb_func_end sub_800F8E8 - - thumb_func_start sub_800FCD4 -sub_800FCD4: @ 800FCD4 - push {lr} - ldr r0, _0800FCF4 @ =REG_VCOUNT - ldrh r0, [r0] - subs r0, 0x6F - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x30 - bhi _0800FCEE - ldr r1, _0800FCF8 @ =REG_BG0CNT - movs r2, 0x98 - lsls r2, 8 - adds r0, r2, 0 - strh r0, [r1] -_0800FCEE: - pop {r0} - bx r0 - .align 2, 0 -_0800FCF4: .4byte REG_VCOUNT -_0800FCF8: .4byte REG_BG0CNT - thumb_func_end sub_800FCD4 - - thumb_func_start sub_800FCFC -sub_800FCFC: @ 800FCFC - push {lr} - bl Random - ldr r1, _0800FD78 @ =REG_BG0HOFS - ldr r0, _0800FD7C @ =gUnknown_030042A4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0800FD80 @ =gUnknown_030042A0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0800FD84 @ =gUnknown_030042C0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0800FD88 @ =gUnknown_030041B4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0800FD8C @ =gUnknown_03004288 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0800FD90 @ =gUnknown_03004280 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0800FD94 @ =gUnknown_030041B0 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x2 - ldr r0, _0800FD98 @ =gUnknown_030041B8 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x22 - ldr r0, _0800FD9C @ =gUnknown_030042C4 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _0800FDA0 @ =gUnknown_03004240 - ldrh r0, [r0] - strh r0, [r1] - subs r1, 0x2 - ldr r0, _0800FDA4 @ =gUnknown_03004200 - ldrh r0, [r0] - strh r0, [r1] - adds r1, 0x4 - ldr r0, _0800FDA8 @ =gUnknown_03004244 - ldrh r0, [r0] - strh r0, [r1] - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - bl sub_8089668 - pop {r0} - bx r0 - .align 2, 0 -_0800FD78: .4byte REG_BG0HOFS -_0800FD7C: .4byte gUnknown_030042A4 -_0800FD80: .4byte gUnknown_030042A0 -_0800FD84: .4byte gUnknown_030042C0 -_0800FD88: .4byte gUnknown_030041B4 -_0800FD8C: .4byte gUnknown_03004288 -_0800FD90: .4byte gUnknown_03004280 -_0800FD94: .4byte gUnknown_030041B0 -_0800FD98: .4byte gUnknown_030041B8 -_0800FD9C: .4byte gUnknown_030042C4 -_0800FDA0: .4byte gUnknown_03004240 -_0800FDA4: .4byte gUnknown_03004200 -_0800FDA8: .4byte gUnknown_03004244 - thumb_func_end sub_800FCFC - - thumb_func_start nullsub_36 -nullsub_36: @ 800FDAC - bx lr - thumb_func_end nullsub_36 - - thumb_func_start sub_800FDB0 -sub_800FDB0: @ 800FDB0 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0800FDD0 - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - lsrs r0, 8 - ldrh r1, [r5, 0x30] - adds r0, r1 - strh r0, [r5, 0x20] - b _0800FDE2 -_0800FDD0: - movs r1, 0x32 - ldrsh r0, [r5, r1] - movs r1, 0xFF - lsls r1, 8 - ands r0, r1 - asrs r0, 8 - ldrh r1, [r5, 0x30] - subs r1, r0 - strh r1, [r5, 0x20] -_0800FDE2: - movs r1, 0xC0 - lsls r1, 1 - adds r0, r1, 0 - ldrh r1, [r5, 0x32] - adds r0, r1 - strh r0, [r5, 0x32] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0800FE16 - ldr r4, _0800FE1C @ =0x00002710 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite -_0800FE16: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0800FE1C: .4byte 0x00002710 - thumb_func_end sub_800FDB0 - - thumb_func_start sub_800FE20 -sub_800FE20: @ 800FE20 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _0800FE3C @ =sub_800FDB0 - str r0, [r4, 0x1C] - movs r0, 0x68 - bl PlaySE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800FE3C: .4byte sub_800FDB0 - thumb_func_end sub_800FE20 - - thumb_func_start sub_800FE40 -sub_800FE40: @ 800FE40 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - ldr r0, _0800FE88 @ =0x02000000 - ldr r2, _0800FE8C @ =0x000160cb - adds r0, r2 - ldrb r2, [r0] - ldr r0, _0800FE90 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0800FEB4 - ldr r1, _0800FE94 @ =gLinkPlayers - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x18] - cmp r0, 0x1 - beq _0800FEA0 - cmp r0, 0x1 - bgt _0800FE98 - cmp r0, 0 - beq _0800FEB4 - b _0800FEBC - .align 2, 0 -_0800FE88: .4byte 0x02000000 -_0800FE8C: .4byte 0x000160cb -_0800FE90: .4byte gUnknown_020239F8 -_0800FE94: .4byte gLinkPlayers -_0800FE98: - cmp r0, 0x2 - beq _0800FEB4 - cmp r0, 0x3 - bne _0800FEBC -_0800FEA0: - ldr r1, _0800FEAC @ =gEnemyParty - str r1, [sp, 0x4] - ldr r2, _0800FEB0 @ =gPlayerParty - str r2, [sp, 0x8] - b _0800FEBC - .align 2, 0 -_0800FEAC: .4byte gEnemyParty -_0800FEB0: .4byte gPlayerParty -_0800FEB4: - ldr r3, _08010008 @ =gPlayerParty - str r3, [sp, 0x4] - ldr r0, _0801000C @ =gEnemyParty - str r0, [sp, 0x8] -_0800FEBC: - movs r7, 0 - movs r1, 0 - mov r8, r1 - ldr r2, [sp] - lsls r2, 2 - str r2, [sp, 0xC] - movs r3, 0xCE - lsls r3, 1 - mov r10, r3 - mov r9, r1 -_0800FED0: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - ldr r0, [sp, 0x4] - adds r4, r0, r4 - adds r0, r4, 0 - movs r1, 0x41 - 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 - adds r1, r0, 0 - cmp r5, 0 - beq _0800FF40 - cmp r5, r10 - beq _0800FF14 - cmp r6, 0 - beq _0800FF14 - cmp r1, 0 - bne _0800FF14 - movs r0, 0x1 - mov r2, r9 - lsls r0, r2 - orrs r7, r0 -_0800FF14: - cmp r5, 0 - beq _0800FF40 - cmp r6, 0 - beq _0800FF2C - cmp r5, r10 - beq _0800FF24 - cmp r1, 0 - beq _0800FF2C -_0800FF24: - movs r0, 0x2 - mov r3, r9 - lsls r0, r3 - orrs r7, r0 -_0800FF2C: - cmp r5, 0 - beq _0800FF40 - cmp r5, r10 - beq _0800FF40 - cmp r6, 0 - bne _0800FF40 - movs r0, 0x3 - mov r1, r9 - lsls r0, r1 - orrs r7, r0 -_0800FF40: - movs r2, 0x2 - add r9, r2 - movs r3, 0x1 - add r8, r3 - mov r0, r8 - cmp r0, 0x5 - ble _0800FED0 - ldr r1, _08010010 @ =gTasks - ldr r2, [sp, 0xC] - ldr r3, [sp] - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0xE] - movs r7, 0 - movs r0, 0 - mov r8, r0 - movs r1, 0xCE - lsls r1, 1 - mov r10, r1 - mov r9, r0 -_0800FF6A: - movs r0, 0x64 - mov r4, r8 - muls r4, r0 - ldr r2, [sp, 0x8] - adds r4, r2, r4 - adds r0, r4, 0 - movs r1, 0x41 - 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 - adds r1, r0, 0 - cmp r5, 0 - beq _0800FFDA - cmp r5, r10 - beq _0800FFAE - cmp r6, 0 - beq _0800FFAE - cmp r1, 0 - bne _0800FFAE - movs r0, 0x1 - mov r3, r9 - lsls r0, r3 - orrs r7, r0 -_0800FFAE: - cmp r5, 0 - beq _0800FFDA - cmp r6, 0 - beq _0800FFC6 - cmp r5, r10 - beq _0800FFBE - cmp r1, 0 - beq _0800FFC6 -_0800FFBE: - movs r0, 0x2 - mov r1, r9 - lsls r0, r1 - orrs r7, r0 -_0800FFC6: - cmp r5, 0 - beq _0800FFDA - cmp r5, r10 - beq _0800FFDA - cmp r6, 0 - bne _0800FFDA - movs r0, 0x3 - mov r2, r9 - lsls r0, r2 - orrs r7, r0 -_0800FFDA: - movs r3, 0x2 - add r9, r3 - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x5 - ble _0800FF6A - ldr r1, _08010010 @ =gTasks - ldr r2, [sp, 0xC] - ldr r3, [sp] - adds r0, r2, r3 - lsls r0, 3 - adds r0, r1 - strh r7, [r0, 0x10] - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08010008: .4byte gPlayerParty -_0801000C: .4byte gEnemyParty -_08010010: .4byte gTasks - thumb_func_end sub_800FE40 - - thumb_func_start c2_8011A1C -c2_8011A1C: @ 8010014 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r4, 0 - str r4, [sp] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, _08010144 @ =0x05006000 - mov r0, sp - bl CpuSet - ldr r0, _08010148 @ =REG_MOSAIC - strh r4, [r0] - subs r0, 0xC - movs r2, 0xF0 - strh r2, [r0] - adds r0, 0x4 - ldr r3, _0801014C @ =0x00005051 - adds r1, r3, 0 - strh r1, [r0] - adds r0, 0x4 - strh r4, [r0] - adds r0, 0x2 - strh r4, [r0] - ldr r0, _08010150 @ =gUnknown_030042C4 - strh r2, [r0] - ldr r0, _08010154 @ =gUnknown_03004240 - strh r1, [r0] - bl dp12_8087EA4 - ldr r0, _08010158 @ =gUnknown_03004DE0 - movs r3, 0xF0 - movs r4, 0xF0 - lsls r4, 3 - adds r2, r0, r4 - movs r1, 0x4F -_08010066: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - subs r1, 0x1 - cmp r1, 0 - bge _08010066 - movs r1, 0x50 - ldr r5, _0801015C @ =gWindowConfig_81E6C58 - ldr r0, _08010158 @ =gUnknown_03004DE0 - ldr r3, _08010160 @ =0x0000ff10 - movs r4, 0x82 - lsls r4, 4 - adds r2, r0, r4 - adds r0, 0xA0 -_08010084: - strh r3, [r0] - strh r3, [r2] - adds r2, 0x2 - adds r0, 0x2 - adds r1, 0x1 - cmp r1, 0x9F - ble _08010084 - adds r0, r5, 0 - bl SetUpWindowConfig - bl ResetPaletteFade - ldr r0, _08010164 @ =gUnknown_030042A4 - movs r4, 0 - strh r4, [r0] - ldr r0, _08010168 @ =gUnknown_030042A0 - strh r4, [r0] - ldr r0, _0801016C @ =gUnknown_030042C0 - strh r4, [r0] - ldr r0, _08010170 @ =gUnknown_030041B4 - strh r4, [r0] - ldr r0, _08010174 @ =gUnknown_03004288 - strh r4, [r0] - ldr r0, _08010178 @ =gUnknown_03004280 - strh r4, [r0] - ldr r0, _0801017C @ =gUnknown_030041B0 - strh r4, [r0] - ldr r0, _08010180 @ =gUnknown_030041B8 - strh r4, [r0] - ldr r0, _08010184 @ =gUnknown_03004210 - adds r1, r5, 0 - bl InitWindowFromConfig - ldr r0, _08010188 @ =gUnknown_030041D0 - ldr r1, _0801018C @ =gWindowConfig_81E71D0 - bl InitWindowFromConfig - ldr r0, _08010190 @ =gUnknown_03004250 - ldr r1, _08010194 @ =gWindowConfig_81E71EC - bl InitWindowFromConfig - bl sub_800D6D4 - ldr r0, _08010198 @ =gUnknown_08D004E0 - movs r1, 0 - movs r2, 0x40 - bl LoadCompressedPalette - bl sub_800D74C - bl ResetSpriteData - bl ResetTasks - bl sub_800E23C - ldr r1, _0801019C @ =REG_WINOUT - movs r0, 0x37 - strh r0, [r1] - bl FreeAllSpritePalettes - ldr r1, _080101A0 @ =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - ldr r0, _080101A4 @ =sub_800FCFC - bl SetVBlankCallback - ldr r0, _080101A8 @ =sub_800DE30 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080101AC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r2, 0x87 - lsls r2, 1 - strh r2, [r1, 0xA] - movs r2, 0x5A - strh r2, [r1, 0xC] - movs r2, 0x1 - strh r2, [r1, 0x12] - bl sub_800FE40 - ldr r0, _080101B0 @ =sub_80101B8 - bl SetMainCallback2 - ldr r0, _080101B4 @ =gUnknown_02024D1E - strb r4, [r0] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08010144: .4byte 0x05006000 -_08010148: .4byte REG_MOSAIC -_0801014C: .4byte 0x00005051 -_08010150: .4byte gUnknown_030042C4 -_08010154: .4byte gUnknown_03004240 -_08010158: .4byte gUnknown_03004DE0 -_0801015C: .4byte gWindowConfig_81E6C58 -_08010160: .4byte 0x0000ff10 -_08010164: .4byte gUnknown_030042A4 -_08010168: .4byte gUnknown_030042A0 -_0801016C: .4byte gUnknown_030042C0 -_08010170: .4byte gUnknown_030041B4 -_08010174: .4byte gUnknown_03004288 -_08010178: .4byte gUnknown_03004280 -_0801017C: .4byte gUnknown_030041B0 -_08010180: .4byte gUnknown_030041B8 -_08010184: .4byte gUnknown_03004210 -_08010188: .4byte gUnknown_030041D0 -_0801018C: .4byte gWindowConfig_81E71D0 -_08010190: .4byte gUnknown_03004250 -_08010194: .4byte gWindowConfig_81E71EC -_08010198: .4byte gUnknown_08D004E0 -_0801019C: .4byte REG_WINOUT -_080101A0: .4byte gReservedSpritePaletteCount -_080101A4: .4byte sub_800FCFC -_080101A8: .4byte sub_800DE30 -_080101AC: .4byte gTasks -_080101B0: .4byte sub_80101B8 -_080101B4: .4byte gUnknown_02024D1E - thumb_func_end c2_8011A1C - - thumb_func_start sub_80101B8 -sub_80101B8: @ 80101B8 - push {lr} - bl c2_081284E0 - bl AnimateSprites - bl BuildOamBuffer - bl UpdatePaletteFade - bl RunTasks - pop {r0} - bx r0 - thumb_func_end sub_80101B8 - - thumb_func_start c2_081284E0 -c2_081284E0: @ 80101D4 - push {r4,lr} - sub sp, 0x4 - ldr r4, _080101EC @ =gUnknown_02024D1E - ldrb r0, [r4] - cmp r0, 0x1 - beq _080101FC - cmp r0, 0x1 - bgt _080101F0 - cmp r0, 0 - beq _080101F6 - b _08010236 - .align 2, 0 -_080101EC: .4byte gUnknown_02024D1E -_080101F0: - cmp r0, 0x2 - beq _08010222 - b _08010236 -_080101F6: - movs r0, 0xFF - strb r0, [r4, 0x1] - b _0801021A -_080101FC: - ldrb r0, [r4, 0x1] - subs r0, 0x1 - strb r0, [r4, 0x1] - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08010236 - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0801021A: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08010236 -_08010222: - ldr r0, _08010240 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08010236 - ldr r0, _08010244 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08010236: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08010240: .4byte gPaletteFade -_08010244: .4byte gMain - thumb_func_end c2_081284E0 - - thumb_func_start oac_poke_opponent -oac_poke_opponent: @ 8010248 - push {lr} - sub sp, 0x4 - ldr r1, _08010270 @ =sub_8010278 - str r1, [r0, 0x1C] - movs r1, 0 - bl StartSpriteAnimIfDifferent - movs r0, 0x80 - lsls r0, 10 - ldr r1, _08010274 @ =0x00003def - str r1, [sp] - movs r1, 0 - movs r2, 0xA - movs r3, 0xA - bl BeginNormalPaletteFade - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08010270: .4byte sub_8010278 -_08010274: .4byte 0x00003def - thumb_func_end oac_poke_opponent - - thumb_func_start sub_8010278 -sub_8010278: @ 8010278 - push {lr} - adds r2, r0, 0 - ldr r0, _080102A4 @ =gUnknown_02024DE8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080102A0 - ldrh r0, [r2, 0x24] - adds r0, 0x2 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080102A0 - ldr r0, _080102A8 @ =sub_80102AC - str r0, [r2, 0x1C] - ldrh r0, [r2, 0x32] - movs r1, 0x19 - bl PlayCry1 -_080102A0: - pop {r0} - bx r0 - .align 2, 0 -_080102A4: .4byte gUnknown_02024DE8 -_080102A8: .4byte sub_80102AC - thumb_func_end sub_8010278 - - thumb_func_start sub_80102AC -sub_80102AC: @ 80102AC - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080102F4 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl sub_804777C - ldr r1, _080102FC @ =gUnknown_03004340 - movs r2, 0x2E - ldrsh r0, [r4, r2] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DFC - ldr r0, _08010300 @ =nullsub_37 - str r0, [r4, 0x1C] - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnimIfDifferent - movs r0, 0x80 - lsls r0, 10 - ldr r1, _08010304 @ =0x00003def - str r1, [sp] - movs r1, 0 - movs r2, 0xA - movs r3, 0 - bl BeginNormalPaletteFade -_080102F4: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080102FC: .4byte gUnknown_03004340 -_08010300: .4byte nullsub_37 -_08010304: .4byte 0x00003def - thumb_func_end sub_80102AC - - thumb_func_start nullsub_37 -nullsub_37: @ 8010308 - bx lr - thumb_func_end nullsub_37 - - thumb_func_start unref_sub_801030C -unref_sub_801030C: @ 801030C - movs r1, 0x6 - strh r1, [r0, 0x34] - movs r1, 0x1 - strh r1, [r0, 0x36] - ldr r1, _0801031C @ =sub_8010320 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_0801031C: .4byte sub_8010320 - thumb_func_end unref_sub_801030C - - thumb_func_start sub_8010320 -sub_8010320: @ 8010320 - push {r4,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x36] - subs r0, 0x1 - strh r0, [r3, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _08010374 - movs r0, 0x8 - strh r0, [r3, 0x36] - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r4, 0x5 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _08010374 - ldrb r1, [r1] - adds r0, r4, 0 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - ldr r0, _0801037C @ =nullsub_37 - str r0, [r3, 0x1C] - ldr r0, _08010380 @ =gUnknown_03004284 - str r2, [r0] -_08010374: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801037C: .4byte nullsub_37 -_08010380: .4byte gUnknown_03004284 - thumb_func_end sub_8010320 - - thumb_func_start sub_8010384 -sub_8010384: @ 8010384 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - ldrh r0, [r0, 0x2E] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, r6, 2 - ldr r0, _080103A4 @ =0x02017800 - adds r1, r0 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _080103A8 - adds r4, r0, 0 - b _080103AC - .align 2, 0 -_080103A4: .4byte 0x02017800 -_080103A8: - mov r0, r9 - ldrh r4, [r0, 0x32] -_080103AC: - ldr r1, _08010414 @ =gUnknown_02024A6A - lsls r0, r6, 1 - adds r5, r0, r1 - ldrh r0, [r5] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r7, _08010418 @ =gEnemyParty - adds r0, r7 - movs r1, 0 - bl GetMonData - cmp r4, SPECIES_UNOWN - bne _08010430 - ldrh r0, [r5] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0 - bl GetMonData - adds r2, r0, 0 - movs r0, 0xC0 - lsls r0, 18 - ands r0, r2 - lsrs r0, 18 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r2 - lsrs r1, 12 - orrs r0, r1 - movs r1, 0xC0 - lsls r1, 2 - ands r1, r2 - lsrs r1, 6 - orrs r0, r1 - movs r1, 0x3 - ands r1, r2 - orrs r0, r1 - movs r1, 0x1C - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0801041C - movs r0, SPECIES_UNOWN - b _08010426 - .align 2, 0 -_08010414: .4byte gUnknown_02024A6A -_08010418: .4byte gEnemyParty -_0801041C: - movs r1, 0xCE - lsls r1, 1 - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 -_08010426: - ldr r1, _0801042C @ =gMonFrontPicCoords - lsls r0, 2 - b _08010468 - .align 2, 0 -_0801042C: .4byte gMonFrontPicCoords -_08010430: - ldr r0, _08010448 @ =SPECIES_CASTFORM - cmp r4, r0 @ Check if pokemon species is Castform - bne _08010454 - ldr r0, _0801044C @ =gUnknownCastformCoords_0837F598 - ldr r1, _08010450 @ =gUnknown_02024E84 - adds r1, r6, r1 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - b _0801046C - .align 2, 0 -_08010448: .4byte SPECIES_CASTFORM -_0801044C: .4byte gUnknownCastformCoords_0837F598 -_08010450: .4byte gUnknown_02024E84 -_08010454: - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bls _08010464 - ldr r0, _08010460 @ =gMonFrontPicCoords - b _0801046A - .align 2, 0 -_08010460: .4byte gMonFrontPicCoords -_08010464: - ldr r1, _0801048C @ =gMonFrontPicCoords - lsls r0, r4, 2 -_08010468: - adds r0, r1 -_0801046A: - ldrb r0, [r0, 0x1] -_0801046C: - lsrs r1, r0, 3 - movs r0, 0x8 - subs r0, r1 - mov r1, r9 - strh r0, [r1, 0x34] - movs r0, 0x1 - strh r0, [r1, 0x36] - ldr r0, _08010490 @ =sub_8010494 - str r0, [r1, 0x1C] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801048C: .4byte gMonFrontPicCoords -_08010490: .4byte sub_8010494 - thumb_func_end sub_8010384 - - thumb_func_start sub_8010494 -sub_8010494: @ 8010494 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x36] - subs r0, 0x1 - strh r0, [r4, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _08010510 - movs r0, 0x2 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x26] - adds r0, 0x8 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - cmp r0, 0 - bge _080104C8 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - b _08010510 -_080104C8: - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - ldr r1, _08010518 @ =gUnknown_081FAF4C - lsls r0, 24 - lsrs r0, 22 - adds r0, r1 - ldr r2, _0801051C @ =gUnknown_02024E84 - movs r3, 0x2E - ldrsh r1, [r4, r3] - adds r1, r2 - ldrb r1, [r1] - lsls r1, 11 - ldr r2, [r0] - adds r2, r1 - movs r1, 0x34 - ldrsh r0, [r4, r1] - lsls r0, 8 - adds r2, r0 - movs r1, 0 - movs r0, 0xFF -_080104F6: - strb r1, [r2] - adds r2, 0x1 - subs r0, 0x1 - cmp r0, 0 - bge _080104F6 - ldr r0, _0801051C @ =gUnknown_02024E84 - movs r2, 0x2E - ldrsh r1, [r4, r2] - adds r1, r0 - ldrb r1, [r1] - adds r0, r4, 0 - bl StartSpriteAnim -_08010510: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08010518: .4byte gUnknown_081FAF4C -_0801051C: .4byte gUnknown_02024E84 - thumb_func_end sub_8010494 - - thumb_func_start sub_8010520 -sub_8010520: @ 8010520 - movs r1, 0x8 - strh r1, [r0, 0x34] - adds r1, r0, 0 - adds r1, 0x3E - ldrb r1, [r1] - lsls r1, 29 - lsrs r1, 31 - strh r1, [r0, 0x36] - ldr r1, _08010538 @ =sub_801053C - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_08010538: .4byte sub_801053C - thumb_func_end sub_8010520 - - thumb_func_start sub_801053C -sub_801053C: @ 801053C - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x34] - subs r0, 0x1 - strh r0, [r3, 0x34] - lsls r0, 16 - cmp r0, 0 - bne _0801056E - movs r0, 0x3E - adds r0, r3 - mov r12, r0 - ldrb r2, [r0] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - movs r0, 0x8 - strh r0, [r3, 0x34] -_0801056E: - pop {r0} - bx r0 - thumb_func_end sub_801053C - - thumb_func_start sub_8010574 -sub_8010574: @ 8010574 - movs r1, 0x3E - adds r1, r0 - mov r12, r1 - movs r1, 0x1 - ldrh r2, [r0, 0x36] - ands r2, r1 - lsls r2, 2 - mov r1, r12 - ldrb r3, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - movs r1, 0 - strh r1, [r0, 0x36] - ldr r1, _0801059C @ =nullsub_37 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_0801059C: .4byte nullsub_37 - thumb_func_end sub_8010574 - - thumb_func_start sub_80105A0 -sub_80105A0: @ 80105A0 - ldr r1, _080105A8 @ =oac_poke_ally_ - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080105A8: .4byte oac_poke_ally_ - thumb_func_end sub_80105A0 - - thumb_func_start oac_poke_ally_ -oac_poke_ally_: @ 80105AC - push {lr} - adds r2, r0, 0 - ldr r0, _080105D4 @ =gUnknown_02024DE8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080105D0 - ldrh r0, [r2, 0x24] - subs r0, 0x2 - strh r0, [r2, 0x24] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0 - bne _080105D0 - ldr r0, _080105D8 @ =nullsub_86 - str r0, [r2, 0x1C] - strh r1, [r2, 0x30] -_080105D0: - pop {r0} - bx r0 - .align 2, 0 -_080105D4: .4byte gUnknown_02024DE8 -_080105D8: .4byte nullsub_86 - thumb_func_end oac_poke_ally_ - - thumb_func_start sub_80105DC -sub_80105DC: @ 80105DC - ldr r1, _080105E4 @ =nullsub_86 - str r1, [r0, 0x1C] - bx lr - .align 2, 0 -_080105E4: .4byte nullsub_86 - thumb_func_end sub_80105DC - - thumb_func_start nullsub_86 -nullsub_86: @ 80105E8 - bx lr - thumb_func_end nullsub_86 - - thumb_func_start sub_80105EC -sub_80105EC: @ 80105EC - push {lr} - adds r2, r0, 0 - ldr r0, _08010610 @ =gUnknown_02024DE8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801060C - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x32] - ldrh r1, [r2, 0x26] - adds r0, r1 - strh r0, [r2, 0x26] -_0801060C: - pop {r0} - bx r0 - .align 2, 0 -_08010610: .4byte gUnknown_02024DE8 - thumb_func_end sub_80105EC - - thumb_func_start dp11b_obj_instanciate -dp11b_obj_instanciate: @ 8010614 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - cmp r1, 0 - beq _0801064C - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 2 - ldr r1, _08010648 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - b _0801065A - .align 2, 0 -_08010648: .4byte 0x02017810 -_0801064C: - lsls r2, r4, 1 - adds r0, r2, r4 - lsls r0, 2 - ldr r1, _08010698 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 -_0801065A: - ands r0, r1 - adds r6, r2, 0 - cmp r0, 0 - bne _080106FA - ldr r0, _0801069C @ =objc_dp11b_pingpong - bl object_new_hidden_with_callback - lsls r0, 24 - lsrs r5, r0, 24 - mov r0, r8 - cmp r0, 0x1 - bne _080106A8 - ldr r0, _080106A0 @ =gUnknown_03004340 - adds r0, r4, r0 - ldrb r7, [r0] - adds r0, r6, r4 - lsls r0, 2 - ldr r1, _08010698 @ =0x02017810 - adds r0, r1 - strb r5, [r0, 0x2] - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldr r2, _080106A4 @ =gSprites - lsls r3, r5, 4 - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - movs r1, 0x80 - b _080106CC - .align 2, 0 -_08010698: .4byte 0x02017810 -_0801069C: .4byte objc_dp11b_pingpong -_080106A0: .4byte gUnknown_03004340 -_080106A4: .4byte gSprites -_080106A8: - ldr r0, _08010708 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r7, [r0] - adds r0, r6, r4 - lsls r0, 2 - ldr r1, _0801070C @ =0x02017810 - adds r0, r1 - strb r5, [r0, 0x3] - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldr r2, _08010710 @ =gSprites - lsls r3, r5, 4 - adds r0, r3, r5 - lsls r0, 2 - adds r0, r2 - movs r1, 0xC0 -_080106CC: - strh r1, [r0, 0x2E] - adds r4, r2, 0 - adds r1, r3, r5 - lsls r1, 2 - adds r1, r4 - mov r2, r9 - lsls r0, r2, 24 - asrs r0, 24 - movs r2, 0 - strh r0, [r1, 0x30] - mov r3, r10 - lsls r0, r3, 24 - asrs r0, 24 - strh r0, [r1, 0x32] - strh r7, [r1, 0x34] - mov r0, r8 - strh r0, [r1, 0x36] - lsls r0, r7, 4 - adds r0, r7 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x24] - strh r2, [r0, 0x26] -_080106FA: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08010708: .4byte gUnknown_02024BE0 -_0801070C: .4byte 0x02017810 -_08010710: .4byte gSprites - thumb_func_end dp11b_obj_instanciate - - thumb_func_start dp11b_obj_free -dp11b_obj_free: @ 8010714 - push {r4,r5,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - bne _0801075C - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _08010754 @ =0x02017810 - adds r5, r0, r1 - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080107A0 - ldr r2, _08010758 @ =gSprites - ldrb r1, [r5, 0x2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x34] - lsls r1, 24 - lsrs r4, r1, 24 - bl DestroySprite - ldrb r1, [r5] - movs r0, 0x3 - negs r0, r0 - b _0801078C - .align 2, 0 -_08010754: .4byte 0x02017810 -_08010758: .4byte gSprites -_0801075C: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _080107A8 @ =0x02017810 - adds r5, r0, r1 - ldrb r1, [r5] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080107A0 - ldr r2, _080107AC @ =gSprites - ldrb r1, [r5, 0x3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x34] - lsls r1, 24 - lsrs r4, r1, 24 - bl DestroySprite - ldrb r1, [r5] - movs r0, 0x5 - negs r0, r0 -_0801078C: - ands r0, r1 - strb r0, [r5] - ldr r0, _080107AC @ =gSprites - lsls r1, r4, 4 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x24] - strh r0, [r1, 0x26] -_080107A0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080107A8: .4byte 0x02017810 -_080107AC: .4byte gSprites - thumb_func_end dp11b_obj_free - - thumb_func_start objc_dp11b_pingpong -objc_dp11b_pingpong: @ 80107B0 - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - lsls r0, 24 - lsrs r5, r0, 24 - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - bne _080107C8 - movs r2, 0x2E - ldrsh r0, [r4, r2] - b _080107CC -_080107C8: - movs r1, 0x2E - ldrsh r0, [r4, r1] -_080107CC: - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl Sin - ldr r2, _080107F8 @ =gSprites - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r1, r2 - ldrh r2, [r4, 0x32] - adds r0, r2 - strh r0, [r1, 0x26] - ldrh r0, [r4, 0x30] - ldrh r1, [r4, 0x2E] - adds r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x2E] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080107F8: .4byte gSprites - thumb_func_end objc_dp11b_pingpong - - thumb_func_start nullsub_41 -nullsub_41: @ 80107FC - bx lr - thumb_func_end nullsub_41 - - thumb_func_start sub_8010800 -sub_8010800: @ 8010800 - push {lr} - bl sub_8010874 - ldr r1, _08010818 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x1] - ldr r1, _0801081C @ =gUnknown_030042D4 - ldr r0, _08010820 @ =bc_8012FAC - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08010818: .4byte gUnknown_02024D1E -_0801081C: .4byte gUnknown_030042D4 -_08010820: .4byte bc_8012FAC - thumb_func_end sub_8010800 - - thumb_func_start sub_8010824 -sub_8010824: @ 8010824 - push {r4,r5,lr} - ldr r0, _08010864 @ =gUnknown_030042D4 - ldr r0, [r0] - bl _call_via_r0 - ldr r1, _08010868 @ =gUnknown_02024A60 - movs r0, 0 - strb r0, [r1] - ldr r0, _0801086C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r0, 0 - beq _0801085E - ldr r5, _08010870 @ =gUnknown_03004330 - adds r4, r1, 0 -_08010840: - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - bl _call_via_r0 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _0801086C @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08010840 -_0801085E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08010864: .4byte gUnknown_030042D4 -_08010868: .4byte gUnknown_02024A60 -_0801086C: .4byte gUnknown_02024A68 -_08010870: .4byte gUnknown_03004330 - thumb_func_end sub_8010824 - - thumb_func_start sub_8010874 -sub_8010874: @ 8010874 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - bl sub_801365C - bl sub_801377C - movs r2, 0 - movs r3, 0 - ldr r0, _08010AC8 @ =gUnknown_02024C4C - mov r10, r0 - ldr r1, _08010ACC @ =gUnknown_02024C44 - mov r9, r1 - ldr r4, _08010AD0 @ =gUnknown_02024C3C - mov r8, r4 - ldr r0, _08010AD4 @ =gUnknown_02024C34 - mov r12, r0 - ldr r4, _08010AD8 @ =gUnknown_02024CA8 - movs r5, 0 - ldr r7, _08010ADC @ =gUnknown_02024C2C - ldr r6, _08010AE0 @ =gUnknown_02024C54 -_080108A4: - ldr r0, _08010AE4 @ =gUnknown_02024C98 - adds r0, r5, r0 - str r3, [r0] - movs r1, 0 -_080108AC: - adds r0, r4, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0x1B - bls _080108AC - movs r0, 0x2 - strb r0, [r4, 0x16] - ldr r1, _08010AE8 @ =gUnknown_02024C70 - adds r0, r2, r1 - strb r3, [r0] - mov r0, r12 - strh r3, [r0] - mov r1, r8 - strh r3, [r1] - mov r0, r9 - strh r3, [r0] - mov r1, r10 - strh r3, [r1] - ldr r0, _08010AEC @ =gUnknown_02024C5C - adds r1, r2, r0 - movs r0, 0xFF - strb r0, [r1] - strh r3, [r6] - strh r3, [r7] - ldr r1, _08010AF0 @ =0x02017100 - adds r0, r5, r1 - str r3, [r0] - movs r0, 0x2 - add r10, r0 - add r9, r0 - add r8, r0 - add r12, r0 - adds r4, 0x1C - adds r5, 0x4 - adds r7, 0x2 - adds r6, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _080108A4 - movs r5, 0 - ldr r3, _08010AF4 @ =gUnknown_02024C80 - ldr r4, _08010AF8 @ =gUnknown_02024C7A - movs r2, 0x1 -_08010902: - strh r5, [r4] - movs r1, 0 -_08010906: - adds r0, r3, r1 - strb r5, [r0] - adds r1, 0x1 - cmp r1, 0xB - bls _08010906 - adds r3, 0xC - adds r4, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _08010902 - movs r1, 0 - ldr r2, _08010AFC @ =gUnknown_02024C07 - strb r1, [r2] - ldr r3, _08010B00 @ =gUnknown_02024C08 - strb r1, [r3] - ldr r4, _08010B04 @ =word_2024DB8 - strh r1, [r4] - ldr r1, _08010B08 @ =gUnknown_02024DBC - movs r2, 0 - movs r3, 0 -_0801092E: - adds r0, r1, r2 - strb r3, [r0] - adds r2, 0x1 - cmp r2, 0x2B - bls _0801092E - movs r0, 0 - ldr r1, _08010B0C @ =gUnknown_02024C6C - str r0, [r1] - ldr r2, _08010B10 @ =gUnknown_020239F8 - ldrh r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0801095C - ldr r3, _08010B14 @ =gSaveBlock2 - ldrb r1, [r3, 0x15] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801095C - movs r0, 0x80 - ldr r4, _08010B0C @ =gUnknown_02024C6C - str r0, [r4] -_0801095C: - ldr r1, _08010B14 @ =gSaveBlock2 - ldrb r0, [r1, 0x15] - lsls r0, 30 - lsrs r0, 31 - ldr r3, _08010B18 @ =0x02000000 - ldr r4, _08010B1C @ =0x00016084 - adds r2, r3, r4 - movs r1, 0 - strb r0, [r2] - ldr r0, _08010B20 @ =gUnknown_02024C0E - strb r1, [r0] - ldr r2, _08010B24 @ =gUnknown_02024D26 - strb r1, [r2] - ldr r3, _08010B28 @ =gUnknown_02024A64 - str r1, [r3] - movs r2, 0 - ldr r4, _08010B2C @ =gUnknown_02024D1A - strh r1, [r4] - ldr r1, _08010B18 @ =0x02000000 - ldr r3, _08010B30 @ =0x00017130 - adds r0, r1, r3 - strb r2, [r0] - ldr r4, _08010B34 @ =0x00017160 - adds r0, r1, r4 - strb r2, [r0] - ldr r1, _08010B38 @ =gUnknown_02024D1E - movs r2, 0 - adds r0, r1, 0x7 -_08010994: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08010994 - movs r5, 0 - ldr r0, _08010B3C @ =gUnknown_02024D18 - strh r5, [r0] - movs r0, 0 - ldr r1, _08010B40 @ =gUnknown_02024BEC - str r0, [r1] - ldr r2, _08010B44 @ =gUnknown_02024DE8 - strh r0, [r2] - ldr r4, _08010B18 @ =0x02000000 - ldr r3, _08010B48 @ =0x00016002 - adds r0, r4, r3 - strb r5, [r0] - ldr r1, _08010B4C @ =0x000160a1 - adds r0, r4, r1 - strb r5, [r0] - ldr r2, _08010B50 @ =gUnknown_03004324 - strb r5, [r2] - ldr r3, _08010B54 @ =gUnknown_02024C0C - strb r5, [r3] - subs r1, 0x29 - adds r0, r4, r1 - strb r5, [r0] - ldr r2, _08010B58 @ =0x00016086 - adds r0, r4, r2 - strb r5, [r0] - ldr r3, _08010B5C @ =0x00016087 - adds r0, r4, r3 - strb r5, [r0] - ldr r0, _08010B60 @ =gEnemyParty - movs r1, 0xB - bl GetMonData - ldr r2, _08010B64 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x8] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08010B68 @ =0x000004fb - bl __divsi3 - ldr r2, _08010B6C @ =0x00016089 - adds r1, r4, r2 - strb r0, [r1] - ldr r3, _08010B70 @ =0x00016088 - adds r1, r4, r3 - movs r0, 0x3 - strb r0, [r1] - ldr r1, _08010B74 @ =0x0001601b - adds r0, r4, r1 - strb r5, [r0] - subs r2, 0x33 - adds r1, r4, r2 - movs r0, 0x1 - strb r0, [r1] - movs r2, 0 - movs r1, 0 -_08010A12: - ldr r3, _08010B78 @ =0x000160ac - adds r0, r2, r3 - adds r0, r4 - strb r1, [r0] - adds r3, 0x20 - adds r0, r2, r3 - adds r0, r4 - strb r1, [r0] - adds r3, 0x1C - adds r0, r2, r3 - adds r0, r4 - strb r1, [r0] - adds r3, 0x8 - adds r0, r2, r3 - adds r0, r4 - strb r1, [r0] - adds r3, 0x10 - adds r0, r2, r3 - adds r0, r4 - strb r1, [r0] - adds r3, 0x8 - adds r0, r2, r3 - adds r0, r4 - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x7 - ble _08010A12 - ldr r4, _08010B18 @ =0x02000000 - ldr r1, _08010B7C @ =0x000160c8 - adds r0, r4, r1 - movs r2, 0 - movs r1, 0x6 - strb r1, [r0] - subs r3, 0x3F - adds r0, r4, r3 - strb r1, [r0] - ldr r1, _08010B80 @ =0x00016113 - adds r0, r4, r1 - strb r2, [r0] - ldr r3, _08010B84 @ =gUnknown_030042E0 - movs r1, 0 - movs r2, 0xA - adds r0, r3, 0 - adds r0, 0x40 -_08010A6A: - strb r1, [r0] - subs r0, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _08010A6A - movs r1, 0 - strb r1, [r3, 0x13] - strb r1, [r3] - strb r1, [r3, 0x1] - strb r1, [r3, 0x2] - strb r1, [r3, 0x3] - strb r1, [r3, 0x4] - ldrb r2, [r3, 0x5] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - movs r2, 0x3 - negs r2, r2 - ands r0, r2 - strb r0, [r3, 0x5] - strh r1, [r3, 0x20] - strh r1, [r3, 0x22] - strh r1, [r3, 0x24] - strh r1, [r3, 0x6] - strh r1, [r3, 0x26] - strh r1, [r3, 0x28] - movs r2, 0 - adds r5, r3, 0 - adds r5, 0x8 - movs r4, 0 - adds r1, r3, 0 - adds r1, 0x14 -_08010AAA: - adds r0, r2, r5 - strb r4, [r0] - strb r4, [r1] - strb r4, [r1, 0x16] - adds r1, 0x1 - adds r2, 0x1 - cmp r2, 0x9 - ble _08010AAA - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08010AC8: .4byte gUnknown_02024C4C -_08010ACC: .4byte gUnknown_02024C44 -_08010AD0: .4byte gUnknown_02024C3C -_08010AD4: .4byte gUnknown_02024C34 -_08010AD8: .4byte gUnknown_02024CA8 -_08010ADC: .4byte gUnknown_02024C2C -_08010AE0: .4byte gUnknown_02024C54 -_08010AE4: .4byte gUnknown_02024C98 -_08010AE8: .4byte gUnknown_02024C70 -_08010AEC: .4byte gUnknown_02024C5C -_08010AF0: .4byte 0x02017100 -_08010AF4: .4byte gUnknown_02024C80 -_08010AF8: .4byte gUnknown_02024C7A -_08010AFC: .4byte gUnknown_02024C07 -_08010B00: .4byte gUnknown_02024C08 -_08010B04: .4byte word_2024DB8 -_08010B08: .4byte gUnknown_02024DBC -_08010B0C: .4byte gUnknown_02024C6C -_08010B10: .4byte gUnknown_020239F8 -_08010B14: .4byte gSaveBlock2 -_08010B18: .4byte 0x02000000 -_08010B1C: .4byte 0x00016084 -_08010B20: .4byte gUnknown_02024C0E -_08010B24: .4byte gUnknown_02024D26 -_08010B28: .4byte gUnknown_02024A64 -_08010B2C: .4byte gUnknown_02024D1A -_08010B30: .4byte 0x00017130 -_08010B34: .4byte 0x00017160 -_08010B38: .4byte gUnknown_02024D1E -_08010B3C: .4byte gUnknown_02024D18 -_08010B40: .4byte gUnknown_02024BEC -_08010B44: .4byte gUnknown_02024DE8 -_08010B48: .4byte 0x00016002 -_08010B4C: .4byte 0x000160a1 -_08010B50: .4byte gUnknown_03004324 -_08010B54: .4byte gUnknown_02024C0C -_08010B58: .4byte 0x00016086 -_08010B5C: .4byte 0x00016087 -_08010B60: .4byte gEnemyParty -_08010B64: .4byte gBaseStats -_08010B68: .4byte 0x000004fb -_08010B6C: .4byte 0x00016089 -_08010B70: .4byte 0x00016088 -_08010B74: .4byte 0x0001601b -_08010B78: .4byte 0x000160ac -_08010B7C: .4byte 0x000160c8 -_08010B80: .4byte 0x00016113 -_08010B84: .4byte gUnknown_030042E0 - thumb_func_end sub_8010874 - - thumb_func_start sub_8010B88 -sub_8010B88: @ 8010B88 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r4, _08010CEC @ =gUnknown_02024CA8 - ldr r5, _08010CF0 @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r1, sp - adds r0, r4 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldr r0, [r0] - str r0, [r1] - ldr r2, _08010CF4 @ =gBattleMoves - ldr r3, _08010CF8 @ =gUnknown_02024BE6 - ldrh r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - mov r10, r4 - adds r7, r5, 0 - ldr r1, _08010CFC @ =gBattleMons - mov r8, r1 - ldr r2, _08010D00 @ =gUnknown_02024C98 - mov r12, r2 - cmp r0, 0x7F - beq _08010C66 - movs r5, 0 - adds r4, r7, 0 - movs r3, 0x58 - mov r2, r8 - adds r2, 0x18 - movs r1, 0x6 -_08010BDC: - ldrb r0, [r4] - muls r0, r3 - adds r0, r5, r0 - adds r0, r2 - strb r1, [r0] - adds r5, 0x1 - cmp r5, 0x7 - ble _08010BDC - movs r5, 0 - ldr r3, _08010D04 @ =gUnknown_02024A68 - ldrb r3, [r3] - cmp r5, r3 - bge _08010C52 - ldr r6, _08010D08 @ =gUnknown_02024AD0 - mov r9, r6 - ldr r3, _08010CEC @ =gUnknown_02024CA8 - ldr r4, _08010D00 @ =gUnknown_02024C98 -_08010BFE: - movs r0, 0x58 - muls r0, r5 - add r0, r9 - str r0, [sp, 0x20] - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 19 - ands r0, r1 - cmp r0, 0 - beq _08010C24 - ldrb r0, [r3, 0x14] - ldr r2, _08010CF0 @ =gUnknown_02024A60 - ldrb r2, [r2] - cmp r0, r2 - bne _08010C24 - ldr r0, _08010D0C @ =0xfbffffff - ands r1, r0 - ldr r6, [sp, 0x20] - str r1, [r6] -_08010C24: - ldr r1, [r4] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08010C44 - ldrb r0, [r3, 0x15] - ldr r2, _08010CF0 @ =gUnknown_02024A60 - ldrb r2, [r2] - cmp r0, r2 - bne _08010C44 - movs r0, 0x19 - negs r0, r0 - ands r1, r0 - str r1, [r4] - movs r0, 0 - strb r0, [r3, 0x15] -_08010C44: - adds r3, 0x1C - adds r4, 0x4 - adds r5, 0x1 - ldr r6, _08010D04 @ =gUnknown_02024A68 - ldrb r6, [r6] - cmp r5, r6 - blt _08010BFE -_08010C52: - ldr r1, _08010CF8 @ =gUnknown_02024BE6 - ldrh r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _08010CF4 @ =gBattleMoves - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0x7F - bne _08010D18 -_08010C66: - ldrb r1, [r7] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r8 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, _08010D10 @ =0x15100007 - ands r0, r1 - str r0, [r2] - ldrb r1, [r7] - lsls r1, 2 - add r1, r12 - ldr r0, [r1] - ldr r2, _08010D14 @ =0x0003043f - ands r0, r2 - str r0, [r1] - movs r5, 0 - ldr r3, _08010D04 @ =gUnknown_02024A68 - ldrb r3, [r3] - cmp r5, r3 - bge _08010D30 - movs r6, 0 -_08010C96: - ldrb r0, [r7] - bl battle_side_get_owner - adds r4, r0, 0 - lsls r0, r5, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08010CD6 - ldr r1, _08010D00 @ =gUnknown_02024C98 - lsls r0, r5, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08010CD6 - ldr r0, _08010CEC @ =gUnknown_02024CA8 - adds r0, r6, r0 - ldrb r0, [r0, 0x15] - ldrb r3, [r7] - cmp r0, r3 - bne _08010CD6 - movs r0, 0x19 - negs r0, r0 - ands r1, r0 - movs r0, 0x10 - orrs r1, r0 - str r1, [r2] -_08010CD6: - adds r6, 0x1C - adds r5, 0x1 - ldr r0, _08010D04 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - blt _08010C96 - ldr r6, _08010CEC @ =gUnknown_02024CA8 - mov r10, r6 - ldr r7, _08010CF0 @ =gUnknown_02024A60 - b _08010D30 - .align 2, 0 -_08010CEC: .4byte gUnknown_02024CA8 -_08010CF0: .4byte gUnknown_02024A60 -_08010CF4: .4byte gBattleMoves -_08010CF8: .4byte gUnknown_02024BE6 -_08010CFC: .4byte gBattleMons -_08010D00: .4byte gUnknown_02024C98 -_08010D04: .4byte gUnknown_02024A68 -_08010D08: .4byte gUnknown_02024AD0 -_08010D0C: .4byte 0xfbffffff -_08010D10: .4byte 0x15100007 -_08010D14: .4byte 0x0003043f -_08010D18: - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - mov r1, r8 - adds r1, 0x50 - adds r0, r1 - movs r1, 0 - str r1, [r0] - ldrb r0, [r7] - lsls r0, 2 - add r0, r12 - str r1, [r0] -_08010D30: - movs r5, 0 - ldr r6, _08010EFC @ =0x02000000 - ldr r0, _08010F00 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - bge _08010D92 - ldr r1, _08010F04 @ =gUnknown_02024AD0 - mov r9, r1 - ldr r2, _08010F08 @ =gBitTable - mov r8, r2 - ldr r4, _08010F0C @ =gUnknown_02024A60 - mov r12, r6 -_08010D48: - movs r0, 0x58 - muls r0, r5 - mov r1, r9 - adds r3, r0, r1 - ldrb r0, [r4] - lsls r0, 2 - add r0, r8 - ldr r0, [r0] - lsls r2, r0, 16 - ldr r1, [r3] - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _08010D68 - bics r1, r2 - str r1, [r3] -_08010D68: - ldr r1, [r3] - movs r0, 0xE0 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08010D88 - ldr r2, _08010F10 @ =0x00016020 - adds r0, r5, r2 - add r0, r12 - ldrb r0, [r0] - ldrb r2, [r4] - cmp r0, r2 - bne _08010D88 - ldr r0, _08010F14 @ =0xffff1fff - ands r1, r0 - str r1, [r3] -_08010D88: - adds r5, 0x1 - ldr r3, _08010F00 @ =gUnknown_02024A68 - ldrb r3, [r3] - cmp r5, r3 - blt _08010D48 -_08010D92: - ldrb r0, [r7] - ldr r1, _08010F18 @ =gUnknown_02024E60 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldrb r0, [r7] - ldr r2, _08010F1C @ =gUnknown_02024E64 - adds r0, r2 - strb r1, [r0] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r3, r10 - adds r1, r0, r3 - movs r5, 0 - movs r2, 0 -_08010DB4: - adds r0, r1, r5 - strb r2, [r0] - adds r5, 0x1 - cmp r5, 0x1B - bls _08010DB4 - ldr r1, _08010F20 @ =gUnknown_02024BE6 - ldrh r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _08010F24 @ =gBattleMoves - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0x7F - bne _08010E2C - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - mov r1, sp - ldrb r1, [r1, 0xA] - strb r1, [r0, 0xA] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - mov r1, sp - ldrb r1, [r1, 0x15] - strb r1, [r0, 0x15] - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r10 - mov r0, sp - ldrb r2, [r0, 0xF] - lsls r2, 28 - movs r4, 0xF - lsrs r2, 28 - ldrb r3, [r1, 0xF] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xF] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - mov r1, sp - ldrb r1, [r1, 0xF] - lsrs r1, 4 - lsls r1, 4 - ldrb r2, [r0, 0xF] - ands r4, r2 - orrs r4, r1 - strb r4, [r0, 0xF] -_08010E2C: - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r10 - movs r3, 0 - movs r1, 0x2 - strb r1, [r0, 0x16] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08010F28 @ =gUnknown_02024C34 - adds r0, r1 - movs r2, 0 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08010F2C @ =gUnknown_02024C3C - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08010F30 @ =gUnknown_02024C44 - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08010F34 @ =gUnknown_02024C4C - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08010F38 @ =gUnknown_02024C2C - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - ldr r1, _08010F3C @ =gUnknown_02024C5C - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _08010F40 @ =0x000160ac - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x53 - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x1 - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x1 - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x1 - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - subs r1, 0x1B - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - adds r0, r6 - strb r2, [r0] - ldr r2, _08010F44 @ =0x00017100 - adds r1, r6, r2 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - str r3, [r0] - ldr r6, _08010F20 @ =gUnknown_02024BE6 - strh r3, [r6] - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08010EFC: .4byte 0x02000000 -_08010F00: .4byte gUnknown_02024A68 -_08010F04: .4byte gUnknown_02024AD0 -_08010F08: .4byte gBitTable -_08010F0C: .4byte gUnknown_02024A60 -_08010F10: .4byte 0x00016020 -_08010F14: .4byte 0xffff1fff -_08010F18: .4byte gUnknown_02024E60 -_08010F1C: .4byte gUnknown_02024E64 -_08010F20: .4byte gUnknown_02024BE6 -_08010F24: .4byte gBattleMoves -_08010F28: .4byte gUnknown_02024C34 -_08010F2C: .4byte gUnknown_02024C3C -_08010F30: .4byte gUnknown_02024C44 -_08010F34: .4byte gUnknown_02024C4C -_08010F38: .4byte gUnknown_02024C2C -_08010F3C: .4byte gUnknown_02024C5C -_08010F40: .4byte 0x000160ac -_08010F44: .4byte 0x00017100 - thumb_func_end sub_8010B88 - - thumb_func_start sub_8010F48 -sub_8010F48: @ 8010F48 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r4, 0 - ldr r7, _08011268 @ =gUnknown_02024A60 - ldr r0, _0801126C @ =gUnknown_02024C98 - mov r9, r0 - ldr r1, _08011270 @ =gUnknown_02024A68 - mov r8, r1 - ldr r2, _08011274 @ =0x02000000 - mov r12, r2 - ldr r6, _08011278 @ =gUnknown_02024D28 - adds r5, r7, 0 - movs r3, 0x58 - ldr r2, _0801127C @ =gBattleMons - adds r2, 0x18 - movs r1, 0x6 -_08010F70: - ldrb r0, [r5] - muls r0, r3 - adds r0, r4, r0 - adds r0, r2 - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x7 - ble _08010F70 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - ldr r2, _0801127C @ =gBattleMons - adds r2, 0x50 - adds r0, r2 - movs r1, 0 - str r1, [r0] - ldrb r0, [r7] - lsls r0, 2 - add r0, r9 - str r1, [r0] - movs r4, 0 - mov r0, r8 - ldrb r0, [r0] - cmp r4, r0 - bge _08011012 - adds r3, r2, 0 - movs r5, 0 - ldr r1, _08011280 @ =gBitTable - mov r10, r1 - ldr r2, _08011274 @ =0x02000000 - mov r9, r2 -_08010FAE: - ldr r1, [r3] - movs r0, 0x80 - lsls r0, 19 - ands r0, r1 - cmp r0, 0 - beq _08010FCC - ldr r2, _08011284 @ =gUnknown_02024CA8 - adds r0, r5, r2 - ldrb r0, [r0, 0x14] - ldrb r2, [r7] - cmp r0, r2 - bne _08010FCC - ldr r0, _08011288 @ =0xfbffffff - ands r1, r0 - str r1, [r3] -_08010FCC: - ldrb r0, [r7] - lsls r0, 2 - add r0, r10 - ldr r0, [r0] - lsls r2, r0, 16 - ldr r1, [r3] - adds r0, r1, 0 - ands r0, r2 - cmp r0, 0 - beq _08010FE4 - bics r1, r2 - str r1, [r3] -_08010FE4: - ldr r1, [r3] - movs r0, 0xE0 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08011004 - ldr r2, _0801128C @ =0x00016020 - adds r0, r4, r2 - add r0, r9 - ldrb r0, [r0] - ldrb r2, [r7] - cmp r0, r2 - bne _08011004 - ldr r0, _08011290 @ =0xffff1fff - ands r1, r0 - str r1, [r3] -_08011004: - adds r3, 0x58 - adds r5, 0x1C - adds r4, 0x1 - mov r0, r8 - ldrb r0, [r0] - cmp r4, r0 - blt _08010FAE -_08011012: - ldrb r0, [r7] - ldr r1, _08011294 @ =gUnknown_02024E60 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldrb r0, [r7] - ldr r2, _08011298 @ =gUnknown_02024E64 - adds r0, r2 - strb r1, [r0] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r2, _08011284 @ =gUnknown_02024CA8 - adds r1, r0, r2 - movs r4, 0 - movs r2, 0 -_08011034: - adds r0, r1, r4 - strb r2, [r0] - adds r4, 0x1 - cmp r4, 0x1B - bls _08011034 - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - mov r9, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - mov r8, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - mov r10, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r5, 0x21 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r4, 0x41 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1, 0x1] - mov r0, r9 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1, 0x1] - mov r0, r8 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1, 0x1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r1, [r7] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r6 - ldrb r1, [r0, 0x1] - ands r5, r1 - strb r5, [r0, 0x1] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r6 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r6 - ldrb r1, [r0, 0x1] - ands r3, r1 - strb r3, [r0, 0x1] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r6 - ldrb r1, [r0, 0x2] - mov r2, r9 - ands r2, r1 - strb r2, [r0, 0x2] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r6 - ldrb r1, [r0, 0x2] - mov r2, r8 - ands r2, r1 - strb r2, [r0, 0x2] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r6 - ldrb r1, [r0, 0x2] - movs r2, 0x5 - negs r2, r2 - ands r2, r1 - strb r2, [r0, 0x2] - ldrb r0, [r7] - lsls r0, 4 - adds r0, r6 - ldrb r1, [r0, 0x2] - mov r2, r10 - ands r2, r1 - strb r2, [r0, 0x2] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r1, _08011284 @ =gUnknown_02024CA8 - adds r0, r1 - movs r3, 0 - movs r1, 0x2 - strb r1, [r0, 0x16] - ldrb r0, [r7] - lsls r0, 1 - ldr r2, _0801129C @ =gUnknown_02024C34 - adds r0, r2 - movs r2, 0 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _080112A0 @ =gUnknown_02024C3C - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _080112A4 @ =gUnknown_02024C44 - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _080112A8 @ =gUnknown_02024C4C - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _080112AC @ =gUnknown_02024C2C - adds r0, r1 - strh r3, [r0] - ldrb r0, [r7] - ldr r1, _080112B0 @ =gUnknown_02024C5C - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _080112B4 @ =0x000160e8 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - subs r1, 0x3D - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x53 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x1 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x1 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldrb r0, [r7] - lsls r0, 2 - adds r1, 0x1 - adds r0, r1 - add r0, r12 - strb r2, [r0] - ldr r1, _080112B8 @ =0x00017100 - add r1, r12 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - str r3, [r0] - ldrb r0, [r7] - movs r3, 0x58 - adds r1, r0, 0 - muls r1, r3 - ldr r2, _0801127C @ =gBattleMons - adds r1, r2 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r2, _080112BC @ =gBaseStats - adds r0, r2 - ldrb r0, [r0, 0x6] - adds r1, 0x21 - strb r0, [r1] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r3 - ldr r0, _0801127C @ =gBattleMons - adds r1, r0 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r2, _080112BC @ =gBaseStats - adds r0, r2 - ldrb r0, [r0, 0x7] - adds r1, 0x22 - strb r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08011268: .4byte gUnknown_02024A60 -_0801126C: .4byte gUnknown_02024C98 -_08011270: .4byte gUnknown_02024A68 -_08011274: .4byte 0x02000000 -_08011278: .4byte gUnknown_02024D28 -_0801127C: .4byte gBattleMons -_08011280: .4byte gBitTable -_08011284: .4byte gUnknown_02024CA8 -_08011288: .4byte 0xfbffffff -_0801128C: .4byte 0x00016020 -_08011290: .4byte 0xffff1fff -_08011294: .4byte gUnknown_02024E60 -_08011298: .4byte gUnknown_02024E64 -_0801129C: .4byte gUnknown_02024C34 -_080112A0: .4byte gUnknown_02024C3C -_080112A4: .4byte gUnknown_02024C44 -_080112A8: .4byte gUnknown_02024C4C -_080112AC: .4byte gUnknown_02024C2C -_080112B0: .4byte gUnknown_02024C5C -_080112B4: .4byte 0x000160e8 -_080112B8: .4byte 0x00017100 -_080112BC: .4byte gBaseStats - thumb_func_end sub_8010F48 - - thumb_func_start bc_8012FAC -bc_8012FAC: @ 80112C0 - push {r4,r5,lr} - ldr r5, _080112D0 @ =gUnknown_02024D1E - ldrb r0, [r5] - cmp r0, 0 - beq _080112D4 - cmp r0, 0x1 - beq _080112F8 - b _0801132E - .align 2, 0 -_080112D0: .4byte gUnknown_02024D1E -_080112D4: - ldr r4, _080112F4 @ =gUnknown_02024A60 - ldrb r0, [r5, 0x1] - strb r0, [r4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _0801132E - .align 2, 0 -_080112F4: .4byte gUnknown_02024A60 -_080112F8: - ldr r0, _0801131C @ =gUnknown_02024A64 - ldr r2, [r0] - cmp r2, 0 - bne _0801132E - ldrb r0, [r5, 0x1] - adds r0, 0x1 - strb r0, [r5, 0x1] - ldr r1, _08011320 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _0801132C - ldr r1, _08011324 @ =gUnknown_030042D4 - ldr r0, _08011328 @ =bc_load_battlefield - str r0, [r1] - b _0801132E - .align 2, 0 -_0801131C: .4byte gUnknown_02024A64 -_08011320: .4byte gUnknown_02024A68 -_08011324: .4byte gUnknown_030042D4 -_08011328: .4byte bc_load_battlefield -_0801132C: - strb r2, [r5] -_0801132E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end bc_8012FAC - - thumb_func_start bc_load_battlefield -bc_load_battlefield: @ 8011334 - push {r4,r5,lr} - ldr r0, _0801136C @ =gUnknown_02024A64 - ldr r5, [r0] - cmp r5, 0 - bne _08011364 - movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, _08011370 @ =gUnknown_02024A60 - strb r0, [r4] - ldr r0, _08011374 @ =gUnknown_0300428C - ldrb r1, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x2E_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08011378 @ =gUnknown_030042D4 - ldr r0, _0801137C @ =sub_8011384 - str r0, [r1] - ldr r0, _08011380 @ =gUnknown_02024D1E - strb r5, [r0] - strb r5, [r0, 0x1] -_08011364: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801136C: .4byte gUnknown_02024A64 -_08011370: .4byte gUnknown_02024A60 -_08011374: .4byte gUnknown_0300428C -_08011378: .4byte gUnknown_030042D4 -_0801137C: .4byte sub_8011384 -_08011380: .4byte gUnknown_02024D1E - thumb_func_end bc_load_battlefield - - thumb_func_start sub_8011384 -sub_8011384: @ 8011384 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080113E0 @ =gUnknown_02024A64 - ldr r1, [r0] - cmp r1, 0 - beq _08011396 - b _080115DA -_08011396: - ldr r2, _080113E4 @ =gUnknown_02024A60 - strb r1, [r2] - ldr r0, _080113E8 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r1, r0 - bcc _080113A4 - b _080115D4 -_080113A4: - movs r7, 0x58 - ldr r0, _080113EC @ =gBattleMons - mov r9, r0 - mov r8, r2 -_080113AC: - ldr r0, _080113F0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080113F4 - ldr r4, _080113E4 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080113F4 - ldrb r0, [r4] - muls r0, r7 - mov r1, r9 - adds r3, r0, r1 - movs r2, 0 - movs r1, 0 -_080113D2: - adds r0, r3, r2 - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x57 - bls _080113D2 - b _080114BE - .align 2, 0 -_080113E0: .4byte gUnknown_02024A64 -_080113E4: .4byte gUnknown_02024A60 -_080113E8: .4byte gUnknown_02024A68 -_080113EC: .4byte gBattleMons -_080113F0: .4byte gUnknown_020239F8 -_080113F4: - mov r2, r8 - ldrb r0, [r2] - muls r0, r7 - mov r1, r9 - adds r3, r0, r1 - movs r2, 0 - ldr r6, _08011530 @ =gBaseStats - ldr r5, _08011534 @ =gUnknown_02024260 - ldr r4, _08011538 @ =gUnknown_02024A60 -_08011406: - adds r0, r3, r2 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x57 - bls _08011406 - mov r2, r8 - ldrb r0, [r2] - adds r2, r0, 0 - muls r2, r7 - add r2, r9 - ldrh r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x6] - adds r2, 0x21 - strb r0, [r2] - mov r1, r8 - ldrb r0, [r1] - adds r2, r0, 0 - muls r2, r7 - add r2, r9 - ldrh r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x7] - adds r2, 0x22 - strb r0, [r2] - mov r2, r8 - ldrb r0, [r2] - adds r1, r0, 0 - muls r1, r7 - add r1, r9 - ldrh r0, [r1] - ldrb r1, [r1, 0x17] - lsrs r1, 7 - bl GetAbilityBySpecies - mov r2, r8 - ldrb r1, [r2] - muls r1, r7 - add r1, r9 - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - ldr r1, _0801153C @ =0x020160bc - adds r0, r1 - mov r2, r8 - ldrb r1, [r2] - muls r1, r7 - add r1, r9 - ldrh r1, [r1, 0x28] - strh r1, [r0] - movs r2, 0 - ldr r4, _08011538 @ =gUnknown_02024A60 - movs r5, 0x58 - ldr r1, _08011540 @ =gUnknown_02024A98 - adds r6, r4, 0 - movs r0, 0x18 - negs r0, r0 - adds r0, r1 - mov r12, r0 - movs r3, 0x6 -_0801149E: - ldrb r0, [r4] - muls r0, r5 - adds r0, r2, r0 - adds r0, r1 - strb r3, [r0] - adds r2, 0x1 - cmp r2, 0x7 - ble _0801149E - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r7 - mov r0, r12 - adds r0, 0x50 - adds r1, r0 - movs r0, 0 - str r0, [r1] -_080114BE: - ldr r4, _08011538 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080114D8 - movs r0, 0 - bl dp01_build_cmdbuf_x07_7_7_7 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080114D8: - ldr r5, _08011544 @ =gUnknown_020239F8 - ldrh r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0801154C - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080114FE - movs r0, 0 - bl dp01_build_cmdbuf_x07_7_7_7 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080114FE: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08011588 - ldrh r1, [r5] - ldr r2, _08011548 @ =0x00000902 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08011588 - ldrb r0, [r4] - muls r0, r7 - add r0, r9 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 - b _08011588 - .align 2, 0 -_08011530: .4byte gBaseStats -_08011534: .4byte gUnknown_02024260 -_08011538: .4byte gUnknown_02024A60 -_0801153C: .4byte 0x020160bc -_08011540: .4byte gUnknown_02024A98 -_08011544: .4byte gUnknown_020239F8 -_08011548: .4byte 0x00000902 -_0801154C: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08011588 - ldrh r1, [r5] - ldr r2, _080115E8 @ =0x00000902 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08011588 - ldrb r0, [r4] - muls r0, r7 - add r0, r9 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 - movs r0, 0 - bl dp01_build_cmdbuf_x04_4_4_4 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08011588: - ldr r0, _080115EC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080115BE - ldr r4, _080115F0 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080115B2 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080115BE -_080115B2: - movs r0, 0 - bl dp01_build_cmdbuf_x07_7_7_7 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080115BE: - mov r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _080115F4 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcs _080115D4 - b _080113AC -_080115D4: - ldr r1, _080115F8 @ =gUnknown_030042D4 - ldr r0, _080115FC @ =bc_801333C - str r0, [r1] -_080115DA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080115E8: .4byte 0x00000902 -_080115EC: .4byte gUnknown_020239F8 -_080115F0: .4byte gUnknown_02024A60 -_080115F4: .4byte gUnknown_02024A68 -_080115F8: .4byte gUnknown_030042D4 -_080115FC: .4byte bc_801333C - thumb_func_end sub_8011384 - - thumb_func_start bc_801333C -bc_801333C: @ 8011600 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x30 - ldr r0, _08011658 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _08011612 - b _0801178C -_08011612: - ldr r0, _0801165C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08011620 - b _0801172C -_08011620: - movs r7, 0 - add r0, sp, 0x4 - mov r8, r0 - mov r6, r8 - mov r5, sp -_0801162A: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _08011660 @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08011650 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _08011668 -_08011650: - ldr r0, _08011664 @ =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _0801167A - .align 2, 0 -_08011658: .4byte gUnknown_02024A64 -_0801165C: .4byte gUnknown_020239F8 -_08011660: .4byte gEnemyParty -_08011664: .4byte 0x0000ffff -_08011668: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_0801167A: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _0801162A - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r4, _080116D4 @ =gUnknown_02024A60 - strb r0, [r4] - movs r0, 0 - mov r1, sp - movs r2, 0x80 - bl dp01_build_cmdbuf_x30_TODO - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - movs r7, 0 - mov r6, r8 - mov r5, sp -_080116A6: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _080116D8 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080116CC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _080116E0 -_080116CC: - ldr r0, _080116DC @ =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _080116F2 - .align 2, 0 -_080116D4: .4byte gUnknown_02024A60 -_080116D8: .4byte gPlayerParty -_080116DC: .4byte 0x0000ffff -_080116E0: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_080116F2: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _080116A6 - movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, _08011720 @ =gUnknown_02024A60 - strb r0, [r4] - movs r0, 0 - mov r1, sp - movs r2, 0x80 - bl dp01_build_cmdbuf_x30_TODO - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08011724 @ =gUnknown_030042D4 - ldr r0, _08011728 @ =bc_battle_begin_message - b _0801178A - .align 2, 0 -_08011720: .4byte gUnknown_02024A60 -_08011724: .4byte gUnknown_030042D4 -_08011728: .4byte bc_battle_begin_message -_0801172C: - movs r7, 0 - add r6, sp, 0x4 - mov r5, sp -_08011732: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _08011760 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08011758 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _08011768 -_08011758: - ldr r0, _08011764 @ =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _0801177A - .align 2, 0 -_08011760: .4byte gPlayerParty -_08011764: .4byte 0x0000ffff -_08011768: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_0801177A: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _08011732 - ldr r1, _08011798 @ =gUnknown_030042D4 - ldr r0, _0801179C @ =bc_8013568 -_0801178A: - str r0, [r1] -_0801178C: - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08011798: .4byte gUnknown_030042D4 -_0801179C: .4byte bc_8013568 - thumb_func_end bc_801333C - - thumb_func_start bc_battle_begin_message -bc_battle_begin_message: @ 80117A0 - push {lr} - ldr r0, _080117C8 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _080117C2 - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _080117CC @ =gUnknown_02024A60 - strb r0, [r1] - ldrb r1, [r1] - movs r0, 0 - bl b_std_message - ldr r1, _080117D0 @ =gUnknown_030042D4 - ldr r0, _080117D4 @ =sub_8011800 - str r0, [r1] -_080117C2: - pop {r0} - bx r0 - .align 2, 0 -_080117C8: .4byte gUnknown_02024A64 -_080117CC: .4byte gUnknown_02024A60 -_080117D0: .4byte gUnknown_030042D4 -_080117D4: .4byte sub_8011800 - thumb_func_end bc_battle_begin_message - - thumb_func_start bc_8013568 -bc_8013568: @ 80117D8 - push {lr} - ldr r0, _080117F4 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _080117F0 - ldr r1, _080117F8 @ =gUnknown_030042D4 - ldr r0, _080117FC @ =sub_8011970 - str r0, [r1] - movs r0, 0 - movs r1, 0 - bl b_std_message -_080117F0: - pop {r0} - bx r0 - .align 2, 0 -_080117F4: .4byte gUnknown_02024A64 -_080117F8: .4byte gUnknown_030042D4 -_080117FC: .4byte sub_8011970 - thumb_func_end bc_8013568 - - thumb_func_start sub_8011800 -sub_8011800: @ 8011800 - push {lr} - ldr r0, _08011828 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08011822 - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl b_std_message - ldr r1, _0801182C @ =gUnknown_030042D4 - ldr r0, _08011830 @ =sub_8011834 - str r0, [r1] -_08011822: - pop {r0} - bx r0 - .align 2, 0 -_08011828: .4byte gUnknown_02024A64 -_0801182C: .4byte gUnknown_030042D4 -_08011830: .4byte sub_8011834 - thumb_func_end sub_8011800 - - thumb_func_start sub_8011834 -sub_8011834: @ 8011834 - push {r4,lr} - ldr r0, _080118AC @ =gUnknown_02024A64 - ldr r1, [r0] - cmp r1, 0 - bne _080118A4 - ldr r2, _080118B0 @ =gUnknown_02024A60 - strb r1, [r2] - ldr r0, _080118B4 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r1, r0 - bcs _0801189E - adds r4, r2, 0 -_0801184C: - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08011866 - movs r0, 0 - bl dp01_build_cmdbuf_x2F_2F_2F_2F - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08011866: - ldr r0, _080118B8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801188C - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0801188C - movs r0, 0 - bl dp01_build_cmdbuf_x2F_2F_2F_2F - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0801188C: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _080118B4 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _0801184C -_0801189E: - ldr r1, _080118BC @ =gUnknown_030042D4 - ldr r0, _080118C0 @ =bc_801362C - str r0, [r1] -_080118A4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080118AC: .4byte gUnknown_02024A64 -_080118B0: .4byte gUnknown_02024A60 -_080118B4: .4byte gUnknown_02024A68 -_080118B8: .4byte gUnknown_020239F8 -_080118BC: .4byte gUnknown_030042D4 -_080118C0: .4byte bc_801362C - thumb_func_end sub_8011834 - - thumb_func_start bc_801362C -bc_801362C: @ 80118C4 - push {r4,r5,lr} - ldr r0, _08011930 @ =gUnknown_02024A64 - ldr r1, [r0] - cmp r1, 0 - bne _0801192A - ldr r2, _08011934 @ =gUnknown_02024A60 - strb r1, [r2] - ldr r0, _08011938 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r1, r0 - bcs _08011924 - adds r4, r2, 0 - ldr r5, _0801193C @ =gBattleMons -_080118DE: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08011912 - ldr r0, _08011940 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r2, _08011944 @ =0x00000902 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08011912 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r5 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 -_08011912: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08011938 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080118DE -_08011924: - ldr r1, _08011948 @ =gUnknown_030042D4 - ldr r0, _0801194C @ =sub_8011970 - str r0, [r1] -_0801192A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08011930: .4byte gUnknown_02024A64 -_08011934: .4byte gUnknown_02024A60 -_08011938: .4byte gUnknown_02024A68 -_0801193C: .4byte gBattleMons -_08011940: .4byte gUnknown_020239F8 -_08011944: .4byte 0x00000902 -_08011948: .4byte gUnknown_030042D4 -_0801194C: .4byte sub_8011970 - thumb_func_end bc_801362C - - thumb_func_start unref_sub_8011950 -unref_sub_8011950: @ 8011950 - push {lr} - ldr r0, _08011964 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08011960 - ldr r1, _08011968 @ =gUnknown_030042D4 - ldr r0, _0801196C @ =sub_8011970 - str r0, [r1] -_08011960: - pop {r0} - bx r0 - .align 2, 0 -_08011964: .4byte gUnknown_02024A64 -_08011968: .4byte gUnknown_030042D4 -_0801196C: .4byte sub_8011970 - thumb_func_end unref_sub_8011950 - - thumb_func_start sub_8011970 -sub_8011970: @ 8011970 - push {lr} - ldr r0, _080119A4 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801199E - ldr r0, _080119A8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08011998 - movs r0, 0 - bl battle_get_side_with_given_state - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - bl b_std_message -_08011998: - ldr r1, _080119AC @ =gUnknown_030042D4 - ldr r0, _080119B0 @ =sub_80119B4 - str r0, [r1] -_0801199E: - pop {r0} - bx r0 - .align 2, 0 -_080119A4: .4byte gUnknown_02024A64 -_080119A8: .4byte gUnknown_020239F8 -_080119AC: .4byte gUnknown_030042D4 -_080119B0: .4byte sub_80119B4 - thumb_func_end sub_8011970 - - thumb_func_start sub_80119B4 -sub_80119B4: @ 80119B4 - push {r4,lr} - ldr r0, _08011A40 @ =gUnknown_02024A64 - ldr r1, [r0] - cmp r1, 0 - bne _08011A38 - ldr r2, _08011A44 @ =gUnknown_02024A60 - strb r1, [r2] - ldr r0, _08011A48 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r1, r0 - bcs _08011A1C - adds r4, r2, 0 -_080119CC: - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _080119E4 - movs r0, 0 - bl dp01_build_cmdbuf_x2F_2F_2F_2F - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080119E4: - ldr r0, _08011A4C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08011A0A - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08011A0A - movs r0, 0 - bl dp01_build_cmdbuf_x2F_2F_2F_2F - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08011A0A: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08011A48 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080119CC -_08011A1C: - ldr r1, _08011A50 @ =0x02000000 - ldr r2, _08011A54 @ =0x00016058 - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r3, _08011A58 @ =0x000160f9 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08011A5C @ =0x000160e6 - adds r1, r0 - strb r2, [r1] - ldr r1, _08011A60 @ =gUnknown_030042D4 - ldr r0, _08011A64 @ =sub_8011B00 - str r0, [r1] -_08011A38: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08011A40: .4byte gUnknown_02024A64 -_08011A44: .4byte gUnknown_02024A60 -_08011A48: .4byte gUnknown_02024A68 -_08011A4C: .4byte gUnknown_020239F8 -_08011A50: .4byte 0x02000000 -_08011A54: .4byte 0x00016058 -_08011A58: .4byte 0x000160f9 -_08011A5C: .4byte 0x000160e6 -_08011A60: .4byte gUnknown_030042D4 -_08011A64: .4byte sub_8011B00 - thumb_func_end sub_80119B4 - - thumb_func_start unref_sub_8011A68 -unref_sub_8011A68: @ 8011A68 - push {r4,r5,lr} - ldr r0, _08011AD8 @ =gUnknown_02024A64 - ldr r1, [r0] - cmp r1, 0 - bne _08011AD2 - ldr r2, _08011ADC @ =gUnknown_02024A60 - strb r1, [r2] - ldr r0, _08011AE0 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r1, r0 - bcs _08011AB6 - adds r4, r2, 0 - ldr r5, _08011AE4 @ =gUnknown_02024A6A -_08011A82: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08011AA4 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r5 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0 - bl sub_800C704 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08011AA4: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08011AE0 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08011A82 -_08011AB6: - ldr r1, _08011AE8 @ =0x02000000 - ldr r2, _08011AEC @ =0x00016058 - adds r0, r1, r2 - movs r2, 0 - strb r2, [r0] - ldr r3, _08011AF0 @ =0x000160f9 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08011AF4 @ =0x000160e6 - adds r1, r0 - strb r2, [r1] - ldr r1, _08011AF8 @ =gUnknown_030042D4 - ldr r0, _08011AFC @ =sub_8011B00 - str r0, [r1] -_08011AD2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08011AD8: .4byte gUnknown_02024A64 -_08011ADC: .4byte gUnknown_02024A60 -_08011AE0: .4byte gUnknown_02024A68 -_08011AE4: .4byte gUnknown_02024A6A -_08011AE8: .4byte 0x02000000 -_08011AEC: .4byte 0x00016058 -_08011AF0: .4byte 0x000160f9 -_08011AF4: .4byte 0x000160e6 -_08011AF8: .4byte gUnknown_030042D4 -_08011AFC: .4byte sub_8011B00 - thumb_func_end unref_sub_8011A68 - - thumb_func_start sub_8011B00 -sub_8011B00: @ 8011B00 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r0, 0 - mov r9, r0 - ldr r0, _08011B44 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _08011B18 - b _08011D6E -_08011B18: - ldr r0, _08011B48 @ =0x02000000 - ldr r1, _08011B4C @ =0x00016058 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08011BA2 - movs r5, 0 - ldr r1, _08011B50 @ =gUnknown_02024A68 - adds r3, r1, 0 - ldrb r2, [r1] - cmp r5, r2 - bge _08011B3E - ldr r2, _08011B54 @ =gUnknown_02024A7A -_08011B32: - adds r0, r5, r2 - strb r5, [r0] - adds r5, 0x1 - ldrb r0, [r1] - cmp r5, r0 - blt _08011B32 -_08011B3E: - movs r5, 0 - b _08011B98 - .align 2, 0 -_08011B44: .4byte gUnknown_02024A64 -_08011B48: .4byte 0x02000000 -_08011B4C: .4byte 0x00016058 -_08011B50: .4byte gUnknown_02024A68 -_08011B54: .4byte gUnknown_02024A7A -_08011B58: - adds r4, r5, 0x1 - mov r8, r4 - ldrb r1, [r1] - cmp r8, r1 - bge _08011B96 - ldr r6, _08011BC8 @ =gUnknown_02024A7A - ldr r3, _08011BCC @ =gUnknown_02024A68 - lsls r7, r5, 24 -_08011B68: - adds r0, r5, r6 - ldrb r0, [r0] - adds r1, r4, r6 - ldrb r1, [r1] - movs r2, 0x1 - str r3, [sp, 0x4] - bl b_first_side - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r0, 0 - beq _08011B8C - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r7, 24 - bl sub_8012FBC - ldr r3, [sp, 0x4] -_08011B8C: - adds r4, 0x1 - ldr r0, _08011BCC @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08011B68 -_08011B96: - mov r5, r8 -_08011B98: - adds r1, r3, 0 - ldrb r0, [r3] - subs r0, 0x1 - cmp r5, r0 - blt _08011B58 -_08011BA2: - ldr r0, _08011BD0 @ =0x02000000 - ldr r1, _08011BD4 @ =0x000160e6 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - bne _08011BD8 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0xFF - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08011BD8 - movs r0, 0x1 - strb r0, [r4] - b _08011D6E - .align 2, 0 -_08011BC8: .4byte gUnknown_02024A7A -_08011BCC: .4byte gUnknown_02024A68 -_08011BD0: .4byte 0x02000000 -_08011BD4: .4byte 0x000160e6 -_08011BD8: - ldr r0, _08011D7C @ =0x02000000 - ldr r3, _08011D80 @ =0x00016058 - adds r2, r0, r3 - ldr r1, _08011D84 @ =gUnknown_02024A68 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bcs _08011C28 - ldr r5, _08011D88 @ =gUnknown_02024A7A - adds r4, r2, 0 -_08011BEC: - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08011C0E - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08011C0E: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - mov r1, r9 - cmp r1, 0 - beq _08011C1C - b _08011D6E -_08011C1C: - ldr r1, _08011D84 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08011BEC -_08011C28: - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08011C42 - b _08011D6E -_08011C42: - str r0, [sp] - movs r0, 0xB - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08011C58 - b _08011D6E -_08011C58: - ldr r0, _08011D7C @ =0x02000000 - ldr r3, _08011D8C @ =0x000160f9 - adds r2, r0, r3 - ldr r0, _08011D84 @ =gUnknown_02024A68 - ldrb r1, [r2] - adds r3, r0, 0 - ldrb r0, [r3] - cmp r1, r0 - bcs _08011CA8 - ldr r5, _08011D88 @ =gUnknown_02024A7A - adds r4, r2, 0 -_08011C6E: - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0 - movs r2, 0 - str r3, [sp, 0x4] - bl sub_801A02C - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r0, 0 - beq _08011C90 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08011C90: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - mov r1, r9 - cmp r1, 0 - bne _08011D6E - ldr r1, _08011D84 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08011C6E -_08011CA8: - ldrb r0, [r3] - cmp r0, 0 - beq _08011CB6 - adds r5, r0, 0 -_08011CB0: - subs r5, 0x1 - cmp r5, 0 - bne _08011CB0 -_08011CB6: - movs r5, 0 - ldr r0, _08011D7C @ =0x02000000 - mov r8, r5 - ldr r3, _08011D90 @ =gUnknown_02024C60 - ldr r1, _08011D94 @ =0x00016068 - adds r2, r0, r1 - movs r7, 0x6 - ldr r6, _08011D98 @ =gUnknown_02024C18 - movs r4, 0xFF -_08011CC8: - strb r7, [r2] - adds r1, r5, r6 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - mov r0, r8 - strh r0, [r3] - adds r3, 0x2 - adds r2, 0x1 - adds r5, 0x1 - cmp r5, 0x3 - ble _08011CC8 - movs r0, 0 - bl sub_801365C - bl sub_801377C - ldr r0, _08011D7C @ =0x02000000 - ldr r1, _08011D9C @ =gUnknown_02024C0C - ldrb r1, [r1] - ldr r2, _08011DA0 @ =0x000160a6 - adds r0, r2 - strb r1, [r0] - ldr r1, _08011DA4 @ =gUnknown_030042D4 - ldr r0, _08011DA8 @ =sub_8012324 - str r0, [r1] - bl sub_80156DC - ldr r1, _08011DAC @ =gUnknown_02024D1E - movs r2, 0 - adds r0, r1, 0x7 -_08011D06: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08011D06 - movs r5, 0 - ldr r3, _08011D84 @ =gUnknown_02024A68 - ldr r2, _08011D7C @ =0x02000000 - ldr r6, _08011DB0 @ =gUnknown_02024C68 - ldrb r0, [r3] - cmp r5, r0 - bge _08011D36 - ldr r0, _08011DB4 @ =gBattleMons - movs r4, 0x9 - negs r4, r4 - adds r1, r0, 0 - adds r1, 0x50 -_08011D26: - ldr r0, [r1] - ands r0, r4 - str r0, [r1] - adds r1, 0x58 - adds r5, 0x1 - ldrb r0, [r3] - cmp r5, r0 - blt _08011D26 -_08011D36: - movs r1, 0xB0 - lsls r1, 9 - adds r0, r2, r1 - movs r1, 0 - strb r1, [r0] - ldr r3, _08011DB8 @ =0x00016001 - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _08011DBC @ =0x00016110 - adds r0, r2, r3 - strb r1, [r0] - adds r3, 0x1 - adds r0, r2, r3 - strb r1, [r0] - ldr r3, _08011DC0 @ =0x0001600c - adds r0, r2, r3 - strb r1, [r0] - adds r3, 0x4D - adds r0, r2, r3 - strb r1, [r0] - subs r3, 0x4B - adds r0, r2, r3 - strb r1, [r0] - strb r1, [r6] - bl Random - ldr r1, _08011DC4 @ =gUnknown_02024D1C - strh r0, [r1] -_08011D6E: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08011D7C: .4byte 0x02000000 -_08011D80: .4byte 0x00016058 -_08011D84: .4byte gUnknown_02024A68 -_08011D88: .4byte gUnknown_02024A7A -_08011D8C: .4byte 0x000160f9 -_08011D90: .4byte gUnknown_02024C60 -_08011D94: .4byte 0x00016068 -_08011D98: .4byte gUnknown_02024C18 -_08011D9C: .4byte gUnknown_02024C0C -_08011DA0: .4byte 0x000160a6 -_08011DA4: .4byte gUnknown_030042D4 -_08011DA8: .4byte sub_8012324 -_08011DAC: .4byte gUnknown_02024D1E -_08011DB0: .4byte gUnknown_02024C68 -_08011DB4: .4byte gBattleMons -_08011DB8: .4byte 0x00016001 -_08011DBC: .4byte 0x00016110 -_08011DC0: .4byte 0x0001600c -_08011DC4: .4byte gUnknown_02024D1C - thumb_func_end sub_8011B00 - - thumb_func_start bc_8013B1C -bc_8013B1C: @ 8011DC8 - push {r4-r6,lr} - ldr r0, _08011E60 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08011E5A - ldr r1, _08011E64 @ =gUnknown_030042D4 - ldr r0, _08011E68 @ =sub_8011E8C - str r0, [r1] - ldr r3, _08011E6C @ =gUnknown_02024A68 - ldr r1, _08011E70 @ =gUnknown_02024D1E - movs r2, 0 - adds r0, r1, 0x7 -_08011DE0: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08011DE0 - movs r4, 0 - ldrb r3, [r3] - cmp r4, r3 - bge _08011E32 - ldr r5, _08011E74 @ =gBattleMons - adds r6, r5, 0 - adds r6, 0x4C -_08011DF6: - movs r0, 0x58 - adds r2, r4, 0 - muls r2, r0 - adds r1, r5, 0 - adds r1, 0x50 - adds r1, r2, r1 - ldr r3, [r1] - subs r0, 0x61 - ands r3, r0 - str r3, [r1] - adds r2, r6 - ldr r0, [r2] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08011E28 - movs r0, 0x80 - lsls r0, 5 - ands r3, r0 - cmp r3, 0 - beq _08011E28 - lsls r0, r4, 24 - lsrs r0, 24 - bl b_cancel_multi_turn_move_maybe -_08011E28: - adds r4, 0x1 - ldr r0, _08011E6C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08011DF6 -_08011E32: - ldr r0, _08011E78 @ =0x02000000 - movs r2, 0xB0 - lsls r2, 9 - adds r1, r0, r2 - movs r2, 0 - strb r2, [r1] - ldr r3, _08011E7C @ =0x00016001 - adds r1, r0, r3 - strb r2, [r1] - ldr r3, _08011E80 @ =0x00016110 - adds r1, r0, r3 - strb r2, [r1] - adds r3, 0x1 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _08011E84 @ =0x0001600e - adds r0, r1 - strb r2, [r0] - ldr r0, _08011E88 @ =gUnknown_02024C68 - strb r2, [r0] -_08011E5A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08011E60: .4byte gUnknown_02024A64 -_08011E64: .4byte gUnknown_030042D4 -_08011E68: .4byte sub_8011E8C -_08011E6C: .4byte gUnknown_02024A68 -_08011E70: .4byte gUnknown_02024D1E -_08011E74: .4byte gBattleMons -_08011E78: .4byte 0x02000000 -_08011E7C: .4byte 0x00016001 -_08011E80: .4byte 0x00016110 -_08011E84: .4byte 0x0001600e -_08011E88: .4byte gUnknown_02024C68 - thumb_func_end bc_8013B1C - - thumb_func_start sub_8011E8C -sub_8011E8C: @ 8011E8C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0x1 - bl sub_801365C - ldr r0, _08011F3C @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0 - bne _08011EBC - bl sub_8015DFC - lsls r0, 24 - cmp r0, 0 - beq _08011EB0 - b _08011FEE -_08011EB0: - bl sub_8016558 - lsls r0, 24 - cmp r0, 0 - beq _08011EBC - b _08011FEE -_08011EBC: - bl sub_80173A4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _08011ECA - b _08011FEE -_08011ECA: - ldr r5, _08011F40 @ =0x02000000 - ldr r2, _08011F44 @ =0x00016059 - adds r0, r5, r2 - strb r1, [r0] - bl sub_80170DC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08011EE0 - b _08011FEE -_08011EE0: - movs r0, 0 - bl sub_801365C - ldr r2, _08011F48 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _08011F4C @ =0xfffffdff - ands r0, r1 - ldr r1, _08011F50 @ =0xfff7ffff - ands r0, r1 - ldr r1, _08011F54 @ =0xffbfffff - ands r0, r1 - ldr r1, _08011F58 @ =0xffefffff - ands r0, r1 - str r0, [r2] - ldr r3, _08011F5C @ =0x00016002 - adds r0, r5, r3 - strb r4, [r0] - ldr r1, _08011F60 @ =0x000160a1 - adds r0, r5, r1 - strb r4, [r0] - ldr r2, _08011F64 @ =0x0001600c - adds r0, r5, r2 - strb r4, [r0] - ldr r0, _08011F68 @ =gUnknown_02024BEC - str r4, [r0] - ldr r0, _08011F6C @ =gUnknown_02024C68 - strb r4, [r0] - ldr r1, _08011F70 @ =gUnknown_02024D1E - movs r2, 0 - adds r0, r1, 0x4 -_08011F1C: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _08011F1C - ldr r0, _08011F3C @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0 - beq _08011F80 - ldr r1, _08011F74 @ =gUnknown_02024A7F - movs r0, 0xC - strb r0, [r1] - ldr r1, _08011F78 @ =gUnknown_030042D4 - ldr r0, _08011F7C @ =sub_80138F0 - str r0, [r1] - b _08011FEE - .align 2, 0 -_08011F3C: .4byte gUnknown_02024D26 -_08011F40: .4byte 0x02000000 -_08011F44: .4byte 0x00016059 -_08011F48: .4byte gUnknown_02024C6C -_08011F4C: .4byte 0xfffffdff -_08011F50: .4byte 0xfff7ffff -_08011F54: .4byte 0xffbfffff -_08011F58: .4byte 0xffefffff -_08011F5C: .4byte 0x00016002 -_08011F60: .4byte 0x000160a1 -_08011F64: .4byte 0x0001600c -_08011F68: .4byte gUnknown_02024BEC -_08011F6C: .4byte gUnknown_02024C68 -_08011F70: .4byte gUnknown_02024D1E -_08011F74: .4byte gUnknown_02024A7F -_08011F78: .4byte gUnknown_030042D4 -_08011F7C: .4byte sub_80138F0 -_08011F80: - ldr r1, _08011FFC @ =gUnknown_030042E0 - ldrb r0, [r1, 0x13] - cmp r0, 0xFE - bhi _08011F8C - adds r0, 0x1 - strb r0, [r1, 0x13] -_08011F8C: - movs r2, 0 - ldr r4, _08012000 @ =gUnknown_02024A68 - ldr r3, _08012004 @ =0x02000000 - mov r9, r3 - ldr r0, _08012008 @ =gUnknown_030042D4 - mov r10, r0 - ldr r1, _0801200C @ =gUnknown_02024C0C - mov r12, r1 - ldr r3, _08012010 @ =sub_8012324 - mov r8, r3 - ldrb r0, [r4] - cmp r2, r0 - bge _08011FC2 - ldr r7, _08012014 @ =gUnknown_02024C18 - movs r6, 0xFF - movs r5, 0 - ldr r3, _08012018 @ =gUnknown_02024C60 -_08011FAE: - adds r1, r2, r7 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - strh r5, [r3] - adds r3, 0x2 - adds r2, 0x1 - ldrb r1, [r4] - cmp r2, r1 - blt _08011FAE -_08011FC2: - ldr r0, _08012004 @ =0x02000000 - movs r1, 0x6 - movs r2, 0x3 - ldr r3, _0801201C @ =0x0001606b - adds r0, r3 -_08011FCC: - strb r1, [r0] - subs r0, 0x1 - subs r2, 0x1 - cmp r2, 0 - bge _08011FCC - mov r0, r12 - ldrb r1, [r0] - ldr r0, _08012020 @ =0x000160a6 - add r0, r9 - strb r1, [r0] - mov r1, r8 - mov r2, r10 - str r1, [r2] - bl Random - ldr r1, _08012024 @ =gUnknown_02024D1C - strh r0, [r1] -_08011FEE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08011FFC: .4byte gUnknown_030042E0 -_08012000: .4byte gUnknown_02024A68 -_08012004: .4byte 0x02000000 -_08012008: .4byte gUnknown_030042D4 -_0801200C: .4byte gUnknown_02024C0C -_08012010: .4byte sub_8012324 -_08012014: .4byte gUnknown_02024C18 -_08012018: .4byte gUnknown_02024C60 -_0801201C: .4byte 0x0001606b -_08012020: .4byte 0x000160a6 -_08012024: .4byte gUnknown_02024D1C - thumb_func_end sub_8011E8C - - thumb_func_start sub_8012028 -sub_8012028: @ 8012028 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _0801204C @ =gBattleMons - ldr r0, _08012050 @ =gUnknown_02024A60 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08012058 - ldr r1, _08012054 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0, 0x7] - b _08012062 - .align 2, 0 -_0801204C: .4byte gBattleMons -_08012050: .4byte gUnknown_02024A60 -_08012054: .4byte gEnigmaBerries -_08012058: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r2, r0, 24 -_08012062: - ldr r1, _0801217C @ =gUnknown_02024C0B - ldr r3, _08012180 @ =gUnknown_02024A60 - ldrb r0, [r3] - strb r0, [r1] - cmp r2, 0x25 - bne _08012070 - b _080121F4 -_08012070: - ldr r0, _08012184 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0801207E - b _080121F4 -_0801207E: - ldr r1, _08012188 @ =gBattleMons - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x32 - bne _08012092 - b _080121F4 -_08012092: - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r0, _0801218C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - bge _08012126 - movs r7, 0 -_080120A8: - lsrs r4, r7, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _080120CC - ldr r1, _08012188 @ =gBattleMons - movs r0, 0x58 - muls r0, r5 - adds r0, r1 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r0, [r2] - cmp r0, 0x17 - bne _080120CC - b _080121FC -_080120CC: - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08012116 - ldr r3, _08012188 @ =gBattleMons - ldr r0, _08012180 @ =gUnknown_02024A60 - ldrb r0, [r0] - movs r2, 0x58 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - beq _08012116 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08012116 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _08012116 - adds r0, r5, 0 - muls r0, r2 - adds r0, r3 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r0, [r2] - cmp r0, 0x47 - bne _08012116 - b _08012220 -_08012116: - movs r0, 0x80 - lsls r0, 17 - adds r7, r0 - adds r5, 0x1 - ldr r0, _0801218C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - blt _080120A8 -_08012126: - ldr r4, _08012180 @ =gUnknown_02024A60 - ldrb r1, [r4] - movs r0, 0 - str r0, [sp] - movs r0, 0xF - movs r2, 0x2A - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080121A0 - ldr r6, _08012188 @ =gBattleMons - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - beq _0801215E - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080121A0 -_0801215E: - ldr r0, _08012190 @ =0x02000000 - subs r1, r5, 0x1 - ldr r2, _08012194 @ =0x00016003 - adds r0, r2 - strb r1, [r0] - ldr r2, _08012198 @ =byte_2024C06 - adds r0, r1, 0 - muls r0, r3 - adds r0, r6 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2] - ldr r1, _0801219C @ =gUnknown_02024D1E - movs r0, 0x2 - b _08012248 - .align 2, 0 -_0801217C: .4byte gUnknown_02024C0B -_08012180: .4byte gUnknown_02024A60 -_08012184: .4byte gUnknown_020239F8 -_08012188: .4byte gBattleMons -_0801218C: .4byte gUnknown_02024A68 -_08012190: .4byte 0x02000000 -_08012194: .4byte 0x00016003 -_08012198: .4byte byte_2024C06 -_0801219C: .4byte gUnknown_02024D1E -_080121A0: - ldr r1, _080121D4 @ =gBattleMons - ldr r0, _080121D8 @ =gUnknown_02024A60 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080121DC @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _080121CA - ldr r1, _080121E0 @ =gUnknown_02024C98 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _080121E8 -_080121CA: - ldr r1, _080121E4 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] - movs r0, 0x1 - b _0801224A - .align 2, 0 -_080121D4: .4byte gBattleMons -_080121D8: .4byte gUnknown_02024A60 -_080121DC: .4byte 0x0400e000 -_080121E0: .4byte gUnknown_02024C98 -_080121E4: .4byte gUnknown_02024D1E -_080121E8: - ldr r0, _080121F8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08012244 -_080121F4: - movs r0, 0 - b _0801224A - .align 2, 0 -_080121F8: .4byte gUnknown_020239F8 -_080121FC: - ldr r0, _08012210 @ =0x02000000 - ldr r1, _08012214 @ =0x00016003 - adds r0, r1 - strb r5, [r0] - ldr r1, _08012218 @ =byte_2024C06 - ldrb r0, [r2] - strb r0, [r1] - ldr r1, _0801221C @ =gUnknown_02024D1E - movs r0, 0x2 - b _08012248 - .align 2, 0 -_08012210: .4byte 0x02000000 -_08012214: .4byte 0x00016003 -_08012218: .4byte byte_2024C06 -_0801221C: .4byte gUnknown_02024D1E -_08012220: - ldr r0, _08012234 @ =0x02000000 - ldr r1, _08012238 @ =0x00016003 - adds r0, r1 - strb r5, [r0] - ldr r1, _0801223C @ =byte_2024C06 - ldrb r0, [r2] - strb r0, [r1] - ldr r1, _08012240 @ =gUnknown_02024D1E - movs r0, 0x2 - b _08012248 - .align 2, 0 -_08012234: .4byte 0x02000000 -_08012238: .4byte 0x00016003 -_0801223C: .4byte byte_2024C06 -_08012240: .4byte gUnknown_02024D1E -_08012244: - ldr r1, _08012254 @ =gUnknown_02024D1E - movs r0, 0x1 -_08012248: - strb r0, [r1, 0x5] -_0801224A: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08012254: .4byte gUnknown_02024D1E - thumb_func_end sub_8012028 - - thumb_func_start sub_8012258 -sub_8012258: @ 8012258 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - ldr r7, _080122E4 @ =gUnknown_02024A6A - ldr r4, _080122E8 @ =gUnknown_02038470 - ldr r1, _080122EC @ =0x02000000 - lsls r6, r5, 1 - ldr r2, _080122F0 @ =0x0001606c - adds r0, r5, r2 - adds r0, r6, r0 - adds r2, r0, r1 -_08012270: - adds r1, r3, r4 - ldrb r0, [r2] - strb r0, [r1] - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x2 - ble _08012270 - adds r0, r6, r7 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r7, _080122EC @ =0x02000000 - ldr r1, _080122F4 @ =0x00016068 - adds r0, r5, r1 - adds r0, r7 - ldrb r0, [r0] - bl pokemon_order_func - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8094C98 - ldr r0, _080122F8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080122FC - movs r3, 0 - ldr r2, _080122F0 @ =0x0001606c - movs r0, 0x2 - adds r1, r5, 0 - eors r1, r0 - adds r0, r5, r2 - adds r0, r6, r0 - adds r4, r0, r7 - ldr r5, _080122E8 @ =gUnknown_02038470 - lsls r0, r1, 1 - adds r0, r1 - adds r0, r2 - adds r2, r0, r7 -_080122CC: - adds r0, r3, r5 - ldrb r1, [r0] - strb r1, [r4] - ldrb r0, [r0] - strb r0, [r2] - adds r4, 0x1 - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x2 - ble _080122CC - b _08012316 - .align 2, 0 -_080122E4: .4byte gUnknown_02024A6A -_080122E8: .4byte gUnknown_02038470 -_080122EC: .4byte 0x02000000 -_080122F0: .4byte 0x0001606c -_080122F4: .4byte 0x00016068 -_080122F8: .4byte gUnknown_020239F8 -_080122FC: - movs r3, 0 - ldr r2, _0801231C @ =0x0001606c - adds r0, r5, r2 - adds r0, r6, r0 - adds r1, r0, r7 - ldr r2, _08012320 @ =gUnknown_02038470 -_08012308: - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, 0x1 - adds r3, 0x1 - cmp r3, 0x2 - ble _08012308 -_08012316: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801231C: .4byte 0x0001606c -_08012320: .4byte gUnknown_02038470 - thumb_func_end sub_8012258 - - thumb_func_start sub_8012324 -sub_8012324: @ 8012324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _08012340 @ =gUnknown_02024D1E - movs r1, 0 - strb r1, [r0, 0x4] - ldr r0, _08012344 @ =gUnknown_02024A60 - strb r1, [r0] - ldr r0, _08012348 @ =gUnknown_02024A68 - bl _08012F74 - .align 2, 0 -_08012340: .4byte gUnknown_02024D1E -_08012344: .4byte gUnknown_02024A60 -_08012348: .4byte gUnknown_02024A68 -_0801234C: - ldr r4, _08012374 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08012378 @ =gUnknown_02024D1E - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bls _08012368 - bl _08012F66 -_08012368: - lsls r0, 2 - ldr r1, _0801237C @ =_08012380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012374: .4byte gUnknown_02024A60 -_08012378: .4byte gUnknown_02024D1E -_0801237C: .4byte _08012380 - .align 2, 0 -_08012380: - .4byte _0801239C - .4byte _080124C8 - .4byte _08012A28 - .4byte _08012DA8 - .4byte _08012E50 - .4byte _08012E94 - .4byte _08012F38 -_0801239C: - ldr r4, _08012434 @ =0x02000000 - ldr r0, _08012438 @ =gUnknown_02024A60 - ldrb r0, [r0] - ldr r1, _0801243C @ =0x00016068 - adds r0, r1 - adds r0, r4 - movs r1, 0x6 - strb r1, [r0] - ldr r0, _08012440 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080123F8 - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _080123F8 - eors r5, r1 - adds r0, r5, 0 - bl battle_get_side_with_given_state - ldr r2, _08012444 @ =0x000160a6 - adds r1, r4, r2 - ldrb r1, [r1] - ldr r2, _08012448 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080123F8 - ldr r4, _0801244C @ =gUnknown_02024D1E - adds r0, r5, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x4 - beq _080123F8 - bl _08012F66 -_080123F8: - ldr r0, _08012434 @ =0x02000000 - ldr r3, _08012444 @ =0x000160a6 - adds r0, r3 - ldrb r3, [r0] - ldr r1, _08012448 @ =gBitTable - ldr r4, _08012438 @ =gUnknown_02024A60 - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ands r3, r0 - cmp r3, 0 - beq _08012468 - ldr r0, _08012450 @ =gUnknown_02024C18 - adds r0, r2, r0 - movs r1, 0xD - strb r1, [r0] - ldr r0, _08012440 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08012454 - ldr r0, _0801244C @ =gUnknown_02024D1E - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x4 - strb r0, [r1] - bl _08012F66 - .align 2, 0 -_08012434: .4byte 0x02000000 -_08012438: .4byte gUnknown_02024A60 -_0801243C: .4byte 0x00016068 -_08012440: .4byte gUnknown_020239F8 -_08012444: .4byte 0x000160a6 -_08012448: .4byte gBitTable -_0801244C: .4byte gUnknown_02024D1E -_08012450: .4byte gUnknown_02024C18 -_08012454: - ldr r0, _08012464 @ =gUnknown_02024D1E - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x3 - strb r0, [r1] - bl _08012F66 - .align 2, 0 -_08012464: .4byte gUnknown_02024D1E -_08012468: - ldr r1, _0801249C @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - bne _08012488 - movs r0, 0x80 - lsls r0, 15 - ands r1, r0 - cmp r1, 0 - beq _080124A8 -_08012488: - ldr r0, _080124A0 @ =gUnknown_02024C18 - adds r0, r2, r0 - strb r3, [r0] - ldr r1, _080124A4 @ =gUnknown_02024D1E - ldrb r0, [r4] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08012F66 - .align 2, 0 -_0801249C: .4byte gBattleMons -_080124A0: .4byte gUnknown_02024C18 -_080124A4: .4byte gUnknown_02024D1E -_080124A8: - ldr r0, _080124C0 @ =gUnknown_02024C18 - ldrb r1, [r0] - ldr r0, _080124C4 @ =gUnknown_02024260 - ldrb r2, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r2, r0 - movs r0, 0 - bl dp01_build_cmdbuf_x12_a_bb - bl _08012E32 - .align 2, 0 -_080124C0: .4byte gUnknown_02024C18 -_080124C4: .4byte gUnknown_02024260 -_080124C8: - ldr r4, _08012520 @ =gUnknown_02024A64 - ldr r1, _08012524 @ =gBitTable - ldr r3, _08012528 @ =gUnknown_02024A60 - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _080124F6 - bl _08012F66 -_080124F6: - ldr r2, _0801252C @ =gUnknown_02024C18 - adds r2, r5, r2 - ldr r1, _08012530 @ =gUnknown_02024260 - lsls r0, r5, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r3] - lsls r0, 9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xC - bls _08012514 - b _08012968 -_08012514: - lsls r0, 2 - ldr r1, _08012534 @ =_08012538 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012520: .4byte gUnknown_02024A64 -_08012524: .4byte gBitTable -_08012528: .4byte gUnknown_02024A60 -_0801252C: .4byte gUnknown_02024C18 -_08012530: .4byte gUnknown_02024260 -_08012534: .4byte _08012538 - .align 2, 0 -_08012538: - .4byte _0801256C - .4byte _080126B4 - .4byte _080126E0 - .4byte _08012968 - .4byte _08012968 - .4byte _080128B0 - .4byte _08012908 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _0801292C -_0801256C: - bl sub_8015C90 - lsls r0, 24 - cmp r0, 0 - beq _080125D0 - ldr r0, _080125B4 @ =gUnknown_02024D1E - ldr r2, _080125B8 @ =gUnknown_02024A60 - ldrb r1, [r2] - adds r1, r0 - movs r4, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r3, _080125BC @ =0x02000000 - ldrb r0, [r2] - ldr r1, _080125C0 @ =0x00016060 - adds r0, r1 - adds r0, r3 - strb r4, [r0] - ldrb r0, [r2] - ldr r4, _080125C4 @ =0x00016094 - adds r0, r4 - adds r0, r3 - movs r1, 0x3 - strb r1, [r0] - ldrb r1, [r2] - ldr r0, _080125C8 @ =0x00016010 - adds r2, r1, r0 - adds r2, r3 - ldr r0, _080125CC @ =gUnknown_02024260 - lsls r1, 9 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2] - bl _08012F90 - .align 2, 0 -_080125B4: .4byte gUnknown_02024D1E -_080125B8: .4byte gUnknown_02024A60 -_080125BC: .4byte 0x02000000 -_080125C0: .4byte 0x00016060 -_080125C4: .4byte 0x00016094 -_080125C8: .4byte 0x00016010 -_080125CC: .4byte gUnknown_02024260 -_080125D0: - ldr r1, _080125FC @ =gUnknown_02024CA8 - ldr r5, _08012600 @ =gUnknown_02024A60 - ldrb r4, [r5] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r2, [r0, 0x6] - cmp r2, 0 - beq _0801260C - ldr r1, _08012604 @ =gUnknown_02024C60 - lsls r0, r4, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, _08012608 @ =gUnknown_02024D1E - ldrb r0, [r5] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08012F90 - .align 2, 0 -_080125FC: .4byte gUnknown_02024CA8 -_08012600: .4byte gUnknown_02024A60 -_08012604: .4byte gUnknown_02024C60 -_08012608: .4byte gUnknown_02024D1E -_0801260C: - add r2, sp, 0x4 - ldr r3, _080126AC @ =gBattleMons - movs r1, 0x58 - adds r0, r4, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x21 - ldrb r0, [r0] - strb r0, [r2, 0x12] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x22 - ldrb r0, [r0] - strb r0, [r2, 0x13] - movs r4, 0 - mov r1, sp - adds r1, 0xC - str r1, [sp, 0x18] - add r2, sp, 0x10 - mov r10, r2 - mov r8, r3 - adds r7, r5, 0 - movs r6, 0x58 - movs r3, 0xC - add r3, r8 - mov r9, r3 - add r5, sp, 0x4 -_0801264E: - lsls r2, r4, 1 - ldrb r0, [r7] - muls r0, r6 - adds r0, r2, r0 - add r0, r9 - ldrh r0, [r0] - strh r0, [r5] - ldr r0, [sp, 0x18] - adds r3, r0, r4 - ldrb r0, [r7] - muls r0, r6 - adds r0, r4, r0 - mov r1, r8 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - adds r2, r1 - add r2, r9 - ldrh r0, [r2] - add r1, r8 - adds r1, 0x3B - ldrb r1, [r1] - lsls r2, r4, 24 - lsrs r2, 24 - bl CalculatePPWithBonus - mov r2, r10 - adds r1, r2, r4 - strb r0, [r1] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0801264E - ldr r0, _080126B0 @ =gUnknown_020239F8 - ldrb r0, [r0] - movs r1, 0x1 - ands r1, r0 - movs r0, 0 - movs r2, 0 - add r3, sp, 0x4 - bl sub_800CBA4 - b _0801289E - .align 2, 0 -_080126AC: .4byte gBattleMons -_080126B0: .4byte gUnknown_020239F8 -_080126B4: - ldr r0, _080126D0 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _080126D4 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _080126C2 - b _08012908 -_080126C2: - ldr r1, _080126D8 @ =gUnknown_02024C1C - mov r3, r8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, _080126DC @ =gUnknown_081D9B29 - b _080129CC - .align 2, 0 -_080126D0: .4byte gUnknown_020239F8 -_080126D4: .4byte 0x00000902 -_080126D8: .4byte gUnknown_02024C1C -_080126DC: .4byte gUnknown_081D9B29 -_080126E0: - ldr r3, _08012738 @ =0x02000000 - ldr r5, _0801273C @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r4, _08012740 @ =0x00016064 - adds r1, r0, r4 - adds r1, r3 - ldr r2, _08012744 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r7, _08012748 @ =gBattleMons - ldrb r2, [r5] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0801274C @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _08012722 - ldr r0, _08012750 @ =gUnknown_02024C98 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _08012758 -_08012722: - lsls r0, r2, 1 - adds r0, r2 - ldr r2, _08012754 @ =0x0001606c - adds r1, r3, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x6 - b _0801286C - .align 2, 0 -_08012738: .4byte 0x02000000 -_0801273C: .4byte gUnknown_02024A60 -_08012740: .4byte 0x00016064 -_08012744: .4byte gUnknown_02024A6A -_08012748: .4byte gBattleMons -_0801274C: .4byte 0x0400e000 -_08012750: .4byte gUnknown_02024C98 -_08012754: .4byte 0x0001606c -_08012758: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080127E0 - ldrb r1, [r5] - str r4, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080127A8 - ldrb r0, [r5] - muls r0, r6 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080127A8 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080127A8 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - bne _080127E0 -_080127A8: - ldr r5, _08012808 @ =gUnknown_02024A60 - ldrb r1, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0xF - movs r2, 0x2A - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08012818 - ldr r2, _0801280C @ =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - beq _080127E0 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _08012818 -_080127E0: - subs r1, r4, 0x1 - lsls r1, 4 - movs r0, 0x4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08012810 @ =byte_2024C06 - ldrb r3, [r0] - ldr r0, _08012808 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - ldr r2, _08012814 @ =0x0201606c - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r2, 0x6 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - b _0801289E - .align 2, 0 -_08012808: .4byte gUnknown_02024A60 -_0801280C: .4byte gBattleMons -_08012810: .4byte byte_2024C06 -_08012814: .4byte 0x0201606c -_08012818: - ldr r0, _08012830 @ =gUnknown_02024A60 - ldrb r1, [r0] - mov r8, r0 - cmp r1, 0x2 - bne _08012840 - ldr r0, _08012834 @ =gUnknown_02024C18 - ldrb r0, [r0] - cmp r0, 0x2 - bne _08012840 - ldr r3, _08012838 @ =0x02000000 - ldr r4, _0801283C @ =0x00016068 - b _08012854 - .align 2, 0 -_08012830: .4byte gUnknown_02024A60 -_08012834: .4byte gUnknown_02024C18 -_08012838: .4byte 0x02000000 -_0801283C: .4byte 0x00016068 -_08012840: - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0x3 - bne _08012884 - ldr r0, _08012874 @ =gUnknown_02024C18 - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _08012884 - ldr r3, _08012878 @ =0x02000000 - ldr r4, _0801287C @ =0x00016069 -_08012854: - adds r0, r3, r4 - ldrb r2, [r0] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _08012880 @ =0x0001606c - adds r3, r1 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r1, 0 -_0801286C: - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - b _0801289E - .align 2, 0 -_08012874: .4byte gUnknown_02024C18 -_08012878: .4byte 0x02000000 -_0801287C: .4byte 0x00016069 -_08012880: .4byte 0x0001606c -_08012884: - ldr r0, _080128A8 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _080128AC @ =0x0201606c - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f -_0801289E: - ldr r0, _080128A8 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - b _08012968 - .align 2, 0 -_080128A8: .4byte gUnknown_02024A60 -_080128AC: .4byte 0x0201606c -_080128B0: - bl PlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - beq _08012968 - ldr r1, _080128EC @ =gUnknown_02024C1C - ldr r2, _080128F0 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080128F4 @ =gUnknown_081D8E4A - str r1, [r0] - ldr r0, _080128F8 @ =gUnknown_02024D1E - ldrb r1, [r2] - adds r1, r0 - movs r3, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r1, _080128FC @ =0x02000000 - ldrb r0, [r2] - ldr r4, _08012900 @ =0x00016060 - adds r0, r4 - adds r0, r1 - strb r3, [r0] - ldrb r0, [r2] - ldr r2, _08012904 @ =0x00016094 - adds r0, r2 - adds r0, r1 - strb r3, [r0] - b _08012F90 - .align 2, 0 -_080128EC: .4byte gUnknown_02024C1C -_080128F0: .4byte gUnknown_02024A60 -_080128F4: .4byte gUnknown_081D8E4A -_080128F8: .4byte gUnknown_02024D1E -_080128FC: .4byte 0x02000000 -_08012900: .4byte 0x00016060 -_08012904: .4byte 0x00016094 -_08012908: - ldr r4, _08012924 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - ldr r0, _08012928 @ =0x0201606c - adds r1, r0 - movs r0, 0 - bl sub_800CBE0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08012968 - .align 2, 0 -_08012924: .4byte gUnknown_02024A60 -_08012928: .4byte 0x0201606c -_0801292C: - ldr r4, _08012964 @ =gUnknown_02024D1E - mov r3, r8 - ldrb r1, [r3] - adds r1, r4 - movs r5, 0 - movs r0, 0x6 - strb r0, [r1] - ldrb r0, [r3] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strb r5, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x32_32_32_32 - mov r4, r8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08012F90 - .align 2, 0 -_08012964: .4byte gUnknown_02024D1E -_08012968: - ldr r0, _08012994 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0xA - ands r0, r1 - cmp r0, 0x8 - bne _080129A8 - ldr r0, _08012998 @ =gUnknown_02024260 - ldr r4, _0801299C @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _080129A8 - ldr r0, _080129A0 @ =gUnknown_081D8E37 - bl b_call_bc_move_exec - ldr r1, _080129A4 @ =gUnknown_02024D1E - ldrb r0, [r4] - adds r0, r1 - b _08012BFE - .align 2, 0 -_08012994: .4byte gUnknown_020239F8 -_08012998: .4byte gUnknown_02024260 -_0801299C: .4byte gUnknown_02024A60 -_080129A0: .4byte gUnknown_081D8E37 -_080129A4: .4byte gUnknown_02024D1E -_080129A8: - bl sub_8012028 - lsls r0, 24 - cmp r0, 0 - beq _08012A14 - ldr r0, _080129F4 @ =gUnknown_02024260 - ldr r3, _080129F8 @ =gUnknown_02024A60 - ldrb r2, [r3] - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _08012A14 - ldr r1, _080129FC @ =gUnknown_02024C1C - lsls r0, r2, 2 - adds r0, r1 - ldr r1, _08012A00 @ =gUnknown_081D8E44 -_080129CC: - str r1, [r0] - ldr r0, _08012A04 @ =gUnknown_02024D1E - ldrb r1, [r3] - adds r1, r0 - movs r2, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r1, _08012A08 @ =0x02000000 - ldrb r0, [r3] - ldr r4, _08012A0C @ =0x00016060 - adds r0, r4 - adds r0, r1 - strb r2, [r0] - ldrb r0, [r3] - ldr r3, _08012A10 @ =0x00016094 - adds r0, r3 - adds r0, r1 - strb r2, [r0] - b _08012F90 - .align 2, 0 -_080129F4: .4byte gUnknown_02024260 -_080129F8: .4byte gUnknown_02024A60 -_080129FC: .4byte gUnknown_02024C1C -_08012A00: .4byte gUnknown_081D8E44 -_08012A04: .4byte gUnknown_02024D1E -_08012A08: .4byte 0x02000000 -_08012A0C: .4byte 0x00016060 -_08012A10: .4byte 0x00016094 -_08012A14: - ldr r2, _08012A20 @ =gUnknown_02024D1E - ldr r0, _08012A24 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012A20: .4byte gUnknown_02024D1E -_08012A24: .4byte gUnknown_02024A60 -_08012A28: - ldr r4, _08012A6C @ =gUnknown_02024A64 - ldr r1, _08012A70 @ =gBitTable - ldr r3, _08012A74 @ =gUnknown_02024A60 - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _08012A54 - b _08012F66 -_08012A54: - ldr r1, _08012A78 @ =gUnknown_02024C18 - adds r0, r5, r1 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x9 - bls _08012A62 - b _08012F66 -_08012A62: - lsls r0, 2 - ldr r1, _08012A7C @ =_08012A80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012A6C: .4byte gUnknown_02024A64 -_08012A70: .4byte gBitTable -_08012A74: .4byte gUnknown_02024A60 -_08012A78: .4byte gUnknown_02024C18 -_08012A7C: .4byte _08012A80 - .align 2, 0 -_08012A80: - .4byte _08012AA8 - .4byte _08012BB0 - .4byte _08012BE8 - .4byte _08012CE0 - .4byte _08012D04 - .4byte _08012D18 - .4byte _08012D2C - .4byte _08012D5C - .4byte _08012D70 - .4byte _08012D94 -_08012AA8: - ldr r0, _08012AC8 @ =gUnknown_02024260 - mov r1, r8 - ldrb r4, [r1] - lsls r1, r4, 9 - adds r2, r0, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0x9 - bgt _08012ACC - cmp r1, 0x3 - blt _08012ACC - adds r0, r4, r3 - strb r1, [r0] - b _08012F90 - .align 2, 0 -_08012AC8: .4byte gUnknown_02024260 -_08012ACC: - adds r3, r6, 0 - mov r5, r8 - ldrb r4, [r5] - lsls r1, r4, 9 - adds r7, r3, 0x2 - adds r0, r1, r7 - ldrb r2, [r0] - adds r3, 0x3 - mov r9, r3 - add r1, r9 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - ldr r0, _08012AF4 @ =0x0000ffff - cmp r2, r0 - bne _08012AFC - ldr r0, _08012AF8 @ =gUnknown_02024D1E - adds r0, r4, r0 - b _08012BFE - .align 2, 0 -_08012AF4: .4byte 0x0000ffff -_08012AF8: .4byte gUnknown_02024D1E -_08012AFC: - bl sub_8015894 - lsls r0, 24 - cmp r0, 0 - beq _08012B48 - ldr r0, _08012B38 @ =gUnknown_02024D1E - ldrb r1, [r5] - adds r1, r0 - movs r2, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r3, _08012B3C @ =0x02000000 - ldrb r0, [r5] - ldr r4, _08012B40 @ =0x00016060 - adds r0, r4 - adds r0, r3 - strb r2, [r0] - ldrb r0, [r5] - lsls r0, 9 - adds r1, r6, 0x1 - adds r0, r1 - strb r2, [r0] - ldrb r0, [r5] - ldr r1, _08012B44 @ =0x00016094 - adds r0, r1 - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - b _08012F90 - .align 2, 0 -_08012B38: .4byte gUnknown_02024D1E -_08012B3C: .4byte 0x02000000 -_08012B40: .4byte 0x00016060 -_08012B44: .4byte 0x00016094 -_08012B48: - ldr r6, _08012B98 @ =0x02000000 - mov r2, r8 - ldrb r0, [r2] - ldr r2, _08012B9C @ =0x0001608c - adds r1, r0, r2 - adds r1, r6 - lsls r0, 9 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08012BA0 @ =gUnknown_02024C60 - mov r4, r8 - ldrb r3, [r4] - lsls r5, r3, 1 - adds r5, r0 - ldr r4, _08012BA4 @ =gBattleMons - adds r2, r3, r2 - adds r2, r6 - ldrb r0, [r2] - lsls r0, 1 - movs r1, 0x58 - muls r1, r3 - adds r0, r1 - adds r4, 0xC - adds r0, r4 - ldrh r0, [r0] - strh r0, [r5] - mov r1, r8 - ldrb r0, [r1] - ldr r2, _08012BA8 @ =0x00016010 - adds r1, r0, r2 - adds r1, r6 - lsls r0, 9 - add r0, r9 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08012BAC @ =gUnknown_02024D1E - mov r3, r8 - ldrb r1, [r3] - b _08012E3C - .align 2, 0 -_08012B98: .4byte 0x02000000 -_08012B9C: .4byte 0x0001608c -_08012BA0: .4byte gUnknown_02024C60 -_08012BA4: .4byte gBattleMons -_08012BA8: .4byte 0x00016010 -_08012BAC: .4byte gUnknown_02024D1E -_08012BB0: - ldr r2, _08012BD8 @ =gUnknown_02024260 - ldr r5, _08012BDC @ =gUnknown_02024A60 - ldrb r4, [r5] - lsls r1, r4, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - bne _08012BCE - b _08012F60 -_08012BCE: - ldr r0, _08012BE0 @ =gUnknown_02024C04 - strh r3, [r0] - ldr r0, _08012BE4 @ =gUnknown_02024D1E - ldrb r1, [r5] - b _08012E3C - .align 2, 0 -_08012BD8: .4byte gUnknown_02024260 -_08012BDC: .4byte gUnknown_02024A60 -_08012BE0: .4byte gUnknown_02024C04 -_08012BE4: .4byte gUnknown_02024D1E -_08012BE8: - ldr r4, _08012C04 @ =gUnknown_02024260 - ldr r7, _08012C08 @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 9 - adds r1, r4, 0x1 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0x6 - bne _08012C10 - ldr r0, _08012C0C @ =gUnknown_02024D1E - adds r0, r2, r0 -_08012BFE: - movs r1, 0 - strb r1, [r0] - b _08012F66 - .align 2, 0 -_08012C04: .4byte gUnknown_02024260 -_08012C08: .4byte gUnknown_02024A60 -_08012C0C: .4byte gUnknown_02024D1E -_08012C10: - ldr r0, _08012CC4 @ =0x02000000 - mov r12, r0 - ldr r3, _08012CC8 @ =0x00016068 - adds r0, r2, r3 - add r0, r12 - strb r1, [r0] - ldr r0, _08012CCC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08012CBE - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r5, _08012CD0 @ =0x0001606c - adds r1, r5 - add r1, r12 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - lsls r2, r0, 1 - adds r2, r0 - adds r2, r5 - add r2, r12 - lsls r0, 9 - adds r6, r4, 0x2 - adds r0, r6 - ldrb r1, [r0] - movs r3, 0xF0 - adds r0, r3, 0 - ands r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r2, _08012CD4 @ =0x0001606d - adds r1, r2 - add r1, r12 - lsls r0, 9 - adds r4, 0x3 - mov r8, r4 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r4, 0x2 - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - add r1, r12 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - add r1, r12 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, 4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - lsls r1, r4, 1 - adds r1, r4 - ldr r3, _08012CD8 @ =0x0001606e - adds r1, r3 - add r1, r12 - ldrb r0, [r7] - lsls r0, 9 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] -_08012CBE: - ldr r0, _08012CDC @ =gUnknown_02024D1E - ldrb r1, [r7] - b _08012E3C - .align 2, 0 -_08012CC4: .4byte 0x02000000 -_08012CC8: .4byte 0x00016068 -_08012CCC: .4byte gUnknown_020239F8 -_08012CD0: .4byte 0x0001606c -_08012CD4: .4byte 0x0001606d -_08012CD8: .4byte 0x0001606e -_08012CDC: .4byte gUnknown_02024D1E -_08012CE0: - ldr r2, _08012CF8 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08012CFC @ =gUnknown_02024D1E - ldr r0, _08012D00 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012CF8: .4byte gUnknown_02024C6C -_08012CFC: .4byte gUnknown_02024D1E -_08012D00: .4byte gUnknown_02024A60 -_08012D04: - ldr r2, _08012D10 @ =gUnknown_02024D1E - ldr r0, _08012D14 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D10: .4byte gUnknown_02024D1E -_08012D14: .4byte gUnknown_02024A60 -_08012D18: - ldr r2, _08012D24 @ =gUnknown_02024D1E - ldr r0, _08012D28 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D24: .4byte gUnknown_02024D1E -_08012D28: .4byte gUnknown_02024A60 -_08012D2C: - ldr r2, _08012D50 @ =gUnknown_02024260 - ldr r0, _08012D54 @ =gUnknown_02024A60 - ldrb r4, [r0] - lsls r1, r4, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - bne _08012D4A - b _08012F60 -_08012D4A: - ldr r1, _08012D58 @ =gUnknown_02024D1E - adds r1, r4, r1 - b _08012E3E - .align 2, 0 -_08012D50: .4byte gUnknown_02024260 -_08012D54: .4byte gUnknown_02024A60 -_08012D58: .4byte gUnknown_02024D1E -_08012D5C: - ldr r2, _08012D68 @ =gUnknown_02024D1E - ldr r0, _08012D6C @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D68: .4byte gUnknown_02024D1E -_08012D6C: .4byte gUnknown_02024A60 -_08012D70: - ldr r2, _08012D88 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08012D8C @ =gUnknown_02024D1E - ldr r0, _08012D90 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D88: .4byte gUnknown_02024C6C -_08012D8C: .4byte gUnknown_02024D1E -_08012D90: .4byte gUnknown_02024A60 -_08012D94: - ldr r2, _08012DA0 @ =gUnknown_02024D1E - ldr r0, _08012DA4 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012DA0: .4byte gUnknown_02024D1E -_08012DA4: .4byte gUnknown_02024A60 -_08012DA8: - ldr r3, _08012E10 @ =gUnknown_02024A64 - ldr r4, _08012E14 @ =gBitTable - ldr r0, _08012E18 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - beq _08012DD2 - b _08012F66 -_08012DD2: - ldr r0, _08012E1C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x41 - ands r0, r1 - cmp r0, 0x1 - bne _08012E06 - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - bne _08012E06 - adds r0, r5, 0 - eors r0, r1 - bl battle_get_side_with_given_state - ldr r1, _08012E20 @ =0x02000000 - ldr r2, _08012E24 @ =0x000160a6 - adds r1, r2 - ldrb r1, [r1] - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08012E28 -_08012E06: - movs r0, 0 - movs r1, 0 - bl sub_800D1D8 - b _08012E30 - .align 2, 0 -_08012E10: .4byte gUnknown_02024A64 -_08012E14: .4byte gBitTable -_08012E18: .4byte gUnknown_02024A60 -_08012E1C: .4byte gUnknown_020239F8 -_08012E20: .4byte 0x02000000 -_08012E24: .4byte 0x000160a6 -_08012E28: - movs r0, 0 - movs r1, 0x1 - bl sub_800D1D8 -_08012E30: - ldr r4, _08012E48 @ =gUnknown_02024A60 -_08012E32: - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _08012E4C @ =gUnknown_02024D1E - ldrb r1, [r4] -_08012E3C: - adds r1, r0 -_08012E3E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08012F66 - .align 2, 0 -_08012E48: .4byte gUnknown_02024A60 -_08012E4C: .4byte gUnknown_02024D1E -_08012E50: - ldr r3, _08012E84 @ =gUnknown_02024A64 - ldr r1, _08012E88 @ =gBitTable - ldr r0, _08012E8C @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08012F66 - ldr r1, _08012E90 @ =gUnknown_02024D1E - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08012F66 - .align 2, 0 -_08012E84: .4byte gUnknown_02024A64 -_08012E88: .4byte gBitTable -_08012E8C: .4byte gUnknown_02024A60 -_08012E90: .4byte gUnknown_02024D1E -_08012E94: - ldr r2, _08012EB8 @ =0x02000000 - ldr r5, _08012EBC @ =gUnknown_02024A60 - ldrb r1, [r5] - ldr r3, _08012EC0 @ =0x00016060 - adds r0, r1, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08012ECC - ldr r0, _08012EC4 @ =gUnknown_02024D1E - adds r0, r1, r0 - ldr r4, _08012EC8 @ =0x00016094 - adds r1, r4 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - b _08012F66 - .align 2, 0 -_08012EB8: .4byte 0x02000000 -_08012EBC: .4byte gUnknown_02024A60 -_08012EC0: .4byte 0x00016060 -_08012EC4: .4byte gUnknown_02024D1E -_08012EC8: .4byte 0x00016094 -_08012ECC: - ldr r0, _08012F20 @ =gUnknown_02024C07 - strb r1, [r0] - ldr r7, _08012F24 @ =gUnknown_02024C10 - ldr r6, _08012F28 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r4, [r0] - str r4, [r7] - ldr r3, _08012F2C @ =gUnknown_02024A64 - ldr r1, _08012F30 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08012F12 - ldr r0, _08012F34 @ =gUnknown_081FA73C - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_08012F12: - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - b _08012F66 - .align 2, 0 -_08012F20: .4byte gUnknown_02024C07 -_08012F24: .4byte gUnknown_02024C10 -_08012F28: .4byte gUnknown_02024C1C -_08012F2C: .4byte gUnknown_02024A64 -_08012F30: .4byte gBitTable -_08012F34: .4byte gUnknown_081FA73C -_08012F38: - ldr r3, _08012FA0 @ =gUnknown_02024A64 - ldr r1, _08012FA4 @ =gBitTable - ldr r0, _08012FA8 @ =gUnknown_02024A60 - ldrb r4, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r3, [r3] - ands r3, r0 - cmp r3, 0 - bne _08012F66 -_08012F60: - ldr r0, _08012FAC @ =gUnknown_02024D1E - adds r0, r4, r0 - strb r3, [r0] -_08012F66: - ldr r0, _08012FA8 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _08012FB0 @ =gUnknown_02024A68 - lsls r1, 24 - lsrs r1, 24 -_08012F74: - adds r2, r0, 0 - ldrb r0, [r2] - cmp r1, r0 - bcs _08012F80 - bl _0801234C -_08012F80: - ldr r0, _08012FAC @ =gUnknown_02024D1E - ldrb r0, [r0, 0x4] - ldrb r2, [r2] - cmp r0, r2 - bne _08012F90 - ldr r1, _08012FB4 @ =gUnknown_030042D4 - ldr r0, _08012FB8 @ =sub_80133C8 - str r0, [r1] -_08012F90: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08012FA0: .4byte gUnknown_02024A64 -_08012FA4: .4byte gBitTable -_08012FA8: .4byte gUnknown_02024A60 -_08012FAC: .4byte gUnknown_02024D1E -_08012FB0: .4byte gUnknown_02024A68 -_08012FB4: .4byte gUnknown_030042D4 -_08012FB8: .4byte sub_80133C8 - thumb_func_end sub_8012324 - - thumb_func_start sub_8012FBC -sub_8012FBC: @ 8012FBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08012FE8 @ =gUnknown_02024A76 - adds r4, r0, r2 - ldrb r5, [r4] - adds r2, r1, r2 - ldrb r3, [r2] - strb r3, [r4] - strb r5, [r2] - ldr r2, _08012FEC @ =gUnknown_02024A7A - adds r0, r2 - ldrb r5, [r0] - adds r1, r2 - ldrb r2, [r1] - strb r2, [r0] - strb r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08012FE8: .4byte gUnknown_02024A76 -_08012FEC: .4byte gUnknown_02024A7A - thumb_func_end sub_8012FBC - - thumb_func_start b_first_side -b_first_side: @ 8012FF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _080130B8 - ldr r1, [sp, 0x8] - str r1, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _080130B8 - ldr r1, _08013070 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x21 - bne _0801305C - ldr r0, _08013074 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801306C -_0801305C: - cmp r3, 0x22 - bne _08013078 - ldr r0, _08013074 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08013078 -_0801306C: - movs r3, 0x2 - b _0801307A - .align 2, 0 -_08013070: .4byte gBattleMons -_08013074: .4byte word_2024DB8 -_08013078: - movs r3, 0x1 -_0801307A: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _080130B0 @ =gBattleMons - adds r0, r2 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x21 - bne _0801309A - ldr r0, _080130B4 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _080130AA -_0801309A: - cmp r2, 0x22 - bne _080130BA - ldr r0, _080130B4 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080130BA -_080130AA: - movs r7, 0x2 - b _080130BC - .align 2, 0 -_080130B0: .4byte gBattleMons -_080130B4: .4byte word_2024DB8 -_080130B8: - movs r3, 0x1 -_080130BA: - movs r7, 0x1 -_080130BC: - ldr r1, _08013100 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - muls r3, r0 - ldr r2, _08013104 @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - mov r8, r0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _0801310C - ldr r1, _08013108 @ =gEnigmaBerries - mov r3, r9 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08013120 - .align 2, 0 -_08013100: .4byte gBattleMons -_08013104: .4byte gStatStageRatios -_08013108: .4byte gEnigmaBerries -_0801310C: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08013120: - ldr r0, _080131DC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08013154 - ldr r0, _080131E0 @ =0x00000809 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08013154 - mov r0, r9 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08013154 - movs r0, 0x6E - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x64 - bl __udivsi3 - mov r8, r0 -_08013154: - cmp r6, 0x18 - bne _0801315E - mov r2, r8 - lsrs r2, 1 - mov r8, r2 -_0801315E: - ldr r1, _080131E4 @ =gBattleMons - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801317C - mov r0, r8 - lsrs r0, 2 - mov r8, r0 -_0801317C: - cmp r6, 0x1A - bne _08013198 - ldr r0, _080131E8 @ =gUnknown_02024D1C - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08013198 - movs r1, 0x1 - negs r1, r1 - mov r8, r1 -_08013198: - ldr r1, _080131E4 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - adds r3, r0, 0 - muls r3, r7 - ldr r2, _080131EC @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - adds r7, r0, 0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _080131F4 - ldr r1, _080131F0 @ =gEnigmaBerries - mov r3, r10 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08013208 - .align 2, 0 -_080131DC: .4byte gUnknown_020239F8 -_080131E0: .4byte 0x00000809 -_080131E4: .4byte gBattleMons -_080131E8: .4byte gUnknown_02024D1C -_080131EC: .4byte gStatStageRatios -_080131F0: .4byte gEnigmaBerries -_080131F4: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08013208: - ldr r0, _08013280 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08013238 - ldr r0, _08013284 @ =0x00000809 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08013238 - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08013238 - movs r0, 0x6E - muls r0, r7 - movs r1, 0x64 - bl __udivsi3 - adds r7, r0, 0 -_08013238: - cmp r6, 0x18 - bne _0801323E - lsrs r7, 1 -_0801323E: - ldr r2, _08013288 @ =gBattleMons - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801325A - lsrs r7, 2 -_0801325A: - cmp r6, 0x1A - bne _08013274 - ldr r0, _0801328C @ =gUnknown_02024D1C - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08013274 - movs r7, 0x1 - negs r7, r7 -_08013274: - ldr r2, [sp, 0x4] - cmp r2, 0 - beq _08013290 - movs r3, 0 - b _08013334 - .align 2, 0 -_08013280: .4byte gUnknown_020239F8 -_08013284: .4byte 0x00000809 -_08013288: .4byte gBattleMons -_0801328C: .4byte gUnknown_02024D1C -_08013290: - ldr r0, _080132B0 @ =gUnknown_02024C18 - mov r3, r9 - adds r1, r3, r0 - ldrb r1, [r1] - adds r2, r0, 0 - cmp r1, 0 - bne _080132E4 - ldr r0, _080132B4 @ =gUnknown_02024D28 - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _080132B8 - movs r3, 0xA5 - b _080132E6 - .align 2, 0 -_080132B0: .4byte gUnknown_02024C18 -_080132B4: .4byte gUnknown_02024D28 -_080132B8: - ldr r1, _080132D8 @ =0x02000000 - ldr r0, _080132DC @ =0x0001608c - add r0, r9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r3, r9 - muls r3, r1 - adds r1, r3, 0 - adds r0, r1 - ldr r1, _080132E0 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r3, [r0] - b _080132E6 - .align 2, 0 -_080132D8: .4byte 0x02000000 -_080132DC: .4byte 0x0001608c -_080132E0: .4byte gBattleMons -_080132E4: - movs r3, 0 -_080132E6: - mov r1, r10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08013334 - ldr r0, _08013304 @ =gUnknown_02024D28 - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _08013308 - movs r2, 0xA5 - b _08013336 - .align 2, 0 -_08013304: .4byte gUnknown_02024D28 -_08013308: - ldr r1, _08013328 @ =0x02000000 - ldr r0, _0801332C @ =0x0001608c - add r0, r10 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r2, r10 - muls r2, r1 - adds r1, r2, 0 - adds r0, r1 - ldr r1, _08013330 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r2, [r0] - b _08013336 - .align 2, 0 -_08013328: .4byte 0x02000000 -_0801332C: .4byte 0x0001608c -_08013330: .4byte gBattleMons -_08013334: - movs r2, 0 -_08013336: - ldr r4, _08013380 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r4 - movs r1, 0x7 - ldrsb r1, [r0, r1] - lsls r3, r2, 1 - cmp r1, 0 - bne _0801335A - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08013398 -_0801335A: - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _0801338E - cmp r8, r7 - bne _08013384 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08013384 - movs r3, 0x2 - b _080133B4 - .align 2, 0 -_08013380: .4byte gBattleMoves -_08013384: - cmp r8, r7 - bcs _080133B6 - movs r0, 0x1 - str r0, [sp, 0x8] - b _080133B6 -_0801338E: - cmp r1, r0 - bge _080133B6 - movs r1, 0x1 - str r1, [sp, 0x8] - b _080133B6 -_08013398: - cmp r8, r7 - bne _080133AE - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080133AE - movs r2, 0x2 - str r2, [sp, 0x8] - b _080133B6 -_080133AE: - cmp r8, r7 - bcs _080133B6 - movs r3, 0x1 -_080133B4: - str r3, [sp, 0x8] -_080133B6: - ldr r0, [sp, 0x8] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end b_first_side - - thumb_func_start sub_80133C8 -sub_80133C8: @ 80133C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r3, 0 - ldr r0, _0801341C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08013434 - ldr r0, _08013420 @ =gUnknown_02024A60 - strb r3, [r0] - ldr r4, _08013424 @ =gUnknown_02024A68 - mov r8, r0 - ldrb r0, [r4] - cmp r3, r0 - bcc _080133F0 - b _08013622 -_080133F0: - ldr r7, _08013428 @ =gUnknown_02024A76 - ldr r6, _0801342C @ =gUnknown_02024C18 - mov r2, r8 - ldr r5, _08013430 @ =gUnknown_02024A7A -_080133F8: - adds r1, r3, r7 - ldrb r0, [r2] - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r3, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r3, 0x1 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - cmp r0, r1 - bcc _080133F8 - b _08013622 - .align 2, 0 -_0801341C: .4byte gUnknown_020239F8 -_08013420: .4byte gUnknown_02024A60 -_08013424: .4byte gUnknown_02024A68 -_08013428: .4byte gUnknown_02024A76 -_0801342C: .4byte gUnknown_02024C18 -_08013430: .4byte gUnknown_02024A7A -_08013434: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013484 - ldr r0, _08013478 @ =gUnknown_02024A60 - strb r3, [r0] - ldr r1, _0801347C @ =gUnknown_02024A68 - mov r8, r0 - adds r2, r1, 0 - ldrb r2, [r2] - cmp r3, r2 - bcs _08013494 - ldr r0, _08013480 @ =gUnknown_02024C18 - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x3 - beq _08013492 -_08013456: - mov r7, r8 - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0801347C @ =gUnknown_02024A68 - ldrb r1, [r1] - cmp r0, r1 - bcs _08013494 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08013456 - b _08013492 - .align 2, 0 -_08013478: .4byte gUnknown_02024A60 -_0801347C: .4byte gUnknown_02024A68 -_08013480: .4byte gUnknown_02024C18 -_08013484: - ldr r0, _080134FC @ =gUnknown_02024C18 - ldrb r0, [r0] - ldr r2, _08013500 @ =gUnknown_02024A60 - mov r8, r2 - cmp r0, 0x3 - bne _08013494 - strb r3, [r2] -_08013492: - movs r3, 0x5 -_08013494: - cmp r3, 0x5 - bne _08013520 - ldr r6, _08013504 @ =gUnknown_02024A76 - ldr r1, _080134FC @ =gUnknown_02024C18 - mov r3, r8 - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r6] - ldr r2, _08013508 @ =gUnknown_02024A7A - ldrb r0, [r3] - strb r0, [r2] - movs r3, 0x1 - movs r5, 0 - adds r4, r1, 0 - ldr r7, _0801350C @ =gUnknown_030042D4 - mov r9, r7 - ldr r0, _08013510 @ =bc_80154A0 - mov r12, r0 - ldr r1, _08013514 @ =0x02000000 - mov r10, r1 - ldr r7, _08013518 @ =gUnknown_02024A68 - ldrb r7, [r7] - cmp r5, r7 - bge _080134EC - adds r7, r6, 0 - adds r6, r4, 0 - adds r4, r2, 0 - ldr r2, _08013518 @ =gUnknown_02024A68 -_080134CE: - mov r0, r8 - ldrb r0, [r0] - cmp r5, r0 - beq _080134E4 - adds r1, r3, r7 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r4 - strb r5, [r0] - adds r3, 0x1 -_080134E4: - adds r5, 0x1 - ldrb r1, [r2] - cmp r5, r1 - blt _080134CE -_080134EC: - mov r2, r12 - mov r3, r9 - str r2, [r3] - ldr r1, _0801351C @ =0x0001601d - add r1, r10 - movs r0, 0 - strb r0, [r1] - b _08013632 - .align 2, 0 -_080134FC: .4byte gUnknown_02024C18 -_08013500: .4byte gUnknown_02024A60 -_08013504: .4byte gUnknown_02024A76 -_08013508: .4byte gUnknown_02024A7A -_0801350C: .4byte gUnknown_030042D4 -_08013510: .4byte bc_80154A0 -_08013514: .4byte 0x02000000 -_08013518: .4byte gUnknown_02024A68 -_0801351C: .4byte 0x0001601d -_08013520: - movs r0, 0 - mov r7, r8 - strb r0, [r7] - ldr r1, _080135B0 @ =gUnknown_02024A68 - ldrb r0, [r1] - cmp r0, 0 - beq _08013566 - ldr r6, _080135B4 @ =gUnknown_02024C18 - mov r2, r8 - ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gUnknown_02024A7A -_08013536: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013554 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_08013554: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080135B0 @ =gUnknown_02024A68 - ldrb r1, [r1] - cmp r0, r1 - bcc _08013536 -_08013566: - movs r0, 0 - mov r2, r8 - strb r0, [r2] - ldr r7, _080135B0 @ =gUnknown_02024A68 - ldrb r0, [r7] - cmp r0, 0 - beq _080135AA - ldr r6, _080135B4 @ =gUnknown_02024C18 - ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gUnknown_02024A7A -_0801357A: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08013598 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_08013598: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080135B0 @ =gUnknown_02024A68 - ldrb r1, [r1] - cmp r0, r1 - bcc _0801357A -_080135AA: - movs r5, 0 - b _08013618 - .align 2, 0 -_080135B0: .4byte gUnknown_02024A68 -_080135B4: .4byte gUnknown_02024C18 -_080135B8: .4byte gUnknown_02024A76 -_080135BC: .4byte gUnknown_02024A7A -_080135C0: - adds r4, r5, 0x1 - adds r7, r4, 0 - ldrb r1, [r1] - cmp r7, r1 - bge _08013616 - ldr r6, _08013640 @ =gUnknown_02024A76 - lsls r2, r5, 24 - mov r8, r2 -_080135D0: - ldr r0, _08013644 @ =gUnknown_02024A7A - adds r1, r5, r0 - ldrb r3, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, r6 - ldrb r2, [r0] - cmp r2, 0x1 - beq _0801360C - adds r0, r4, r6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0801360C - cmp r2, 0x2 - beq _0801360C - cmp r0, 0x2 - beq _0801360C - adds r0, r3, 0 - movs r2, 0 - bl b_first_side - lsls r0, 24 - cmp r0, 0 - beq _0801360C - lsls r1, r4, 24 - lsrs r1, 24 - mov r3, r8 - lsrs r0, r3, 24 - bl sub_8012FBC -_0801360C: - adds r4, 0x1 - ldr r0, _08013648 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _080135D0 -_08013616: - adds r5, r7, 0 -_08013618: - ldr r1, _08013648 @ =gUnknown_02024A68 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _080135C0 -_08013622: - ldr r1, _0801364C @ =gUnknown_030042D4 - ldr r0, _08013650 @ =bc_80154A0 - str r0, [r1] - ldr r0, _08013654 @ =0x02000000 - ldr r7, _08013658 @ =0x0001601d - adds r0, r7 - movs r1, 0 - strb r1, [r0] -_08013632: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013640: .4byte gUnknown_02024A76 -_08013644: .4byte gUnknown_02024A7A -_08013648: .4byte gUnknown_02024A68 -_0801364C: .4byte gUnknown_030042D4 -_08013650: .4byte bc_80154A0 -_08013654: .4byte 0x02000000 -_08013658: .4byte 0x0001601d - thumb_func_end sub_80133C8 - - thumb_func_start sub_801365C -sub_801365C: @ 801365C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080136B4 @ =gUnknown_02024A60 - movs r0, 0 - strb r0, [r1] - ldr r0, _080136B8 @ =gUnknown_02024A68 - ldrb r2, [r0] - adds r5, r1, 0 - cmp r2, 0 - beq _08013754 - ldr r7, _080136BC @ =gUnknown_02024D28 - adds r6, r5, 0 - ldr r0, _080136C0 @ =gUnknown_02024AD0 - mov r12, r0 - ldr r1, _080136C4 @ =gUnknown_02024CA8 - mov r8, r1 - mov r10, r8 -_0801368A: - mov r2, r9 - cmp r2, 0 - beq _080136C8 - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _08013724 - .align 2, 0 -_080136B4: .4byte gUnknown_02024A60 -_080136B8: .4byte gUnknown_02024A68 -_080136BC: .4byte gUnknown_02024D28 -_080136C0: .4byte gUnknown_02024AD0 -_080136C4: .4byte gUnknown_02024CA8 -_080136C8: - ldrb r0, [r6] - lsls r0, 4 - adds r2, r0, r7 - movs r1, 0 - mov r4, r10 - movs r3, 0 -_080136D4: - adds r0, r2, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0xF - bls _080136D4 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x16] - cmp r0, 0 - beq _080136F2 - subs r0, 0x1 - strb r0, [r1, 0x16] -_080136F2: - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x19] - cmp r0, 0 - beq _08013724 - subs r0, 0x1 - strb r0, [r1, 0x19] - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x19] - cmp r0, 0 - bne _08013724 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _0801376C @ =0xffbfffff - ands r0, r1 - str r0, [r2] -_08013724: - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0xA] - cmp r0, 0 - bne _08013742 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _08013770 @ =0xfeffffff - ands r0, r1 - str r0, [r2] -_08013742: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08013774 @ =gUnknown_02024A68 - ldrb r1, [r1] - cmp r0, r1 - bcc _0801368A -_08013754: - movs r0, 0 - ldr r2, _08013778 @ =gUnknown_02024C80 - strb r0, [r2, 0x8] - strb r0, [r2, 0x14] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801376C: .4byte 0xffbfffff -_08013770: .4byte 0xfeffffff -_08013774: .4byte gUnknown_02024A68 -_08013778: .4byte gUnknown_02024C80 - thumb_func_end sub_801365C - - thumb_func_start sub_801377C -sub_801377C: @ 801377C - push {r4-r6,lr} - ldr r2, _080137C0 @ =gUnknown_02024A60 - movs r0, 0 - strb r0, [r2] - ldr r0, _080137C4 @ =gUnknown_02024A68 - ldrb r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _080137BA - adds r3, r2, 0 - movs r4, 0 - ldr r5, _080137C8 @ =gUnknown_02024D68 -_08013794: - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r5 - movs r1, 0 -_080137A0: - adds r0, r2, r1 - strb r4, [r0] - adds r1, 0x1 - cmp r1, 0x13 - bls _080137A0 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - cmp r0, r1 - bcc _08013794 -_080137BA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080137C0: .4byte gUnknown_02024A60 -_080137C4: .4byte gUnknown_02024A68 -_080137C8: .4byte gUnknown_02024D68 - thumb_func_end sub_801377C - - thumb_func_start bc_80154A0 -bc_80154A0: @ 80137CC - push {r4-r7,lr} - ldr r0, _08013850 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _08013884 - ldr r0, _08013854 @ =0x02000000 - ldr r1, _08013858 @ =0x0001601d - adds r2, r0, r1 - ldr r0, _0801385C @ =gUnknown_02024A68 - ldrb r1, [r2] - adds r7, r0, 0 - ldrb r0, [r7] - cmp r1, r0 - bcs _08013884 - ldr r6, _08013860 @ =gUnknown_02024A60 - ldr r5, _08013864 @ =gUnknown_02024C07 - adds r4, r2, 0 - movs r1, 0x84 - lsls r1, 1 - mov r12, r1 -_080137FA: - ldrb r0, [r4] - strb r0, [r5] - strb r0, [r6] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013868 @ =gUnknown_02024C60 - ldrb r3, [r6] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r12 - bne _0801387C - ldr r1, _0801386C @ =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801387C - ldr r2, _08013870 @ =gUnknown_02024CA8 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _0801387C - ldr r0, _08013874 @ =gUnknown_02024D28 - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _0801387C - ldr r0, _08013878 @ =gUnknown_081D94DA - bl b_call_bc_move_exec - b _080138BE - .align 2, 0 -_08013850: .4byte gUnknown_02024C6C -_08013854: .4byte 0x02000000 -_08013858: .4byte 0x0001601d -_0801385C: .4byte gUnknown_02024A68 -_08013860: .4byte gUnknown_02024A60 -_08013864: .4byte gUnknown_02024C07 -_08013868: .4byte gUnknown_02024C60 -_0801386C: .4byte gBattleMons -_08013870: .4byte gUnknown_02024CA8 -_08013874: .4byte gUnknown_02024D28 -_08013878: .4byte gUnknown_081D94DA -_0801387C: - ldrb r0, [r4] - ldrb r2, [r7] - cmp r0, r2 - bcc _080137FA -_08013884: - bl b_clear_atk_up_if_hit_flag_unless_enraged - ldr r1, _080138C4 @ =gUnknown_02024A7E - movs r0, 0 - strb r0, [r1] - ldr r1, _080138C8 @ =gUnknown_02024A7F - ldr r0, _080138CC @ =gUnknown_02024A76 - movs r2, 0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080138D0 @ =gUnknown_02024DEC - movs r3, 0 - strh r2, [r0] - ldr r1, _080138D4 @ =0x02000000 - ldr r2, _080138D8 @ =0x0001601c - adds r0, r1, r2 - strb r3, [r0] - ldr r2, _080138DC @ =gUnknown_030042D4 - ldr r0, _080138E0 @ =sub_80138F0 - str r0, [r2] - ldr r0, _080138E4 @ =gUnknown_02024D1E - strb r3, [r0, 0x3] - strb r3, [r0, 0x4] - ldr r2, _080138E8 @ =0x00016112 - adds r0, r1, r2 - strb r3, [r0] - ldr r0, _080138EC @ =0x00017130 - adds r1, r0 - strb r3, [r1] -_080138BE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080138C4: .4byte gUnknown_02024A7E -_080138C8: .4byte gUnknown_02024A7F -_080138CC: .4byte gUnknown_02024A76 -_080138D0: .4byte gUnknown_02024DEC -_080138D4: .4byte 0x02000000 -_080138D8: .4byte 0x0001601c -_080138DC: .4byte gUnknown_030042D4 -_080138E0: .4byte sub_80138F0 -_080138E4: .4byte gUnknown_02024D1E -_080138E8: .4byte 0x00016112 -_080138EC: .4byte 0x00017130 - thumb_func_end bc_80154A0 - - thumb_func_start sub_80138F0 -sub_80138F0: @ 80138F0 - push {r4-r6,lr} - ldr r6, _08013944 @ =gUnknown_02024D26 - ldrb r0, [r6] - ldr r2, _08013948 @ =gUnknown_02024A7F - cmp r0, 0 - beq _08013900 - movs r0, 0xC - strb r0, [r2] -_08013900: - ldr r1, _0801394C @ =0x02000000 - ldr r4, _08013950 @ =gUnknown_02024A7E - ldrb r0, [r4] - ldr r3, _08013954 @ =0x00016057 - adds r5, r1, r3 - strb r0, [r5] - ldr r1, _08013958 @ =gUnknown_081FA640 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0801395C @ =gUnknown_02024A68 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bcc _08013970 - ldr r2, _08013960 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _08013964 @ =0xffefffff - ands r0, r1 - str r0, [r2] - ldr r3, _08013968 @ =gUnknown_030042D4 - ldr r2, _0801396C @ =gUnknown_081FA678 - ldrb r1, [r6] - movs r0, 0x7F - ands r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - b _08013984 - .align 2, 0 -_08013944: .4byte gUnknown_02024D26 -_08013948: .4byte gUnknown_02024A7F -_0801394C: .4byte 0x02000000 -_08013950: .4byte gUnknown_02024A7E -_08013954: .4byte 0x00016057 -_08013958: .4byte gUnknown_081FA640 -_0801395C: .4byte gUnknown_02024A68 -_08013960: .4byte gUnknown_02024C6C -_08013964: .4byte 0xffefffff -_08013968: .4byte gUnknown_030042D4 -_0801396C: .4byte gUnknown_081FA678 -_08013970: - ldrb r0, [r5] - cmp r0, r1 - beq _08013984 - ldr r2, _0801398C @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _08013990 @ =0xfffffdff - ands r0, r1 - ldr r1, _08013994 @ =0xfff7ffff - ands r0, r1 - str r0, [r2] -_08013984: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801398C: .4byte gUnknown_02024C6C -_08013990: .4byte 0xfffffdff -_08013994: .4byte 0xfff7ffff - thumb_func_end sub_80138F0 - - thumb_func_start sub_8013998 -sub_8013998: @ 8013998 - push {r4,lr} - ldr r1, _080139D0 @ =gUnknown_02024A7F - movs r0, 0 - strb r0, [r1] - ldr r0, _080139D4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080139EC - ldr r1, _080139D8 @ =gUnknown_030041C0 - ldr r4, _080139DC @ =gUnknown_02024D26 - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _080139E0 @ =gUnknown_02024C07 - strb r0, [r1] - ldr r1, _080139E4 @ =gUnknown_02024C10 - ldr r0, _080139E8 @ =gUnknown_081D8E02 - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08013B48 - .align 2, 0 -_080139D0: .4byte gUnknown_02024A7F -_080139D4: .4byte gUnknown_020239F8 -_080139D8: .4byte gUnknown_030041C0 -_080139DC: .4byte gUnknown_02024D26 -_080139E0: .4byte gUnknown_02024C07 -_080139E4: .4byte gUnknown_02024C10 -_080139E8: .4byte gUnknown_081D8E02 -_080139EC: - movs r0, 0x90 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _08013A04 - ldr r1, _080139FC @ =gUnknown_02024C10 - ldr r0, _08013A00 @ =gUnknown_081D8E0D - b _08013B46 - .align 2, 0 -_080139FC: .4byte gUnknown_02024C10 -_08013A00: .4byte gUnknown_081D8E0D -_08013A04: - movs r0, 0xA - ands r0, r1 - cmp r0, 0x8 - beq _08013A0E - b _08013B42 -_08013A0E: - bl sub_80325B8 - ldr r1, _08013A3C @ =gUnknown_02024C10 - ldr r0, _08013A40 @ =gUnknown_081D8DBE - str r0, [r1] - ldr r2, _08013A44 @ =gTrainers - ldr r0, _08013A48 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - subs r0, 0x2 - cmp r0, 0x31 - bls _08013A30 - b _08013B38 -_08013A30: - lsls r0, 2 - ldr r1, _08013A4C @ =_08013A50 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08013A3C: .4byte gUnknown_02024C10 -_08013A40: .4byte gUnknown_081D8DBE -_08013A44: .4byte gTrainers -_08013A48: .4byte gTrainerBattleOpponent -_08013A4C: .4byte _08013A50 - .align 2, 0 -_08013A50: - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B18 - .4byte _08013B2E - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B18 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B24 -_08013B18: - ldr r0, _08013B20 @ =0x00000163 - bl PlayBGM - b _08013B48 - .align 2, 0 -_08013B20: .4byte 0x00000163 -_08013B24: - movs r0, 0xD4 - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B2E: - movs r0, 0xB1 - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B38: - movs r0, 0xCE - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B42: - ldr r1, _08013B54 @ =gUnknown_02024C10 - ldr r0, _08013B58 @ =gUnknown_081D8DCE -_08013B46: - str r0, [r1] -_08013B48: - ldr r1, _08013B5C @ =gUnknown_030042D4 - ldr r0, _08013B60 @ =sub_8013C9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013B54: .4byte gUnknown_02024C10 -_08013B58: .4byte gUnknown_081D8DCE -_08013B5C: .4byte gUnknown_030042D4 -_08013B60: .4byte sub_8013C9C - thumb_func_end sub_8013998 - - thumb_func_start sub_8013B64 -sub_8013B64: @ 8013B64 - push {r4,lr} - ldr r1, _08013B9C @ =gUnknown_02024A7F - movs r0, 0 - strb r0, [r1] - ldr r0, _08013BA0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013BB8 - ldr r1, _08013BA4 @ =gUnknown_030041C0 - ldr r4, _08013BA8 @ =gUnknown_02024D26 - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08013BAC @ =gUnknown_02024C07 - strb r0, [r1] - ldr r1, _08013BB0 @ =gUnknown_02024C10 - ldr r0, _08013BB4 @ =gUnknown_081D8E02 - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08013BBE - .align 2, 0 -_08013B9C: .4byte gUnknown_02024A7F -_08013BA0: .4byte gUnknown_020239F8 -_08013BA4: .4byte gUnknown_030041C0 -_08013BA8: .4byte gUnknown_02024D26 -_08013BAC: .4byte gUnknown_02024C07 -_08013BB0: .4byte gUnknown_02024C10 -_08013BB4: .4byte gUnknown_081D8E02 -_08013BB8: - ldr r1, _08013BCC @ =gUnknown_02024C10 - ldr r0, _08013BD0 @ =gUnknown_081D8DD1 - str r0, [r1] -_08013BBE: - ldr r1, _08013BD4 @ =gUnknown_030042D4 - ldr r0, _08013BD8 @ =sub_8013C9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013BCC: .4byte gUnknown_02024C10 -_08013BD0: .4byte gUnknown_081D8DD1 -_08013BD4: .4byte gUnknown_030042D4 -_08013BD8: .4byte sub_8013C9C - thumb_func_end sub_8013B64 - - thumb_func_start sub_8013BDC -sub_8013BDC: @ 8013BDC - push {lr} - ldr r1, _08013C04 @ =gUnknown_02024A7F - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C08 @ =gUnknown_02024D28 - ldr r0, _08013C0C @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 27 - lsrs r0, 30 - cmp r0, 0x1 - beq _08013C18 - cmp r0, 0x2 - beq _08013C28 - ldr r1, _08013C10 @ =gUnknown_02024C10 - ldr r0, _08013C14 @ =gUnknown_081D8E29 - b _08013C2C - .align 2, 0 -_08013C04: .4byte gUnknown_02024A7F -_08013C08: .4byte gUnknown_02024D28 -_08013C0C: .4byte gUnknown_02024C07 -_08013C10: .4byte gUnknown_02024C10 -_08013C14: .4byte gUnknown_081D8E29 -_08013C18: - ldr r1, _08013C20 @ =gUnknown_02024C10 - ldr r0, _08013C24 @ =gUnknown_081D8E14 - b _08013C2C - .align 2, 0 -_08013C20: .4byte gUnknown_02024C10 -_08013C24: .4byte gUnknown_081D8E14 -_08013C28: - ldr r1, _08013C38 @ =gUnknown_02024C10 - ldr r0, _08013C3C @ =gUnknown_081D8E22 -_08013C2C: - str r0, [r1] - ldr r1, _08013C40 @ =gUnknown_030042D4 - ldr r0, _08013C44 @ =sub_8013C9C - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08013C38: .4byte gUnknown_02024C10 -_08013C3C: .4byte gUnknown_081D8E22 -_08013C40: .4byte gUnknown_030042D4 -_08013C44: .4byte sub_8013C9C - thumb_func_end sub_8013BDC - - thumb_func_start sub_8013C48 -sub_8013C48: @ 8013C48 - ldr r1, _08013C7C @ =gUnknown_02024A7F - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C80 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, _08013C84 @ =gUnknown_02024C07 - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _08013C88 @ =gUnknown_02024A6A - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08013C8C @ =gUnknown_02024C10 - ldr r0, _08013C90 @ =gUnknown_081D8E30 - str r0, [r1] - ldr r1, _08013C94 @ =gUnknown_030042D4 - ldr r0, _08013C98 @ =sub_8013C9C - str r0, [r1] - bx lr - .align 2, 0 -_08013C7C: .4byte gUnknown_02024A7F -_08013C80: .4byte gUnknown_030041C0 -_08013C84: .4byte gUnknown_02024C07 -_08013C88: .4byte gUnknown_02024A6A -_08013C8C: .4byte gUnknown_02024C10 -_08013C90: .4byte gUnknown_081D8E30 -_08013C94: .4byte gUnknown_030042D4 -_08013C98: .4byte sub_8013C9C - thumb_func_end sub_8013C48 - - thumb_func_start sub_8013C9C -sub_8013C9C: @ 8013C9C - push {r4-r7,lr} - ldr r0, _08013D00 @ =gUnknown_02024A7F - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013D7C - ldr r0, _08013D04 @ =gUnknown_020239F8 - ldrh r0, [r0] - ldr r1, _08013D08 @ =0x00000b92 - ands r1, r0 - cmp r1, 0 - bne _08013D4C - ldr r2, _08013D0C @ =gUnknown_02024A60 - strb r1, [r2] - ldr r0, _08013D10 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r1, r0 - bcs _08013D48 - adds r4, r2, 0 - ldr r6, _08013D14 @ =gBattleMons - movs r5, 0x58 - adds r7, r6, 0 - adds r7, 0x30 -_08013CCE: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08013D36 - ldr r2, _08013D18 @ =gUnknown_030042E0 - ldrh r0, [r2, 0x6] - cmp r0, 0 - bne _08013D1C - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x6] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x8 - bl StringCopy - b _08013D36 - .align 2, 0 -_08013D00: .4byte gUnknown_02024A7F -_08013D04: .4byte gUnknown_020239F8 -_08013D08: .4byte 0x00000b92 -_08013D0C: .4byte gUnknown_02024A60 -_08013D10: .4byte gUnknown_02024A68 -_08013D14: .4byte gBattleMons -_08013D18: .4byte gUnknown_030042E0 -_08013D1C: - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x26] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x14 - bl StringCopy -_08013D36: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013D68 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08013CCE -_08013D48: - bl sub_80BDEC8 -_08013D4C: - movs r0, 0x3 - bl BeginFastPaletteFade - movs r0, 0x5 - bl FadeOutMapMusic - ldr r1, _08013D6C @ =gUnknown_030042D4 - ldr r0, _08013D70 @ =sub_8013DA8 - str r0, [r1] - ldr r1, _08013D74 @ =gUnknown_03005E94 - ldr r0, _08013D78 @ =sub_800F808 - str r0, [r1] - b _08013D96 - .align 2, 0 -_08013D68: .4byte gUnknown_02024A68 -_08013D6C: .4byte gUnknown_030042D4 -_08013D70: .4byte sub_8013DA8 -_08013D74: .4byte gUnknown_03005E94 -_08013D78: .4byte sub_800F808 -_08013D7C: - ldr r0, _08013D9C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08013D96 - ldr r1, _08013DA0 @ =gUnknown_081FA73C - ldr r0, _08013DA4 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013D96: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013D9C: .4byte gUnknown_02024A64 -_08013DA0: .4byte gUnknown_081FA73C -_08013DA4: .4byte gUnknown_02024C10 - thumb_func_end sub_8013C9C - - thumb_func_start sub_8013DA8 -sub_8013DA8: @ 8013DA8 - push {lr} - ldr r0, _08013DD0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08013DEA - bl ResetSpriteData - ldr r0, _08013DD4 @ =gUnknown_03004324 - ldrb r0, [r0] - cmp r0, 0 - beq _08013DCA - ldr r0, _08013DD8 @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08013DE4 -_08013DCA: - ldr r1, _08013DDC @ =gUnknown_030042D4 - ldr r0, _08013DE0 @ =c4_overworld - b _08013DE8 - .align 2, 0 -_08013DD0: .4byte gPaletteFade -_08013DD4: .4byte gUnknown_03004324 -_08013DD8: .4byte gUnknown_02024D26 -_08013DDC: .4byte gUnknown_030042D4 -_08013DE0: .4byte c4_overworld -_08013DE4: - ldr r1, _08013DF0 @ =gUnknown_030042D4 - ldr r0, _08013DF4 @ =bc_evolution_cutscene -_08013DE8: - str r0, [r1] -_08013DEA: - pop {r0} - bx r0 - .align 2, 0 -_08013DF0: .4byte gUnknown_030042D4 -_08013DF4: .4byte bc_evolution_cutscene - thumb_func_end sub_8013DA8 - - thumb_func_start bc_evolution_cutscene -bc_evolution_cutscene: @ 8013DF8 - push {r4,r5,lr} - ldr r0, _08013E4C @ =gUnknown_03004324 - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0 - beq _08013E6E -_08013E04: - movs r5, 0 -_08013E06: - ldrb r2, [r3] - ldr r0, _08013E50 @ =gBitTable - lsls r1, r5, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08013E60 - bics r2, r1 - strb r2, [r3] - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08013E54 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08013E60 - ldr r0, _08013E58 @ =gUnknown_030042D4 - ldr r1, _08013E5C @ =sub_8013E88 - str r1, [r0] - lsls r3, r5, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r2, 0 - movs r2, 0x81 - bl EvolutionScene - b _08013E74 - .align 2, 0 -_08013E4C: .4byte gUnknown_03004324 -_08013E50: .4byte gBitTable -_08013E54: .4byte gPlayerParty -_08013E58: .4byte gUnknown_030042D4 -_08013E5C: .4byte sub_8013E88 -_08013E60: - adds r5, 0x1 - ldr r3, _08013E7C @ =gUnknown_03004324 - cmp r5, 0x5 - ble _08013E06 - ldrb r0, [r3] - cmp r0, 0 - bne _08013E04 -_08013E6E: - ldr r1, _08013E80 @ =gUnknown_030042D4 - ldr r0, _08013E84 @ =c4_overworld - str r0, [r1] -_08013E74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08013E7C: .4byte gUnknown_03004324 -_08013E80: .4byte gUnknown_030042D4 -_08013E84: .4byte c4_overworld - thumb_func_end bc_evolution_cutscene - - thumb_func_start sub_8013E88 -sub_8013E88: @ 8013E88 - push {lr} - ldr r0, _08013EA0 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08013EA4 @ =sub_800F808 - cmp r1, r0 - bne _08013E9A - ldr r1, _08013EA8 @ =gUnknown_030042D4 - ldr r0, _08013EAC @ =bc_evolution_cutscene - str r0, [r1] -_08013E9A: - pop {r0} - bx r0 - .align 2, 0 -_08013EA0: .4byte gMain -_08013EA4: .4byte sub_800F808 -_08013EA8: .4byte gUnknown_030042D4 -_08013EAC: .4byte bc_evolution_cutscene - thumb_func_end sub_8013E88 - - thumb_func_start c4_overworld -c4_overworld: @ 8013EB0 - push {r4-r6,lr} - ldr r5, _08013F30 @ =gUnknown_020239F8 - ldrh r1, [r5] - movs r6, 0x2 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08013ECE - ldr r4, _08013F34 @ =gPlayerParty - adds r0, r4, 0 - bl RandomlyGivePartyPokerus - adds r0, r4, 0 - bl PartySpreadPokerus -_08013ECE: - ldrh r4, [r5] - adds r0, r6, 0 - ands r0, r4 - cmp r0, 0 - beq _08013EE0 - ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08013F2A -_08013EE0: - ldr r1, _08013F3C @ =gScriptResult - ldr r5, _08013F40 @ =gUnknown_02024D26 - ldrb r0, [r5] - strh r0, [r1] - ldr r3, _08013F44 @ =gMain - ldr r0, _08013F48 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08013F4C @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r3] - movs r0, 0x80 - lsls r0, 3 - ands r0, r4 - cmp r0, 0 - beq _08013F1C - ldr r0, _08013F50 @ =gEnemyParty - bl sub_8134504 - ldrb r0, [r5] - cmp r0, 0x1 - beq _08013F18 - cmp r0, 0x7 - bne _08013F1C -_08013F18: - bl sub_813452C -_08013F1C: - movs r0, 0x5A - bl m4aSongNumStop - ldr r0, _08013F44 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08013F2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08013F30: .4byte gUnknown_020239F8 -_08013F34: .4byte gPlayerParty -_08013F38: .4byte gReceivedRemoteLinkPlayers -_08013F3C: .4byte gScriptResult -_08013F40: .4byte gUnknown_02024D26 -_08013F44: .4byte gMain -_08013F48: .4byte 0x0000043d -_08013F4C: .4byte gUnknown_030042D0 -_08013F50: .4byte gEnemyParty - thumb_func_end c4_overworld - - thumb_func_start sub_8013F54 -sub_8013F54: @ 8013F54 - push {lr} - ldr r0, _08013F84 @ =gUnknown_02024A7F - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013F90 - ldr r2, _08013F88 @ =0x02017140 - adds r1, r2, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _08013F74 - subs r0, 0x1 - strb r0, [r1] -_08013F74: - ldr r0, _08013F8C @ =gUnknown_030042D4 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - b _08013FAA - .align 2, 0 -_08013F84: .4byte gUnknown_02024A7F -_08013F88: .4byte 0x02017140 -_08013F8C: .4byte gUnknown_030042D4 -_08013F90: - ldr r0, _08013FB0 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08013FAA - ldr r1, _08013FB4 @ =gUnknown_081FA73C - ldr r0, _08013FB8 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FAA: - pop {r0} - bx r0 - .align 2, 0 -_08013FB0: .4byte gUnknown_02024A64 -_08013FB4: .4byte gUnknown_081FA73C -_08013FB8: .4byte gUnknown_02024C10 - thumb_func_end sub_8013F54 - - thumb_func_start sub_8013FBC -sub_8013FBC: @ 8013FBC - push {lr} - ldr r0, _08013FDC @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08013FD8 - ldr r1, _08013FE0 @ =gUnknown_081FA73C - ldr r0, _08013FE4 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FD8: - pop {r0} - bx r0 - .align 2, 0 -_08013FDC: .4byte gUnknown_02024A64 -_08013FE0: .4byte gUnknown_081FA73C -_08013FE4: .4byte gUnknown_02024C10 - thumb_func_end sub_8013FBC - - thumb_func_start sub_8013FE8 -sub_8013FE8: @ 8013FE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0x4 - str r0, [sp] - ldr r7, _08014028 @ =gUnknown_02024C07 - ldr r1, _0801402C @ =gUnknown_02024A7A - ldr r0, _08014030 @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r7] - ldr r1, _08014034 @ =0x02000000 - mov r10, r1 - ldr r0, _08014038 @ =0x000160a6 - add r0, r10 - ldrb r2, [r0] - ldr r1, _0801403C @ =gBitTable - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _08014044 - ldr r1, _08014040 @ =gUnknown_02024A7F - movs r0, 0xC - b _080146CC - .align 2, 0 -_08014028: .4byte gUnknown_02024C07 -_0801402C: .4byte gUnknown_02024A7A -_08014030: .4byte gUnknown_02024A7E -_08014034: .4byte 0x02000000 -_08014038: .4byte 0x000160a6 -_0801403C: .4byte gBitTable -_08014040: .4byte gUnknown_02024A7F -_08014044: - ldr r1, _080140B8 @ =gCritMultiplier - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080140BC @ =0x0001601f - add r1, r10 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080140C0 @ =0x000160e7 - add r0, r10 - strb r2, [r0] - ldr r0, _080140C4 @ =gUnknown_02024C68 - strb r2, [r0] - ldr r0, _080140C8 @ =gUnknown_02024C0E - strb r2, [r0] - ldr r0, _080140CC @ =gUnknown_02024D1E - strb r2, [r0, 0x6] - ldr r3, _080140D0 @ =gUnknown_02024BE4 - ldrb r0, [r7] - ldr r2, _080140D4 @ =0x0001608c - adds r0, r2 - add r0, r10 - ldrb r0, [r0] - ldr r4, _080140D8 @ =gUnknown_02024BE5 - strb r0, [r4] - strb r0, [r3] - ldr r1, _080140DC @ =gUnknown_02024D28 - ldrb r2, [r7] - lsls r0, r2, 4 - adds r5, r0, r1 - ldrb r1, [r5] - lsls r0, r1, 29 - adds r4, r2, 0 - mov r8, r3 - cmp r0, 0 - bge _080140F0 - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r5] - ldr r2, _080140E0 @ =gUnknown_02024BE6 - ldr r1, _080140E4 @ =gUnknown_02024BE8 - movs r0, 0xA5 - strh r0, [r1] - strh r0, [r2] - ldr r2, _080140E8 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - str r0, [r2] - movs r0, 0xA5 - movs r1, 0 - bl sub_801B5C0 - ldrb r1, [r7] - ldr r2, _080140EC @ =0x00016010 - adds r1, r2 - b _08014200 - .align 2, 0 -_080140B8: .4byte gCritMultiplier -_080140BC: .4byte 0x0001601f -_080140C0: .4byte 0x000160e7 -_080140C4: .4byte gUnknown_02024C68 -_080140C8: .4byte gUnknown_02024C0E -_080140CC: .4byte gUnknown_02024D1E -_080140D0: .4byte gUnknown_02024BE4 -_080140D4: .4byte 0x0001608c -_080140D8: .4byte gUnknown_02024BE5 -_080140DC: .4byte gUnknown_02024D28 -_080140E0: .4byte gUnknown_02024BE6 -_080140E4: .4byte gUnknown_02024BE8 -_080140E8: .4byte gUnknown_02024C6C -_080140EC: .4byte 0x00016010 -_080140F0: - ldr r1, _08014128 @ =gBattleMons - movs r0, 0x58 - adds r5, r4, 0 - muls r5, r0 - adds r0, r1, 0 - adds r0, 0x50 - adds r0, r5, r0 - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _08014114 - movs r6, 0x80 - lsls r6, 15 - ands r6, r2 - cmp r6, 0 - beq _08014138 -_08014114: - ldr r3, _0801412C @ =gUnknown_02024BE6 - ldr r2, _08014130 @ =gUnknown_02024BE8 - ldr r1, _08014134 @ =gUnknown_02024C54 - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - b _08014280 - .align 2, 0 -_08014128: .4byte gBattleMons -_0801412C: .4byte gUnknown_02024BE6 -_08014130: .4byte gUnknown_02024BE8 -_08014134: .4byte gUnknown_02024C54 -_08014138: - ldr r3, _08014188 @ =gUnknown_02024CA8 - mov r12, r3 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r2, r0, r3 - ldrh r4, [r2, 0x6] - adds r1, r4, 0 - cmp r1, 0 - beq _08014218 - ldrb r3, [r2, 0xC] - lsls r0, r3, 1 - adds r0, r5 - str r0, [sp, 0x8] - ldr r0, _0801418C @ =gBattleMons - adds r0, 0xC - mov r9, r0 - ldr r0, [sp, 0x8] - add r0, r9 - ldrh r0, [r0] - cmp r1, r0 - bne _080141A0 - ldr r1, _08014190 @ =gUnknown_02024BE6 - ldr r0, _08014194 @ =gUnknown_02024BE8 - strh r4, [r0] - strh r4, [r1] - ldrb r0, [r2, 0xC] - ldr r2, _08014198 @ =gUnknown_02024BE5 - strb r0, [r2] - mov r3, r8 - strb r0, [r3] - ldrh r0, [r1] - movs r1, 0 - bl sub_801B5C0 - ldrb r1, [r7] - ldr r4, _0801419C @ =0x00016010 - adds r1, r4 - b _08014200 - .align 2, 0 -_08014188: .4byte gUnknown_02024CA8 -_0801418C: .4byte gBattleMons -_08014190: .4byte gUnknown_02024BE6 -_08014194: .4byte gUnknown_02024BE8 -_08014198: .4byte gUnknown_02024BE5 -_0801419C: .4byte 0x00016010 -_080141A0: - cmp r1, 0 - beq _08014218 - cmp r1, r0 - beq _08014218 - ldr r0, _08014208 @ =gUnknown_02024BE5 - strb r3, [r0] - mov r1, r8 - strb r3, [r1] - ldr r3, _0801420C @ =gUnknown_02024BE6 - ldr r1, _08014210 @ =gUnknown_02024BE8 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r5 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r3] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - movs r2, 0 - strh r6, [r0, 0x6] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r2, [r0, 0xC] - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xE] - ldrh r0, [r3] - movs r1, 0 - bl sub_801B5C0 - ldrb r1, [r7] - ldr r3, _08014214 @ =0x00016010 - adds r1, r3 -_08014200: - add r1, r10 - strb r0, [r1] - b _08014280 - .align 2, 0 -_08014208: .4byte gUnknown_02024BE5 -_0801420C: .4byte gUnknown_02024BE6 -_08014210: .4byte gUnknown_02024BE8 -_08014214: .4byte 0x00016010 -_08014218: - mov r4, r8 - ldrb r0, [r4] - lsls r0, 1 - ldr r4, _0801425C @ =gUnknown_02024C07 - ldrb r2, [r4] - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - ldr r1, _08014260 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldr r1, _08014264 @ =gUnknown_02024C60 - lsls r2, 1 - adds r2, r1 - ldrh r3, [r0] - ldrh r2, [r2] - cmp r3, r2 - beq _08014278 - ldr r1, _08014268 @ =gUnknown_02024BE6 - ldr r0, _0801426C @ =gUnknown_02024BE8 - strh r3, [r0] - strh r3, [r1] - ldrh r0, [r1] - movs r1, 0 - bl sub_801B5C0 - ldr r2, _08014270 @ =0x02000000 - ldrb r1, [r4] - ldr r3, _08014274 @ =0x00016010 - adds r1, r3 - adds r1, r2 - strb r0, [r1] - b _08014280 - .align 2, 0 -_0801425C: .4byte gUnknown_02024C07 -_08014260: .4byte gBattleMons -_08014264: .4byte gUnknown_02024C60 -_08014268: .4byte gUnknown_02024BE6 -_0801426C: .4byte gUnknown_02024BE8 -_08014270: .4byte 0x02000000 -_08014274: .4byte 0x00016010 -_08014278: - ldr r1, _08014298 @ =gUnknown_02024BE6 - ldr r0, _0801429C @ =gUnknown_02024BE8 - strh r3, [r0] - strh r3, [r1] -_08014280: - ldr r0, _080142A0 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080142A8 - ldr r0, _080142A4 @ =gUnknown_030042E0 - ldr r1, _08014298 @ =gUnknown_02024BE6 - ldrh r1, [r1] - strh r1, [r0, 0x22] - b _080142B0 - .align 2, 0 -_08014298: .4byte gUnknown_02024BE6 -_0801429C: .4byte gUnknown_02024BE8 -_080142A0: .4byte gUnknown_02024C07 -_080142A4: .4byte gUnknown_030042E0 -_080142A8: - ldr r0, _08014314 @ =gUnknown_030042E0 - ldr r1, _08014318 @ =gUnknown_02024BE6 - ldrh r1, [r1] - strh r1, [r0, 0x24] -_080142B0: - ldr r4, _0801431C @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014320 @ =gUnknown_02024C80 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r1 - ldrb r0, [r5, 0x8] - adds r3, r4, 0 - cmp r0, 0 - beq _08014330 - ldr r2, _08014324 @ =gBattleMoves - ldr r0, _08014318 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - cmp r0, 0 - bne _08014330 - ldrb r0, [r3] - bl battle_side_get_owner - adds r4, r0, 0 - ldrb r0, [r5, 0x9] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014330 - ldr r1, _08014328 @ =gBattleMons - ldrb r2, [r5, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08014330 - ldr r0, _0801432C @ =gUnknown_02024C08 - strb r2, [r0] - b _080146AC - .align 2, 0 -_08014314: .4byte gUnknown_030042E0 -_08014318: .4byte gUnknown_02024BE6 -_0801431C: .4byte gUnknown_02024C07 -_08014320: .4byte gUnknown_02024C80 -_08014324: .4byte gBattleMoves -_08014328: .4byte gBattleMons -_0801432C: .4byte gUnknown_02024C08 -_08014330: - ldr r2, _08014454 @ =gUnknown_020239F8 - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - ldr r3, _08014458 @ =gUnknown_02024C07 - mov r9, r2 - cmp r0, 0 - bne _08014342 - b _0801461C -_08014342: - ldr r1, _0801445C @ =gUnknown_02024C80 - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r7, [r0, 0x8] - cmp r7, 0 - beq _08014354 - b _08014570 -_08014354: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _08014464 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08014370 - ldrb r0, [r4, 0x6] - cmp r0, 0x10 - bne _08014370 - b _08014570 -_08014370: - ldr r3, _08014468 @ =gBattleMons - ldr r0, _0801446C @ =0x02000000 - mov r8, r0 - ldr r2, _08014458 @ =gUnknown_02024C07 - ldrb r5, [r2] - ldr r1, _08014470 @ =0x00016010 - adds r0, r5, r1 - add r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r2, 0 - cmp r0, 0x1F - bne _08014394 - b _08014570 -_08014394: - ldrb r0, [r4, 0x2] - cmp r0, 0xD - beq _0801439C - b _08014570 -_0801439C: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014474 @ =gUnknown_02024A60 - strb r7, [r1] - ldr r0, _08014478 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r7, r0 - bcs _08014416 - adds r4, r1, 0 - mov r5, r8 -_080143B6: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08014404 - ldr r0, _08014458 @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r2, _08014470 @ =0x00016010 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - ldrb r3, [r4] - cmp r0, r3 - beq _08014404 - ldr r1, _08014468 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1F - bne _08014404 - adds r0, r2, 0 - bl sub_801E3B4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r0, r1 - bcs _08014404 - ldrb r0, [r4] - bl sub_801E3B4 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_08014404: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014478 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080143B6 -_08014416: - ldr r2, [sp] - cmp r2, 0x4 - beq _0801441E - b _08014522 -_0801441E: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _0801447C @ =gUnknown_02024BE8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - ldr r3, [sp] - ands r3, r0 - cmp r3, 0 - beq _080144A4 - ldr r0, _08014458 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08014484 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014480 - movs r0, 0x1 - b _08014496 - .align 2, 0 -_08014454: .4byte gUnknown_020239F8 -_08014458: .4byte gUnknown_02024C07 -_0801445C: .4byte gUnknown_02024C80 -_08014460: .4byte gBattleMoves -_08014464: .4byte gUnknown_02024BE6 -_08014468: .4byte gBattleMons -_0801446C: .4byte 0x02000000 -_08014470: .4byte 0x00016010 -_08014474: .4byte gUnknown_02024A60 -_08014478: .4byte gUnknown_02024A68 -_0801447C: .4byte gUnknown_02024BE8 -_08014480: - movs r0, 0x3 - b _08014496 -_08014484: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014494 - movs r0, 0 - b _08014496 -_08014494: - movs r0, 0x2 -_08014496: - bl battle_get_side_with_given_state - ldr r1, _080144A0 @ =gUnknown_02024C08 - strb r0, [r1] - b _080144B6 - .align 2, 0 -_080144A0: .4byte gUnknown_02024C08 -_080144A4: - ldr r2, _080144EC @ =gUnknown_02024C08 - ldr r1, _080144F0 @ =0x02000000 - ldr r0, _080144F4 @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r4, _080144F8 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] -_080144B6: - ldr r7, _080144FC @ =gUnknown_02024C0C - ldrb r0, [r7] - ldr r1, _08014500 @ =gBitTable - mov r8, r1 - ldr r5, _080144EC @ =gUnknown_02024C08 - ldrb r1, [r5] - lsls r1, 2 - add r1, r8 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _080144D0 - b _080146AC -_080144D0: - ldr r6, _080144F4 @ =gUnknown_02024C07 - ldrb r0, [r6] - bl battle_side_get_owner - adds r4, r0, 0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014504 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_080144EC: .4byte gUnknown_02024C08 -_080144F0: .4byte 0x02000000 -_080144F4: .4byte gUnknown_02024C07 -_080144F8: .4byte 0x00016010 -_080144FC: .4byte gUnknown_02024C0C -_08014500: .4byte gBitTable -_08014504: - ldrb r0, [r6] - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - strb r0, [r5] - ldrb r1, [r7] - ldrb r2, [r5] - lsls r0, r2, 2 - add r0, r8 - b _08014690 -_08014522: - ldr r4, _0801455C @ =gUnknown_02024A60 - ldr r0, _08014560 @ =gUnknown_02024A7A - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _08014564 @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - adds r1, 0x20 - ldrb r1, [r1] - bl sub_81074C4 - ldr r2, _08014568 @ =gUnknown_02024D68 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0801456C @ =gUnknown_02024C08 - ldrb r0, [r4] - strb r0, [r1] - b _080146AC - .align 2, 0 -_0801455C: .4byte gUnknown_02024A60 -_08014560: .4byte gUnknown_02024A7A -_08014564: .4byte gBattleMons -_08014568: .4byte gUnknown_02024D68 -_0801456C: .4byte gUnknown_02024C08 -_08014570: - mov r4, r9 - ldrh r1, [r4] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldr r2, _080145B4 @ =gBattleMoves - ldr r0, _080145B8 @ =gUnknown_02024BE8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldrb r0, [r3] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080145C0 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145BC - movs r0, 0x1 - b _080145D2 - .align 2, 0 -_080145B4: .4byte gBattleMoves -_080145B8: .4byte gUnknown_02024BE8 -_080145BC: - movs r0, 0x3 - b _080145D2 -_080145C0: - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145D0 - movs r0, 0 - b _080145D2 -_080145D0: - movs r0, 0x2 -_080145D2: - bl battle_get_side_with_given_state - ldr r1, _0801460C @ =gUnknown_02024C08 - strb r0, [r1] - ldr r0, _08014610 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08014614 @ =gBitTable - ldr r5, _0801460C @ =gUnknown_02024C08 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldr r0, _08014618 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - adds r4, r0, 0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080146AC - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_0801460C: .4byte gUnknown_02024C08 -_08014610: .4byte gUnknown_02024C0C -_08014614: .4byte gBitTable -_08014618: .4byte gUnknown_02024C07 -_0801461C: - ldr r5, _08014660 @ =gUnknown_02024C08 - ldr r1, _08014664 @ =0x02000000 - adds r2, r3, 0 - ldrb r0, [r2] - ldr r4, _08014668 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r6, _0801466C @ =gUnknown_02024C0C - ldrb r1, [r6] - ldr r7, _08014670 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldrb r0, [r2] - str r3, [sp, 0x4] - bl battle_side_get_owner - adds r4, r0, 0 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r4, r0 - beq _08014674 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_08014660: .4byte gUnknown_02024C08 -_08014664: .4byte 0x02000000 -_08014668: .4byte 0x00016010 -_0801466C: .4byte gUnknown_02024C0C -_08014670: .4byte gBitTable -_08014674: - ldrb r0, [r3] - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - strb r0, [r5] - ldrb r1, [r6] - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r7 -_08014690: - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - adds r0, r2, 0 -_0801469A: - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - strb r0, [r5] -_080146AC: - ldr r4, _080146E0 @ =gUnknown_02024C10 - ldr r3, _080146E4 @ =gUnknown_081D6BBC - ldr r2, _080146E8 @ =gBattleMoves - ldr r0, _080146EC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r4] - ldr r1, _080146F0 @ =gUnknown_02024A7F - movs r0, 0xA -_080146CC: - strb r0, [r1] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080146E0: .4byte gUnknown_02024C10 -_080146E4: .4byte gUnknown_081D6BBC -_080146E8: .4byte gBattleMoves -_080146EC: .4byte gUnknown_02024BE6 -_080146F0: .4byte gUnknown_02024A7F - thumb_func_end sub_8013FE8 - - thumb_func_start sub_80146F4 -sub_80146F4: @ 80146F4 - push {r4,lr} - ldr r3, _08014764 @ =gUnknown_02024C07 - ldr r1, _08014768 @ =gUnknown_02024A7A - ldr r0, _0801476C @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014770 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014774 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r1, _08014778 @ =gUnknown_02024E60 - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r1, _0801477C @ =gUnknown_02024E64 - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r2, _08014780 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldrb r4, [r3] - strb r4, [r2, 0x2] - ldr r1, _08014784 @ =0x02000000 - ldrb r0, [r3] - ldr r3, _08014788 @ =0x00016064 - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - ldr r0, _0801478C @ =0x00016003 - adds r1, r0 - strb r4, [r1] - ldr r1, _08014790 @ =gUnknown_02024C10 - ldr r0, _08014794 @ =gUnknown_081D8E4E - str r0, [r1] - ldr r1, _08014798 @ =gUnknown_02024A7F - movs r0, 0xA - strb r0, [r1] - ldr r1, _0801479C @ =gUnknown_030042E0 - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _0801475C - adds r0, 0x1 - strb r0, [r1, 0x2] -_0801475C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014764: .4byte gUnknown_02024C07 -_08014768: .4byte gUnknown_02024A7A -_0801476C: .4byte gUnknown_02024A7E -_08014770: .4byte gUnknown_030042A4 -_08014774: .4byte gUnknown_030042A0 -_08014778: .4byte gUnknown_02024E60 -_0801477C: .4byte gUnknown_02024E64 -_08014780: .4byte gUnknown_030041C0 -_08014784: .4byte 0x02000000 -_08014788: .4byte 0x00016064 -_0801478C: .4byte 0x00016003 -_08014790: .4byte gUnknown_02024C10 -_08014794: .4byte gUnknown_081D8E4E -_08014798: .4byte gUnknown_02024A7F -_0801479C: .4byte gUnknown_030042E0 - thumb_func_end sub_80146F4 - - thumb_func_start sub_80147A0 -sub_80147A0: @ 80147A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08014804 @ =gUnknown_02024C07 - ldr r2, _08014808 @ =gUnknown_02024C08 - ldr r1, _0801480C @ =gUnknown_02024A7A - ldr r0, _08014810 @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r4] - ldr r0, _08014814 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014818 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r3, _0801481C @ =gUnknown_02024CA8 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - strb r2, [r0, 0x10] - ldr r5, _08014820 @ =gUnknown_02024C04 - ldr r2, _08014824 @ =gUnknown_02024260 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - strh r3, [r5] - cmp r3, 0xC - bhi _08014830 - ldr r2, _08014828 @ =gUnknown_02024C10 - ldr r1, _0801482C @ =gUnknown_081D9E48 - ldrh r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - b _08014A8C - .align 2, 0 -_08014804: .4byte gUnknown_02024C07 -_08014808: .4byte gUnknown_02024C08 -_0801480C: .4byte gUnknown_02024A7A -_08014810: .4byte gUnknown_02024A7E -_08014814: .4byte gUnknown_030042A4 -_08014818: .4byte gUnknown_030042A0 -_0801481C: .4byte gUnknown_02024CA8 -_08014820: .4byte gUnknown_02024C04 -_08014824: .4byte gUnknown_02024260 -_08014828: .4byte gUnknown_02024C10 -_0801482C: .4byte gUnknown_081D9E48 -_08014830: - adds r0, r3, 0 - subs r0, 0x50 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0801484C - ldr r0, _08014844 @ =gUnknown_02024C10 - ldr r1, _08014848 @ =gUnknown_081D9E94 - b _0801485C - .align 2, 0 -_08014844: .4byte gUnknown_02024C10 -_08014848: .4byte gUnknown_081D9E94 -_0801484C: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0801486C - ldr r0, _08014864 @ =gUnknown_02024C10 - ldr r1, _08014868 @ =gUnknown_081D9E7C -_0801485C: - ldr r1, [r1] - str r1, [r0] - b _08014A8C - .align 2, 0 -_08014864: .4byte gUnknown_02024C10 -_08014868: .4byte gUnknown_081D9E7C -_0801486C: - ldr r2, _080148A0 @ =0x02000000 - ldrb r0, [r4] - ldr r3, _080148A4 @ =0x00016003 - adds r1, r2, r3 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 25 - ldr r1, _080148A8 @ =0x000160d8 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - mov r8, r4 - ldr r3, _080148AC @ =gUnknown_02024C10 - mov r9, r3 - ldr r1, _080148B0 @ =gUnknown_081D9E7C - mov r10, r1 - adds r7, r2, 0 - cmp r0, 0x4 - bls _08014896 - b _08014A74 -_08014896: - lsls r0, 2 - ldr r1, _080148B4 @ =_080148B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080148A0: .4byte 0x02000000 -_080148A4: .4byte 0x00016003 -_080148A8: .4byte 0x000160d8 -_080148AC: .4byte gUnknown_02024C10 -_080148B0: .4byte gUnknown_081D9E7C -_080148B4: .4byte _080148B8 - .align 2, 0 -_080148B8: - .4byte _08014A74 - .4byte _08014A74 - .4byte _080148CC - .4byte _08014958 - .4byte _08014A30 -_080148CC: - ldr r2, _08014904 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r2, 0x5] - ldr r1, _08014908 @ =gUnknown_02024C07 - ldrb r0, [r1] - lsrs r0, 1 - ldr r6, _0801490C @ =0x000160da - adds r0, r6 - adds r0, r7 - ldrb r3, [r0] - movs r0, 0x1 - ands r0, r3 - mov r8, r1 - cmp r0, 0 - beq _08014918 - movs r0, 0x3E - ands r0, r3 - ldr r3, _08014910 @ =gUnknown_02024C10 - mov r9, r3 - ldr r1, _08014914 @ =gUnknown_081D9E7C - mov r10, r1 - cmp r0, 0 - bne _080148FC - b _08014A74 -_080148FC: - movs r0, 0x5 - strb r0, [r2, 0x5] - b _08014A74 - .align 2, 0 -_08014904: .4byte gUnknown_02024D1E -_08014908: .4byte gUnknown_02024C07 -_0801490C: .4byte 0x000160da -_08014910: .4byte gUnknown_02024C10 -_08014914: .4byte gUnknown_081D9E7C -_08014918: - ldr r3, _08014950 @ =gUnknown_02024C10 - mov r9, r3 - ldr r0, _08014954 @ =gUnknown_081D9E7C - mov r10, r0 - adds r5, r7, 0 - mov r4, r8 - adds r3, r6, 0 -_08014926: - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x5] - adds r0, 0x1 - strb r0, [r2, 0x5] - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08014926 - b _08014A74 - .align 2, 0 -_08014950: .4byte gUnknown_02024C10 -_08014954: .4byte gUnknown_081D9E7C -_08014958: - ldr r3, _0801498C @ =gUnknown_02024D1E - movs r0, 0x4 - strb r0, [r3, 0x5] - ldr r2, _08014990 @ =gUnknown_02024C07 - ldrb r0, [r2] - lsrs r0, 1 - ldr r1, _08014994 @ =0x000160da - mov r12, r1 - add r0, r12 - adds r6, r0, r7 - ldrb r1, [r6] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r8, r2 - cmp r5, 0 - beq _080149A0 - movs r0, 0x5 - strb r0, [r3, 0x5] - ldr r2, _08014998 @ =gUnknown_02024C10 - mov r9, r2 - ldr r3, _0801499C @ =gUnknown_081D9E7C - mov r10, r3 - b _08014A74 - .align 2, 0 -_0801498C: .4byte gUnknown_02024D1E -_08014990: .4byte gUnknown_02024C07 -_08014994: .4byte 0x000160da -_08014998: .4byte gUnknown_02024C10 -_0801499C: .4byte gUnknown_081D9E7C -_080149A0: - ldr r3, _08014A18 @ =gUnknown_030041C0 - movs r4, 0xFD - strb r4, [r3] - movs r0, 0x5 - strb r0, [r3, 0x1] - movs r2, 0x1 - strb r2, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - ldr r1, _08014A1C @ =gUnknown_03004290 - strb r4, [r1] - strb r5, [r1, 0x1] - movs r0, 0xD2 - strb r0, [r1, 0x2] - strb r5, [r1, 0x3] - subs r0, 0xD3 - strb r0, [r1, 0x4] - ldrb r0, [r6] - ands r2, r0 - ldr r0, _08014A20 @ =gUnknown_02024C10 - mov r9, r0 - ldr r1, _08014A24 @ =gUnknown_081D9E7C - mov r10, r1 - adds r6, r3, 0 - cmp r2, 0 - bne _08014A02 - adds r3, r7, 0 - mov r5, r8 - mov r4, r12 - adds r2, r6, 0 -_080149DC: - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x2] - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080149DC -_08014A02: - ldrb r0, [r6, 0x2] - adds r0, 0xE - ldr r2, _08014A28 @ =0x000160a4 - adds r1, r7, r2 - movs r2, 0 - strb r0, [r1] - ldr r3, _08014A2C @ =0x000160a5 - adds r0, r7, r3 - strb r2, [r0] - b _08014A74 - .align 2, 0 -_08014A18: .4byte gUnknown_030041C0 -_08014A1C: .4byte gUnknown_03004290 -_08014A20: .4byte gUnknown_02024C10 -_08014A24: .4byte gUnknown_081D9E7C -_08014A28: .4byte 0x000160a4 -_08014A2C: .4byte 0x000160a5 -_08014A30: - ldr r0, _08014A50 @ =gUnknown_020239F8 - ldrh r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014A64 - ldr r1, _08014A54 @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - ldr r0, _08014A58 @ =gUnknown_02024C07 - mov r8, r0 - ldr r1, _08014A5C @ =gUnknown_02024C10 - mov r9, r1 - ldr r2, _08014A60 @ =gUnknown_081D9E7C - mov r10, r2 - b _08014A74 - .align 2, 0 -_08014A50: .4byte gUnknown_020239F8 -_08014A54: .4byte gUnknown_02024D1E -_08014A58: .4byte gUnknown_02024C07 -_08014A5C: .4byte gUnknown_02024C10 -_08014A60: .4byte gUnknown_081D9E7C -_08014A64: - ldr r0, _08014AA0 @ =gUnknown_02024D1E - strb r1, [r0, 0x5] - ldr r3, _08014AA4 @ =gUnknown_02024C07 - mov r8, r3 - ldr r0, _08014AA8 @ =gUnknown_02024C10 - mov r9, r0 - ldr r1, _08014AAC @ =gUnknown_081D9E7C - mov r10, r1 -_08014A74: - mov r2, r8 - ldrb r0, [r2] - lsrs r0, 1 - ldr r3, _08014AB0 @ =0x000160d8 - adds r0, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 2 - add r0, r10 - ldr r0, [r0] - mov r1, r9 - str r0, [r1] -_08014A8C: - movs r0, 0xA - ldr r2, _08014AB4 @ =gUnknown_02024A7F - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08014AA0: .4byte gUnknown_02024D1E -_08014AA4: .4byte gUnknown_02024C07 -_08014AA8: .4byte gUnknown_02024C10 -_08014AAC: .4byte gUnknown_081D9E7C -_08014AB0: .4byte 0x000160d8 -_08014AB4: .4byte gUnknown_02024A7F - thumb_func_end sub_80147A0 - - thumb_func_start sub_8014AB8 -sub_8014AB8: @ 8014AB8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - ldr r1, _08014ADC @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08014AE4 - ldr r1, _08014AE0 @ =gEnigmaBerries - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x7] - b _08014AEE - .align 2, 0 -_08014ADC: .4byte gBattleMons -_08014AE0: .4byte gEnigmaBerries -_08014AE4: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r1, r0, 24 -_08014AEE: - ldr r0, _08014B18 @ =gUnknown_02024C0B - strb r4, [r0] - cmp r1, 0x25 - bne _08014B28 - ldr r2, _08014B1C @ =gUnknown_02024C04 - ldr r1, _08014B20 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r2] - ldr r0, _08014B24 @ =gUnknown_02024D28 - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - b _08014B50 - .align 2, 0 -_08014B18: .4byte gUnknown_02024C0B -_08014B1C: .4byte gUnknown_02024C04 -_08014B20: .4byte gBattleMons -_08014B24: .4byte gUnknown_02024D28 -_08014B28: - ldr r6, _08014B5C @ =gBattleMons - movs r2, 0x58 - adds r0, r4, 0 - muls r0, r2 - adds r3, r0, r6 - adds r0, r3, 0 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x32 - bne _08014B68 - ldr r0, _08014B60 @ =byte_2024C06 - strb r1, [r0] - ldr r0, _08014B64 @ =gUnknown_02024D28 - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 -_08014B50: - orrs r0, r1 - strb r0, [r2, 0x1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _08014BC2 - .align 2, 0 -_08014B5C: .4byte gBattleMons -_08014B60: .4byte byte_2024C06 -_08014B64: .4byte gUnknown_02024D28 -_08014B68: - ldr r0, _08014BDC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08014BB6 - movs r1, 0x1 - adds r0, r4, 0 - eors r0, r1 - muls r0, r2 - adds r2, r0, r6 - ldrh r0, [r3, 0x6] - ldrh r1, [r2, 0x6] - cmp r0, r1 - bcs _08014BB0 - lsls r0, 7 - ldrh r1, [r2, 0x6] - bl __divsi3 - adds r4, r0, 0 - ldr r0, _08014BE0 @ =0x02000000 - ldr r1, _08014BE4 @ =0x00016078 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 1 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - bl Random - movs r1, 0xFF - ands r1, r0 - cmp r4, r1 - bls _08014BB6 -_08014BB0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08014BB6: - ldr r1, _08014BE0 @ =0x02000000 - ldr r0, _08014BE4 @ =0x00016078 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08014BC2: - cmp r5, 0 - beq _08014BD4 - ldr r1, _08014BE8 @ =gUnknown_02024A7E - ldr r0, _08014BEC @ =gUnknown_02024A68 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08014BF0 @ =gUnknown_02024D26 - movs r0, 0x4 - strb r0, [r1] -_08014BD4: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08014BDC: .4byte gUnknown_020239F8 -_08014BE0: .4byte 0x02000000 -_08014BE4: .4byte 0x00016078 -_08014BE8: .4byte gUnknown_02024A7E -_08014BEC: .4byte gUnknown_02024A68 -_08014BF0: .4byte gUnknown_02024D26 - thumb_func_end sub_8014AB8 - - thumb_func_start sub_8014BF4 -sub_8014BF4: @ 8014BF4 - push {r4-r6,lr} - ldr r4, _08014C44 @ =gUnknown_02024C07 - ldr r1, _08014C48 @ =gUnknown_02024A7A - ldr r5, _08014C4C @ =gUnknown_02024A7E - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08014C50 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08014C9C - ldr r0, _08014C54 @ =gUnknown_02024A68 - ldrb r1, [r0] - strb r1, [r5] - ldr r2, _08014C58 @ =gUnknown_02024A60 - movs r0, 0 - strb r0, [r2] - lsls r1, 24 - cmp r1, 0 - beq _08014C88 - adds r4, r2, 0 - ldr r6, _08014C5C @ =gUnknown_02024C18 - ldr r5, _08014C60 @ =gUnknown_02024D26 -_08014C28: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08014C64 - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x2 - b _08014C72 - .align 2, 0 -_08014C44: .4byte gUnknown_02024C07 -_08014C48: .4byte gUnknown_02024A7A -_08014C4C: .4byte gUnknown_02024A7E -_08014C50: .4byte gUnknown_020239F8 -_08014C54: .4byte gUnknown_02024A68 -_08014C58: .4byte gUnknown_02024A60 -_08014C5C: .4byte gUnknown_02024C18 -_08014C60: .4byte gUnknown_02024D26 -_08014C64: - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x1 -_08014C72: - orrs r0, r1 - strb r0, [r5] -_08014C76: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014C94 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08014C28 -_08014C88: - ldr r0, _08014C98 @ =gUnknown_02024D26 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08014D40 - .align 2, 0 -_08014C94: .4byte gUnknown_02024A68 -_08014C98: .4byte gUnknown_02024D26 -_08014C9C: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08014CF4 - ldrb r0, [r4] - bl sub_8014AB8 - lsls r0, 24 - cmp r0, 0 - bne _08014D40 - ldr r1, _08014CDC @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _08014CE0 @ =0xfdffffff - ands r0, r1 - str r0, [r2] - ldr r1, _08014CE4 @ =gUnknown_02024D1E - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r1, _08014CE8 @ =gUnknown_02024C10 - ldr r0, _08014CEC @ =gUnknown_081D8E3B - str r0, [r1] - ldr r1, _08014CF0 @ =gUnknown_02024A7F - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014CDC: .4byte gBattleMons -_08014CE0: .4byte 0xfdffffff -_08014CE4: .4byte gUnknown_02024D1E -_08014CE8: .4byte gUnknown_02024C10 -_08014CEC: .4byte gUnknown_081D8E3B -_08014CF0: .4byte gUnknown_02024A7F -_08014CF4: - ldr r1, _08014D1C @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08014D20 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _08014D34 - ldr r1, _08014D24 @ =gUnknown_02024D1E - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r1, _08014D28 @ =gUnknown_02024C10 - ldr r0, _08014D2C @ =gUnknown_081D8E3B - str r0, [r1] - ldr r1, _08014D30 @ =gUnknown_02024A7F - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014D1C: .4byte gBattleMons -_08014D20: .4byte 0x0400e000 -_08014D24: .4byte gUnknown_02024D1E -_08014D28: .4byte gUnknown_02024C10 -_08014D2C: .4byte gUnknown_081D8E3B -_08014D30: .4byte gUnknown_02024A7F -_08014D34: - ldr r0, _08014D48 @ =gUnknown_02024A68 - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _08014D4C @ =gUnknown_02024D26 - movs r0, 0x6 -_08014D3E: - strb r0, [r1] -_08014D40: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014D48: .4byte gUnknown_02024A68 -_08014D4C: .4byte gUnknown_02024D26 - thumb_func_end sub_8014BF4 - - thumb_func_start sub_8014D50 -sub_8014D50: @ 8014D50 - ldr r2, _08014D78 @ =gUnknown_02024C07 - ldr r1, _08014D7C @ =gUnknown_02024A7A - ldr r0, _08014D80 @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014D84 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014D88 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014D8C @ =gUnknown_02024C10 - ldr r0, _08014D90 @ =gUnknown_081D9E98 - ldr r0, [r0] - str r0, [r1] - ldr r1, _08014D94 @ =gUnknown_02024A7F - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014D78: .4byte gUnknown_02024C07 -_08014D7C: .4byte gUnknown_02024A7A -_08014D80: .4byte gUnknown_02024A7E -_08014D84: .4byte gUnknown_030042A4 -_08014D88: .4byte gUnknown_030042A0 -_08014D8C: .4byte gUnknown_02024C10 -_08014D90: .4byte gUnknown_081D9E98 -_08014D94: .4byte gUnknown_02024A7F - thumb_func_end sub_8014D50 - - thumb_func_start sub_8014D98 -sub_8014D98: @ 8014D98 - ldr r2, _08014DD0 @ =gUnknown_02024C07 - ldr r1, _08014DD4 @ =gUnknown_02024A7A - ldr r0, _08014DD8 @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014DDC @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014DE0 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014DE4 @ =gUnknown_02038808 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r1, _08014DE8 @ =gUnknown_02024C04 - movs r0, 0x5 - strh r0, [r1] - ldr r1, _08014DEC @ =gUnknown_02024C10 - ldr r0, _08014DF0 @ =gUnknown_081D9E48 - ldr r0, [r0, 0x14] - str r0, [r1] - ldr r1, _08014DF4 @ =gUnknown_02024A7F - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014DD0: .4byte gUnknown_02024C07 -_08014DD4: .4byte gUnknown_02024A7A -_08014DD8: .4byte gUnknown_02024A7E -_08014DDC: .4byte gUnknown_030042A4 -_08014DE0: .4byte gUnknown_030042A0 -_08014DE4: .4byte gUnknown_02038808 -_08014DE8: .4byte gUnknown_02024C04 -_08014DEC: .4byte gUnknown_02024C10 -_08014DF0: .4byte gUnknown_081D9E48 -_08014DF4: .4byte gUnknown_02024A7F - thumb_func_end sub_8014D98 - - thumb_func_start sub_8014DF8 -sub_8014DF8: @ 8014DF8 - push {r4-r6,lr} - ldr r3, _08014E68 @ =gUnknown_02024C07 - ldr r1, _08014E6C @ =gUnknown_02024A7A - ldr r0, _08014E70 @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014E74 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014E78 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r6, _08014E7C @ =gUnknown_02024D1E - ldr r2, _08014E80 @ =gUnknown_02024260 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r6, 0x5] - ldr r1, _08014E84 @ =gUnknown_02024C04 - ldrb r0, [r3] - lsls r0, 9 - adds r2, 0x2 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1] - ldr r2, _08014E88 @ =0x02000000 - ldr r0, _08014E8C @ =0x00016087 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08014E42 - adds r0, 0x1 - strb r0, [r1] -_08014E42: - ldr r0, _08014E90 @ =0x00016088 - adds r4, r2, r0 - ldrb r5, [r4] - adds r3, r5, 0 - cmp r3, 0x1 - bls _08014E9C - ldr r2, _08014E94 @ =gUnknown_081FA70C - ldrb r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - ldrb r6, [r6, 0x5] - adds r0, r6 - adds r0, r2 - ldrb r0, [r0] - cmp r3, r0 - bcs _08014E98 - movs r0, 0x1 - b _08014E9A - .align 2, 0 -_08014E68: .4byte gUnknown_02024C07 -_08014E6C: .4byte gUnknown_02024A7A -_08014E70: .4byte gUnknown_02024A7E -_08014E74: .4byte gUnknown_030042A4 -_08014E78: .4byte gUnknown_030042A0 -_08014E7C: .4byte gUnknown_02024D1E -_08014E80: .4byte gUnknown_02024260 -_08014E84: .4byte gUnknown_02024C04 -_08014E88: .4byte 0x02000000 -_08014E8C: .4byte 0x00016087 -_08014E90: .4byte 0x00016088 -_08014E94: .4byte gUnknown_081FA70C -_08014E98: - subs r0, r5, r0 -_08014E9A: - strb r0, [r4] -_08014E9C: - ldr r1, _08014EB0 @ =gUnknown_02024C10 - ldr r0, _08014EB4 @ =gUnknown_081D9E98 - ldr r0, [r0, 0x8] - str r0, [r1] - ldr r1, _08014EB8 @ =gUnknown_02024A7F - movs r0, 0xA - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014EB0: .4byte gUnknown_02024C10 -_08014EB4: .4byte gUnknown_081D9E98 -_08014EB8: .4byte gUnknown_02024A7F - thumb_func_end sub_8014DF8 - - thumb_func_start sub_8014EBC -sub_8014EBC: @ 8014EBC - push {r4,r5,lr} - ldr r2, _08014F28 @ =gUnknown_02024C07 - ldr r1, _08014F2C @ =gUnknown_02024A7A - ldr r0, _08014F30 @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014F34 @ =gUnknown_030042A4 - movs r5, 0 - strh r5, [r0] - ldr r0, _08014F38 @ =gUnknown_030042A0 - strh r5, [r0] - ldr r3, _08014F3C @ =0x02000000 - ldr r0, _08014F40 @ =0x00016089 - adds r2, r3, r0 - ldr r1, _08014F44 @ =gUnknown_081FA71B - subs r0, 0x3 - adds r4, r3, r0 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014EFA - movs r0, 0x14 - strb r0, [r2] -_08014EFA: - ldr r0, _08014F48 @ =0x00016088 - adds r2, r3, r0 - ldr r1, _08014F4C @ =gUnknown_081FA71F - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014F18 - movs r0, 0x14 - strb r0, [r2] -_08014F18: - ldrb r0, [r4] - cmp r0, 0x2 - bhi _08014F54 - adds r0, 0x1 - strb r0, [r4] - ldr r0, _08014F50 @ =gUnknown_02024D1E - strb r5, [r0, 0x5] - b _08014F5A - .align 2, 0 -_08014F28: .4byte gUnknown_02024C07 -_08014F2C: .4byte gUnknown_02024A7A -_08014F30: .4byte gUnknown_02024A7E -_08014F34: .4byte gUnknown_030042A4 -_08014F38: .4byte gUnknown_030042A0 -_08014F3C: .4byte 0x02000000 -_08014F40: .4byte 0x00016089 -_08014F44: .4byte gUnknown_081FA71B -_08014F48: .4byte 0x00016088 -_08014F4C: .4byte gUnknown_081FA71F -_08014F50: .4byte gUnknown_02024D1E -_08014F54: - ldr r1, _08014F70 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] -_08014F5A: - ldr r1, _08014F74 @ =gUnknown_02024C10 - ldr r0, _08014F78 @ =gUnknown_081D9E98 - ldr r0, [r0, 0x4] - str r0, [r1] - ldr r1, _08014F7C @ =gUnknown_02024A7F - movs r0, 0xA - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08014F70: .4byte gUnknown_02024D1E -_08014F74: .4byte gUnknown_02024C10 -_08014F78: .4byte gUnknown_081D9E98 -_08014F7C: .4byte gUnknown_02024A7F - thumb_func_end sub_8014EBC - - thumb_func_start bs8_exit_by_flight -bs8_exit_by_flight: @ 8014F80 - push {r4,lr} - ldr r2, _08014FA8 @ =gUnknown_02024C07 - ldr r1, _08014FAC @ =gUnknown_02024A7A - ldr r4, _08014FB0 @ =gUnknown_02024A7E - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x11 - bl PlaySE - ldr r0, _08014FB4 @ =gUnknown_02024A68 - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _08014FB8 @ =gUnknown_02024D26 - movs r0, 0x4 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014FA8: .4byte gUnknown_02024C07 -_08014FAC: .4byte gUnknown_02024A7A -_08014FB0: .4byte gUnknown_02024A7E -_08014FB4: .4byte gUnknown_02024A68 -_08014FB8: .4byte gUnknown_02024D26 - thumb_func_end bs8_exit_by_flight - - thumb_func_start sub_8014FBC -sub_8014FBC: @ 8014FBC - ldr r3, _08015008 @ =gUnknown_02024C07 - ldr r1, _0801500C @ =gUnknown_02024A7A - ldr r0, _08015010 @ =gUnknown_02024A7E - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - strb r2, [r3] - ldr r0, _08015014 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08015018 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _0801501C @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, _08015020 @ =gUnknown_02024A6A - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08015024 @ =gUnknown_02024C10 - ldr r0, _08015028 @ =gUnknown_081D9E98 - ldr r0, [r0, 0xC] - str r0, [r1] - ldr r1, _0801502C @ =gUnknown_02024A7F - movs r0, 0xA - strb r0, [r1] - ldr r1, _08015030 @ =gUnknown_02024A76 - movs r0, 0xC - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_08015008: .4byte gUnknown_02024C07 -_0801500C: .4byte gUnknown_02024A7A -_08015010: .4byte gUnknown_02024A7E -_08015014: .4byte gUnknown_030042A4 -_08015018: .4byte gUnknown_030042A0 -_0801501C: .4byte gUnknown_030041C0 -_08015020: .4byte gUnknown_02024A6A -_08015024: .4byte gUnknown_02024C10 -_08015028: .4byte gUnknown_081D9E98 -_0801502C: .4byte gUnknown_02024A7F -_08015030: .4byte gUnknown_02024A76 - thumb_func_end sub_8014FBC - - thumb_func_start bsB_exit_by_move -bsB_exit_by_move: @ 8015034 - push {lr} - bl sub_80173A4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08015050 - ldr r0, _08015054 @ =0x02000000 - ldr r2, _08015058 @ =0x00016059 - adds r0, r2 - strb r1, [r0] - ldr r1, _0801505C @ =gUnknown_02024A7F - movs r0, 0xC - strb r0, [r1] -_08015050: - pop {r0} - bx r0 - .align 2, 0 -_08015054: .4byte 0x02000000 -_08015058: .4byte 0x00016059 -_0801505C: .4byte gUnknown_02024A7F - thumb_func_end bsB_exit_by_move - - thumb_func_start sub_8015060 -sub_8015060: @ 8015060 - ldr r1, _08015080 @ =gUnknown_02024A7E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015084 @ =gUnknown_02024A7F - ldr r2, _08015088 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - ldr r2, _0801508C @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _08015090 @ =0xf1e892af - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08015080: .4byte gUnknown_02024A7E -_08015084: .4byte gUnknown_02024A7F -_08015088: .4byte gUnknown_02024A76 -_0801508C: .4byte gUnknown_02024C6C -_08015090: .4byte 0xf1e892af - thumb_func_end sub_8015060 - - thumb_func_start bsC_8016D70 -bsC_8016D70: @ 8015094 - push {r4,r5,lr} - ldr r1, _0801510C @ =gUnknown_02024A7E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015110 @ =gUnknown_02024A7F - ldr r2, _08015114 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - bl sub_801377C - ldr r2, _08015118 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0801511C @ =0xf1e892af - ands r0, r1 - str r0, [r2] - ldr r0, _08015120 @ =gUnknown_02024BEC - movs r4, 0 - str r4, [r0] - ldr r1, _08015124 @ =0x02000000 - ldr r2, _08015128 @ =0x00016002 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0801512C @ =0x000160a1 - adds r0, r1, r3 - strb r4, [r0] - ldr r2, _08015130 @ =gUnknown_02024C3C - ldr r5, _08015134 @ =gUnknown_02024C07 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - strh r4, [r0] - ldr r3, _08015138 @ =gUnknown_02024C44 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r3 - strh r4, [r0] - ldr r3, _0801513C @ =0x0001601c - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015140 @ =gUnknown_02024DEC - strh r4, [r0] - subs r3, 0x10 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015144 @ =gUnknown_02024D1E - strb r2, [r0, 0x3] - strb r2, [r0, 0x4] - ldr r3, _08015148 @ =0x00016112 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _0801514C @ =0x00017130 - adds r1, r0 - strb r2, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801510C: .4byte gUnknown_02024A7E -_08015110: .4byte gUnknown_02024A7F -_08015114: .4byte gUnknown_02024A76 -_08015118: .4byte gUnknown_02024C6C -_0801511C: .4byte 0xf1e892af -_08015120: .4byte gUnknown_02024BEC -_08015124: .4byte 0x02000000 -_08015128: .4byte 0x00016002 -_0801512C: .4byte 0x000160a1 -_08015130: .4byte gUnknown_02024C3C -_08015134: .4byte gUnknown_02024C07 -_08015138: .4byte gUnknown_02024C44 -_0801513C: .4byte 0x0001601c -_08015140: .4byte gUnknown_02024DEC -_08015144: .4byte gUnknown_02024D1E -_08015148: .4byte 0x00016112 -_0801514C: .4byte 0x00017130 - thumb_func_end bsC_8016D70 - - thumb_func_start sub_8015150 -sub_8015150: @ 8015150 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - cmp r0, 0xA - bhi _080151C8 - lsls r0, 2 - ldr r1, _08015168 @ =_0801516C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08015168: .4byte _0801516C - .align 2, 0 -_0801516C: - .4byte _08015198 - .4byte _080151A0 - .4byte _080151A8 - .4byte _080151C4 - .4byte _080151C8 - .4byte _080151C4 - .4byte _080151C8 - .4byte _080151B0 - .4byte _080151C8 - .4byte _080151C8 - .4byte _080151B4 -_08015198: - ldr r0, _0801519C @ =gUnknown_02024C08 - b _080151C6 - .align 2, 0 -_0801519C: .4byte gUnknown_02024C08 -_080151A0: - ldr r0, _080151A4 @ =gUnknown_02024C07 - b _080151C6 - .align 2, 0 -_080151A4: .4byte gUnknown_02024C07 -_080151A8: - ldr r0, _080151AC @ =gUnknown_02024C0A - b _080151C6 - .align 2, 0 -_080151AC: .4byte gUnknown_02024C0A -_080151B0: - movs r2, 0 - b _080151C8 -_080151B4: - ldr r0, _080151BC @ =0x02000000 - ldr r1, _080151C0 @ =0x00016003 - adds r0, r1 - b _080151C6 - .align 2, 0 -_080151BC: .4byte 0x02000000 -_080151C0: .4byte 0x00016003 -_080151C4: - ldr r0, _080151D0 @ =gUnknown_02024C09 -_080151C6: - ldrb r2, [r0] -_080151C8: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_080151D0: .4byte gUnknown_02024C09 - thumb_func_end sub_8015150 - - thumb_func_start sub_80151D4 -sub_80151D4: @ 80151D4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _08015204 @ =gBattleMons - movs r4, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - mov r12, r1 - cmp r0, 0x2E - bne _08015286 - movs r3, 0 - adds r0, r5, 0 - muls r0, r4 - adds r1, 0xC - adds r1, r0, r1 - b _08015210 - .align 2, 0 -_08015204: .4byte gBattleMons -_08015208: - adds r1, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - bgt _08015216 -_08015210: - ldrh r0, [r1] - cmp r0, r2 - bne _08015208 -_08015216: - cmp r3, 0x4 - beq _08015286 - movs r7, 0x58 - adds r2, r5, 0 - muls r2, r7 - adds r0, r3, r2 - mov r6, r12 - adds r6, 0x24 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _08015232 - subs r0, 0x1 - strb r0, [r1] -_08015232: - mov r0, r12 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08015286 - ldr r1, _08015290 @ =gUnknown_02024CA8 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _08015294 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08015286 - ldr r4, _08015298 @ =gUnknown_02024A60 - strb r5, [r4] - adds r1, r3, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r7 - adds r0, r6 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08015286: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08015290: .4byte gUnknown_02024CA8 -_08015294: .4byte gBitTable -_08015298: .4byte gUnknown_02024A60 - thumb_func_end sub_80151D4 - - thumb_func_start sub_801529C -sub_801529C: @ 801529C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x4 - mov r8, r0 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - ldr r0, _080153BC @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - bge _08015344 - ldr r1, _080153C0 @ =gBattleMons - movs r0, 0x58 - adds r7, r5, 0 - muls r7, r0 - adds r1, 0xC - mov r10, r1 -_080152D2: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - adds r6, r4, 0x1 - cmp r9, r0 - beq _0801533A - ldr r0, _080153C0 @ =gBattleMons - movs r3, 0x58 - adds r1, r4, 0 - muls r1, r3 - adds r1, r0 - adds r1, 0x20 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0x2E - bne _0801533A - movs r2, 0 - adds r0, r5, 0 - muls r0, r3 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x8F - lsls r1, 1 - cmp r0, r1 - beq _08015322 - adds r3, r1, 0 - mov r0, r10 - adds r1, r7, r0 -_08015314: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _08015322 - ldrh r0, [r1] - cmp r0, r3 - bne _08015314 -_08015322: - cmp r2, 0x4 - beq _0801533A - mov r8, r2 - adds r1, r2, r7 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0801533A - subs r0, 0x1 - strb r0, [r1] -_0801533A: - adds r4, r6, 0 - ldr r0, _080153BC @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _080152D2 -_08015344: - mov r1, r8 - cmp r1, 0x4 - beq _080153AC - ldr r6, _080153C0 @ =gBattleMons - movs r3, 0x58 - adds r0, r5, 0 - muls r0, r3 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080153AC - ldr r1, _080153C4 @ =gUnknown_02024CA8 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _080153C8 @ =gBitTable - mov r4, r8 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080153AC - ldr r4, _080153CC @ =gUnknown_02024A60 - strb r5, [r4] - mov r1, r8 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r3 - adds r2, r6, 0 - adds r2, 0x24 - adds r0, r2 - add r0, r8 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080153AC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080153BC: .4byte gUnknown_02024A68 -_080153C0: .4byte gBattleMons -_080153C4: .4byte gUnknown_02024CA8 -_080153C8: .4byte gBitTable -_080153CC: .4byte gUnknown_02024A60 - thumb_func_end sub_801529C - - thumb_func_start sub_80153D0 -sub_80153D0: @ 80153D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - movs r6, 0x4 - movs r1, 0 - ldr r0, _080154C8 @ =gUnknown_02024A68 - mov r8, r0 - ldrb r0, [r0] - cmp r1, r0 - bge _08015452 - ldr r7, _080154CC @ =gBattleMons - movs r2, 0x58 - mov r12, r2 - mov r5, r12 - muls r5, r3 - adds r0, r7, 0 - adds r0, 0xC - adds r2, r5, r0 - mov r10, r2 - mov r9, r5 -_08015402: - mov r0, r12 - muls r0, r1 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r1, 0x1 - cmp r0, 0x2E - bne _08015448 - cmp r1, r3 - beq _08015448 - movs r2, 0 - mov r1, r10 - ldrh r0, [r1] - cmp r0, 0xC3 - beq _08015432 - ldr r1, _080154D0 @ =gUnknown_02024A8C - add r1, r9 -_08015424: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _08015432 - ldrh r0, [r1] - cmp r0, 0xC3 - bne _08015424 -_08015432: - cmp r2, 0x4 - beq _08015448 - adds r6, r2, 0 - adds r0, r6, r5 - ldr r2, _080154D4 @ =gUnknown_02024AA4 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08015448 - subs r0, 0x1 - strb r0, [r1] -_08015448: - adds r1, r4, 0 - mov r0, r8 - ldrb r0, [r0] - cmp r1, r0 - blt _08015402 -_08015452: - cmp r6, 0x4 - beq _080154B6 - ldr r7, _080154CC @ =gBattleMons - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080154B6 - ldr r1, _080154D8 @ =gUnknown_02024CA8 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _080154DC @ =gBitTable - lsls r0, r6, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080154B6 - ldr r4, _080154E0 @ =gUnknown_02024A60 - strb r3, [r4] - adds r1, r6, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r5 - adds r2, r7, 0 - adds r2, 0x24 - adds r0, r2 - adds r0, r6 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080154B6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080154C8: .4byte gUnknown_02024A68 -_080154CC: .4byte gBattleMons -_080154D0: .4byte gUnknown_02024A8C -_080154D4: .4byte gUnknown_02024AA4 -_080154D8: .4byte gUnknown_02024CA8 -_080154DC: .4byte gBitTable -_080154E0: .4byte gUnknown_02024A60 - thumb_func_end sub_80153D0 - - thumb_func_start unref_sub_80154E4 -unref_sub_80154E4: @ 80154E4 - push {r4,r5,lr} - ldr r0, _08015514 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08015524 - movs r2, 0 - ldr r4, _08015518 @ =gUnknown_02024A68 - ldrb r0, [r4] - cmp r2, r0 - bge _08015542 - ldr r3, _0801551C @ =gUnknown_02024A64 - ldr r5, _08015520 @ =gBitTable -_08015500: - ldm r5!, {r1} - lsls r1, 28 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r2, 0x1 - ldrb r0, [r4] - cmp r2, r0 - blt _08015500 - b _08015542 - .align 2, 0 -_08015514: .4byte gUnknown_020239F8 -_08015518: .4byte gUnknown_02024A68 -_0801551C: .4byte gUnknown_02024A64 -_08015520: .4byte gBitTable -_08015524: - movs r2, 0 - ldr r4, _08015548 @ =gUnknown_02024A68 - ldrb r0, [r4] - cmp r2, r0 - bge _08015542 - ldr r3, _0801554C @ =gUnknown_02024A64 - ldr r5, _08015550 @ =gBitTable -_08015532: - ldr r0, [r3] - ldm r5!, {r1} - orrs r0, r1 - str r0, [r3] - adds r2, 0x1 - ldrb r0, [r4] - cmp r2, r0 - blt _08015532 -_08015542: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08015548: .4byte gUnknown_02024A68 -_0801554C: .4byte gUnknown_02024A64 -_08015550: .4byte gBitTable - thumb_func_end unref_sub_80154E4 - - thumb_func_start dp01_battle_side_mark_buffer_for_execution -dp01_battle_side_mark_buffer_for_execution: @ 8015554 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0801557C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08015588 - ldr r2, _08015580 @ =gUnknown_02024A64 - ldr r1, _08015584 @ =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _08015598 - .align 2, 0 -_0801557C: .4byte gUnknown_020239F8 -_08015580: .4byte gUnknown_02024A64 -_08015584: .4byte gBitTable -_08015588: - ldr r2, _0801559C @ =gUnknown_02024A64 - ldr r1, _080155A0 @ =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] -_08015598: - pop {r0} - bx r0 - .align 2, 0 -_0801559C: .4byte gUnknown_02024A64 -_080155A0: .4byte gBitTable - thumb_func_end dp01_battle_side_mark_buffer_for_execution - - thumb_func_start sub_80155A4 -sub_80155A4: @ 80155A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r5, _080155B8 @ =gUnknown_02024A64 - ldr r1, _080155BC @ =gBitTable - lsls r0, r7, 2 - adds r6, r0, r1 - b _080155CE - .align 2, 0 -_080155B8: .4byte gUnknown_02024A64 -_080155BC: .4byte gBitTable -_080155C0: - lsls r0, r4, 2 - ldr r1, [r6] - lsls r1, r0 - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - adds r4, 0x1 -_080155CE: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - blt _080155C0 - ldr r2, _080155F0 @ =gUnknown_02024A64 - movs r1, 0x80 - lsls r1, 21 - lsls r1, r7 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080155F0: .4byte gUnknown_02024A64 - thumb_func_end sub_80155A4 - - thumb_func_start b_cancel_multi_turn_move_maybe -b_cancel_multi_turn_move_maybe: @ 80155F4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08015644 @ =gBattleMons - movs r2, 0x58 - adds r3, r0, 0 - muls r3, r2 - adds r1, 0x50 - adds r3, r1 - ldr r1, [r3] - ldr r2, _08015648 @ =0xffffefff - ands r1, r2 - ldr r2, _0801564C @ =0xfffff3ff - ands r1, r2 - movs r2, 0x71 - negs r2, r2 - ands r1, r2 - ldr r2, _08015650 @ =0xfffffcff - ands r1, r2 - str r1, [r3] - ldr r1, _08015654 @ =gUnknown_02024C98 - lsls r2, r0, 2 - adds r2, r1 - ldr r1, [r2] - ldr r3, _08015658 @ =0xfffbff3f - ands r1, r3 - str r1, [r2] - ldr r2, _0801565C @ =gUnknown_02024CA8 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x11] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x11] - movs r0, 0 - strb r0, [r1, 0x10] - bx lr - .align 2, 0 -_08015644: .4byte gBattleMons -_08015648: .4byte 0xffffefff -_0801564C: .4byte 0xfffff3ff -_08015650: .4byte 0xfffffcff -_08015654: .4byte gUnknown_02024C98 -_08015658: .4byte 0xfffbff3f -_0801565C: .4byte gUnknown_02024CA8 - thumb_func_end b_cancel_multi_turn_move_maybe - - thumb_func_start sub_8015660 -sub_8015660: @ 8015660 - push {lr} - lsls r0, 24 - ldr r1, _080156AC @ =gUnknown_02024D28 - lsrs r0, 20 - adds r1, r0, r1 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - bne _080156A6 - ldrb r2, [r1, 0x1] - lsls r0, r2, 30 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 26 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 25 - cmp r0, 0 - blt _080156A6 - lsrs r0, r2, 7 - cmp r0, 0 - bne _080156A6 - ldrb r1, [r1, 0x2] - lsls r0, r1, 31 - cmp r0, 0 - bne _080156A6 - lsls r0, r1, 30 - cmp r0, 0 - blt _080156A6 - lsls r0, r1, 29 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 31 - cmp r0, 0 - beq _080156B0 -_080156A6: - movs r0, 0x1 - b _080156B2 - .align 2, 0 -_080156AC: .4byte gUnknown_02024D28 -_080156B0: - movs r0, 0 -_080156B2: - pop {r1} - bx r1 - thumb_func_end sub_8015660 - - thumb_func_start b_std_message -b_std_message: @ 80156B8 - push {r4,lr} - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080156D8 @ =gUnknown_02024A60 - strb r1, [r4] - movs r0, 0 - adds r1, r2, 0 - bl dp01_build_cmdbuf_x10_TODO - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080156D8: .4byte gUnknown_02024A60 - thumb_func_end b_std_message - - thumb_func_start sub_80156DC -sub_80156DC: @ 80156DC - push {r4-r6,lr} - movs r3, 0 - ldr r0, _08015730 @ =gUnknown_02024DEA - strb r3, [r0] - strb r3, [r0, 0x1] - movs r1, 0 - ldr r0, _08015734 @ =gUnknown_02024A68 - ldrb r2, [r0] - adds r6, r0, 0 - cmp r1, r2 - bge _0801570A - ldr r5, _08015738 @ =gBitTable - adds r4, r2, 0 - ldr r2, _0801573C @ =gUnknown_02024A6A -_080156F8: - ldrh r0, [r2] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - orrs r3, r0 - adds r2, 0x4 - adds r1, 0x2 - cmp r1, r4 - blt _080156F8 -_0801570A: - movs r1, 0x1 - adds r2, r6, 0 - ldrb r0, [r2] - cmp r1, r0 - bge _0801572A - ldr r5, _08015730 @ =gUnknown_02024DEA - movs r4, 0x2 -_08015718: - adds r0, r1, 0 - ands r0, r4 - asrs r0, 1 - adds r0, r5 - strb r3, [r0] - adds r1, 0x2 - ldrb r0, [r2] - cmp r1, r0 - blt _08015718 -_0801572A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08015730: .4byte gUnknown_02024DEA -_08015734: .4byte gUnknown_02024A68 -_08015738: .4byte gBitTable -_0801573C: .4byte gUnknown_02024A6A - thumb_func_end sub_80156DC - - thumb_func_start sub_8015740 -sub_8015740: @ 8015740 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080157A4 - movs r0, 0x2 - ands r0, r5 - lsls r0, 24 - lsrs r0, 25 - mov r12, r0 - ldr r1, _080157B0 @ =gUnknown_02024DEA - adds r0, r1 - strb r4, [r0] - adds r5, r4, 0 - ldr r0, _080157B4 @ =gUnknown_02024A68 - ldrb r2, [r0] - mov r8, r1 - cmp r4, r2 - bge _0801579E - ldr r0, _080157B8 @ =gUnknown_02024C0C - ldrb r7, [r0] - ldr r1, _080157BC @ =gBitTable - adds r6, r2, 0 - ldr r3, _080157C0 @ =gUnknown_02024A6A - adds r2, r1, 0 -_08015782: - ldr r0, [r2] - ands r0, r7 - cmp r0, 0 - bne _08015794 - ldrh r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r4, r0 -_08015794: - adds r3, 0x4 - adds r2, 0x8 - adds r5, 0x2 - cmp r5, r6 - blt _08015782 -_0801579E: - mov r0, r12 - add r0, r8 - strb r4, [r0] -_080157A4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080157B0: .4byte gUnknown_02024DEA -_080157B4: .4byte gUnknown_02024A68 -_080157B8: .4byte gUnknown_02024C0C -_080157BC: .4byte gBitTable -_080157C0: .4byte gUnknown_02024A6A - thumb_func_end sub_8015740 - - thumb_func_start sub_80157C4 -sub_80157C4: @ 80157C4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080157E0 - adds r0, r4, 0 - bl sub_8015740 - b _08015816 -_080157E0: - movs r3, 0x1 - ldr r5, _0801581C @ =gUnknown_02024A68 - ldrb r0, [r5] - cmp r3, r0 - bge _08015816 - ldr r0, _08015820 @ =gUnknown_02024DEA - mov r12, r0 - movs r7, 0x2 - ldr r6, _08015824 @ =gBitTable - ldr r1, _08015828 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r4, r0, r1 -_080157F8: - adds r2, r3, 0 - ands r2, r7 - asrs r2, 1 - add r2, r12 - ldrh r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r3, 0x1 - ldrb r0, [r5] - cmp r3, r0 - blt _080157F8 -_08015816: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801581C: .4byte gUnknown_02024A68 -_08015820: .4byte gUnknown_02024DEA -_08015824: .4byte gBitTable -_08015828: .4byte gUnknown_02024A6A - thumb_func_end sub_80157C4 - - thumb_func_start b_movescr_stack_push -b_movescr_stack_push: @ 801582C - push {r4,lr} - ldr r4, _08015848 @ =0x02017110 - adds r3, r4, 0 - adds r3, 0x20 - ldrb r1, [r3] - adds r2, r1, 0x1 - strb r2, [r3] - lsls r1, 24 - lsrs r1, 22 - adds r1, r4 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08015848: .4byte 0x02017110 - thumb_func_end b_movescr_stack_push - - thumb_func_start b_movescr_stack_push_cursor -b_movescr_stack_push_cursor: @ 801584C - ldr r3, _08015868 @ =0x02017110 - adds r2, r3, 0 - adds r2, 0x20 - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 22 - adds r0, r3 - ldr r1, _0801586C @ =gUnknown_02024C10 - ldr r1, [r1] - str r1, [r0] - bx lr - .align 2, 0 -_08015868: .4byte 0x02017110 -_0801586C: .4byte gUnknown_02024C10 - thumb_func_end b_movescr_stack_push_cursor - - thumb_func_start b_movescr_stack_pop_cursor -b_movescr_stack_pop_cursor: @ 8015870 - ldr r3, _0801588C @ =gUnknown_02024C10 - ldr r2, _08015890 @ =0x02017110 - adds r1, r2, 0 - adds r1, 0x20 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - bx lr - .align 2, 0 -_0801588C: .4byte gUnknown_02024C10 -_08015890: .4byte 0x02017110 - thumb_func_end b_movescr_stack_pop_cursor - - thumb_func_start sub_8015894 -sub_8015894: @ 8015894 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r2, _080159AC @ =gBattleMons - ldr r1, _080159B0 @ =gUnknown_02024260 - ldr r5, _080159B4 @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r0, r3, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - muls r1, r3 - adds r0, r1 - adds r2, 0xC - adds r0, r2 - ldrh r4, [r0] - lsls r0, r3, 1 - ldr r2, _080159B8 @ =0x020160e8 - adds r0, r2 - mov r8, r0 - ldr r1, _080159BC @ =gUnknown_02024CA8 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x4] - cmp r0, r4 - bne _080158EE - cmp r4, 0 - beq _080158EE - adds r0, r2, 0 - subs r0, 0xE5 - strb r3, [r0] - ldr r0, _080159C0 @ =gUnknown_02024BE6 - strh r4, [r0] - ldr r1, _080159C4 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080159C8 @ =gUnknown_081D9144 - str r1, [r0] - movs r6, 0x1 -_080158EE: - ldr r1, _080159CC @ =gUnknown_02024C34 - ldr r5, _080159B4 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _0801592A - cmp r4, 0xA5 - beq _0801592A - ldr r1, _080159AC @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bge _0801592A - adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - ldr r1, _080159C4 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080159D0 @ =gUnknown_081D937C - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0801592A: - ldr r2, _080159BC @ =gUnknown_02024CA8 - ldr r3, _080159B4 @ =gUnknown_02024A60 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x13] - lsls r0, 28 - cmp r0, 0 - beq _08015966 - ldr r0, _080159D4 @ =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08015966 - ldr r0, _080159C0 @ =gUnknown_02024BE6 - strh r4, [r0] - ldr r1, _080159C4 @ =gUnknown_02024C1C - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, _080159D8 @ =gUnknown_081D938B - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08015966: - ldr r5, _080159B4 @ =gUnknown_02024A60 - ldrb r0, [r5] - adds r1, r4, 0 - bl sub_8015D5C - lsls r0, 24 - cmp r0, 0 - beq _0801598C - ldr r0, _080159C0 @ =gUnknown_02024BE6 - strh r4, [r0] - ldr r1, _080159C4 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080159DC @ =gUnknown_081D9464 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0801598C: - ldr r1, _080159AC @ =gBattleMons - ldrb r2, [r5] - movs r0, 0x58 - muls r0, r2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _080159E4 - ldr r1, _080159E0 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x7] - b _080159EE - .align 2, 0 -_080159AC: .4byte gBattleMons -_080159B0: .4byte gUnknown_02024260 -_080159B4: .4byte gUnknown_02024A60 -_080159B8: .4byte 0x020160e8 -_080159BC: .4byte gUnknown_02024CA8 -_080159C0: .4byte gUnknown_02024BE6 -_080159C4: .4byte gUnknown_02024C1C -_080159C8: .4byte gUnknown_081D9144 -_080159CC: .4byte gUnknown_02024C34 -_080159D0: .4byte gUnknown_081D937C -_080159D4: .4byte gBattleMoves -_080159D8: .4byte gUnknown_081D938B -_080159DC: .4byte gUnknown_081D9464 -_080159E0: .4byte gEnigmaBerries -_080159E4: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r3, r0, 24 -_080159EE: - ldr r2, _08015A70 @ =gUnknown_02024C0B - ldr r1, _08015A74 @ =gUnknown_02024A60 - ldrb r0, [r1] - strb r0, [r2] - ldr r7, _08015A78 @ =gBattleMons - adds r5, r1, 0 - cmp r3, 0x1D - bne _08015A36 - mov r0, r8 - ldrh r2, [r0] - adds r1, r2, 0 - cmp r1, 0 - beq _08015A36 - ldr r0, _08015A7C @ =0x0000ffff - cmp r1, r0 - beq _08015A36 - cmp r1, r4 - beq _08015A36 - ldr r0, _08015A80 @ =gUnknown_02024BE6 - strh r2, [r0] - ldr r2, _08015A84 @ =gUnknown_02024C04 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - ldrh r0, [r0, 0x2E] - strh r0, [r2] - ldr r1, _08015A88 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08015A8C @ =gUnknown_081D9AC2 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08015A36: - ldr r0, _08015A90 @ =gUnknown_02024260 - ldrb r2, [r5] - lsls r1, r2, 9 - adds r0, 0x2 - adds r1, r0 - movs r0, 0x58 - muls r0, r2 - ldrb r1, [r1] - adds r0, r1 - adds r1, r7, 0 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08015A64 - ldr r1, _08015A88 @ =gUnknown_02024C1C - lsls r0, r2, 2 - adds r0, r1 - ldr r1, _08015A94 @ =gUnknown_081D9369 - str r1, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08015A64: - adds r0, r6, 0 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08015A70: .4byte gUnknown_02024C0B -_08015A74: .4byte gUnknown_02024A60 -_08015A78: .4byte gBattleMons -_08015A7C: .4byte 0x0000ffff -_08015A80: .4byte gUnknown_02024BE6 -_08015A84: .4byte gUnknown_02024C04 -_08015A88: .4byte gUnknown_02024C1C -_08015A8C: .4byte gUnknown_081D9AC2 -_08015A90: .4byte gUnknown_02024260 -_08015A94: .4byte gUnknown_081D9369 - thumb_func_end sub_8015894 - - thumb_func_start sub_8015A98 -sub_8015A98: @ 8015A98 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r3, r2, 24 - lsls r1, r7, 1 - ldr r0, _08015AD8 @ =0x020160e8 - adds r1, r0 - str r1, [sp, 0x4] - ldr r1, _08015ADC @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08015AE4 - ldr r2, _08015AE0 @ =gEnigmaBerries - lsls r1, r7, 3 - subs r0, r1, r7 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - str r0, [sp] - b _08015AF6 - .align 2, 0 -_08015AD8: .4byte 0x020160e8 -_08015ADC: .4byte gBattleMons -_08015AE0: .4byte gEnigmaBerries -_08015AE4: - ldrh r0, [r1, 0x2E] - str r3, [sp, 0x14] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, r7, 3 - ldr r3, [sp, 0x14] -_08015AF6: - ldr r0, _08015C70 @ =gUnknown_02024C0B - strb r7, [r0] - movs r0, 0 - mov r9, r0 - lsls r2, r7, 1 - str r2, [sp, 0xC] - ldr r5, _08015C74 @ =gUnknown_02024CA8 - mov r12, r5 - ldr r0, _08015C78 @ =gBattleMons - movs r2, 0x58 - adds r6, r7, 0 - muls r6, r2 - str r6, [sp, 0x8] - ldr r2, _08015C7C @ =gUnknown_02024A8C - adds r5, r6, r2 - movs r6, 0 - str r6, [sp, 0x10] - mov r10, r0 - subs r0, r1, r7 - lsls r0, 2 - mov r8, r0 - ldr r6, _08015C80 @ =gBitTable -_08015B22: - ldrh r0, [r5] - cmp r0, 0 - bne _08015B38 - movs r0, 0x1 - ands r0, r3 - cmp r0, 0 - beq _08015B38 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015B38: - ldr r0, [sp, 0x8] - add r0, r9 - mov r1, r10 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08015B58 - movs r0, 0x2 - ands r0, r3 - cmp r0, 0 - beq _08015B58 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015B58: - mov r1, r8 - add r1, r12 - ldrh r0, [r5] - ldrh r1, [r1, 0x4] - cmp r0, r1 - bne _08015B74 - movs r0, 0x4 - ands r0, r3 - cmp r0, 0 - beq _08015B74 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015B74: - movs r0, 0x58 - adds r2, r7, 0 - muls r2, r0 - ldr r1, [sp, 0x10] - adds r0, r1, r2 - ldr r1, _08015C7C @ =gUnknown_02024A8C - adds r0, r1 - mov r12, r0 - ldr r1, _08015C84 @ =gUnknown_02024C34 - ldr r0, [sp, 0xC] - adds r1, r0, r1 - str r1, [sp, 0x18] - mov r1, r12 - ldrh r1, [r1] - mov r12, r1 - ldr r0, [sp, 0x18] - ldrh r0, [r0] - cmp r12, r0 - bne _08015BB6 - movs r0, 0x8 - ands r0, r3 - cmp r0, 0 - beq _08015BB6 - mov r0, r10 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bge _08015BB6 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015BB6: - ldr r0, _08015C74 @ =gUnknown_02024CA8 - add r0, r8 - ldrb r0, [r0, 0x13] - lsls r0, 28 - cmp r0, 0 - beq _08015BE4 - movs r0, 0x10 - ands r0, r3 - cmp r0, 0 - beq _08015BE4 - ldr r2, _08015C88 @ =gBattleMoves - ldrh r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08015BE4 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015BE4: - ldrh r1, [r5] - adds r0, r7, 0 - str r3, [sp, 0x14] - bl sub_8015D5C - lsls r0, 24 - ldr r3, [sp, 0x14] - cmp r0, 0 - beq _08015C06 - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _08015C06 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015C06: - ldr r1, _08015C74 @ =gUnknown_02024CA8 - mov r0, r8 - adds r2, r0, r1 - ldrb r0, [r2, 0xE] - lsls r0, 28 - mov r12, r1 - cmp r0, 0 - beq _08015C26 - ldrh r0, [r2, 0x6] - ldrh r1, [r5] - cmp r0, r1 - beq _08015C26 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015C26: - ldr r2, [sp] - cmp r2, 0x1D - bne _08015C48 - ldr r0, [sp, 0x4] - ldrh r1, [r0] - cmp r1, 0 - beq _08015C48 - ldr r0, _08015C8C @ =0x0000ffff - cmp r1, r0 - beq _08015C48 - ldrh r2, [r5] - cmp r1, r2 - beq _08015C48 - ldr r0, [r6] - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_08015C48: - adds r6, 0x4 - adds r5, 0x2 - ldr r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x10] - movs r1, 0x1 - add r9, r1 - mov r2, r9 - cmp r2, 0x3 - bgt _08015C5E - b _08015B22 -_08015C5E: - adds r0, r4, 0 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08015C70: .4byte gUnknown_02024C0B -_08015C74: .4byte gUnknown_02024CA8 -_08015C78: .4byte gBattleMons -_08015C7C: .4byte gUnknown_02024A8C -_08015C80: .4byte gBitTable -_08015C84: .4byte gUnknown_02024C34 -_08015C88: .4byte gBattleMoves -_08015C8C: .4byte 0x0000ffff - thumb_func_end sub_8015A98 - - thumb_func_start sub_8015C90 -sub_8015C90: @ 8015C90 - push {r4-r6,lr} - ldr r5, _08015CFC @ =gUnknown_02024A60 - ldrb r0, [r5] - movs r1, 0 - movs r2, 0xFF - bl sub_8015A98 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bne _08015D38 - ldr r0, _08015D00 @ =gUnknown_02024D28 - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - ldr r1, _08015D04 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08015D08 @ =gUnknown_081D9365 - str r1, [r0] - ldr r0, _08015D0C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08015D14 - ldrb r0, [r5] - bl battle_get_per_side_status - adds r4, r0, 0 - bl Random - movs r1, 0x1 - eors r4, r1 - movs r1, 0x2 - ands r1, r0 - orrs r4, r1 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl battle_get_side_with_given_state - ldr r2, _08015D10 @ =gUnknown_02024260 - ldrb r1, [r5] - lsls r1, 9 - adds r2, 0x3 - adds r1, r2 - b _08015D48 - .align 2, 0 -_08015CFC: .4byte gUnknown_02024A60 -_08015D00: .4byte gUnknown_02024D28 -_08015D04: .4byte gUnknown_02024C1C -_08015D08: .4byte gUnknown_081D9365 -_08015D0C: .4byte gUnknown_020239F8 -_08015D10: .4byte gUnknown_02024260 -_08015D14: - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r2, _08015D34 @ =gUnknown_02024260 - ldrb r1, [r5] - lsls r1, 9 - adds r2, 0x3 - adds r1, r2 - b _08015D48 - .align 2, 0 -_08015D34: .4byte gUnknown_02024260 -_08015D38: - ldr r0, _08015D58 @ =gUnknown_02024D28 - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 -_08015D48: - strb r0, [r1] - movs r0, 0 - cmp r6, 0xF - bne _08015D52 - movs r0, 0x1 -_08015D52: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08015D58: .4byte gUnknown_02024D28 - thumb_func_end sub_8015C90 - - thumb_func_start sub_8015D5C -sub_8015D5C: @ 8015D5C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - movs r6, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - ldr r0, _08015DF0 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r6, r0 - bge _08015DE0 - ldr r7, _08015DF4 @ =gUnknown_02024A8C - mov r8, r7 -_08015D86: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - adds r3, r4, 0x1 - cmp r9, r0 - beq _08015DD6 - ldr r1, _08015DF8 @ =gUnknown_02024C98 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _08015DD6 - movs r2, 0 - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - adds r0, r1, r7 - ldrh r0, [r0] - cmp r5, r0 - beq _08015DCC - mov r4, r8 - adds r0, r1, r4 -_08015DBE: - adds r0, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _08015DD6 - ldrh r1, [r0] - cmp r5, r1 - bne _08015DBE -_08015DCC: - cmp r2, 0x3 - bgt _08015DD6 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_08015DD6: - adds r4, r3, 0 - ldr r0, _08015DF0 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08015D86 -_08015DE0: - adds r0, r6, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08015DF0: .4byte gUnknown_02024A68 -_08015DF4: .4byte gUnknown_02024A8C -_08015DF8: .4byte gUnknown_02024C98 - thumb_func_end sub_8015D5C - - thumb_func_start sub_8015DFC -sub_8015DFC: @ 8015DFC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r9, r0 - ldr r1, _08015EA0 @ =gUnknown_02024C07 - mov r2, r9 - strb r2, [r1] - ldr r0, _08015EA4 @ =gUnknown_02024A68 - ldrb r4, [r0] - adds r6, r1, 0 - mov r10, r0 - ldr r7, _08015EA8 @ =gUnknown_02024C08 - ldr r3, _08015EAC @ =0x02000000 - mov r12, r3 - cmp r9, r4 - bcs _08015E50 - ldr r2, _08015EB0 @ =gUnknown_02024C0C - ldrb r1, [r2] - ldr r5, _08015EB4 @ =gBitTable - ldr r0, [r5] - ands r1, r0 - cmp r1, 0 - beq _08015E50 - adds r3, r6, 0 -_08015E32: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcs _08015E50 - ldrb r0, [r2] - ldrb r1, [r6] - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _08015E32 -_08015E50: - movs r0, 0 - strb r0, [r7] - mov r0, r10 - ldrb r4, [r0] - cmp r4, 0 - beq _08015E8A - ldr r2, _08015EB0 @ =gUnknown_02024C0C - ldrb r1, [r2] - ldr r5, _08015EB4 @ =gBitTable - ldr r0, [r5] - ands r1, r0 - cmp r1, 0 - beq _08015E8A - adds r3, r7, 0 -_08015E6C: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcs _08015E8A - ldrb r0, [r2] - ldrb r1, [r7] - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _08015E6C -_08015E8A: - ldr r0, _08015EB8 @ =0x0001600e - add r0, r12 - ldrb r0, [r0] - cmp r0, 0xA - bls _08015E96 - b _0801652A -_08015E96: - lsls r0, 2 - ldr r1, _08015EBC @ =_08015EC0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08015EA0: .4byte gUnknown_02024C07 -_08015EA4: .4byte gUnknown_02024A68 -_08015EA8: .4byte gUnknown_02024C08 -_08015EAC: .4byte 0x02000000 -_08015EB0: .4byte gUnknown_02024C0C -_08015EB4: .4byte gBitTable -_08015EB8: .4byte 0x0001600e -_08015EBC: .4byte _08015EC0 - .align 2, 0 -_08015EC0: - .4byte _08015EEC - .4byte _08015F74 - .4byte _08016034 - .4byte _080160F4 - .4byte _080161C8 - .4byte _08016274 - .4byte _08016324 - .4byte _080163A8 - .4byte _08016420 - .4byte _08016494 - .4byte _08016520 -_08015EEC: - movs r5, 0 - ldr r1, _08015F0C @ =gUnknown_02024A68 - mov r10, r1 - ldrb r2, [r1] - cmp r5, r2 - bge _08015F06 - ldr r2, _08015F10 @ =gUnknown_02024A7A -_08015EFA: - adds r0, r5, r2 - strb r5, [r0] - adds r5, 0x1 - ldrb r3, [r1] - cmp r5, r3 - blt _08015EFA -_08015F06: - movs r5, 0 - b _08015F54 - .align 2, 0 -_08015F0C: .4byte gUnknown_02024A68 -_08015F10: .4byte gUnknown_02024A7A -_08015F14: - adds r4, r5, 0x1 - adds r6, r4, 0 - ldrb r1, [r1] - cmp r6, r1 - bge _08015F52 - ldr r7, _08016004 @ =gUnknown_02024A7A - ldr r0, _08016008 @ =gUnknown_02024A68 - mov r10, r0 - lsls r1, r5, 24 - mov r8, r1 -_08015F28: - adds r0, r5, r7 - ldrb r0, [r0] - adds r1, r4, r7 - ldrb r1, [r1] - movs r2, 0 - bl b_first_side - lsls r0, 24 - cmp r0, 0 - beq _08015F48 - lsls r1, r4, 24 - lsrs r1, 24 - mov r2, r8 - lsrs r0, r2, 24 - bl sub_8012FBC -_08015F48: - adds r4, 0x1 - ldr r0, _08016008 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08015F28 -_08015F52: - adds r5, r6, 0 -_08015F54: - mov r1, r10 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _08015F14 - ldr r1, _0801600C @ =0x02000000 - ldr r3, _08016010 @ =0x0001600e - adds r2, r1, r3 - ldrb r0, [r2] - adds r0, 0x1 - movs r3, 0 - strb r0, [r2] - ldr r2, _08016014 @ =0x000160fc - adds r0, r1, r2 - strb r3, [r0] - mov r12, r1 -_08015F74: - ldr r1, _08016014 @ =0x000160fc - add r1, r12 - ldrb r0, [r1] - cmp r0, 0x1 - bls _08015F80 - b _08016236 -_08015F80: - ldr r3, _08016018 @ =gUnknown_02024A60 - mov r8, r3 - adds r6, r1, 0 - movs r7, 0 - ldr r5, _0801601C @ =gUnknown_030041C0 -_08015F8A: - ldr r0, _08016020 @ =gUnknown_02024C07 - ldrb r4, [r6] - strb r4, [r0] - mov r0, r8 - strb r4, [r0] - ldr r0, _08016024 @ =gUnknown_02024C7A - lsls r2, r4, 1 - adds r3, r2, r0 - ldrh r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08015FE8 - ldr r0, _08016028 @ =gUnknown_02024C80 - adds r1, r2, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - movs r4, 0xFF - lsls r0, 24 - cmp r0, 0 - bne _08015FE8 - ldrh r0, [r3] - ldr r2, _0801602C @ =0x0000fffe - adds r1, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r0, _08016030 @ =gUnknown_081D9030 - bl b_call_bc_move_exec - movs r0, 0xFD - strb r0, [r5] - movs r0, 0x2 - strb r0, [r5, 0x1] - movs r0, 0x73 - strb r0, [r5, 0x2] - strb r7, [r5, 0x3] - ldrb r0, [r5, 0x4] - orrs r0, r4 - strb r0, [r5, 0x4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08015FE8: - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - ldr r3, _0801600C @ =0x02000000 - mov r12, r3 - mov r1, r9 - cmp r1, 0 - beq _08015FFA - b _08016532 -_08015FFA: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08015F8A - b _08016236 - .align 2, 0 -_08016004: .4byte gUnknown_02024A7A -_08016008: .4byte gUnknown_02024A68 -_0801600C: .4byte 0x02000000 -_08016010: .4byte 0x0001600e -_08016014: .4byte 0x000160fc -_08016018: .4byte gUnknown_02024A60 -_0801601C: .4byte gUnknown_030041C0 -_08016020: .4byte gUnknown_02024C07 -_08016024: .4byte gUnknown_02024C7A -_08016028: .4byte gUnknown_02024C80 -_0801602C: .4byte 0x0000fffe -_08016030: .4byte gUnknown_081D9030 -_08016034: - ldr r1, _080160CC @ =0x000160fc - add r1, r12 - ldrb r0, [r1] - cmp r0, 0x1 - bls _08016040 - b _08016182 -_08016040: - adds r7, r1, 0 - movs r3, 0x2 - mov r10, r3 - movs r0, 0 - mov r8, r0 - ldr r5, _080160D0 @ =gUnknown_030041C0 -_0801604C: - ldr r0, _080160D4 @ =gUnknown_02024C07 - ldrb r4, [r7] - strb r4, [r0] - ldr r1, _080160D8 @ =gUnknown_02024A60 - strb r4, [r1] - ldr r0, _080160DC @ =gUnknown_02024C7A - lsls r2, r4, 1 - adds r3, r2, r0 - ldrh r1, [r3] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080160B0 - ldr r0, _080160E0 @ =gUnknown_02024C80 - adds r1, r2, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - subs r0, 0x1 - strb r0, [r1, 0x1] - movs r6, 0xFF - lsls r0, 24 - cmp r0, 0 - bne _080160B0 - ldrh r0, [r3] - ldr r2, _080160E4 @ =0x0000fffd - adds r1, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r0, _080160E8 @ =gUnknown_081D9030 - bl b_call_bc_move_exec - ldr r0, _080160EC @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - movs r0, 0xFD - strb r0, [r5] - mov r3, r10 - strb r3, [r5, 0x1] - movs r0, 0x71 - strb r0, [r5, 0x2] - mov r0, r8 - strb r0, [r5, 0x3] - ldrb r0, [r5, 0x4] - orrs r0, r6 - strb r0, [r5, 0x4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080160B0: - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - ldr r1, _080160F0 @ =0x02000000 - mov r12, r1 - mov r2, r9 - cmp r2, 0 - beq _080160C2 - b _08016532 -_080160C2: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0801604C - b _08016182 - .align 2, 0 -_080160CC: .4byte 0x000160fc -_080160D0: .4byte gUnknown_030041C0 -_080160D4: .4byte gUnknown_02024C07 -_080160D8: .4byte gUnknown_02024A60 -_080160DC: .4byte gUnknown_02024C7A -_080160E0: .4byte gUnknown_02024C80 -_080160E4: .4byte 0x0000fffd -_080160E8: .4byte gUnknown_081D9030 -_080160EC: .4byte gUnknown_02024D1E -_080160F0: .4byte 0x02000000 -_080160F4: - ldr r1, _0801619C @ =0x000160fc - add r1, r12 - ldrb r0, [r1] - cmp r0, 0x1 - bhi _08016182 - ldr r0, _080161A0 @ =gUnknown_02024A60 - mov r10, r0 - adds r7, r1, 0 - movs r1, 0 - mov r8, r1 - ldr r5, _080161A4 @ =gUnknown_030041C0 -_0801610A: - ldr r0, _080161A8 @ =gUnknown_02024C07 - ldrb r4, [r7] - strb r4, [r0] - mov r2, r10 - strb r4, [r2] - ldr r1, _080161AC @ =gUnknown_02024C80 - lsls r3, r4, 1 - adds r0, r3, r4 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _08016168 - subs r0, 0x1 - strb r0, [r1, 0x2] - movs r6, 0xFF - lsls r0, 24 - cmp r0, 0 - bne _08016168 - ldr r2, _080161B0 @ =gUnknown_02024C7A - adds r2, r3, r2 - ldrh r0, [r2] - ldr r3, _080161B4 @ =0x0000feff - adds r1, r3, 0 - ands r0, r1 - strh r0, [r2] - ldr r0, _080161B8 @ =gUnknown_081D9030 - bl b_call_bc_move_exec - ldr r0, _080161BC @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - movs r0, 0xFD - strb r0, [r5] - movs r0, 0x2 - strb r0, [r5, 0x1] - movs r0, 0x36 - strb r0, [r5, 0x2] - mov r0, r8 - strb r0, [r5, 0x3] - ldrb r0, [r5, 0x4] - orrs r0, r6 - strb r0, [r5, 0x4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016168: - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - ldr r1, _080161C0 @ =0x02000000 - mov r12, r1 - mov r2, r9 - cmp r2, 0 - beq _0801617A - b _08016532 -_0801617A: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0801610A -_08016182: - mov r3, r9 - cmp r3, 0 - beq _0801618A - b _08016532 -_0801618A: - ldr r0, _080161C4 @ =0x0001600e - add r0, r12 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _0801619C @ =0x000160fc - add r0, r12 - strb r3, [r0] - b _0801652A - .align 2, 0 -_0801619C: .4byte 0x000160fc -_080161A0: .4byte gUnknown_02024A60 -_080161A4: .4byte gUnknown_030041C0 -_080161A8: .4byte gUnknown_02024C07 -_080161AC: .4byte gUnknown_02024C80 -_080161B0: .4byte gUnknown_02024C7A -_080161B4: .4byte 0x0000feff -_080161B8: .4byte gUnknown_081D9030 -_080161BC: .4byte gUnknown_02024D1E -_080161C0: .4byte 0x02000000 -_080161C4: .4byte 0x0001600e -_080161C8: - ldr r1, _08016250 @ =0x000160fc - add r1, r12 - ldrb r0, [r1] - cmp r0, 0x1 - bhi _08016236 - ldr r7, _08016254 @ =gUnknown_02024A60 - adds r5, r1, 0 - ldr r6, _08016258 @ =gUnknown_02024C07 -_080161D8: - ldrb r4, [r5] - strb r4, [r6] - strb r4, [r7] - ldr r0, _0801625C @ =gUnknown_02024C7A - lsls r2, r4, 1 - adds r3, r2, r0 - ldrh r1, [r3] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0801621C - ldr r0, _08016260 @ =gUnknown_02024C80 - adds r1, r2, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x7] - subs r0, 0x1 - strb r0, [r1, 0x7] - lsls r0, 24 - cmp r0, 0 - bne _0801621C - ldrh r0, [r3] - ldr r2, _08016264 @ =0x0000ffdf - adds r1, r2, 0 - ands r0, r1 - strh r0, [r3] - ldr r0, _08016268 @ =gUnknown_081D9041 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801621C: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldr r3, _0801626C @ =0x02000000 - mov r12, r3 - mov r1, r9 - cmp r1, 0 - beq _0801622E - b _08016532 -_0801622E: - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080161D8 -_08016236: - mov r2, r9 - cmp r2, 0 - beq _0801623E - b _08016532 -_0801623E: - ldr r0, _08016270 @ =0x0001600e - add r0, r12 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _08016250 @ =0x000160fc - add r0, r12 - strb r2, [r0] - b _0801652A - .align 2, 0 -_08016250: .4byte 0x000160fc -_08016254: .4byte gUnknown_02024A60 -_08016258: .4byte gUnknown_02024C07 -_0801625C: .4byte gUnknown_02024C7A -_08016260: .4byte gUnknown_02024C80 -_08016264: .4byte 0x0000ffdf -_08016268: .4byte gUnknown_081D9041 -_0801626C: .4byte 0x02000000 -_08016270: .4byte 0x0001600e -_08016274: - ldr r2, _080162FC @ =0x000160fc - add r2, r12 - ldr r1, _08016300 @ =gUnknown_02024A68 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bcs _080162E8 - ldr r5, _08016304 @ =gUnknown_02024A60 - adds r4, r2, 0 - ldr r6, _08016308 @ =gUnknown_02024DDC -_08016288: - ldr r1, _0801630C @ =gUnknown_02024A7A - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r5] - ldrb r0, [r5] - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _080162CA - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080162CA - ldr r1, _08016310 @ =gBattleMons - ldrb r2, [r5] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080162CA - ldr r0, _08016314 @ =gUnknown_02024C08 - strb r2, [r0] - ldr r0, _08016318 @ =gUnknown_081D939A - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080162CA: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r3, _0801631C @ =0x02000000 - mov r12, r3 - mov r1, r9 - cmp r1, 0 - beq _080162DC - b _08016532 -_080162DC: - ldr r1, _08016300 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08016288 -_080162E8: - mov r2, r9 - cmp r2, 0 - beq _080162F0 - b _08016532 -_080162F0: - ldr r1, _08016320 @ =0x0001600e - add r1, r12 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0801652A - .align 2, 0 -_080162FC: .4byte 0x000160fc -_08016300: .4byte gUnknown_02024A68 -_08016304: .4byte gUnknown_02024A60 -_08016308: .4byte gUnknown_02024DDC -_0801630C: .4byte gUnknown_02024A7A -_08016310: .4byte gBattleMons -_08016314: .4byte gUnknown_02024C08 -_08016318: .4byte gUnknown_081D939A -_0801631C: .4byte 0x02000000 -_08016320: .4byte 0x0001600e -_08016324: - ldr r3, _0801635C @ =word_2024DB8 - ldrh r2, [r3] - movs r0, 0x7 - ands r0, r2 - cmp r0, 0 - bne _08016332 - b _080164F8 -_08016332: - movs r0, 0x4 - ands r0, r2 - cmp r0, 0 - bne _0801637E - ldr r1, _08016360 @ =gUnknown_02024DBC - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _08016370 - ldr r0, _08016364 @ =0x0000fffe - ands r0, r2 - ldr r1, _08016368 @ =0x0000fffd - ands r0, r1 - strh r0, [r3] - ldr r1, _0801636C @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - b _0801639C - .align 2, 0 -_0801635C: .4byte word_2024DB8 -_08016360: .4byte gUnknown_02024DBC -_08016364: .4byte 0x0000fffe -_08016368: .4byte 0x0000fffd -_0801636C: .4byte gUnknown_02024D1E -_08016370: - movs r0, 0x2 - ands r0, r2 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - bne _0801638A - b _08016398 -_0801637E: - movs r0, 0x2 - ands r0, r2 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _08016398 -_0801638A: - ldr r1, _08016394 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _0801639C - .align 2, 0 -_08016394: .4byte gUnknown_02024D1E -_08016398: - ldr r0, _080163A0 @ =gUnknown_02024D1E - strb r1, [r0, 0x5] -_0801639C: - ldr r0, _080163A4 @ =gUnknown_081D8F62 - b _080164EA - .align 2, 0 -_080163A0: .4byte gUnknown_02024D1E -_080163A4: .4byte gUnknown_081D8F62 -_080163A8: - ldr r3, _080163DC @ =word_2024DB8 - ldrh r2, [r3] - movs r0, 0x18 - ands r0, r2 - cmp r0, 0 - bne _080163B6 - b _080164F8 -_080163B6: - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _080163F0 - ldr r1, _080163E0 @ =gUnknown_02024DBC - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080163F0 - ldr r0, _080163E4 @ =0x0000fff7 - ands r0, r2 - strh r0, [r3] - ldr r1, _080163E8 @ =gUnknown_02024C10 - ldr r0, _080163EC @ =gUnknown_081D8FFF - b _080163F4 - .align 2, 0 -_080163DC: .4byte word_2024DB8 -_080163E0: .4byte gUnknown_02024DBC -_080163E4: .4byte 0x0000fff7 -_080163E8: .4byte gUnknown_02024C10 -_080163EC: .4byte gUnknown_081D8FFF -_080163F0: - ldr r1, _0801640C @ =gUnknown_02024C10 - ldr r0, _08016410 @ =gUnknown_081D8F7D -_080163F4: - str r0, [r1] - adds r3, r1, 0 - ldr r1, _08016414 @ =0x02000000 - ldr r0, _08016418 @ =0x000160a4 - adds r1, r0 - movs r2, 0 - movs r0, 0xC - strb r0, [r1] - ldr r0, _0801641C @ =gUnknown_02024D1E - strb r2, [r0, 0x5] - b _080164E8 - .align 2, 0 -_0801640C: .4byte gUnknown_02024C10 -_08016410: .4byte gUnknown_081D8F7D -_08016414: .4byte 0x02000000 -_08016418: .4byte 0x000160a4 -_0801641C: .4byte gUnknown_02024D1E -_08016420: - ldr r3, _08016450 @ =word_2024DB8 - ldrh r2, [r3] - movs r0, 0x60 - ands r0, r2 - cmp r0, 0 - beq _0801647C - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _08016464 - ldr r1, _08016454 @ =gUnknown_02024DBC - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _08016464 - ldr r0, _08016458 @ =0x0000ffdf - ands r0, r2 - strh r0, [r3] - ldr r1, _0801645C @ =gUnknown_02024C10 - ldr r0, _08016460 @ =gUnknown_081D9016 - b _08016468 - .align 2, 0 -_08016450: .4byte word_2024DB8 -_08016454: .4byte gUnknown_02024DBC -_08016458: .4byte 0x0000ffdf -_0801645C: .4byte gUnknown_02024C10 -_08016460: .4byte gUnknown_081D9016 -_08016464: - ldr r1, _08016484 @ =gUnknown_02024C10 - ldr r0, _08016488 @ =gUnknown_081D9008 -_08016468: - str r0, [r1] - adds r3, r1, 0 - ldr r0, [r3] - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801647C: - ldr r2, _0801648C @ =0x02000000 - ldr r0, _08016490 @ =0x0001600e - adds r1, r2, r0 - b _080164FE - .align 2, 0 -_08016484: .4byte gUnknown_02024C10 -_08016488: .4byte gUnknown_081D9008 -_0801648C: .4byte 0x02000000 -_08016490: .4byte 0x0001600e -_08016494: - ldr r3, _080164BC @ =word_2024DB8 - ldrh r2, [r3] - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _080164F8 - ldr r1, _080164C0 @ =gUnknown_02024DBC - adds r1, 0x28 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _080164D0 - ldr r0, _080164C4 @ =0x0000ff7f - ands r0, r2 - strh r0, [r3] - ldr r1, _080164C8 @ =gUnknown_02024C10 - ldr r0, _080164CC @ =gUnknown_081D8FFF - b _080164D4 - .align 2, 0 -_080164BC: .4byte word_2024DB8 -_080164C0: .4byte gUnknown_02024DBC -_080164C4: .4byte 0x0000ff7f -_080164C8: .4byte gUnknown_02024C10 -_080164CC: .4byte gUnknown_081D8FFF -_080164D0: - ldr r1, _08016508 @ =gUnknown_02024C10 - ldr r0, _0801650C @ =gUnknown_081D8F7D -_080164D4: - str r0, [r1] - adds r3, r1, 0 - ldr r0, _08016510 @ =0x02000000 - ldr r1, _08016514 @ =0x000160a4 - adds r0, r1 - movs r1, 0xD - strb r1, [r0] - ldr r1, _08016518 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] -_080164E8: - ldr r0, [r3] -_080164EA: - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080164F8: - ldr r2, _08016510 @ =0x02000000 - ldr r3, _0801651C @ =0x0001600e - adds r1, r2, r3 -_080164FE: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r12, r2 - b _0801652A - .align 2, 0 -_08016508: .4byte gUnknown_02024C10 -_0801650C: .4byte gUnknown_081D8F7D -_08016510: .4byte 0x02000000 -_08016514: .4byte 0x000160a4 -_08016518: .4byte gUnknown_02024D1E -_0801651C: .4byte 0x0001600e -_08016520: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801652A: - mov r0, r9 - cmp r0, 0 - bne _08016532 - b _08015E8A -_08016532: - ldr r0, _08016550 @ =gUnknown_030042D4 - ldr r1, [r0] - ldr r0, _08016554 @ =sub_8011E8C - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08016550: .4byte gUnknown_030042D4 -_08016554: .4byte sub_8011E8C - thumb_func_end sub_8015DFC - - thumb_func_start sub_8016558 -sub_8016558: @ 8016558 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r9, r0 - ldr r2, _08016578 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0801657C @ =0x01000020 - orrs r0, r1 - str r0, [r2] - bl _08017088 - .align 2, 0 -_08016578: .4byte gUnknown_02024C6C -_0801657C: .4byte 0x01000020 -_08016580: - ldr r3, _080165B4 @ =gUnknown_02024A60 - ldr r4, _080165B8 @ =gUnknown_02024C07 - ldr r1, _080165BC @ =gUnknown_02024A7A - adds r5, r7, r2 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - strb r0, [r3] - ldr r0, _080165C0 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _080165C4 @ =gBitTable - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - adds r6, r3, 0 - cmp r1, 0 - beq _080165C8 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - bl _08017088 - .align 2, 0 -_080165B4: .4byte gUnknown_02024A60 -_080165B8: .4byte gUnknown_02024C07 -_080165BC: .4byte gUnknown_02024A7A -_080165C0: .4byte gUnknown_02024C0C -_080165C4: .4byte gBitTable -_080165C8: - movs r5, 0xB0 - lsls r5, 9 - adds r0, r7, r5 - ldrb r0, [r0] - cmp r0, 0x13 - bls _080165D8 - bl _08017078 -_080165D8: - lsls r0, 2 - ldr r1, _080165E4 @ =_080165E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080165E4: .4byte _080165E8 - .align 2, 0 -_080165E8: - .4byte _08016638 - .4byte _080166A8 - .4byte _080166D8 - .4byte _08016730 - .4byte _080167C8 - .4byte _08016828 - .4byte _080168C0 - .4byte _0801691C - .4byte _0801697C - .4byte _080169DC - .4byte _08016B78 - .4byte _08016CA0 - .4byte _08016D58 - .4byte _08016E30 - .4byte _08016EFC - .4byte _08016F20 - .4byte _08016F6C - .4byte _08016F9C - .4byte _08016704 - .4byte _08017064 -_08016638: - ldr r1, _08016694 @ =gUnknown_02024C98 - ldrb r3, [r6] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _08016686 - ldr r0, _08016698 @ =gBattleMons - movs r1, 0x58 - muls r1, r3 - adds r0, r1, r0 - ldrh r2, [r0, 0x28] - ldrh r7, [r0, 0x2C] - cmp r2, r7 - beq _08016686 - cmp r2, 0 - beq _08016686 - ldr r1, _0801669C @ =gUnknown_02024BEC - ldrh r0, [r0, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08016670 - movs r0, 0x1 - str r0, [r1] -_08016670: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldr r0, _080166A0 @ =gUnknown_081D93D1 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016686: - ldr r1, _080166A4 @ =0x02000000 - movs r0, 0xB0 - lsls r0, 9 - adds r1, r0 - bl _08017072 - .align 2, 0 -_08016694: .4byte gUnknown_02024C98 -_08016698: .4byte gBattleMons -_0801669C: .4byte gUnknown_02024BEC -_080166A0: .4byte gUnknown_081D93D1 -_080166A4: .4byte 0x02000000 -_080166A8: - ldrb r1, [r6] - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _080166C8 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080166C8: - ldr r1, _080166D4 @ =0x02000000 - movs r2, 0xB0 - lsls r2, 9 - adds r1, r2 - bl _08017072 - .align 2, 0 -_080166D4: .4byte 0x02000000 -_080166D8: - ldrb r1, [r6] - movs r0, 0x1 - movs r2, 0 - bl sub_801A02C - lsls r0, 24 - cmp r0, 0 - beq _080166F2 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080166F2: - ldr r1, _08016700 @ =0x02000000 - movs r3, 0xB0 - lsls r3, 9 - adds r1, r3 - bl _08017072 - .align 2, 0 -_08016700: .4byte 0x02000000 -_08016704: - ldrb r1, [r6] - movs r0, 0x1 - movs r2, 0x1 - bl sub_801A02C - lsls r0, 24 - cmp r0, 0 - beq _0801671E - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801671E: - ldr r1, _0801672C @ =0x02000000 - movs r5, 0xB0 - lsls r5, 9 - adds r1, r5 - bl _08017072 - .align 2, 0 -_0801672C: .4byte 0x02000000 -_08016730: - ldr r0, _080167A8 @ =gUnknown_02024C98 - ldrb r2, [r6] - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801679C - ldr r3, _080167AC @ =gBattleMons - movs r5, 0x3 - ands r5, r1 - movs r1, 0x58 - adds r0, r5, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801679C - adds r0, r2, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801679C - ldr r0, _080167B0 @ =gUnknown_02024C08 - strb r5, [r0] - ldr r2, _080167B4 @ =gUnknown_02024BEC - ldrb r0, [r6] - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x2C] - lsrs r0, 3 - str r0, [r2] - cmp r0, 0 - bne _0801677C - movs r0, 0x1 - str r0, [r2] -_0801677C: - ldr r1, _080167B8 @ =0x02000000 - ldr r7, _080167BC @ =0x000160a4 - adds r0, r1, r7 - strb r5, [r0] - ldrb r0, [r4] - ldr r2, _080167C0 @ =0x000160a5 - adds r1, r2 - strb r0, [r1] - ldr r0, _080167C4 @ =gUnknown_081D904B - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801679C: - ldr r1, _080167B8 @ =0x02000000 - movs r3, 0xB0 - lsls r3, 9 - adds r1, r3 - bl _08017072 - .align 2, 0 -_080167A8: .4byte gUnknown_02024C98 -_080167AC: .4byte gBattleMons -_080167B0: .4byte gUnknown_02024C08 -_080167B4: .4byte gUnknown_02024BEC -_080167B8: .4byte 0x02000000 -_080167BC: .4byte 0x000160a4 -_080167C0: .4byte 0x000160a5 -_080167C4: .4byte gUnknown_081D904B -_080167C8: - ldr r2, _08016818 @ =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0801680A - adds r1, r3, r2 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _0801680A - ldr r2, _0801681C @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - lsrs r0, 3 - str r0, [r2] - cmp r0, 0 - bne _080167FA - movs r0, 0x1 - str r0, [r2] -_080167FA: - ldr r0, _08016820 @ =gUnknown_081D9518 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801680A: - ldr r1, _08016824 @ =0x02000000 - movs r5, 0xB0 - lsls r5, 9 - adds r1, r5 - bl _08017072 - .align 2, 0 -_08016818: .4byte gBattleMons -_0801681C: .4byte gUnknown_02024BEC -_08016820: .4byte gUnknown_081D9518 -_08016824: .4byte 0x02000000 -_08016828: - ldr r4, _080168B0 @ =gBattleMons - ldrb r0, [r6] - movs r7, 0x58 - mov r8, r7 - mov r2, r8 - muls r2, r0 - adds r3, r4, 0 - adds r3, 0x4C - adds r0, r2, r3 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080168A2 - adds r1, r2, r4 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _080168A2 - ldr r5, _080168B4 @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - lsrs r0, 4 - str r0, [r5] - cmp r0, 0 - bne _0801685C - movs r0, 0x1 - str r0, [r5] -_0801685C: - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r2, r0, r3 - ldr r1, [r2] - movs r4, 0xF0 - lsls r4, 4 - adds r0, r1, 0 - ands r0, r4 - cmp r0, r4 - beq _0801687C - movs r7, 0x80 - lsls r7, 1 - adds r0, r1, r7 - str r0, [r2] -_0801687C: - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r3 - ldr r0, [r0] - ands r0, r4 - lsrs r0, 8 - ldr r1, [r5] - muls r0, r1 - str r0, [r5] - ldr r0, _080168B8 @ =gUnknown_081D9518 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080168A2: - ldr r1, _080168BC @ =0x02000000 - movs r2, 0xB0 - lsls r2, 9 - adds r1, r2 - bl _08017072 - .align 2, 0 -_080168B0: .4byte gBattleMons -_080168B4: .4byte gUnknown_02024BEC -_080168B8: .4byte gUnknown_081D9518 -_080168BC: .4byte 0x02000000 -_080168C0: - ldr r2, _0801690C @ =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08016902 - adds r1, r3, r2 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08016902 - ldr r2, _08016910 @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - lsrs r0, 3 - str r0, [r2] - cmp r0, 0 - bne _080168F2 - movs r0, 0x1 - str r0, [r2] -_080168F2: - ldr r0, _08016914 @ =gUnknown_081D953A - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016902: - ldr r1, _08016918 @ =0x02000000 - movs r3, 0xB0 - lsls r3, 9 - adds r1, r3 - b _08017072 - .align 2, 0 -_0801690C: .4byte gBattleMons -_08016910: .4byte gUnknown_02024BEC -_08016914: .4byte gUnknown_081D953A -_08016918: .4byte 0x02000000 -_0801691C: - ldr r2, _0801696C @ =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 20 - ands r0, r1 - cmp r0, 0 - beq _08016960 - adds r1, r3, r2 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08016960 - ldr r2, _08016970 @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - lsrs r0, 2 - str r0, [r2] - cmp r0, 0 - bne _08016950 - movs r0, 0x1 - str r0, [r2] -_08016950: - ldr r0, _08016974 @ =gUnknown_081D9613 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016960: - ldr r1, _08016978 @ =0x02000000 - movs r5, 0xB0 - lsls r5, 9 - adds r1, r5 - b _08017072 - .align 2, 0 -_0801696C: .4byte gBattleMons -_08016970: .4byte gUnknown_02024BEC -_08016974: .4byte gUnknown_081D9613 -_08016978: .4byte 0x02000000 -_0801697C: - ldr r2, _080169CC @ =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 21 - ands r0, r1 - cmp r0, 0 - beq _080169C0 - adds r1, r3, r2 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _080169C0 - ldr r2, _080169D0 @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - lsrs r0, 2 - str r0, [r2] - cmp r0, 0 - bne _080169B0 - movs r0, 0x1 - str r0, [r2] -_080169B0: - ldr r0, _080169D4 @ =gUnknown_081D9624 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080169C0: - ldr r1, _080169D8 @ =0x02000000 - movs r7, 0xB0 - lsls r7, 9 - adds r1, r7 - b _08017072 - .align 2, 0 -_080169CC: .4byte gBattleMons -_080169D0: .4byte gUnknown_02024BEC -_080169D4: .4byte gUnknown_081D9624 -_080169D8: .4byte 0x02000000 -_080169DC: - ldr r0, _08016A8C @ =gBattleMons - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x58 - mov r10, r1 - mov r1, r10 - muls r1, r0 - mov r5, r8 - adds r5, 0x50 - adds r3, r1, r5 - ldr r2, [r3] - movs r4, 0xE0 - lsls r4, 8 - adds r0, r2, 0 - ands r0, r4 - cmp r0, 0 - beq _08016AF6 - mov r7, r8 - adds r0, r1, r7 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08016AF6 - ldr r1, _08016A90 @ =0xffffe000 - adds r0, r2, r1 - str r0, [r3] - ldrb r1, [r6] - mov r0, r10 - muls r0, r1 - adds r0, r5 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08016AB4 - ldr r2, _08016A94 @ =0x02000000 - lsls r0, r1, 1 - ldr r4, _08016A98 @ =0x00016004 - adds r0, r4 - adds r0, r2 - ldrb r1, [r0] - ldr r3, _08016A9C @ =0x000160a4 - adds r0, r2, r3 - strb r1, [r0] - ldrb r0, [r6] - lsls r0, 1 - subs r3, 0x9F - adds r0, r3 - adds r0, r2 - ldrb r1, [r0] - ldr r5, _08016AA0 @ =0x000160a5 - adds r0, r2, r5 - strb r1, [r0] - ldr r1, _08016AA4 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r6] - lsls r0, 1 - adds r0, r4 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r6] - lsls r0, 1 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08016AA8 @ =gUnknown_02024C10 - ldr r0, _08016AAC @ =gUnknown_081D95E2 - str r0, [r1] - ldr r2, _08016AB0 @ =gUnknown_02024BEC - ldrb r0, [r6] - mov r7, r10 - muls r7, r0 - adds r0, r7, 0 - add r0, r8 - ldrh r0, [r0, 0x2C] - lsrs r0, 4 - str r0, [r2] - cmp r0, 0 - bne _08016AE6 - movs r0, 0x1 - str r0, [r2] - b _08016AE6 - .align 2, 0 -_08016A8C: .4byte gBattleMons -_08016A90: .4byte 0xffffe000 -_08016A94: .4byte 0x02000000 -_08016A98: .4byte 0x00016004 -_08016A9C: .4byte 0x000160a4 -_08016AA0: .4byte 0x000160a5 -_08016AA4: .4byte gUnknown_030041C0 -_08016AA8: .4byte gUnknown_02024C10 -_08016AAC: .4byte gUnknown_081D95E2 -_08016AB0: .4byte gUnknown_02024BEC -_08016AB4: - ldr r1, _08016B00 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldr r2, _08016B04 @ =0x02000000 - ldrb r0, [r6] - lsls r0, 1 - ldr r3, _08016B08 @ =0x00016004 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r6] - lsls r0, 1 - ldr r5, _08016B0C @ =0x00016005 - adds r0, r5 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08016B10 @ =gUnknown_02024C10 - ldr r0, _08016B14 @ =gUnknown_081D95F4 - str r0, [r1] -_08016AE6: - ldr r0, [r1] - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016AF6: - ldr r1, _08016B04 @ =0x02000000 - movs r7, 0xB0 - lsls r7, 9 - adds r1, r7 - b _08017072 - .align 2, 0 -_08016B00: .4byte gUnknown_030041C0 -_08016B04: .4byte 0x02000000 -_08016B08: .4byte 0x00016004 -_08016B0C: .4byte 0x00016005 -_08016B10: .4byte gUnknown_02024C10 -_08016B14: .4byte gUnknown_081D95F4 -_08016B18: - movs r0, 0x8 - negs r0, r0 - ands r4, r0 - str r4, [r2] - ldrb r0, [r6] - mov r2, r8 - muls r2, r0 - mov r0, r10 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, _08016B68 @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r1, _08016B6C @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r0, _08016B70 @ =gUnknown_081D950F - bl b_call_bc_move_exec - ldr r4, _08016B74 @ =gUnknown_02024A60 - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08016BE0 - .align 2, 0 -_08016B68: .4byte 0xf7ffffff -_08016B6C: .4byte gUnknown_02024D1E -_08016B70: .4byte gUnknown_081D950F -_08016B74: .4byte gUnknown_02024A60 -_08016B78: - ldr r2, _08016BF4 @ =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x70 - ands r1, r0 - adds r7, r2, 0 - cmp r1, 0 - beq _08016C82 - movs r0, 0 - strb r0, [r4] - mov r2, r8 - ldrb r1, [r2] - cmp r1, 0 - beq _08016BE0 - mov r10, r7 - adds r6, r4, 0 - movs r3, 0x58 - mov r8, r3 - movs r5, 0x4C - adds r5, r7 - mov r9, r5 - str r1, [sp, 0x4] - movs r0, 0x7 - mov r12, r0 -_08016BB2: - ldrb r1, [r6] - mov r3, r8 - muls r3, r1 - mov r5, r9 - adds r2, r3, r5 - ldr r4, [r2] - adds r0, r4, 0 - mov r5, r12 - ands r0, r5 - cmp r0, 0 - beq _08016BD2 - adds r0, r3, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - bne _08016B18 -_08016BD2: - adds r0, r1, 0x1 - strb r0, [r6] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp, 0x4] - cmp r0, r1 - bcc _08016BB2 -_08016BE0: - ldr r2, _08016BF8 @ =gUnknown_02024C07 - ldr r1, _08016BFC @ =gUnknown_02024A68 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - beq _08016C00 - movs r2, 0x2 - mov r9, r2 - b _0801707E - .align 2, 0 -_08016BF4: .4byte gBattleMons -_08016BF8: .4byte gUnknown_02024C07 -_08016BFC: .4byte gUnknown_02024A68 -_08016C00: - ldr r5, _08016C38 @ =gUnknown_02024A60 - ldrb r0, [r5] - strb r0, [r2] - ldr r2, _08016C3C @ =gBattleMons - ldrb r0, [r5] - movs r7, 0x58 - adds r1, r0, 0 - muls r1, r7 - adds r6, r2, 0 - adds r6, 0x50 - adds r1, r6 - ldr r0, [r1] - subs r0, 0x10 - str r0, [r1] - ldrb r0, [r5] - bl sub_8015660 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08016C44 - ldrb r0, [r5] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08016C40 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08016C78 - .align 2, 0 -_08016C38: .4byte gUnknown_02024A60 -_08016C3C: .4byte gBattleMons -_08016C40: .4byte gUnknown_02024D1E -_08016C44: - ldrb r3, [r5] - adds r0, r3, 0 - muls r0, r7 - adds r2, r0, r6 - ldr r0, [r2] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - beq _08016C6C - ldr r0, _08016C68 @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - b _08016C78 - .align 2, 0 -_08016C68: .4byte gUnknown_02024D1E -_08016C6C: - ldr r1, _08016C94 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - adds r0, r3, 0 - bl b_cancel_multi_turn_move_maybe -_08016C78: - ldr r0, _08016C98 @ =gUnknown_081D957E - bl b_call_bc_move_exec - movs r3, 0x1 - mov r9, r3 -_08016C82: - mov r5, r9 - cmp r5, 0x2 - bne _08016C8A - b _08017078 -_08016C8A: - ldr r1, _08016C9C @ =0x02000000 - movs r7, 0xB0 - lsls r7, 9 - adds r1, r7 - b _08017072 - .align 2, 0 -_08016C94: .4byte gUnknown_02024D1E -_08016C98: .4byte gUnknown_081D957E -_08016C9C: .4byte 0x02000000 -_08016CA0: - ldr r1, _08016CD8 @ =gBattleMons - ldrb r0, [r6] - movs r7, 0x58 - muls r0, r7 - adds r5, r1, 0 - adds r5, 0x50 - adds r2, r0, r5 - ldr r1, [r2] - movs r4, 0xC0 - lsls r4, 4 - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - beq _08016D3C - ldr r3, _08016CDC @ =0xfffffc00 - adds r0, r1, r3 - str r0, [r2] - ldrb r0, [r6] - bl sub_8015660 - lsls r0, 24 - cmp r0, 0 - beq _08016CE0 - ldrb r0, [r6] - bl b_cancel_multi_turn_move_maybe - b _08016D3C - .align 2, 0 -_08016CD8: .4byte gBattleMons -_08016CDC: .4byte 0xfffffc00 -_08016CE0: - ldrb r0, [r6] - muls r0, r7 - adds r2, r0, r5 - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - bne _08016D3C - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - beq _08016D3C - ldr r0, _08016D48 @ =0xffffefff - ands r1, r0 - str r1, [r2] - ldrb r0, [r6] - muls r0, r7 - adds r0, r5 - ldr r0, [r0] - movs r4, 0x7 - ands r0, r4 - cmp r0, 0 - bne _08016D3C - ldr r1, _08016D4C @ =gUnknown_02024D1E - movs r0, 0x47 - strb r0, [r1, 0x3] - movs r0, 0x1 - movs r1, 0 - bl sub_801E3EC - ldrb r0, [r6] - muls r0, r7 - adds r0, r5 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08016D32 - ldr r0, _08016D50 @ =gUnknown_081D9587 - bl b_call_bc_move_exec -_08016D32: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016D3C: - ldr r1, _08016D54 @ =0x02000000 - movs r5, 0xB0 - lsls r5, 9 - adds r1, r5 - b _08017072 - .align 2, 0 -_08016D48: .4byte 0xffffefff -_08016D4C: .4byte gUnknown_02024D1E -_08016D50: .4byte gUnknown_081D9587 -_08016D54: .4byte 0x02000000 -_08016D58: - ldr r0, _08016DD4 @ =gUnknown_02024CA8 - ldrb r3, [r6] - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r5, r1, r0 - ldrb r1, [r5, 0xB] - lsls r1, 28 - adds r7, r0, 0 - cmp r1, 0 - beq _08016E1E - movs r4, 0 - ldr r2, _08016DD8 @ =gBattleMons - movs r0, 0x58 - adds r1, r3, 0 - muls r1, r0 - adds r2, 0xC - adds r1, r2 - ldrh r0, [r5, 0x4] - ldrh r1, [r1] - cmp r0, r1 - beq _08016DAC - mov r12, r7 - mov r8, r2 - adds r5, r6, 0 - movs r3, 0x58 -_08016D8C: - adds r4, 0x1 - cmp r4, 0x3 - bgt _08016DAC - ldrb r2, [r5] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r12 - lsls r0, r4, 1 - muls r2, r3 - adds r0, r2 - add r0, r8 - ldrh r1, [r1, 0x4] - ldrh r0, [r0] - cmp r1, r0 - bne _08016D8C -_08016DAC: - cmp r4, 0x4 - bne _08016DDC - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - strh r1, [r0, 0x4] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r2, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - b _08016E1E - .align 2, 0 -_08016DD4: .4byte gUnknown_02024CA8 -_08016DD8: .4byte gBattleMons -_08016DDC: - ldrb r0, [r6] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - adds r2, r7 - ldrb r3, [r2, 0xB] - lsls r1, r3, 28 - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0xB] - adds r2, r1, 0 - cmp r2, 0 - bne _08016E1E - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - strh r2, [r0, 0x4] - ldr r0, _08016E28 @ =gUnknown_081D9148 - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016E1E: - ldr r1, _08016E2C @ =0x02000000 - movs r7, 0xB0 - lsls r7, 9 - adds r1, r7 - b _08017072 - .align 2, 0 -_08016E28: .4byte gUnknown_081D9148 -_08016E2C: .4byte 0x02000000 -_08016E30: - ldr r3, _08016E7C @ =gUnknown_02024CA8 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r2, r0, r3 - ldrb r5, [r2, 0xE] - lsls r4, r5, 28 - cmp r4, 0 - beq _08016EE8 - ldr r0, _08016E80 @ =gBattleMons - mov r8, r0 - ldrb r0, [r2, 0xC] - lsls r0, 1 - movs r7, 0x58 - muls r1, r7 - adds r0, r1 - mov r1, r8 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - ldrh r1, [r2, 0x6] - cmp r0, r1 - beq _08016E84 - movs r0, 0 - strh r0, [r2, 0x6] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xE] - b _08016EE8 - .align 2, 0 -_08016E7C: .4byte gUnknown_02024CA8 -_08016E80: .4byte gBattleMons -_08016E84: - lsrs r1, r4, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r4, 0x10 - negs r4, r4 - adds r0, r4, 0 - ands r0, r5 - orrs r0, r1 - strb r0, [r2, 0xE] - cmp r1, 0 - beq _08016EB8 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - muls r1, r7 - ldrb r0, [r0, 0xC] - adds r1, r0 - mov r0, r8 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08016EE8 -_08016EB8: - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x6] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0xE] - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0xE] - ldr r0, _08016EF4 @ =gUnknown_081D914F - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08016EE8: - ldr r1, _08016EF8 @ =0x02000000 - movs r2, 0xB0 - lsls r2, 9 - adds r1, r2 - b _08017072 - .align 2, 0 -_08016EF4: .4byte gUnknown_081D914F -_08016EF8: .4byte 0x02000000 -_08016EFC: - ldr r0, _08016F1C @ =gUnknown_02024C98 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x18 - ands r0, r2 - cmp r0, 0 - beq _08016F14 - adds r0, r2, 0 - subs r0, 0x8 - str r0, [r1] -_08016F14: - movs r1, 0xB0 - lsls r1, 9 - b _08017070 - .align 2, 0 -_08016F1C: .4byte gUnknown_02024C98 -_08016F20: - ldr r2, _08016F60 @ =gUnknown_02024CA8 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r3, r0, r2 - ldrb r2, [r3, 0x12] - lsls r1, r2, 28 - cmp r1, 0 - beq _08016F5A - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x12] - cmp r1, 0 - bne _08016F5A - ldr r0, _08016F64 @ =gUnknown_02024C98 - ldrb r2, [r6] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, _08016F68 @ =0xfffffdff - ands r0, r1 - str r0, [r2] -_08016F5A: - movs r1, 0xB0 - lsls r1, 9 - b _08017070 - .align 2, 0 -_08016F60: .4byte gUnknown_02024CA8 -_08016F64: .4byte gUnknown_02024C98 -_08016F68: .4byte 0xfffffdff -_08016F6C: - ldr r2, _08016F98 @ =gUnknown_02024CA8 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r3, r0, r2 - ldrb r2, [r3, 0x13] - lsls r1, r2, 28 - cmp r1, 0 - beq _08016F92 - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x13] -_08016F92: - movs r1, 0xB0 - lsls r1, 9 - b _08017070 - .align 2, 0 -_08016F98: .4byte gUnknown_02024CA8 -_08016F9C: - ldr r4, _0801704C @ =gUnknown_02024C98 - ldrb r0, [r6] - lsls r0, 2 - adds r2, r0, r4 - ldr r1, [r2] - movs r3, 0xC0 - lsls r3, 5 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _08017042 - ldr r5, _08017050 @ =0xfffff800 - adds r0, r1, r5 - str r0, [r2] - ldrb r2, [r6] - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r3 - cmp r0, 0 - bne _08017042 - ldr r3, _08017054 @ =gBattleMons - movs r5, 0x58 - adds r1, r2, 0 - muls r1, r5 - adds r4, r3, 0 - adds r4, 0x4C - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08017042 - adds r0, r1, r3 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x48 - beq _08017042 - cmp r0, 0xF - beq _08017042 - adds r0, r2, 0 - bl sub_8025A44 - lsls r0, 24 - cmp r0, 0 - bne _08017042 - ldrb r0, [r6] - bl b_cancel_multi_turn_move_maybe - bl Random - ldrb r1, [r6] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08017058 @ =gUnknown_02024C0A - ldrb r0, [r6] - strb r0, [r1] - ldr r0, _0801705C @ =gUnknown_081D964C - bl b_call_bc_move_exec - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08017042: - ldr r1, _08017060 @ =0x02000000 - movs r7, 0xB0 - lsls r7, 9 - adds r1, r7 - b _08017072 - .align 2, 0 -_0801704C: .4byte gUnknown_02024C98 -_08017050: .4byte 0xfffff800 -_08017054: .4byte gBattleMons -_08017058: .4byte gUnknown_02024C0A -_0801705C: .4byte gUnknown_081D964C -_08017060: .4byte 0x02000000 -_08017064: - movs r1, 0xB0 - lsls r1, 9 - add r1, r10 - movs r0, 0 - strb r0, [r1] - ldr r1, _08017084 @ =0x00016001 -_08017070: - add r1, r10 -_08017072: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08017078: - mov r0, r9 - cmp r0, 0 - beq _08017088 -_0801707E: - mov r0, r9 - b _080170B8 - .align 2, 0 -_08017084: .4byte 0x00016001 -_08017088: - ldr r7, _080170C8 @ =0x02000000 - ldr r2, _080170CC @ =0x00016001 - adds r0, r7, r2 - ldr r1, _080170D0 @ =gUnknown_02024A68 - ldrb r0, [r0] - mov r10, r7 - mov r8, r1 - ldrb r1, [r1] - cmp r0, r1 - bcs _080170AC - movs r3, 0xB0 - lsls r3, 9 - adds r0, r7, r3 - ldrb r0, [r0] - cmp r0, 0x13 - bhi _080170AC - bl _08016580 -_080170AC: - ldr r0, _080170D4 @ =gUnknown_02024C6C - ldr r1, [r0] - ldr r2, _080170D8 @ =0xfeffffdf - ands r1, r2 - str r1, [r0] - movs r0, 0 -_080170B8: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080170C8: .4byte 0x02000000 -_080170CC: .4byte 0x00016001 -_080170D0: .4byte gUnknown_02024A68 -_080170D4: .4byte gUnknown_02024C6C -_080170D8: .4byte 0xfeffffdf - thumb_func_end sub_8016558 - - thumb_func_start sub_80170DC -sub_80170DC: @ 80170DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, _08017108 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0801710C @ =0x01000020 - orrs r0, r1 - str r0, [r2] - ldr r1, _08017110 @ =0x02000000 - ldr r3, _08017114 @ =0x00016110 - adds r0, r1, r3 - ldrb r0, [r0] - mov r8, r1 - cmp r0, 0 - beq _08017118 - cmp r0, 0x1 - bne _08017104 - b _08017258 -_08017104: - b _08017380 - .align 2, 0 -_08017108: .4byte gUnknown_02024C6C -_0801710C: .4byte 0x01000020 -_08017110: .4byte 0x02000000 -_08017114: .4byte 0x00016110 -_08017118: - ldr r2, _0801715C @ =0x00016111 - add r2, r8 - ldr r0, _08017160 @ =gUnknown_02024A68 - ldrb r1, [r2] - mov r9, r0 - ldrb r0, [r0] - cmp r1, r0 - bcc _0801712A - b _08017248 -_0801712A: - ldr r4, _08017164 @ =gUnknown_02024A60 - adds r5, r2, 0 - ldr r1, _08017168 @ =gUnknown_02024DBC - mov r12, r1 - movs r2, 0x8 - add r2, r12 - mov r10, r2 - mov r7, r12 - adds r7, 0x18 - ldr r6, _0801716C @ =gUnknown_030041C0 -_0801713E: - ldrb r3, [r5] - strb r3, [r4] - ldr r0, _08017170 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08017174 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08017178 - adds r0, r3, 0x1 - strb r0, [r5] - b _0801723C - .align 2, 0 -_0801715C: .4byte 0x00016111 -_08017160: .4byte gUnknown_02024A68 -_08017164: .4byte gUnknown_02024A60 -_08017168: .4byte gUnknown_02024DBC -_0801716C: .4byte gUnknown_030041C0 -_08017170: .4byte gUnknown_02024C0C -_08017174: .4byte gBitTable -_08017178: - adds r0, r3, 0x1 - strb r0, [r5] - ldr r1, _080171B4 @ =gUnknown_02024DBC - ldrb r0, [r4] - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - beq _0801723C - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _0801723C - ldr r1, _080171B8 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801723C - lsls r0, r2, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, 0xF8 - bne _080171C0 - ldr r0, _080171BC @ =gUnknown_02024D1E - strb r3, [r0, 0x5] - b _080171C6 - .align 2, 0 -_080171B4: .4byte gUnknown_02024DBC -_080171B8: .4byte gBattleMons -_080171BC: .4byte gUnknown_02024D1E -_080171C0: - ldr r1, _08017220 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] -_080171C6: - movs r0, 0xFD - strb r0, [r6] - movs r0, 0x2 - strb r0, [r6, 0x1] - ldrb r0, [r4] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - strb r0, [r6, 0x2] - ldrb r0, [r4] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r6, 0x3] - movs r0, 0xFF - strb r0, [r6, 0x4] - ldr r3, _08017224 @ =gUnknown_02024C08 - ldrb r0, [r4] - strb r0, [r3] - ldr r1, _08017228 @ =gUnknown_02024C07 - mov r0, r12 - adds r0, 0x4 - ldrb r2, [r4] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0801722C @ =gUnknown_02024BEC - ldrb r0, [r4] - lsls r0, 2 - add r0, r10 - ldr r0, [r0] - str r0, [r1] - ldr r2, _08017230 @ =gUnknown_02024D68 - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r1, _08017234 @ =0x0000ffff - str r1, [r0] - ldr r0, _08017238 @ =gUnknown_081D92D7 - b _08017364 - .align 2, 0 -_08017220: .4byte gUnknown_02024D1E -_08017224: .4byte gUnknown_02024C08 -_08017228: .4byte gUnknown_02024C07 -_0801722C: .4byte gUnknown_02024BEC -_08017230: .4byte gUnknown_02024D68 -_08017234: .4byte 0x0000ffff -_08017238: .4byte gUnknown_081D92D7 -_0801723C: - ldrb r0, [r5] - mov r3, r9 - ldrb r3, [r3] - cmp r0, r3 - bcs _08017248 - b _0801713E -_08017248: - ldr r1, _0801729C @ =0x00016110 - add r1, r8 - movs r2, 0 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080172A0 @ =0x00016111 - add r0, r8 - strb r2, [r0] -_08017258: - ldr r2, _080172A0 @ =0x00016111 - add r2, r8 - ldr r0, _080172A4 @ =gUnknown_02024A68 - ldrb r1, [r2] - mov r9, r0 - ldrb r0, [r0] - cmp r1, r0 - bcc _0801726A - b _08017380 -_0801726A: - ldr r5, _080172A8 @ =gUnknown_02024A60 - adds r3, r2, 0 - ldr r4, _080172AC @ =gUnknown_030041C0 - ldr r7, _080172B0 @ =gUnknown_02024CA8 -_08017272: - ldr r2, _080172B4 @ =gUnknown_02024C07 - ldr r1, _080172B8 @ =gUnknown_02024A7A - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r5] - ldr r0, _080172BC @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _080172C0 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080172C4 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - b _08017374 - .align 2, 0 -_0801729C: .4byte 0x00016110 -_080172A0: .4byte 0x00016111 -_080172A4: .4byte gUnknown_02024A68 -_080172A8: .4byte gUnknown_02024A60 -_080172AC: .4byte gUnknown_030041C0 -_080172B0: .4byte gUnknown_02024CA8 -_080172B4: .4byte gUnknown_02024C07 -_080172B8: .4byte gUnknown_02024A7A -_080172BC: .4byte gUnknown_02024C0C -_080172C0: .4byte gBitTable -_080172C4: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldr r6, _08017334 @ =gUnknown_02024C98 - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08017374 - movs r0, 0xFD - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0xF] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r4, 0x4] - movs r0, 0xFF - strb r0, [r4, 0x5] - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r4, r0, r7 - ldrb r3, [r4, 0xF] - lsls r1, r3, 28 - cmp r1, 0 - bne _08017348 - lsls r2, 2 - adds r2, r6 - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - ldr r3, _08017338 @ =gUnknown_02024BEC - ldr r2, _0801733C @ =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - str r0, [r3] - ldr r1, _08017340 @ =gUnknown_02024C10 - ldr r0, _08017344 @ =gUnknown_081D9202 - b _08017360 - .align 2, 0 -_08017334: .4byte gUnknown_02024C98 -_08017338: .4byte gUnknown_02024BEC -_0801733C: .4byte gBattleMons -_08017340: .4byte gUnknown_02024C10 -_08017344: .4byte gUnknown_081D9202 -_08017348: - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r2, 0x10 - negs r2, r2 - adds r0, r2, 0 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0xF] - ldr r1, _0801736C @ =gUnknown_02024C10 - ldr r0, _08017370 @ =gUnknown_081D921D -_08017360: - str r0, [r1] - ldr r0, [r1] -_08017364: - bl b_call_bc_move_exec - movs r0, 0x1 - b _0801738C - .align 2, 0 -_0801736C: .4byte gUnknown_02024C10 -_08017370: .4byte gUnknown_081D921D -_08017374: - ldrb r0, [r3] - mov r1, r9 - ldrb r1, [r1] - cmp r0, r1 - bcs _08017380 - b _08017272 -_08017380: - ldr r2, _0801739C @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _080173A0 @ =0xfeffffdf - ands r0, r1 - str r0, [r2] - movs r0, 0 -_0801738C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801739C: .4byte gUnknown_02024C6C -_080173A0: .4byte 0xfeffffdf - thumb_func_end sub_80170DC - - thumb_func_start sub_80173A4 -sub_80173A4: @ 80173A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _080173C0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080173F8 - b _080176AC - .align 2, 0 -_080173C0: .4byte gUnknown_020239F8 -_080173C4: - ldr r0, _080173D4 @ =gUnknown_081D8C72 - bl b_call_bc_move_exec - ldr r1, _080173D8 @ =0x00016059 - add r1, r10 - movs r0, 0x2 - b _080173E8 - .align 2, 0 -_080173D4: .4byte gUnknown_081D8C72 -_080173D8: .4byte 0x00016059 -_080173DC: - ldr r0, _080173F0 @ =gUnknown_081D8C7B - bl b_call_bc_move_exec - ldr r1, _080173F4 @ =0x00016059 - add r1, r8 - movs r0, 0x5 -_080173E8: - strb r0, [r1] -_080173EA: - movs r0, 0x1 - b _080176AE - .align 2, 0 -_080173F0: .4byte gUnknown_081D8C7B -_080173F4: .4byte 0x00016059 -_080173F8: - ldr r0, _08017414 @ =0x02000000 - mov r9, r0 -_080173FC: - ldr r0, _08017418 @ =0x00016059 - add r0, r9 - ldrb r0, [r0] - cmp r0, 0x7 - bls _08017408 - b _080176A0 -_08017408: - lsls r0, 2 - ldr r1, _0801741C @ =_08017420 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08017414: .4byte 0x02000000 -_08017418: .4byte 0x00016059 -_0801741C: .4byte _08017420 - .align 2, 0 -_08017420: - .4byte _08017440 - .4byte _08017490 - .4byte _08017534 - .4byte _0801757C - .4byte _0801758E - .4byte _080175FC - .4byte _08017638 - .4byte _080176A0 -_08017440: - ldr r1, _08017508 @ =0x0001605a - add r1, r9 - movs r0, 0 - strb r0, [r1] - ldr r1, _0801750C @ =0x00016059 - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r5, 0 - ldr r0, _08017510 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - bge _08017490 - ldr r6, _08017514 @ =gUnknown_02024C0C -_0801745E: - ldrb r0, [r6] - ldr r2, _08017518 @ =gBitTable - lsls r1, r5, 2 - adds r1, r2 - ldr r4, [r1] - ands r0, r4 - cmp r0, 0 - beq _08017486 - lsls r0, r5, 24 - lsrs r0, 24 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - bne _08017486 - ldrb r0, [r6] - bics r0, r4 - strb r0, [r6] -_08017486: - adds r5, 0x1 - ldr r0, _08017510 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - blt _0801745E -_08017490: - ldr r1, _0801751C @ =0x02000000 - mov r9, r1 - ldr r0, _08017520 @ =gUnknown_02024C09 - mov r12, r0 - ldr r1, _08017524 @ =gUnknown_02024C08 - mov r8, r1 - mov r10, r9 - ldr r5, _08017508 @ =0x0001605a - add r5, r9 - ldr r7, _08017528 @ =gBattleMons - ldr r6, _0801752C @ =0x00016113 - add r6, r9 -_080174A8: - ldrb r0, [r5] - mov r1, r8 - strb r0, [r1] - mov r1, r12 - strb r0, [r1] - ldrb r3, [r5] - movs r0, 0x58 - muls r0, r3 - adds r0, r7 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _080174EA - ldrb r2, [r6] - ldr r4, _08017518 @ =gBitTable - ldr r1, _08017530 @ =gUnknown_02024A6A - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _080174EA - ldr r0, _08017514 @ =gUnknown_02024C0C - ldrb r1, [r0] - lsls r0, r3, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080174EA - b _080173C4 -_080174EA: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldr r1, _08017510 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _080174A8 - ldr r1, _0801750C @ =0x00016059 - add r1, r9 - movs r0, 0x3 - strb r0, [r1] - b _080176A0 - .align 2, 0 -_08017508: .4byte 0x0001605a -_0801750C: .4byte 0x00016059 -_08017510: .4byte gUnknown_02024A68 -_08017514: .4byte gUnknown_02024C0C -_08017518: .4byte gBitTable -_0801751C: .4byte 0x02000000 -_08017520: .4byte gUnknown_02024C09 -_08017524: .4byte gUnknown_02024C08 -_08017528: .4byte gBattleMons -_0801752C: .4byte 0x00016113 -_08017530: .4byte gUnknown_02024A6A -_08017534: - ldr r0, _0801755C @ =gUnknown_02024C09 - ldrb r0, [r0] - bl sub_8015740 - ldr r2, _08017560 @ =0x02000000 - ldr r0, _08017564 @ =0x0001605a - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, _08017568 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08017570 - ldr r0, _0801756C @ =0x00016059 - adds r1, r2, r0 - movs r0, 0x3 - b _0801769C - .align 2, 0 -_0801755C: .4byte gUnknown_02024C09 -_08017560: .4byte 0x02000000 -_08017564: .4byte 0x0001605a -_08017568: .4byte gUnknown_02024A68 -_0801756C: .4byte 0x00016059 -_08017570: - ldr r0, _08017578 @ =0x00016059 - adds r1, r2, r0 - movs r0, 0x1 - b _0801769C - .align 2, 0 -_08017578: .4byte 0x00016059 -_0801757C: - ldr r1, _080175D8 @ =0x0001605a - add r1, r9 - movs r0, 0 - strb r0, [r1] - ldr r1, _080175DC @ =0x00016059 - add r1, r9 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0801758E: - ldr r7, _080175E0 @ =gUnknown_02024C09 - ldr r6, _080175E4 @ =gUnknown_02024C08 - ldr r1, _080175E8 @ =0x02000000 - mov r8, r1 - ldr r3, _080175D8 @ =0x0001605a - add r3, r8 - ldr r5, _080175EC @ =gBattleMons - ldr r4, _080175F0 @ =gBitTable -_0801759E: - ldrb r0, [r3] - strb r0, [r6] - strb r0, [r7] - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r0, r5 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _080175C4 - ldr r0, _080175F4 @ =gUnknown_02024C0C - ldrb r1, [r0] - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080175C4 - b _080173DC -_080175C4: - adds r0, r2, 0x1 - strb r0, [r3] - ldr r1, _080175F8 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _0801759E - b _08017612 - .align 2, 0 -_080175D8: .4byte 0x0001605a -_080175DC: .4byte 0x00016059 -_080175E0: .4byte gUnknown_02024C09 -_080175E4: .4byte gUnknown_02024C08 -_080175E8: .4byte 0x02000000 -_080175EC: .4byte gBattleMons -_080175F0: .4byte gBitTable -_080175F4: .4byte gUnknown_02024C0C -_080175F8: .4byte gUnknown_02024A68 -_080175FC: - ldr r0, _0801761C @ =0x0001605a - add r0, r9 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _08017620 @ =gUnknown_02024A68 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r0] - cmp r1, r0 - bne _08017628 -_08017612: - ldr r1, _08017624 @ =0x00016059 - add r1, r9 - movs r0, 0x6 - strb r0, [r1] - b _080176A0 - .align 2, 0 -_0801761C: .4byte 0x0001605a -_08017620: .4byte gUnknown_02024A68 -_08017624: .4byte 0x00016059 -_08017628: - ldr r1, _08017634 @ =0x00016059 - add r1, r9 - movs r0, 0x4 - strb r0, [r1] - b _080176A0 - .align 2, 0 -_08017634: .4byte 0x00016059 -_08017638: - movs r0, 0 - str r0, [sp] - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08017652 - b _080173EA -_08017652: - str r0, [sp] - movs r0, 0xB - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08017668 - b _080173EA -_08017668: - movs r0, 0x1 - movs r1, 0 - movs r2, 0x1 - bl sub_801A02C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0801767C - b _080173EA -_0801767C: - str r0, [sp] - movs r0, 0x6 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08017692 - b _080173EA -_08017692: - ldr r2, _080176C0 @ =0x02000000 - ldr r0, _080176C4 @ =0x00016059 - adds r1, r2, r0 - ldrb r0, [r1] - adds r0, 0x1 -_0801769C: - strb r0, [r1] - mov r9, r2 -_080176A0: - ldr r0, _080176C4 @ =0x00016059 - add r0, r9 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080176AC - b _080173FC -_080176AC: - movs r0, 0 -_080176AE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080176C0: .4byte 0x02000000 -_080176C4: .4byte 0x00016059 - thumb_func_end sub_80173A4 - - thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged -b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8 - push {r4-r6,lr} - movs r3, 0 - ldr r0, _08017708 @ =gUnknown_02024A68 - adds r5, r0, 0 - ldrb r0, [r5] - cmp r3, r0 - bge _08017700 - ldr r4, _0801770C @ =gUnknown_02024C60 - movs r6, 0x80 - lsls r6, 16 - ldr r2, _08017710 @ =gUnknown_02024AD0 -_080176DE: - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r6 - cmp r0, 0 - beq _080176F4 - ldrh r0, [r4] - cmp r0, 0x63 - beq _080176F4 - ldr r0, _08017714 @ =0xff7fffff - ands r1, r0 - str r1, [r2] -_080176F4: - adds r4, 0x2 - adds r2, 0x58 - adds r3, 0x1 - ldrb r0, [r5] - cmp r3, r0 - blt _080176DE -_08017700: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08017708: .4byte gUnknown_02024A68 -_0801770C: .4byte gUnknown_02024C60 -_08017710: .4byte gUnknown_02024AD0 -_08017714: .4byte 0xff7fffff - thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged - - thumb_func_start sub_8017718 -sub_8017718: @ 8017718 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - movs r0, 0 - mov r9, r0 - ldr r1, _08017734 @ =0x02016090 - mov r10, r1 - ldr r2, _08017738 @ =0xfffe9f70 - add r2, r10 - mov r8, r2 - b _08017746 - .align 2, 0 -_08017734: .4byte 0x02016090 -_08017738: .4byte 0xfffe9f70 -_0801773C: - mov r4, r9 - cmp r4, 0 - beq _08017746 - bl _08017FAC -_08017746: - ldr r0, _08017760 @ =0x000160e7 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0xE - bls _08017754 - bl _08017F9E -_08017754: - lsls r0, 2 - ldr r1, _08017764 @ =_08017768 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08017760: .4byte 0x000160e7 -_08017764: .4byte _08017768 - .align 2, 0 -_08017768: - .4byte _080177A4 - .4byte _080177E4 - .4byte _08017920 - .4byte _080179D8 - .4byte _08017A50 - .4byte _08017AC8 - .4byte _08017B1C - .4byte _08017B98 - .4byte _08017C1C - .4byte _08017C60 - .4byte _08017D3C - .4byte _08017DC0 - .4byte _08017E5C - .4byte _08017F48 - .4byte _08017F9E -_080177A4: - ldr r1, _080177D0 @ =gBattleMons - ldr r3, _080177D4 @ =gUnknown_02024C07 - ldrb r2, [r3] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _080177D8 @ =0xfdffffff - ands r0, r1 - str r0, [r2] - ldr r0, _080177DC @ =gUnknown_02024C98 - ldrb r2, [r3] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, _080177E0 @ =0xffffbfff - ands r0, r1 - str r0, [r2] - bl _08017F94 - .align 2, 0 -_080177D0: .4byte gBattleMons -_080177D4: .4byte gUnknown_02024C07 -_080177D8: .4byte 0xfdffffff -_080177DC: .4byte gUnknown_02024C98 -_080177E0: .4byte 0xffffbfff -_080177E4: - ldr r7, _0801784C @ =gBattleMons - ldr r4, _08017850 @ =gUnknown_02024C07 - ldrb r1, [r4] - movs r5, 0x58 - adds r0, r1, 0 - muls r0, r5 - adds r6, r7, 0 - adds r6, 0x4C - adds r0, r6 - ldr r0, [r0] - movs r2, 0x7 - mov r8, r2 - ands r0, r2 - cmp r0, 0 - bne _08017804 - b _08017D90 -_08017804: - adds r0, r1, 0 - bl sub_8025A44 - lsls r0, 24 - cmp r0, 0 - beq _08017864 - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r5 - adds r2, r6 - ldr r0, [r2] - movs r1, 0x8 - negs r1, r1 - ands r0, r1 - str r0, [r2] - ldrb r0, [r4] - adds r2, r0, 0 - muls r2, r5 - adds r0, r7, 0 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - ldr r1, _08017854 @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _08017858 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - ldr r1, _0801785C @ =gUnknown_02024C10 - ldr r0, _08017860 @ =gUnknown_081D94FB - str r0, [r1] - movs r4, 0x2 - mov r9, r4 - b _08017D90 - .align 2, 0 -_0801784C: .4byte gBattleMons -_08017850: .4byte gUnknown_02024C07 -_08017854: .4byte 0xf7ffffff -_08017858: .4byte gUnknown_02024D1E -_0801785C: .4byte gUnknown_02024C10 -_08017860: .4byte gUnknown_081D94FB -_08017864: - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r0, r1, r7 - adds r0, 0x20 - ldrb r0, [r0] - movs r3, 0x1 - cmp r0, 0x30 - bne _08017878 - movs r3, 0x2 -_08017878: - adds r2, r1, r6 - ldr r1, [r2] - adds r0, r1, 0 - mov r7, r8 - ands r0, r7 - cmp r0, r3 - bcs _08017890 - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] - b _08017894 -_08017890: - subs r0, r1, r3 - str r0, [r2] -_08017894: - ldr r2, _080178D8 @ =gBattleMons - ldr r0, _080178DC @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r4, [r0] - movs r0, 0x7 - ands r4, r0 - cmp r4, 0 - beq _080178F0 - ldr r0, _080178E0 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xAD - bne _080178B8 - b _08017D90 -_080178B8: - cmp r0, 0xD6 - bne _080178BE - b _08017D90 -_080178BE: - ldr r1, _080178E4 @ =gUnknown_02024C10 - ldr r0, _080178E8 @ =gUnknown_081D94EE - str r0, [r1] - ldr r2, _080178EC @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r0, 0x2 - mov r9, r0 - b _08017D90 - .align 2, 0 -_080178D8: .4byte gBattleMons -_080178DC: .4byte gUnknown_02024C07 -_080178E0: .4byte gUnknown_02024BE6 -_080178E4: .4byte gUnknown_02024C10 -_080178E8: .4byte gUnknown_081D94EE -_080178EC: .4byte gUnknown_02024C6C -_080178F0: - adds r2, 0x50 - adds r2, r1, r2 - ldr r0, [r2] - ldr r1, _08017910 @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r0, _08017914 @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - ldr r1, _08017918 @ =gUnknown_02024C10 - ldr r0, _0801791C @ =gUnknown_081D94FB - str r0, [r1] - movs r1, 0x2 - b _08017D8E - .align 2, 0 -_08017910: .4byte 0xf7ffffff -_08017914: .4byte gUnknown_02024D1E -_08017918: .4byte gUnknown_02024C10 -_0801791C: .4byte gUnknown_081D94FB -_08017920: - ldr r1, _0801797C @ =gBattleMons - ldr r7, _08017980 @ =gUnknown_02024C07 - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - adds r5, r1, 0 - adds r5, 0x4C - adds r0, r5 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0801793C - b _08017F94 -_0801793C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _080179A8 - ldr r2, _08017984 @ =gBattleMoves - ldr r0, _08017988 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7D - beq _08017998 - ldr r1, _0801798C @ =gUnknown_02024C10 - ldr r0, _08017990 @ =gUnknown_081D9545 - str r0, [r1] - ldr r2, _08017994 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 2 - orrs r0, r1 - str r0, [r2] - b _080179C8 - .align 2, 0 -_0801797C: .4byte gBattleMons -_08017980: .4byte gUnknown_02024C07 -_08017984: .4byte gBattleMoves -_08017988: .4byte gUnknown_02024BE6 -_0801798C: .4byte gUnknown_02024C10 -_08017990: .4byte gUnknown_081D9545 -_08017994: .4byte gUnknown_02024C6C -_08017998: - ldr r2, _080179A0 @ =0x02000000 - ldr r7, _080179A4 @ =0x000160e7 - adds r1, r2, r7 - b _08017D96 - .align 2, 0 -_080179A0: .4byte 0x02000000 -_080179A4: .4byte 0x000160e7 -_080179A8: - ldrb r0, [r7] - adds r2, r0, 0 - muls r2, r6 - adds r2, r5 - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _080179CC @ =gUnknown_02024C10 - ldr r0, _080179D0 @ =gUnknown_081D9552 - str r0, [r1] - ldr r0, _080179D4 @ =gUnknown_02024D1E - strb r4, [r0, 0x5] -_080179C8: - movs r0, 0x2 - b _08017E3C - .align 2, 0 -_080179CC: .4byte gUnknown_02024C10 -_080179D0: .4byte gUnknown_081D9552 -_080179D4: .4byte gUnknown_02024D1E -_080179D8: - ldr r1, _08017A30 @ =gBattleMons - ldr r0, _08017A34 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x36 - beq _080179EE - b _08017D90 -_080179EE: - ldr r0, _08017A38 @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _08017A02 - b _08017D90 -_08017A02: - adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - ldr r2, _08017A3C @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - ldr r1, _08017A40 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] - ldr r1, _08017A44 @ =gUnknown_02024C10 - ldr r0, _08017A48 @ =gUnknown_081D9977 - str r0, [r1] - ldr r2, _08017A4C @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r2, 0x1 - mov r9, r2 - b _08017D90 - .align 2, 0 -_08017A30: .4byte gBattleMons -_08017A34: .4byte gUnknown_02024C07 -_08017A38: .4byte gUnknown_02024CA8 -_08017A3C: .4byte gUnknown_02024C6C -_08017A40: .4byte gUnknown_02024D1E -_08017A44: .4byte gUnknown_02024C10 -_08017A48: .4byte gUnknown_081D9977 -_08017A4C: .4byte gUnknown_02024C68 -_08017A50: - ldr r1, _08017AA4 @ =gBattleMons - ldr r3, _08017AA8 @ =gUnknown_02024C07 - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - beq _08017A9C - ldr r0, _08017AAC @ =0xffbfffff - ands r1, r0 - str r1, [r2] - ldr r2, _08017AB0 @ =gUnknown_02024CA8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x19] - ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017AB4 @ =gUnknown_02024C10 - ldr r0, _08017AB8 @ =gUnknown_081D7956 - str r0, [r1] - ldr r2, _08017ABC @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r7, 0x1 - mov r9, r7 -_08017A9C: - ldr r2, _08017AC0 @ =0x02000000 - ldr r0, _08017AC4 @ =0x000160e7 - adds r1, r2, r0 - b _08017D96 - .align 2, 0 -_08017AA4: .4byte gBattleMons -_08017AA8: .4byte gUnknown_02024C07 -_08017AAC: .4byte 0xffbfffff -_08017AB0: .4byte gUnknown_02024CA8 -_08017AB4: .4byte gUnknown_02024C10 -_08017AB8: .4byte gUnknown_081D7956 -_08017ABC: .4byte gUnknown_02024C6C -_08017AC0: .4byte 0x02000000 -_08017AC4: .4byte 0x000160e7 -_08017AC8: - ldr r1, _08017B08 @ =gBattleMons - ldr r3, _08017B0C @ =gUnknown_02024C07 - ldrb r2, [r3] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08017AE2 - b _08017D90 -_08017AE2: - movs r0, 0x9 - negs r0, r0 - ands r1, r0 - str r1, [r2] - ldr r0, _08017B10 @ =gUnknown_02024D28 - ldrb r2, [r3] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x2] - ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017B14 @ =gUnknown_02024C10 - ldr r0, _08017B18 @ =gUnknown_081D9573 - b _08017D7E - .align 2, 0 -_08017B08: .4byte gBattleMons -_08017B0C: .4byte gUnknown_02024C07 -_08017B10: .4byte gUnknown_02024D28 -_08017B14: .4byte gUnknown_02024C10 -_08017B18: .4byte gUnknown_081D9573 -_08017B1C: - ldr r0, _08017B74 @ =gUnknown_02024CA8 - ldr r3, _08017B78 @ =gUnknown_02024C07 - ldrb r2, [r3] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r0, _08017B7C @ =gUnknown_02024BE6 - ldrh r1, [r1, 0x4] - ldrh r0, [r0] - cmp r1, r0 - beq _08017B36 - b _08017D90 -_08017B36: - cmp r1, 0 - bne _08017B3C - b _08017D90 -_08017B3C: - ldr r0, _08017B80 @ =gUnknown_02024D28 - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x1] - ldr r0, _08017B84 @ =0x02000000 - ldrb r1, [r3] - ldr r7, _08017B88 @ =0x00016003 - adds r0, r7 - strb r1, [r0] - ldrb r0, [r3] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017B8C @ =gUnknown_02024C10 - ldr r0, _08017B90 @ =gUnknown_081D9139 - str r0, [r1] - ldr r2, _08017B94 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r0, 0x1 - mov r9, r0 - b _08017D90 - .align 2, 0 -_08017B74: .4byte gUnknown_02024CA8 -_08017B78: .4byte gUnknown_02024C07 -_08017B7C: .4byte gUnknown_02024BE6 -_08017B80: .4byte gUnknown_02024D28 -_08017B84: .4byte 0x02000000 -_08017B88: .4byte 0x00016003 -_08017B8C: .4byte gUnknown_02024C10 -_08017B90: .4byte gUnknown_081D9139 -_08017B94: .4byte gUnknown_02024C6C -_08017B98: - ldr r0, _08017BF4 @ =gUnknown_02024CA8 - ldr r4, _08017BF8 @ =gUnknown_02024C07 - ldrb r3, [r4] - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x13] - lsls r0, 28 - cmp r0, 0 - beq _08017BEC - ldr r2, _08017BFC @ =gBattleMoves - ldr r0, _08017C00 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08017BEC - ldr r0, _08017C04 @ =gUnknown_02024D28 - lsls r2, r3, 4 - adds r2, r0 - ldrb r0, [r2, 0x2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x2] - ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017C08 @ =gUnknown_02024C10 - ldr r0, _08017C0C @ =gUnknown_081D938F - str r0, [r1] - ldr r2, _08017C10 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r7, 0x1 - mov r9, r7 -_08017BEC: - ldr r2, _08017C14 @ =0x02000000 - ldr r0, _08017C18 @ =0x000160e7 - adds r1, r2, r0 - b _08017D96 - .align 2, 0 -_08017BF4: .4byte gUnknown_02024CA8 -_08017BF8: .4byte gUnknown_02024C07 -_08017BFC: .4byte gBattleMoves -_08017C00: .4byte gUnknown_02024BE6 -_08017C04: .4byte gUnknown_02024D28 -_08017C08: .4byte gUnknown_02024C10 -_08017C0C: .4byte gUnknown_081D938F -_08017C10: .4byte gUnknown_02024C6C -_08017C14: .4byte 0x02000000 -_08017C18: .4byte 0x000160e7 -_08017C1C: - ldr r4, _08017C4C @ =gUnknown_02024C07 - ldrb r0, [r4] - ldr r1, _08017C50 @ =gUnknown_02024BE6 - ldrh r1, [r1] - bl sub_8015D5C - lsls r0, 24 - cmp r0, 0 - bne _08017C30 - b _08017D90 -_08017C30: - ldr r0, _08017C54 @ =gUnknown_02024D28 - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017C58 @ =gUnknown_02024C10 - ldr r0, _08017C5C @ =gUnknown_081D9459 - b _08017D7E - .align 2, 0 -_08017C4C: .4byte gUnknown_02024C07 -_08017C50: .4byte gUnknown_02024BE6 -_08017C54: .4byte gUnknown_02024D28 -_08017C58: .4byte gUnknown_02024C10 -_08017C5C: .4byte gUnknown_081D9459 -_08017C60: - ldr r7, _08017CAC @ =gBattleMons - ldr r5, _08017CB0 @ =gUnknown_02024C07 - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - adds r4, r7, 0 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r3, 0x7 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _08017C7E - b _08017F94 -_08017C7E: - subs r0, r1, 0x1 - str r0, [r2] - ldrb r0, [r5] - muls r0, r6 - adds r0, r4 - ldr r0, [r0] - ands r0, r3 - cmp r0, 0 - beq _08017D24 - bl Random - movs r1, 0x1 - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - beq _08017CB8 - ldr r1, _08017CB4 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] - bl b_movescr_stack_push_cursor - b _08017D02 - .align 2, 0 -_08017CAC: .4byte gBattleMons -_08017CB0: .4byte gUnknown_02024C07 -_08017CB4: .4byte gUnknown_02024D1E -_08017CB8: - ldr r0, _08017D08 @ =gUnknown_02024D1E - movs r4, 0x1 - strb r1, [r0, 0x5] - ldr r1, _08017D0C @ =gUnknown_02024C08 - ldrb r0, [r5] - strb r0, [r1] - ldrb r0, [r5] - adds r1, r0, 0 - muls r1, r6 - adds r1, r7 - movs r0, 0x28 - str r0, [sp] - str r2, [sp, 0x4] - ldrb r0, [r5] - str r0, [sp, 0x8] - ldrb r0, [r5] - str r0, [sp, 0xC] - adds r0, r1, 0 - movs r2, 0x1 - movs r3, 0 - bl CalculateBaseDamage - ldr r1, _08017D10 @ =gUnknown_02024BEC - str r0, [r1] - ldr r0, _08017D14 @ =gUnknown_02024D28 - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - orrs r0, r4 - strb r0, [r1, 0x1] - ldr r2, _08017D18 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] -_08017D02: - ldr r1, _08017D1C @ =gUnknown_02024C10 - ldr r0, _08017D20 @ =gUnknown_081D9595 - b _08017D2C - .align 2, 0 -_08017D08: .4byte gUnknown_02024D1E -_08017D0C: .4byte gUnknown_02024C08 -_08017D10: .4byte gUnknown_02024BEC -_08017D14: .4byte gUnknown_02024D28 -_08017D18: .4byte gUnknown_02024C6C -_08017D1C: .4byte gUnknown_02024C10 -_08017D20: .4byte gUnknown_081D9595 -_08017D24: - bl b_movescr_stack_push_cursor - ldr r1, _08017D34 @ =gUnknown_02024C10 - ldr r0, _08017D38 @ =gUnknown_081D95D4 -_08017D2C: - str r0, [r1] - movs r7, 0x1 - b _08017F8E - .align 2, 0 -_08017D34: .4byte gUnknown_02024C10 -_08017D38: .4byte gUnknown_081D95D4 -_08017D3C: - ldr r1, _08017DA0 @ =gBattleMons - ldr r4, _08017DA4 @ =gUnknown_02024C07 - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08017D90 - bl Random - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - cmp r1, 0 - bne _08017D90 - ldr r0, _08017DA8 @ =gUnknown_02024D28 - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08017DAC @ =gUnknown_02024C10 - ldr r0, _08017DB0 @ =gUnknown_081D9566 -_08017D7E: - str r0, [r1] - ldr r2, _08017DB4 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - movs r1, 0x1 -_08017D8E: - mov r9, r1 -_08017D90: - ldr r2, _08017DB8 @ =0x02000000 - ldr r4, _08017DBC @ =0x000160e7 - adds r1, r2, r4 -_08017D96: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r8, r2 - b _08017F9E - .align 2, 0 -_08017DA0: .4byte gBattleMons -_08017DA4: .4byte gUnknown_02024C07 -_08017DA8: .4byte gUnknown_02024D28 -_08017DAC: .4byte gUnknown_02024C10 -_08017DB0: .4byte gUnknown_081D9566 -_08017DB4: .4byte gUnknown_02024C6C -_08017DB8: .4byte 0x02000000 -_08017DBC: .4byte 0x000160e7 -_08017DC0: - ldr r1, _08017DFC @ =gBattleMons - ldr r4, _08017E00 @ =gUnknown_02024C07 - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0xF0 - lsls r0, 12 - ands r1, r0 - cmp r1, 0 - bne _08017DDC - b _08017F94 -_08017DDC: - lsrs r0, r1, 16 - bl sub_804114C - ldr r1, _08017E04 @ =0x02000000 - ldr r7, _08017E08 @ =0x00016003 - adds r1, r7 - strb r0, [r1] - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08017E0C - bl b_movescr_stack_push_cursor - b _08017E34 - .align 2, 0 -_08017DFC: .4byte gBattleMons -_08017E00: .4byte gUnknown_02024C07 -_08017E04: .4byte 0x02000000 -_08017E08: .4byte 0x00016003 -_08017E0C: - ldr r0, _08017E44 @ =gUnknown_081D9608 - bl b_movescr_stack_push - ldr r2, _08017E48 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 - orrs r0, r1 - str r0, [r2] - ldr r0, _08017E4C @ =gUnknown_02024D28 - ldrb r2, [r4] - lsls r2, 4 - adds r2, r0 - ldrb r0, [r2, 0x1] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2, 0x1] - ldrb r0, [r4] - bl b_cancel_multi_turn_move_maybe -_08017E34: - ldr r1, _08017E50 @ =gUnknown_02024C10 - ldr r0, _08017E54 @ =gUnknown_081D95FB - str r0, [r1] - movs r0, 0x1 -_08017E3C: - mov r9, r0 - ldr r1, _08017E58 @ =0x02000000 - mov r8, r1 - b _08017F94 - .align 2, 0 -_08017E44: .4byte gUnknown_081D9608 -_08017E48: .4byte gUnknown_02024C6C -_08017E4C: .4byte gUnknown_02024D28 -_08017E50: .4byte gUnknown_02024C10 -_08017E54: .4byte gUnknown_081D95FB -_08017E58: .4byte 0x02000000 -_08017E5C: - ldr r1, _08017E98 @ =gBattleMons - ldr r6, _08017E9C @ =gUnknown_02024C07 - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r1, 0x50 - adds r3, r0, r1 - ldr r2, [r3] - movs r4, 0xC0 - lsls r4, 2 - adds r0, r2, 0 - ands r0, r4 - cmp r0, 0 - bne _08017E7A - b _08017F94 -_08017E7A: - ldr r7, _08017EA0 @ =0xffffff00 - adds r0, r2, r7 - str r0, [r3] - ldrb r0, [r6] - muls r0, r5 - adds r1, r0, r1 - ldr r2, [r1] - adds r0, r2, 0 - ands r0, r4 - cmp r0, 0 - beq _08017EAC - ldr r1, _08017EA4 @ =gUnknown_02024C10 - ldr r0, _08017EA8 @ =gUnknown_081D90A7 - b _08017F38 - .align 2, 0 -_08017E98: .4byte gBattleMons -_08017E9C: .4byte gUnknown_02024C07 -_08017EA0: .4byte 0xffffff00 -_08017EA4: .4byte gUnknown_02024C10 -_08017EA8: .4byte gUnknown_081D90A7 -_08017EAC: - ldr r0, _08017F0C @ =0xffffefff - ands r2, r0 - str r2, [r1] - ldr r2, _08017F10 @ =gUnknown_02024BF4 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0 - beq _08017F34 - ldr r1, _08017F14 @ =gUnknown_02024BE6 - movs r0, 0x75 - strh r0, [r1] - ldrb r0, [r6] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - lsls r0, 1 - mov r1, r10 - str r0, [r1] - ldr r4, _08017F18 @ =gUnknown_02024C08 - ldr r1, _08017F1C @ =gUnknown_02024C74 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08017F20 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08017F24 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08017EFE - movs r0, 0x75 - movs r1, 0x1 - bl sub_801B5C0 - strb r0, [r4] -_08017EFE: - ldr r1, _08017F28 @ =gUnknown_02024C10 - ldr r0, _08017F2C @ =gUnknown_081D90B2 - str r0, [r1] - ldr r2, _08017F30 @ =0x02000000 - mov r8, r2 - b _08017F3A - .align 2, 0 -_08017F0C: .4byte 0xffffefff -_08017F10: .4byte gUnknown_02024BF4 -_08017F14: .4byte gUnknown_02024BE6 -_08017F18: .4byte gUnknown_02024C08 -_08017F1C: .4byte gUnknown_02024C74 -_08017F20: .4byte gUnknown_02024C0C -_08017F24: .4byte gBitTable -_08017F28: .4byte gUnknown_02024C10 -_08017F2C: .4byte gUnknown_081D90B2 -_08017F30: .4byte 0x02000000 -_08017F34: - ldr r1, _08017F40 @ =gUnknown_02024C10 - ldr r0, _08017F44 @ =gUnknown_081D90F1 -_08017F38: - str r0, [r1] -_08017F3A: - movs r4, 0x1 - mov r9, r4 - b _08017F94 - .align 2, 0 -_08017F40: .4byte gUnknown_02024C10 -_08017F44: .4byte gUnknown_081D90F1 -_08017F48: - ldr r1, _08017FEC @ =gBattleMons - ldr r0, _08017FF0 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r4, r0, r1 - ldr r3, [r4] - movs r0, 0x20 - ands r0, r3 - cmp r0, 0 - beq _08017F94 - ldr r2, _08017FF4 @ =gBattleMoves - ldr r0, _08017FF8 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7D - bne _08017F8C - movs r0, 0x21 - negs r0, r0 - ands r3, r0 - str r3, [r4] - bl b_movescr_stack_push_cursor - ldr r1, _08017FFC @ =gUnknown_02024C10 - ldr r0, _08018000 @ =gUnknown_081D9552 - str r0, [r1] - ldr r1, _08018004 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] -_08017F8C: - movs r7, 0x2 -_08017F8E: - mov r9, r7 - ldr r0, _08018008 @ =0x02000000 - mov r8, r0 -_08017F94: - ldr r1, _0801800C @ =0x000160e7 - add r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08017F9E: - ldr r0, _0801800C @ =0x000160e7 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0xE - beq _08017FAC - bl _0801773C -_08017FAC: - mov r1, r9 - cmp r1, 0x2 - bne _08017FD8 - ldr r4, _08018010 @ =gUnknown_02024A60 - ldr r0, _08017FF0 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - ldr r1, _08018014 @ =gUnknown_02024ACC - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08017FD8: - mov r0, r9 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08017FEC: .4byte gBattleMons -_08017FF0: .4byte gUnknown_02024C07 -_08017FF4: .4byte gBattleMoves -_08017FF8: .4byte gUnknown_02024BE6 -_08017FFC: .4byte gUnknown_02024C10 -_08018000: .4byte gUnknown_081D9552 -_08018004: .4byte gUnknown_02024D1E -_08018008: .4byte 0x02000000 -_0801800C: .4byte 0x000160e7 -_08018010: .4byte gUnknown_02024A60 -_08018014: .4byte gUnknown_02024ACC - thumb_func_end sub_8017718 - - thumb_func_start sub_8018018 -sub_8018018: @ 8018018 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r4, r0, 24 - adds r3, r4, 0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - ldr r0, _08018044 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08018048 - movs r0, 0 - b _08018198 - .align 2, 0 -_08018044: .4byte gUnknown_020239F8 -_08018048: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080180D4 - adds r0, r4, 0 - bl sub_803FC34 - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _080180CC @ =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _0801806E - ldr r2, _080180D0 @ =gPlayerParty - mov r8, r2 -_0801806E: - adds r0, r7, 0 - bl sub_803FBFC - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 1 - adds r5, r0, r6 - adds r0, r5, 0x3 - cmp r5, r0 - bge _080180BA - adds r7, r0, 0 -_08018084: - 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 _080180B4 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080180B4 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _080180BA -_080180B4: - adds r5, 0x1 - cmp r5, r7 - blt _08018084 -_080180BA: - movs r1, 0 - lsls r0, r6, 1 - adds r0, r6 - adds r0, 0x3 - cmp r5, r0 - bne _080180C8 - movs r1, 0x1 -_080180C8: - adds r0, r1, 0 - b _08018198 - .align 2, 0 -_080180CC: .4byte gEnemyParty -_080180D0: .4byte gPlayerParty -_080180D4: - adds r0, r3, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08018100 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - ldr r2, _080180FC @ =gEnemyParty - mov r8, r2 - b _08018118 - .align 2, 0 -_080180FC: .4byte gEnemyParty -_08018100: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _080181A8 @ =gPlayerParty - mov r8, r0 -_08018118: - mov r1, r10 - cmp r1, 0x6 - bne _08018128 - ldr r1, _080181AC @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrb r0, [r0] - mov r10, r0 -_08018128: - mov r2, r9 - cmp r2, 0x6 - bne _08018138 - ldr r1, _080181AC @ =gUnknown_02024A6A - lsls r0, r6, 1 - adds r0, r1 - ldrb r0, [r0] - mov r9, r0 -_08018138: - movs r5, 0 -_0801813A: - 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 _0801818A - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0801818A - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0801818A - cmp r5, r10 - beq _0801818A - cmp r5, r9 - beq _0801818A - ldr r1, _080181B0 @ =0x02000000 - ldr r2, _080181B4 @ =0x00016068 - adds r0, r7, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r5, r0 - beq _0801818A - adds r0, r6, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r5, r0 - bne _08018190 -_0801818A: - adds r5, 0x1 - cmp r5, 0x5 - ble _0801813A -_08018190: - movs r0, 0 - cmp r5, 0x6 - bne _08018198 - movs r0, 0x1 -_08018198: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080181A8: .4byte gPlayerParty -_080181AC: .4byte gUnknown_02024A6A -_080181B0: .4byte 0x02000000 -_080181B4: .4byte 0x00016068 - thumb_func_end sub_8018018 - - thumb_func_start castform_switch -castform_switch: @ 80181B8 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r6, r0, 24 - movs r5, 0 - ldr r1, _08018228 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r4, r0, r1 - ldrh r1, [r4] - ldr r0, _0801822C @ =SPECIES_CASTFORM - cmp r1, r0 - bne _0801825C - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3B - bne _0801825C - ldrh r0, [r4, 0x28] - cmp r0, 0 - beq _0801825C - str r5, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0801820A - str r5, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08018230 -_0801820A: - adds r2, r4, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0 - beq _08018230 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0 - beq _08018230 - strb r5, [r2] - strb r5, [r1] - movs r0, 0x1 - b _08018314 - .align 2, 0 -_08018228: .4byte gBattleMons -_0801822C: .4byte SPECIES_CASTFORM -_08018230: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0801825C - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08018260 -_0801825C: - movs r0, 0 - b _08018314 -_08018260: - ldr r1, _0801831C @ =word_2024DB8 - ldrh r0, [r1] - movs r2, 0xE7 - ands r2, r0 - adds r4, r1, 0 - cmp r2, 0 - bne _0801828E - ldr r1, _08018320 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r3, r1, 0 - adds r3, 0x21 - ldrb r0, [r3] - cmp r0, 0 - beq _0801828E - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0 - beq _0801828E - strb r2, [r3] - strb r2, [r1] - movs r5, 0x1 -_0801828E: - ldrh r1, [r4] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080182BA - ldr r1, _08018320 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xA - beq _080182BA - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xA - beq _080182BA - movs r0, 0xA - strb r0, [r2] - strb r0, [r1] - movs r5, 0x2 -_080182BA: - ldrh r1, [r4] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080182E6 - ldr r1, _08018320 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xB - beq _080182E6 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xB - beq _080182E6 - movs r0, 0xB - strb r0, [r2] - strb r0, [r1] - movs r5, 0x3 -_080182E6: - ldrh r1, [r4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08018312 - ldr r1, _08018320 @ =gBattleMons - movs r0, 0x58 - muls r0, r6 - adds r1, r0, r1 - adds r2, r1, 0 - adds r2, 0x21 - ldrb r0, [r2] - cmp r0, 0xF - beq _08018312 - adds r1, 0x22 - ldrb r0, [r1] - cmp r0, 0xF - beq _08018312 - movs r0, 0xF - strb r0, [r2] - strb r0, [r1] - movs r5, 0x4 -_08018312: - adds r0, r5, 0 -_08018314: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0801831C: .4byte word_2024DB8 -_08018320: .4byte gBattleMons - thumb_func_end castform_switch - - thumb_func_start sub_8018324 -sub_8018324: @ 8018324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - ldr r4, [sp, 0x48] - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0 - mov r9, r0 - ldr r5, _08018380 @ =gUnknown_02024C07 - ldr r1, _08018384 @ =gUnknown_02024A68 - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - bcc _08018360 - mov r1, r10 - strb r1, [r5] -_08018360: - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08018390 - ldr r1, _08018388 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0801838C @ =gPlayerParty - b _080183A0 - .align 2, 0 -_08018380: .4byte gUnknown_02024C07 -_08018384: .4byte gUnknown_02024A68 -_08018388: .4byte gUnknown_02024A6A -_0801838C: .4byte gPlayerParty -_08018390: - ldr r1, _080183D0 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080183D4 @ =gEnemyParty -_080183A0: - adds r7, r1, r0 - ldr r5, _080183D8 @ =gUnknown_02024C08 - ldr r1, _080183DC @ =gUnknown_02024A68 - ldrb r0, [r5] - ldrb r1, [r1] - cmp r0, r1 - bcc _080183B2 - mov r2, r10 - strb r2, [r5] -_080183B2: - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080183E4 - ldr r1, _080183D0 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080183E0 @ =gPlayerParty - b _080183F4 - .align 2, 0 -_080183D0: .4byte gUnknown_02024A6A -_080183D4: .4byte gEnemyParty -_080183D8: .4byte gUnknown_02024C08 -_080183DC: .4byte gUnknown_02024A68 -_080183E0: .4byte gPlayerParty -_080183E4: - ldr r1, _08018444 @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08018448 @ =gEnemyParty -_080183F4: - adds r5, r1, r0 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x10] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x14] - ldr r0, _0801844C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08018436 - bl _08019F92 -_08018436: - mov r3, r8 - cmp r3, 0 - beq _08018454 - ldr r0, _08018450 @ =byte_2024C06 - strb r3, [r0] - mov r8, r0 - b _0801846A - .align 2, 0 -_08018444: .4byte gUnknown_02024A6A -_08018448: .4byte gEnemyParty -_0801844C: .4byte gUnknown_020239F8 -_08018450: .4byte byte_2024C06 -_08018454: - ldr r2, _08018474 @ =byte_2024C06 - ldr r1, _08018478 @ =gBattleMons - movs r0, 0x58 - mov r5, r10 - muls r5, r0 - adds r0, r5, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2] - mov r8, r2 -_0801846A: - cmp r4, 0 - beq _0801847C - adds r3, r4, 0 - b _08018480 - .align 2, 0 -_08018474: .4byte byte_2024C06 -_08018478: .4byte gBattleMons -_0801847C: - ldr r0, _08018494 @ =gUnknown_02024BE6 - ldrh r3, [r0] -_08018480: - ldr r1, _08018498 @ =0x02000000 - ldr r2, _0801849C @ =0x0001601c - adds r0, r1, r2 - ldrb r0, [r0] - adds r7, r1, 0 - cmp r0, 0 - beq _080184A0 - movs r4, 0x3F - ands r4, r0 - b _080184AC - .align 2, 0 -_08018494: .4byte gUnknown_02024BE6 -_08018498: .4byte 0x02000000 -_0801849C: .4byte 0x0001601c -_080184A0: - ldr r1, _080184C0 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x2] -_080184AC: - ldr r5, [sp, 0x4] - cmp r5, 0x13 - bls _080184B6 - bl _08019F76 -_080184B6: - lsls r0, r5, 2 - ldr r1, _080184C4 @ =_080184C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080184C0: .4byte gBattleMoves -_080184C4: .4byte _080184C8 - .align 2, 0 -_080184C8: - .4byte _08018518 - .4byte _08018814 - .4byte _08018A40 - .4byte _08018AD8 - .4byte _08018CF0 - .4byte _08019448 - .4byte _080197B4 - .4byte _08019804 - .4byte _08019880 - .4byte _080198FC - .4byte _08019B1C - .4byte _08019940 - .4byte _08019B60 - .4byte _08019BBC - .4byte _08019C18 - .4byte _08019D18 - .4byte _08019D5C - .4byte _08019DB8 - .4byte _08019F44 - .4byte _08019CD4 -_08018518: - ldr r2, _0801854C @ =gUnknown_02024C07 - ldr r0, _08018550 @ =gUnknown_02024A68 - ldrb r1, [r2] - adds r5, r0, 0 - ldrb r0, [r5] - cmp r1, r0 - bcc _0801852A - mov r1, r10 - strb r1, [r2] -_0801852A: - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0x2D - bne _08018534 - b _080186B8 -_08018534: - cmp r0, 0x2D - bgt _08018564 - cmp r0, 0xD - bne _0801853E - b _080187DC -_0801853E: - cmp r0, 0xD - bgt _08018554 - cmp r0, 0x2 - bne _08018548 - b _08018680 -_08018548: - bl _08019F76 - .align 2, 0 -_0801854C: .4byte gUnknown_02024C07 -_08018550: .4byte gUnknown_02024A68 -_08018554: - cmp r0, 0x16 - bne _0801855A - b _08018728 -_0801855A: - cmp r0, 0x24 - bne _08018560 - b _080187A0 -_08018560: - bl _08019F76 -_08018564: - cmp r0, 0x46 - bne _0801856A - b _080186F0 -_0801856A: - cmp r0, 0x46 - bgt _08018578 - cmp r0, 0x3B - bne _08018574 - b _0801875C -_08018574: - bl _08019F76 -_08018578: - cmp r0, 0x4D - bne _0801857E - b _080187DC -_0801857E: - cmp r0, 0xFF - beq _08018586 - bl _08019F76 -_08018586: - bl weather_get_current - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x3 - cmp r0, 0xA - bhi _0801864C - lsls r0, 2 - ldr r1, _080185A0 @ =_080185A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080185A0: .4byte _080185A4 - .align 2, 0 -_080185A4: - .4byte _080185D0 - .4byte _0801864C - .4byte _080185D0 - .4byte _0801864C - .4byte _0801864C - .4byte _080185F8 - .4byte _0801864C - .4byte _0801864C - .4byte _0801864C - .4byte _08018620 - .4byte _080185D0 -_080185D0: - ldr r2, _080185EC @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801864C - movs r0, 0x5 - strh r0, [r2] - ldr r0, _080185F0 @ =0x02000000 - ldr r3, _080185F4 @ =0x000160a4 - adds r2, r0, r3 - movs r1, 0xA - b _08018638 - .align 2, 0 -_080185EC: .4byte word_2024DB8 -_080185F0: .4byte 0x02000000 -_080185F4: .4byte 0x000160a4 -_080185F8: - ldr r3, _08018614 @ =word_2024DB8 - ldrh r1, [r3] - movs r2, 0x18 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0801864C - strh r2, [r3] - ldr r0, _08018618 @ =0x02000000 - ldr r3, _0801861C @ =0x000160a4 - adds r2, r0, r3 - movs r1, 0xC - b _08018638 - .align 2, 0 -_08018614: .4byte word_2024DB8 -_08018618: .4byte 0x02000000 -_0801861C: .4byte 0x000160a4 -_08018620: - ldr r3, _08018668 @ =word_2024DB8 - ldrh r1, [r3] - movs r2, 0x60 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0801864C - strh r2, [r3] - ldr r0, _0801866C @ =0x02000000 - ldr r3, _08018670 @ =0x000160a4 - adds r2, r0, r3 - movs r1, 0xB -_08018638: - strb r1, [r2] - ldr r5, _08018674 @ =0x00016003 - adds r0, r5 - mov r1, r10 - strb r1, [r0] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0801864C: - mov r2, r9 - cmp r2, 0 - bne _08018656 - bl _08019F92 -_08018656: - bl weather_get_current - ldr r1, _08018678 @ =gUnknown_02024D1E - strb r0, [r1, 0x5] - ldr r0, _0801867C @ =gUnknown_081D901D - bl b_push_move_exec - bl _08019F76 - .align 2, 0 -_08018668: .4byte word_2024DB8 -_0801866C: .4byte 0x02000000 -_08018670: .4byte 0x000160a4 -_08018674: .4byte 0x00016003 -_08018678: .4byte gUnknown_02024D1E -_0801867C: .4byte gUnknown_081D901D -_08018680: - ldr r2, _080186A8 @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08018690 - bl _08019F76 -_08018690: - movs r0, 0x5 - strh r0, [r2] - ldr r0, _080186AC @ =gUnknown_081D9704 - bl b_push_move_exec - ldr r0, _080186B0 @ =0x02000000 - ldr r3, _080186B4 @ =0x00016003 - adds r0, r3 - mov r5, r10 - strb r5, [r0] - bl _08019F22 - .align 2, 0 -_080186A8: .4byte word_2024DB8 -_080186AC: .4byte gUnknown_081D9704 -_080186B0: .4byte 0x02000000 -_080186B4: .4byte 0x00016003 -_080186B8: - ldr r2, _080186E0 @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080186C8 - bl _08019F76 -_080186C8: - movs r0, 0x18 - strh r0, [r2] - ldr r0, _080186E4 @ =gUnknown_081D9744 - bl b_push_move_exec - ldr r0, _080186E8 @ =0x02000000 - ldr r1, _080186EC @ =0x00016003 - adds r0, r1 - mov r2, r10 - strb r2, [r0] - bl _08019F22 - .align 2, 0 -_080186E0: .4byte word_2024DB8 -_080186E4: .4byte gUnknown_081D9744 -_080186E8: .4byte 0x02000000 -_080186EC: .4byte 0x00016003 -_080186F0: - ldr r2, _08018718 @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08018700 - bl _08019F76 -_08018700: - movs r0, 0x60 - strh r0, [r2] - ldr r0, _0801871C @ =gUnknown_081D97FE - bl b_push_move_exec - ldr r0, _08018720 @ =0x02000000 - ldr r3, _08018724 @ =0x00016003 - adds r0, r3 - mov r5, r10 - strb r5, [r0] - bl _08019F22 - .align 2, 0 -_08018718: .4byte word_2024DB8 -_0801871C: .4byte gUnknown_081D97FE -_08018720: .4byte 0x02000000 -_08018724: .4byte 0x00016003 -_08018728: - ldr r0, _08018754 @ =gUnknown_02024D68 - mov r1, r10 - lsls r2, r1, 2 - adds r1, r2, r1 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, 28 - cmp r0, 0 - bge _08018740 - bl _08019F76 -_08018740: - ldr r1, _08018758 @ =gUnknown_02024C98 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 12 - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, 0x8 - b _080187CA - .align 2, 0 -_08018754: .4byte gUnknown_02024D68 -_08018758: .4byte gUnknown_02024C98 -_0801875C: - mov r0, r10 - bl castform_switch - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - bne _08018770 - bl _08019F92 -_08018770: - ldr r0, _08018790 @ =gUnknown_081D977D - bl b_push_move_exec - ldr r0, _08018794 @ =0x02000000 - ldr r2, _08018798 @ =0x00016003 - adds r1, r0, r2 - mov r3, r10 - strb r3, [r1] - mov r1, r9 - subs r1, 0x1 - ldr r5, _0801879C @ =0x0001609b - adds r0, r5 - strb r1, [r0] - bl _08019F76 - .align 2, 0 -_08018790: .4byte gUnknown_081D977D -_08018794: .4byte 0x02000000 -_08018798: .4byte 0x00016003 -_0801879C: .4byte 0x0001609b -_080187A0: - ldr r0, _080187D4 @ =gUnknown_02024D68 - mov r1, r10 - lsls r2, r1, 2 - adds r1, r2, r1 - lsls r1, 2 - adds r3, r1, r0 - ldrb r0, [r3] - lsls r0, 27 - cmp r0, 0 - bge _080187B8 - bl _08019F76 -_080187B8: - ldr r1, _080187D8 @ =gUnknown_02024C98 - adds r1, r2, r1 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 13 - orrs r0, r2 - str r0, [r1] - ldrb r0, [r3] - movs r1, 0x10 -_080187CA: - orrs r0, r1 - strb r0, [r3] - bl _08019F76 - .align 2, 0 -_080187D4: .4byte gUnknown_02024D68 -_080187D8: .4byte gUnknown_02024C98 -_080187DC: - movs r6, 0 - ldrb r5, [r5] - cmp r6, r5 - bcc _080187E8 - bl _08019F76 -_080187E8: - adds r0, r6, 0 - bl castform_switch - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - beq _080187FC - bl _08019E14 -_080187FC: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08018810 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r6, r0 - bcc _080187E8 - bl _08019F76 - .align 2, 0 -_08018810: .4byte gUnknown_02024A68 -_08018814: - ldr r2, _08018844 @ =gBattleMons - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r4, r1, r2 - ldrh r0, [r4, 0x28] - cmp r0, 0 - bne _08018828 - bl _08019F76 -_08018828: - ldr r0, _08018848 @ =gUnknown_02024C07 - mov r3, r10 - strb r3, [r0] - mov r3, r8 - ldrb r5, [r3] - cmp r5, 0x2C - beq _0801885A - cmp r5, 0x2C - bgt _0801884C - cmp r5, 0x3 - bne _08018840 - b _080189B8 -_08018840: - bl _08019F76 - .align 2, 0 -_08018844: .4byte gBattleMons -_08018848: .4byte gUnknown_02024C07 -_0801884C: - cmp r5, 0x36 - bne _08018852 - b _08018A18 -_08018852: - cmp r5, 0x3D - beq _080188DC - bl _08019F76 -_0801885A: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08018876 - bl _08019F76 -_08018876: - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _0801888E - bl _08019F76 -_0801888E: - ldr r0, _080188D0 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801889E - bl _08019F76 -_0801889E: - ldrh r0, [r4, 0x2C] - ldrh r1, [r4, 0x28] - cmp r0, r1 - bhi _080188AA - bl _08019F76 -_080188AA: - mov r2, r8 - strb r5, [r2] - ldr r0, _080188D4 @ =gUnknown_081D9730 - bl b_push_move_exec - ldr r1, _080188D8 @ =gUnknown_02024BEC - ldrh r0, [r4, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _080188C4 - movs r0, 0x1 - str r0, [r1] -_080188C4: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - bl _08019F22 - .align 2, 0 -_080188D0: .4byte word_2024DB8 -_080188D4: .4byte gUnknown_081D9730 -_080188D8: .4byte gUnknown_02024BEC -_080188DC: - adds r0, r2, 0 - adds r0, 0x4C - adds r5, r1, r0 - ldrb r0, [r5] - cmp r0, 0 - bne _080188EC - bl _08019F76 -_080188EC: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08018906 - bl _08019F76 -_08018906: - ldr r0, [r5] - movs r1, 0x88 - ands r0, r1 - cmp r0, 0 - beq _08018918 - ldr r0, _08018990 @ =gUnknown_030041C0 - ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn - bl StringCopy -_08018918: - ldr r0, [r5] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0801892A - ldr r0, _08018990 @ =gUnknown_030041C0 - ldr r1, _08018998 @ =gStatusConditionString_SleepJpn - bl StringCopy -_0801892A: - ldr r0, [r5] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801893C - ldr r0, _08018990 @ =gUnknown_030041C0 - ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn - bl StringCopy -_0801893C: - ldr r0, [r5] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0801894E - ldr r0, _08018990 @ =gUnknown_030041C0 - ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn - bl StringCopy -_0801894E: - ldr r0, [r5] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08018960 - ldr r0, _08018990 @ =gUnknown_030041C0 - ldr r1, _080189A4 @ =gStatusConditionString_IceJpn - bl StringCopy -_08018960: - str r4, [r5] - ldr r0, _080189A8 @ =0x02000000 - ldr r4, _080189AC @ =gUnknown_02024A60 - mov r3, r10 - strb r3, [r4] - ldr r1, _080189B0 @ =0x00016003 - adds r0, r1 - strb r3, [r0] - ldr r0, _080189B4 @ =gUnknown_081D9758 - bl b_push_move_exec - str r5, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl _08019F22 - .align 2, 0 -_08018990: .4byte gUnknown_030041C0 -_08018994: .4byte gStatusConditionString_PoisonJpn -_08018998: .4byte gStatusConditionString_SleepJpn -_0801899C: .4byte gStatusConditionString_ParalysisJpn -_080189A0: .4byte gStatusConditionString_BurnJpn -_080189A4: .4byte gStatusConditionString_IceJpn -_080189A8: .4byte 0x02000000 -_080189AC: .4byte gUnknown_02024A60 -_080189B0: .4byte 0x00016003 -_080189B4: .4byte gUnknown_081D9758 -_080189B8: - ldrb r2, [r4, 0x1B] - movs r0, 0x1B - ldrsb r0, [r4, r0] - cmp r0, 0xB - ble _080189C6 - bl _08019F76 -_080189C6: - ldr r0, _08018A04 @ =gUnknown_02024CA8 - mov r3, r10 - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x16] - cmp r0, 0x2 - bne _080189DC - bl _08019F76 -_080189DC: - adds r0, r2, 0x1 - movs r2, 0 - strb r0, [r4, 0x1B] - ldr r5, _08018A08 @ =0x000160a4 - adds r1, r7, r5 - movs r0, 0x11 - strb r0, [r1] - ldr r1, _08018A0C @ =0x000160a5 - adds r0, r7, r1 - strb r2, [r0] - ldr r0, _08018A10 @ =gUnknown_081D9718 - bl b_push_move_exec - ldr r2, _08018A14 @ =0x00016003 - adds r0, r7, r2 - mov r3, r10 - strb r3, [r0] - bl _08019F22 - .align 2, 0 -_08018A04: .4byte gUnknown_02024CA8 -_08018A08: .4byte 0x000160a4 -_08018A0C: .4byte 0x000160a5 -_08018A10: .4byte gUnknown_081D9718 -_08018A14: .4byte 0x00016003 -_08018A18: - ldr r2, _08018A3C @ =gUnknown_02024CA8 - ldrb r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r3, [r1, 0x18] - lsls r0, r3, 31 - lsrs r0, 31 - movs r2, 0x1 - eors r2, r0 - movs r0, 0x2 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x18] - bl _08019F76 - .align 2, 0 -_08018A3C: .4byte gUnknown_02024CA8 -_08018A40: - mov r5, r8 - ldrb r0, [r5] - cmp r0, 0x2B - beq _08018A4C - bl _08019F76 -_08018A4C: - movs r4, 0 - ldr r0, _08018ABC @ =gUnknown_081FA724 - ldrh r2, [r0] - ldr r5, _08018AC0 @ =0x0000ffff - adds r1, r0, 0 - cmp r2, r5 - bne _08018A5E - bl _08019F76 -_08018A5E: - cmp r2, r3 - beq _08018A76 - adds r2, r1, 0 -_08018A64: - adds r2, 0x2 - adds r4, 0x1 - ldrh r0, [r2] - cmp r0, r5 - bne _08018A72 - bl _08019F76 -_08018A72: - cmp r0, r3 - bne _08018A64 -_08018A76: - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - ldr r0, _08018AC0 @ =0x0000ffff - cmp r1, r0 - bne _08018A86 - bl _08019F76 -_08018A86: - ldr r1, _08018AC4 @ =gBattleMons - ldr r0, _08018AC8 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _08018AAC - ldr r0, _08018ACC @ =gUnknown_02024C6C - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 4 - orrs r1, r2 - str r1, [r0] -_08018AAC: - ldr r1, _08018AD0 @ =gUnknown_02024C10 - ldr r0, _08018AD4 @ =gUnknown_081D98F3 - str r0, [r1] - movs r0, 0x1 - mov r9, r0 - bl _08019F7C - .align 2, 0 -_08018ABC: .4byte gUnknown_081FA724 -_08018AC0: .4byte 0x0000ffff -_08018AC4: .4byte gBattleMons -_08018AC8: .4byte gUnknown_02024C07 -_08018ACC: .4byte gUnknown_02024C6C -_08018AD0: .4byte gUnknown_02024C10 -_08018AD4: .4byte gUnknown_081D98F3 -_08018AD8: - cmp r3, 0 - bne _08018AE0 - bl _08019F76 -_08018AE0: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0xB - beq _08018B50 - cmp r0, 0xB - bgt _08018AF2 - cmp r0, 0xA - beq _08018AF8 - b _08018C6A -_08018AF2: - cmp r0, 0x12 - beq _08018BA8 - b _08018C6A -_08018AF8: - cmp r4, 0xD - beq _08018AFE - b _08018C6A -_08018AFE: - ldr r0, _08018B28 @ =gBattleMoves - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08018B10 - b _08018C6A -_08018B10: - ldr r1, _08018B2C @ =gUnknown_02024D28 - ldr r0, _08018B30 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08018B3C - ldr r1, _08018B34 @ =gUnknown_02024C10 - ldr r0, _08018B38 @ =gUnknown_081D9843 - b _08018B40 - .align 2, 0 -_08018B28: .4byte gBattleMoves -_08018B2C: .4byte gUnknown_02024D28 -_08018B30: .4byte gUnknown_02024C07 -_08018B34: .4byte gUnknown_02024C10 -_08018B38: .4byte gUnknown_081D9843 -_08018B3C: - ldr r1, _08018B48 @ =gUnknown_02024C10 - ldr r0, _08018B4C @ =gUnknown_081D9842 -_08018B40: - str r0, [r1] - movs r2, 0x1 - b _08018C68 - .align 2, 0 -_08018B48: .4byte gUnknown_02024C10 -_08018B4C: .4byte gUnknown_081D9842 -_08018B50: - cmp r4, 0xB - beq _08018B56 - b _08018C6A -_08018B56: - ldr r0, _08018B80 @ =gBattleMoves - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08018B68 - b _08018C6A -_08018B68: - ldr r1, _08018B84 @ =gUnknown_02024D28 - ldr r0, _08018B88 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08018B94 - ldr r1, _08018B8C @ =gUnknown_02024C10 - ldr r0, _08018B90 @ =gUnknown_081D9843 - b _08018B98 - .align 2, 0 -_08018B80: .4byte gBattleMoves -_08018B84: .4byte gUnknown_02024D28 -_08018B88: .4byte gUnknown_02024C07 -_08018B8C: .4byte gUnknown_02024C10 -_08018B90: .4byte gUnknown_081D9843 -_08018B94: - ldr r1, _08018BA0 @ =gUnknown_02024C10 - ldr r0, _08018BA4 @ =gUnknown_081D9842 -_08018B98: - str r0, [r1] - movs r3, 0x1 - mov r9, r3 - b _08018C6A - .align 2, 0 -_08018BA0: .4byte gUnknown_02024C10 -_08018BA4: .4byte gUnknown_081D9842 -_08018BA8: - cmp r4, 0xA - bne _08018C6A - ldr r1, _08018BF4 @ =gBattleMons - movs r0, 0x58 - mov r5, r10 - muls r5, r0 - adds r0, r5, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08018C6A - ldr r2, _08018BF8 @ =0x02017100 - mov r0, r10 - lsls r1, r0, 2 - adds r0, r1, r2 - ldr r3, [r0] - movs r4, 0x1 - ands r3, r4 - adds r5, r1, 0 - cmp r3, 0 - bne _08018C30 - ldr r0, _08018BFC @ =gUnknown_02024D1E - strb r3, [r0, 0x5] - ldr r1, _08018C00 @ =gUnknown_02024D28 - ldr r0, _08018C04 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08018C10 - ldr r1, _08018C08 @ =gUnknown_02024C10 - ldr r0, _08018C0C @ =gUnknown_081D987C - b _08018C14 - .align 2, 0 -_08018BF4: .4byte gBattleMons -_08018BF8: .4byte 0x02017100 -_08018BFC: .4byte gUnknown_02024D1E -_08018C00: .4byte gUnknown_02024D28 -_08018C04: .4byte gUnknown_02024C07 -_08018C08: .4byte gUnknown_02024C10 -_08018C0C: .4byte gUnknown_081D987C -_08018C10: - ldr r1, _08018C28 @ =gUnknown_02024C10 - ldr r0, _08018C2C @ =gUnknown_081D987B -_08018C14: - str r0, [r1] - adds r0, r5, r2 - ldr r1, [r0] - movs r2, 0x1 - orrs r1, r2 - str r1, [r0] - movs r1, 0x2 - mov r9, r1 - b _08018C6A - .align 2, 0 -_08018C28: .4byte gUnknown_02024C10 -_08018C2C: .4byte gUnknown_081D987B -_08018C30: - ldr r0, _08018C4C @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - ldr r1, _08018C50 @ =gUnknown_02024D28 - ldr r0, _08018C54 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08018C60 - ldr r1, _08018C58 @ =gUnknown_02024C10 - ldr r0, _08018C5C @ =gUnknown_081D987C - b _08018C64 - .align 2, 0 -_08018C4C: .4byte gUnknown_02024D1E -_08018C50: .4byte gUnknown_02024D28 -_08018C54: .4byte gUnknown_02024C07 -_08018C58: .4byte gUnknown_02024C10 -_08018C5C: .4byte gUnknown_081D987C -_08018C60: - ldr r1, _08018CA4 @ =gUnknown_02024C10 - ldr r0, _08018CA8 @ =gUnknown_081D987B -_08018C64: - str r0, [r1] - movs r2, 0x2 -_08018C68: - mov r9, r2 -_08018C6A: - mov r3, r9 - cmp r3, 0x1 - beq _08018C74 - bl _08019F76 -_08018C74: - ldr r1, _08018CAC @ =gBattleMons - movs r0, 0x58 - mov r5, r10 - muls r5, r0 - adds r0, r5, 0 - adds r1, r0, r1 - ldrh r0, [r1, 0x2C] - ldrh r2, [r1, 0x28] - cmp r0, r2 - bne _08018CD0 - ldr r1, _08018CB0 @ =gUnknown_02024D28 - ldr r0, _08018CB4 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - lsls r0, 28 - cmp r0, 0 - bge _08018CBC - ldr r1, _08018CA4 @ =gUnknown_02024C10 - ldr r0, _08018CB8 @ =gUnknown_081D9866 - str r0, [r1] - bl _08019F76 - .align 2, 0 -_08018CA4: .4byte gUnknown_02024C10 -_08018CA8: .4byte gUnknown_081D987B -_08018CAC: .4byte gBattleMons -_08018CB0: .4byte gUnknown_02024D28 -_08018CB4: .4byte gUnknown_02024C07 -_08018CB8: .4byte gUnknown_081D9866 -_08018CBC: - ldr r1, _08018CC8 @ =gUnknown_02024C10 - ldr r0, _08018CCC @ =gUnknown_081D9865 - str r0, [r1] - bl _08019F76 - .align 2, 0 -_08018CC8: .4byte gUnknown_02024C10 -_08018CCC: .4byte gUnknown_081D9865 -_08018CD0: - ldr r2, _08018CEC @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - lsrs r0, 2 - str r0, [r2] - cmp r0, 0 - bne _08018CE0 - mov r3, r9 - str r3, [r2] -_08018CE0: - ldr r0, [r2] - negs r0, r0 - str r0, [r2] - bl _08019F76 - .align 2, 0 -_08018CEC: .4byte gUnknown_02024BEC -_08018CF0: - mov r5, r8 - ldrb r0, [r5] - subs r0, 0x9 - cmp r0, 0x2F - bls _08018CFE - bl _08019F76 -_08018CFE: - lsls r0, 2 - ldr r1, _08018D08 @ =_08018D0C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08018D08: .4byte _08018D0C - .align 2, 0 -_08018D0C: - .4byte _08019128 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08018DCC - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08018E94 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08018F54 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _0801904C - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019204 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _08019F76 - .4byte _080192E0 -_08018DCC: - ldr r0, _08018E74 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08018DDC - bl _08019F76 -_08018DDC: - cmp r3, 0xA5 - bne _08018DE4 - bl _08019F76 -_08018DE4: - ldr r0, _08018E78 @ =gBattleMoves - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _08018DF8 - bl _08019F76 -_08018DF8: - ldr r2, _08018E7C @ =gUnknown_02024D68 - ldr r0, _08018E80 @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08018E20 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08018E20 - bl _08019F76 -_08018E20: - ldr r1, _08018E84 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r1, r0, r1 - adds r3, r1, 0 - adds r3, 0x21 - ldrb r0, [r3] - cmp r0, r4 - bne _08018E3A - bl _08019F76 -_08018E3A: - adds r2, r1, 0 - adds r2, 0x22 - ldrb r0, [r2] - cmp r0, r4 - bne _08018E48 - bl _08019F76 -_08018E48: - ldrh r0, [r1, 0x28] - cmp r0, 0 - bne _08018E52 - bl _08019F76 -_08018E52: - strb r4, [r3] - strb r4, [r2] - ldr r1, _08018E88 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, _08018E8C @ =gUnknown_02024C10 - ldr r0, _08018E90 @ =gUnknown_081D9921 - str r0, [r1] - bl _08019F22 - .align 2, 0 -_08018E74: .4byte gUnknown_02024C68 -_08018E78: .4byte gBattleMoves -_08018E7C: .4byte gUnknown_02024D68 -_08018E80: .4byte gUnknown_02024C08 -_08018E84: .4byte gBattleMons -_08018E88: .4byte gUnknown_030041C0 -_08018E8C: .4byte gUnknown_02024C10 -_08018E90: .4byte gUnknown_081D9921 -_08018E94: - ldr r0, _08018F2C @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08018EA4 - bl _08019F76 -_08018EA4: - ldr r1, _08018F30 @ =gBattleMons - ldr r0, _08018F34 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r4, r0, r1 - ldrh r0, [r4, 0x28] - cmp r0, 0 - bne _08018EBA - bl _08019F76 -_08018EBA: - ldr r0, _08018F38 @ =gUnknown_02024D28 - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _08018ECC - bl _08019F76 -_08018ECC: - ldr r2, _08018F3C @ =gUnknown_02024D68 - ldr r0, _08018F40 @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08018EF4 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08018EF4 - bl _08019F76 -_08018EF4: - ldr r1, _08018F44 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08018F0E - bl _08019F76 -_08018F0E: - ldr r1, _08018F48 @ =gUnknown_02024BEC - ldrh r0, [r4, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08018F1C - str r2, [r1] -_08018F1C: - bl b_movescr_stack_push_cursor - ldr r1, _08018F4C @ =gUnknown_02024C10 - ldr r0, _08018F50 @ =gUnknown_081D9928 - str r0, [r1] - bl _08019F22 - .align 2, 0 -_08018F2C: .4byte gUnknown_02024C68 -_08018F30: .4byte gBattleMons -_08018F34: .4byte gUnknown_02024C07 -_08018F38: .4byte gUnknown_02024D28 -_08018F3C: .4byte gUnknown_02024D68 -_08018F40: .4byte gUnknown_02024C08 -_08018F44: .4byte gBattleMoves -_08018F48: .4byte gUnknown_02024BEC -_08018F4C: .4byte gUnknown_02024C10 -_08018F50: .4byte gUnknown_081D9928 -_08018F54: - ldr r0, _08019020 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08018F64 - bl _08019F76 -_08018F64: - ldr r1, _08019024 @ =gBattleMons - ldr r0, _08019028 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08018F7A - bl _08019F76 -_08018F7A: - ldr r0, _0801902C @ =gUnknown_02024D28 - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _08018F8C - bl _08019F76 -_08018F8C: - ldr r2, _08019030 @ =gUnknown_02024D68 - ldr r0, _08019034 @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08018FB4 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08018FB4 - bl _08019F76 -_08018FB4: - ldr r1, _08019038 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08018FCC - bl _08019F76 -_08018FCC: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08018FE4 - bl _08019F76 -_08018FE4: - ldr r5, _0801903C @ =gUnknown_02024D1E - movs r4, 0x3 -_08018FE8: - bl Random - ands r0, r4 - strb r0, [r5, 0x3] - cmp r0, 0 - beq _08018FE8 - ldr r1, _0801903C @ =gUnknown_02024D1E - ldrb r0, [r1, 0x3] - cmp r0, 0x3 - bne _08019000 - adds r0, 0x2 - strb r0, [r1, 0x3] -_08019000: - ldrb r0, [r1, 0x3] - adds r0, 0x40 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, _08019040 @ =gUnknown_02024C10 - ldr r0, _08019044 @ =gUnknown_081D9950 - str r0, [r1] - ldr r2, _08019048 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _08019F22 - .align 2, 0 -_08019020: .4byte gUnknown_02024C68 -_08019024: .4byte gBattleMons -_08019028: .4byte gUnknown_02024C07 -_0801902C: .4byte gUnknown_02024D28 -_08019030: .4byte gUnknown_02024D68 -_08019034: .4byte gUnknown_02024C08 -_08019038: .4byte gBattleMoves -_0801903C: .4byte gUnknown_02024D1E -_08019040: .4byte gUnknown_02024C10 -_08019044: .4byte gUnknown_081D9950 -_08019048: .4byte gUnknown_02024C6C -_0801904C: - ldr r0, _080190FC @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801905C - bl _08019F76 -_0801905C: - ldr r1, _08019100 @ =gBattleMons - ldr r0, _08019104 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08019072 - bl _08019F76 -_08019072: - ldr r0, _08019108 @ =gUnknown_02024D28 - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _08019084 - bl _08019F76 -_08019084: - ldr r2, _0801910C @ =gUnknown_02024D68 - ldr r0, _08019110 @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _080190AC - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _080190AC - bl _08019F76 -_080190AC: - ldr r1, _08019114 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080190C4 - bl _08019F76 -_080190C4: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _080190DC - bl _08019F76 -_080190DC: - ldr r1, _08019118 @ =gUnknown_02024D1E - movs r0, 0x42 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, _0801911C @ =gUnknown_02024C10 - ldr r0, _08019120 @ =gUnknown_081D9950 - str r0, [r1] - ldr r2, _08019124 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _08019F22 - .align 2, 0 -_080190FC: .4byte gUnknown_02024C68 -_08019100: .4byte gBattleMons -_08019104: .4byte gUnknown_02024C07 -_08019108: .4byte gUnknown_02024D28 -_0801910C: .4byte gUnknown_02024D68 -_08019110: .4byte gUnknown_02024C08 -_08019114: .4byte gBattleMoves -_08019118: .4byte gUnknown_02024D1E -_0801911C: .4byte gUnknown_02024C10 -_08019120: .4byte gUnknown_081D9950 -_08019124: .4byte gUnknown_02024C6C -_08019128: - ldr r0, _080191D8 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08019138 - bl _08019F76 -_08019138: - ldr r1, _080191DC @ =gBattleMons - ldr r0, _080191E0 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801914E - bl _08019F76 -_0801914E: - ldr r0, _080191E4 @ =gUnknown_02024D28 - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _08019160 - bl _08019F76 -_08019160: - ldr r2, _080191E8 @ =gUnknown_02024D68 - ldr r0, _080191EC @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08019188 - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08019188 - bl _08019F76 -_08019188: - ldr r1, _080191F0 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080191A0 - bl _08019F76 -_080191A0: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _080191B8 - bl _08019F76 -_080191B8: - ldr r1, _080191F4 @ =gUnknown_02024D1E - movs r0, 0x45 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, _080191F8 @ =gUnknown_02024C10 - ldr r0, _080191FC @ =gUnknown_081D9950 - str r0, [r1] - ldr r2, _08019200 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _08019F22 - .align 2, 0 -_080191D8: .4byte gUnknown_02024C68 -_080191DC: .4byte gBattleMons -_080191E0: .4byte gUnknown_02024C07 -_080191E4: .4byte gUnknown_02024D28 -_080191E8: .4byte gUnknown_02024D68 -_080191EC: .4byte gUnknown_02024C08 -_080191F0: .4byte gBattleMoves -_080191F4: .4byte gUnknown_02024D1E -_080191F8: .4byte gUnknown_02024C10 -_080191FC: .4byte gUnknown_081D9950 -_08019200: .4byte gUnknown_02024C6C -_08019204: - ldr r0, _080192B4 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08019214 - bl _08019F76 -_08019214: - ldr r1, _080192B8 @ =gBattleMons - ldr r0, _080192BC @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801922A - bl _08019F76 -_0801922A: - ldr r0, _080192C0 @ =gUnknown_02024D28 - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801923C - bl _08019F76 -_0801923C: - ldr r1, _080192C4 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08019254 - bl _08019F76 -_08019254: - ldr r2, _080192C8 @ =gUnknown_02024D68 - ldr r0, _080192CC @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801927C - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801927C - bl _08019F76 -_0801927C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08019294 - bl _08019F76 -_08019294: - ldr r1, _080192D0 @ =gUnknown_02024D1E - movs r0, 0x43 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - ldr r1, _080192D4 @ =gUnknown_02024C10 - ldr r0, _080192D8 @ =gUnknown_081D9950 - str r0, [r1] - ldr r2, _080192DC @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r2] - bl _08019F22 - .align 2, 0 -_080192B4: .4byte gUnknown_02024C68 -_080192B8: .4byte gBattleMons -_080192BC: .4byte gUnknown_02024C07 -_080192C0: .4byte gUnknown_02024D28 -_080192C4: .4byte gBattleMoves -_080192C8: .4byte gUnknown_02024D68 -_080192CC: .4byte gUnknown_02024C08 -_080192D0: .4byte gUnknown_02024D1E -_080192D4: .4byte gUnknown_02024C10 -_080192D8: .4byte gUnknown_081D9950 -_080192DC: .4byte gUnknown_02024C6C -_080192E0: - ldr r0, _08019420 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _080192F0 - bl _08019F76 -_080192F0: - ldr r5, _08019424 @ =gBattleMons - ldr r7, _08019428 @ =gUnknown_02024C07 - ldrb r1, [r7] - movs r6, 0x58 - adds r0, r1, 0 - muls r0, r6 - adds r0, r5 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08019308 - bl _08019F76 -_08019308: - ldr r0, _0801942C @ =gUnknown_02024D28 - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - lsls r0, 31 - cmp r0, 0 - beq _0801931A - bl _08019F76 -_0801931A: - ldr r1, _08019430 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08019332 - bl _08019F76 -_08019332: - ldr r3, _08019434 @ =gUnknown_02024D68 - ldr r0, _08019438 @ =gUnknown_02024C08 - mov r8, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801935C - adds r0, r3, 0 - adds r0, 0xC - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801935C - bl _08019F76 -_0801935C: - adds r0, r1, 0 - muls r0, r6 - adds r0, r5 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801936C - bl _08019F76 -_0801936C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08019384 - bl _08019F76 -_08019384: - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0xC - bne _08019396 - bl _08019F76 -_08019396: - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - bl GetGenderFromSpeciesAndPersonality - adds r4, r0, 0 - ldr r0, [sp, 0xC] - ldr r1, [sp, 0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080193B4 - bl _08019F76 -_080193B4: - ldrb r0, [r7] - muls r0, r6 - adds r4, r5, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - beq _080193CE - bl _08019F76 -_080193CE: - ldr r0, [sp, 0x8] - ldr r1, [sp, 0x10] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080193E2 - bl _08019F76 -_080193E2: - ldr r0, [sp, 0xC] - ldr r1, [sp, 0x14] - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080193F6 - bl _08019F76 -_080193F6: - ldrb r0, [r7] - adds r2, r0, 0 - muls r2, r6 - adds r2, r4 - ldr r1, _0801943C @ =gBitTable - mov r3, r8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 16 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _08019440 @ =gUnknown_02024C10 - ldr r0, _08019444 @ =gUnknown_081D9943 - str r0, [r1] - bl _08019F22 - .align 2, 0 -_08019420: .4byte gUnknown_02024C68 -_08019424: .4byte gBattleMons -_08019428: .4byte gUnknown_02024C07 -_0801942C: .4byte gUnknown_02024D28 -_08019430: .4byte gBattleMoves -_08019434: .4byte gUnknown_02024D68 -_08019438: .4byte gUnknown_02024C08 -_0801943C: .4byte gBitTable -_08019440: .4byte gUnknown_02024C10 -_08019444: .4byte gUnknown_081D9943 -_08019448: - movs r5, 0 - mov r10, r5 - ldr r0, _0801947C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r10, r0 - bcc _08019458 - bl _08019F76 -_08019458: - ldr r1, _08019480 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - subs r0, 0x7 - adds r2, r1, 0 - cmp r0, 0x41 - bls _08019472 - b _080196D6 -_08019472: - lsls r0, 2 - ldr r1, _08019484 @ =_08019488 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801947C: .4byte gUnknown_02024A68 -_08019480: .4byte gBattleMons -_08019484: .4byte _08019488 - .align 2, 0 -_08019488: - .4byte _080195EC - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196B0 - .4byte _080196D6 - .4byte _080196D6 - .4byte _08019614 - .4byte _080196D6 - .4byte _08019590 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080195BC - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _08019680 - .4byte _08019650 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _080196D6 - .4byte _08019614 -_08019590: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - ldr r1, _080195B0 @ =0x00000f88 - ands r0, r1 - cmp r0, 0 - bne _080195AA - b _080196D6 -_080195AA: - ldr r0, _080195B4 @ =gUnknown_030041C0 - ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn - b _0801969C - .align 2, 0 -_080195B0: .4byte 0x00000f88 -_080195B4: .4byte gUnknown_030041C0 -_080195B8: .4byte gStatusConditionString_PoisonJpn -_080195BC: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _080195D6 - b _080196D6 -_080195D6: - ldr r0, _080195E4 @ =gUnknown_030041C0 - ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn - bl StringCopy - movs r2, 0x2 - mov r9, r2 - b _080196DC - .align 2, 0 -_080195E4: .4byte gUnknown_030041C0 -_080195E8: .4byte gStatusConditionString_ConfusionJpn -_080195EC: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080196D6 - ldr r0, _0801960C @ =gUnknown_030041C0 - ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn - b _0801969C - .align 2, 0 -_0801960C: .4byte gUnknown_030041C0 -_08019610: .4byte gStatusConditionString_ParalysisJpn -_08019614: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080196D6 - adds r2, 0x50 - adds r2, r3, r2 - ldr r0, [r2] - ldr r1, _08019644 @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r0, _08019648 @ =gUnknown_030041C0 - ldr r1, _0801964C @ =gStatusConditionString_SleepJpn - bl StringCopy - movs r0, 0x1 - mov r9, r0 - b _080196DC - .align 2, 0 -_08019644: .4byte 0xf7ffffff -_08019648: .4byte gUnknown_030041C0 -_0801964C: .4byte gStatusConditionString_SleepJpn -_08019650: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080196D6 - ldr r0, _08019678 @ =gUnknown_030041C0 - ldr r1, _0801967C @ =gStatusConditionString_BurnJpn - bl StringCopy - movs r2, 0x1 - mov r9, r2 - b _080196DC - .align 2, 0 -_08019678: .4byte gUnknown_030041C0 -_0801967C: .4byte gStatusConditionString_BurnJpn -_08019680: - movs r0, 0x58 - mov r3, r10 - muls r3, r0 - adds r0, r3, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _080196D6 - ldr r0, _080196A8 @ =gUnknown_030041C0 - ldr r1, _080196AC @ =gStatusConditionString_IceJpn -_0801969C: - bl StringCopy - movs r5, 0x1 - mov r9, r5 - b _080196DC - .align 2, 0 -_080196A8: .4byte gUnknown_030041C0 -_080196AC: .4byte gStatusConditionString_IceJpn -_080196B0: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - beq _080196D6 - ldr r0, _080196EC @ =gUnknown_030041C0 - ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn - bl StringCopy - movs r2, 0x3 - mov r9, r2 -_080196D6: - mov r3, r9 - cmp r3, 0 - beq _08019798 -_080196DC: - mov r5, r9 - cmp r5, 0x2 - beq _08019710 - cmp r5, 0x2 - bgt _080196F4 - cmp r5, 0x1 - beq _080196FC - b _0801973C - .align 2, 0 -_080196EC: .4byte gUnknown_030041C0 -_080196F0: .4byte gStatusConditionString_LoveJpn -_080196F4: - mov r0, r9 - cmp r0, 0x3 - beq _08019728 - b _0801973C -_080196FC: - ldr r1, _0801970C @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x4C - adds r2, r1 - movs r0, 0 - b _0801973A - .align 2, 0 -_0801970C: .4byte gBattleMons -_08019710: - ldr r1, _08019724 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x8 - negs r1, r1 - b _08019738 - .align 2, 0 -_08019724: .4byte gBattleMons -_08019728: - ldr r1, _08019778 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _0801977C @ =0xfff0ffff -_08019738: - ands r0, r1 -_0801973A: - str r0, [r2] -_0801973C: - bl b_movescr_stack_push_cursor - ldr r1, _08019780 @ =gUnknown_02024C10 - ldr r0, _08019784 @ =gUnknown_081D9956 - str r0, [r1] - ldr r0, _08019788 @ =0x02000000 - ldr r1, _0801978C @ =0x00016003 - adds r0, r1 - mov r2, r10 - strb r2, [r0] - ldr r4, _08019790 @ =gUnknown_02024A60 - strb r2, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - ldr r1, _08019794 @ =gUnknown_02024ACC - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl _08019F92 - .align 2, 0 -_08019778: .4byte gBattleMons -_0801977C: .4byte 0xfff0ffff -_08019780: .4byte gUnknown_02024C10 -_08019784: .4byte gUnknown_081D9956 -_08019788: .4byte 0x02000000 -_0801978C: .4byte 0x00016003 -_08019790: .4byte gUnknown_02024A60 -_08019794: .4byte gUnknown_02024ACC -_08019798: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _080197B0 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r10, r0 - bcs _080197AC - b _08019458 -_080197AC: - bl _08019F76 - .align 2, 0 -_080197B0: .4byte gUnknown_02024A68 -_080197B4: - movs r3, 0 - mov r10, r3 - ldr r0, _080197FC @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r10, r0 - bcc _080197C2 - b _08019F76 -_080197C2: - ldr r4, _08019800 @ =gBattleMons -_080197C4: - movs r0, 0x58 - mov r5, r10 - muls r5, r0 - adds r0, r5, 0 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3B - bne _080197E8 - mov r0, r10 - bl castform_switch - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0 - beq _080197E8 - b _08019E40 -_080197E8: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _080197FC @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r10, r0 - bcc _080197C4 - b _08019F76 - .align 2, 0 -_080197FC: .4byte gUnknown_02024A68 -_08019800: .4byte gBattleMons -_08019804: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x1C - beq _0801980E - b _08019F76 -_0801980E: - ldr r4, _08019860 @ =gUnknown_02024C6C - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _0801981E - b _08019F76 -_0801981E: - ldr r0, _08019864 @ =0xffffbfff - ands r1, r0 - str r1, [r4] - ldr r3, _08019868 @ =0x000160ca - adds r2, r7, r3 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - cmp r0, 0x6 - bne _08019838 - movs r0, 0x2 - strb r0, [r2] -_08019838: - ldr r1, _0801986C @ =gUnknown_02024D1E - ldrb r0, [r2] - adds r0, 0x40 - strb r0, [r1, 0x3] - ldr r0, _08019870 @ =gUnknown_02024C08 - ldrb r1, [r0] - ldr r5, _08019874 @ =0x00016003 - adds r0, r7, r5 - strb r1, [r0] - bl b_movescr_stack_push_cursor - ldr r1, _08019878 @ =gUnknown_02024C10 - ldr r0, _0801987C @ =gUnknown_081D9953 - str r0, [r1] - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r4] - b _08019F22 - .align 2, 0 -_08019860: .4byte gUnknown_02024C6C -_08019864: .4byte 0xffffbfff -_08019868: .4byte 0x000160ca -_0801986C: .4byte gUnknown_02024D1E -_08019870: .4byte gUnknown_02024C08 -_08019874: .4byte 0x00016003 -_08019878: .4byte gUnknown_02024C10 -_0801987C: .4byte gUnknown_081D9953 -_08019880: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0x1C - beq _0801988A - b _08019F76 -_0801988A: - ldr r4, _080198DC @ =gUnknown_02024C6C - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _0801989A - b _08019F76 -_0801989A: - ldr r0, _080198E0 @ =0xffffbfff - ands r1, r0 - str r1, [r4] - ldr r3, _080198E4 @ =0x000160ca - adds r2, r7, r3 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - cmp r0, 0x6 - bne _080198B4 - movs r0, 0x2 - strb r0, [r2] -_080198B4: - ldr r1, _080198E8 @ =gUnknown_02024D1E - ldrb r0, [r2] - strb r0, [r1, 0x3] - ldr r0, _080198EC @ =gUnknown_02024C07 - ldrb r1, [r0] - ldr r5, _080198F0 @ =0x00016003 - adds r0, r7, r5 - strb r1, [r0] - bl b_movescr_stack_push_cursor - ldr r1, _080198F4 @ =gUnknown_02024C10 - ldr r0, _080198F8 @ =gUnknown_081D9953 - str r0, [r1] - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 6 - orrs r0, r1 - str r0, [r4] - b _08019F22 - .align 2, 0 -_080198DC: .4byte gUnknown_02024C6C -_080198E0: .4byte 0xffffbfff -_080198E4: .4byte 0x000160ca -_080198E8: .4byte gUnknown_02024D1E -_080198EC: .4byte gUnknown_02024C07 -_080198F0: .4byte 0x00016003 -_080198F4: .4byte gUnknown_02024C10 -_080198F8: .4byte gUnknown_081D9953 -_080198FC: - movs r4, 0 - ldr r0, _08019934 @ =gUnknown_02024A68 - ldrb r1, [r0] - cmp r4, r1 - blt _08019908 - b _08019F76 -_08019908: - ldr r0, _08019938 @ =gBattleMons - adds r5, r1, 0 - ldr r2, _0801993C @ =gUnknown_02024C98 - adds r3, r0, 0 - adds r3, 0x20 - movs r6, 0x80 - lsls r6, 12 -_08019916: - ldrb r1, [r3] - cmp r1, 0x16 - bne _08019926 - ldr r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _08019926 - b _08019E6C -_08019926: - adds r2, 0x4 - adds r3, 0x58 - adds r4, 0x1 - cmp r4, r5 - blt _08019916 - b _08019F76 - .align 2, 0 -_08019934: .4byte gUnknown_02024A68 -_08019938: .4byte gBattleMons -_0801993C: .4byte gUnknown_02024C98 -_08019940: - movs r4, 0 - ldr r0, _08019A1C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _0801994C - b _08019F76 -_0801994C: - ldr r0, _08019A20 @ =gUnknown_02024A60 - mov r8, r0 - ldr r1, _08019A24 @ =gBattleMons - adds r1, 0x20 - str r1, [sp, 0x1C] - movs r2, 0 - str r2, [sp, 0x20] -_0801995A: - ldr r3, [sp, 0x1C] - ldrb r0, [r3] - cmp r0, 0x24 - beq _08019964 - b _08019AF6 -_08019964: - ldr r0, _08019A28 @ =gUnknown_02024C98 - ldr r5, [sp, 0x20] - adds r0, r5, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 13 - ands r1, r0 - str r5, [sp, 0x18] - cmp r1, 0 - bne _0801997A - b _08019AF6 -_0801997A: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_get_per_side_status - movs r1, 0x1 - adds r5, r0, 0 - eors r5, r1 - ands r5, r1 - adds r0, r5, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r5, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _08019A2C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080199AE - b _08019ABC -_080199AE: - movs r1, 0x58 - adds r0, r6, 0 - muls r0, r1 - ldr r3, _08019A24 @ =gBattleMons - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08019A78 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08019A34 - movs r1, 0x58 - adds r0, r7, 0 - muls r0, r1 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08019A34 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08019A34 - str r2, [sp, 0x24] - bl Random - ldr r2, [sp, 0x24] - adds r1, r2, 0 - ands r1, r0 - lsls r1, 1 - orrs r5, r1 - adds r0, r5, 0 - bl battle_get_side_with_given_state - mov r2, r8 - strb r0, [r2] - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - ldr r5, _08019A24 @ =gBattleMons - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - ldr r1, [sp, 0x1C] - strb r0, [r1] - ldrb r0, [r2] - muls r0, r3 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - ldr r2, _08019A30 @ =byte_2024C06 - strb r0, [r2] - b _08019AE4 - .align 2, 0 -_08019A1C: .4byte gUnknown_02024A68 -_08019A20: .4byte gUnknown_02024A60 -_08019A24: .4byte gBattleMons -_08019A28: .4byte gUnknown_02024C98 -_08019A2C: .4byte gUnknown_020239F8 -_08019A30: .4byte byte_2024C06 -_08019A34: - ldr r3, _08019A74 @ =gBattleMons - movs r2, 0x58 - adds r0, r6, 0 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08019A78 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08019A78 - mov r5, r8 - strb r6, [r5] - adds r1, r4, 0 - muls r1, r2 - adds r1, r3 - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - b _08019AE0 - .align 2, 0 -_08019A74: .4byte gBattleMons -_08019A78: - ldr r3, _08019AB8 @ =gBattleMons - movs r2, 0x58 - adds r0, r7, 0 - muls r0, r2 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _08019AEE - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08019AEE - mov r5, r8 - strb r7, [r5] - adds r1, r4, 0 - muls r1, r2 - adds r1, r3 - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r5] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - b _08019AE0 - .align 2, 0 -_08019AB8: .4byte gBattleMons -_08019ABC: - mov r2, r8 - strb r6, [r2] - movs r3, 0x58 - adds r0, r6, 0 - muls r0, r3 - ldr r5, _08019B10 @ =gBattleMons - adds r0, r5 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r1, [r2] - cmp r1, 0 - beq _08019AEE - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08019AEE - ldr r0, [sp, 0x1C] - strb r1, [r0] - ldrb r0, [r2] -_08019AE0: - ldr r1, _08019B14 @ =byte_2024C06 - strb r0, [r1] -_08019AE4: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08019AEE: - mov r2, r9 - cmp r2, 0 - beq _08019AF6 - b _08019E88 -_08019AF6: - ldr r3, [sp, 0x1C] - adds r3, 0x58 - str r3, [sp, 0x1C] - ldr r5, [sp, 0x20] - adds r5, 0x4 - str r5, [sp, 0x20] - adds r4, 0x1 - ldr r0, _08019B18 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - bge _08019B0E - b _0801995A -_08019B0E: - b _08019F76 - .align 2, 0 -_08019B10: .4byte gBattleMons -_08019B14: .4byte byte_2024C06 -_08019B18: .4byte gUnknown_02024A68 -_08019B1C: - movs r4, 0 - ldr r0, _08019B54 @ =gUnknown_02024A68 - ldrb r1, [r0] - cmp r4, r1 - blt _08019B28 - b _08019F76 -_08019B28: - ldr r0, _08019B58 @ =gBattleMons - adds r5, r1, 0 - ldr r2, _08019B5C @ =gUnknown_02024C98 - adds r3, r0, 0 - adds r3, 0x20 - movs r6, 0x80 - lsls r6, 12 -_08019B36: - ldrb r1, [r3] - cmp r1, 0x16 - bne _08019B46 - ldr r0, [r2] - ands r0, r6 - cmp r0, 0 - beq _08019B46 - b _08019F04 -_08019B46: - adds r2, 0x4 - adds r3, 0x58 - adds r4, 0x1 - cmp r4, r5 - blt _08019B36 - b _08019F76 - .align 2, 0 -_08019B54: .4byte gUnknown_02024A68 -_08019B58: .4byte gBattleMons -_08019B5C: .4byte gUnknown_02024C98 -_08019B60: - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _08019BB0 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019B76 - b _08019F76 -_08019B76: - ldr r7, _08019BB4 @ =gBattleMons -_08019B78: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - adds r3, r4, 0x1 - cmp r0, r5 - beq _08019BA2 - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08019BA2 - ldr r0, _08019BB8 @ =byte_2024C06 - strb r6, [r0] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08019BA2: - adds r4, r3, 0 - ldr r0, _08019BB0 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019B78 - b _08019F76 - .align 2, 0 -_08019BB0: .4byte gUnknown_02024A68 -_08019BB4: .4byte gBattleMons -_08019BB8: .4byte byte_2024C06 -_08019BBC: - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _08019C0C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019BD2 - b _08019F76 -_08019BD2: - ldr r7, _08019C10 @ =gBattleMons -_08019BD4: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - adds r3, r4, 0x1 - cmp r0, r5 - bne _08019BFE - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08019BFE - ldr r0, _08019C14 @ =byte_2024C06 - strb r6, [r0] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08019BFE: - adds r4, r3, 0 - ldr r0, _08019C0C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019BD4 - b _08019F76 - .align 2, 0 -_08019C0C: .4byte gUnknown_02024A68 -_08019C10: .4byte gBattleMons -_08019C14: .4byte byte_2024C06 -_08019C18: - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0xFD - beq _08019C40 - cmp r0, 0xFE - beq _08019C78 - movs r4, 0 - ldr r0, _08019C38 @ =gUnknown_02024A68 - adds r5, r0, 0 - ldrb r2, [r5] - cmp r4, r2 - blt _08019C32 - b _08019F76 -_08019C32: - ldr r2, _08019C3C @ =gBattleMons - b _08019CB0 - .align 2, 0 -_08019C38: .4byte gUnknown_02024A68 -_08019C3C: .4byte gBattleMons -_08019C40: - movs r4, 0 - ldr r0, _08019C70 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019C4C - b _08019F76 -_08019C4C: - ldr r5, _08019C74 @ =gUnknown_02024C98 - movs r2, 0x80 - lsls r2, 9 - adds r1, r0, 0 -_08019C54: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - ands r0, r2 - adds r3, r4, 0x1 - cmp r0, 0 - beq _08019C68 - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08019C68: - adds r4, r3, 0 - cmp r4, r1 - blt _08019C54 - b _08019F76 - .align 2, 0 -_08019C70: .4byte gUnknown_02024A68 -_08019C74: .4byte gUnknown_02024C98 -_08019C78: - movs r4, 0 - ldr r0, _08019CA8 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019C84 - b _08019F76 -_08019C84: - ldr r5, _08019CAC @ =gUnknown_02024C98 - movs r2, 0x80 - lsls r2, 10 - adds r1, r0, 0 -_08019C8C: - lsls r0, r4, 2 - adds r0, r5 - ldr r0, [r0] - ands r0, r2 - adds r3, r4, 0x1 - cmp r0, 0 - beq _08019CA0 - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08019CA0: - adds r4, r3, 0 - cmp r4, r1 - blt _08019C8C - b _08019F76 - .align 2, 0 -_08019CA8: .4byte gUnknown_02024A68 -_08019CAC: .4byte gUnknown_02024C98 -_08019CB0: - movs r0, 0x58 - muls r0, r4 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r4, 0x1 - cmp r0, r6 - bne _08019CCA - mov r0, r8 - strb r6, [r0] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08019CCA: - adds r4, r3, 0 - ldrb r1, [r5] - cmp r4, r1 - blt _08019CB0 - b _08019F76 -_08019CD4: - movs r4, 0 - ldr r0, _08019D10 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019CE0 - b _08019F76 -_08019CE0: - ldr r7, _08019D14 @ =gBattleMons - adds r2, r0, 0 - movs r5, 0x58 -_08019CE6: - adds r0, r4, 0 - muls r0, r5 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r4, 0x1 - cmp r0, r6 - bne _08019D08 - ldrh r0, [r1, 0x28] - cmp r0, 0 - beq _08019D08 - mov r0, r8 - strb r6, [r0] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08019D08: - adds r4, r3, 0 - cmp r4, r2 - blt _08019CE6 - b _08019F76 - .align 2, 0 -_08019D10: .4byte gUnknown_02024A68 -_08019D14: .4byte gBattleMons -_08019D18: - movs r4, 0 - ldr r0, _08019D50 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019D24 - b _08019F76 -_08019D24: - ldr r7, _08019D54 @ =gBattleMons - adds r1, r0, 0 - movs r5, 0x58 - ldr r2, _08019D58 @ =byte_2024C06 -_08019D2C: - adds r0, r4, 0 - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r4, 0x1 - cmp r0, r6 - bne _08019D48 - cmp r4, r10 - beq _08019D48 - strb r6, [r2] - lsls r0, r3, 24 - lsrs r0, 24 - mov r9, r0 -_08019D48: - adds r4, r3, 0 - cmp r4, r1 - blt _08019D2C - b _08019F76 - .align 2, 0 -_08019D50: .4byte gUnknown_02024A68 -_08019D54: .4byte gBattleMons -_08019D58: .4byte byte_2024C06 -_08019D5C: - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _08019DAC @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019D72 - b _08019F76 -_08019D72: - ldr r7, _08019DB0 @ =gBattleMons -_08019D74: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - beq _08019DA0 - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08019DA0 - ldr r0, _08019DB4 @ =byte_2024C06 - strb r6, [r0] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08019DA0: - adds r4, 0x1 - ldr r0, _08019DAC @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019D74 - b _08019F76 - .align 2, 0 -_08019DAC: .4byte gUnknown_02024A68 -_08019DB0: .4byte gBattleMons -_08019DB4: .4byte byte_2024C06 -_08019DB8: - mov r0, r10 - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - ldr r0, _08019E08 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019DCE - b _08019F76 -_08019DCE: - ldr r7, _08019E0C @ =gBattleMons -_08019DD0: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - bne _08019DFC - movs r0, 0x58 - muls r0, r4 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r6 - bne _08019DFC - ldr r0, _08019E10 @ =byte_2024C06 - strb r6, [r0] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08019DFC: - adds r4, 0x1 - ldr r0, _08019E08 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08019DD0 - b _08019F76 - .align 2, 0 -_08019E08: .4byte gUnknown_02024A68 -_08019E0C: .4byte gBattleMons -_08019E10: .4byte byte_2024C06 -_08019E14: - ldr r0, _08019E30 @ =gUnknown_081D977D - bl b_push_move_exec - ldr r0, _08019E34 @ =0x02000000 - ldr r2, _08019E38 @ =0x00016003 - adds r1, r0, r2 - strb r6, [r1] - mov r1, r9 - subs r1, 0x1 - ldr r3, _08019E3C @ =0x0001609b - adds r0, r3 - strb r1, [r0] - b _08019F76 - .align 2, 0 -_08019E30: .4byte gUnknown_081D977D -_08019E34: .4byte 0x02000000 -_08019E38: .4byte 0x00016003 -_08019E3C: .4byte 0x0001609b -_08019E40: - ldr r0, _08019E5C @ =gUnknown_081D977D - bl b_push_move_exec - ldr r0, _08019E60 @ =0x02000000 - ldr r5, _08019E64 @ =0x00016003 - adds r1, r0, r5 - mov r2, r10 - strb r2, [r1] - mov r1, r9 - subs r1, 0x1 - ldr r3, _08019E68 @ =0x0001609b - adds r0, r3 - strb r1, [r0] - b _08019F92 - .align 2, 0 -_08019E5C: .4byte gUnknown_081D977D -_08019E60: .4byte 0x02000000 -_08019E64: .4byte 0x00016003 -_08019E68: .4byte 0x0001609b -_08019E6C: - mov r5, r8 - strb r1, [r5] - ldr r0, [r2] - ldr r1, _08019E80 @ =0xfff7ffff - ands r0, r1 - str r0, [r2] - ldr r0, _08019E84 @ =gUnknown_081D978C - bl b_push_move_exec - b _08019F1A - .align 2, 0 -_08019E80: .4byte 0xfff7ffff -_08019E84: .4byte gUnknown_081D978C -_08019E88: - ldr r0, _08019EDC @ =gUnknown_081D9726 - bl b_push_move_exec - ldr r1, _08019EE0 @ =gUnknown_02024C98 - ldr r2, [sp, 0x18] - adds r1, r2, r1 - ldr r0, [r1] - ldr r2, _08019EE4 @ =0xffefffff - ands r0, r2 - str r0, [r1] - ldr r0, _08019EE8 @ =0x02000000 - ldr r3, _08019EEC @ =0x00016003 - adds r0, r3 - strb r4, [r0] - ldr r1, _08019EF0 @ =gUnknown_030041C0 - movs r4, 0xFD - strb r4, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r2, _08019EF4 @ =gUnknown_02024A60 - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _08019EF8 @ =gUnknown_02024A6A - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08019EFC @ =gUnknown_03004290 - strb r4, [r1] - movs r0, 0x9 - strb r0, [r1, 0x1] - ldr r0, _08019F00 @ =byte_2024C06 - ldrb r0, [r0] - strb r0, [r1, 0x2] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x3] - b _08019F76 - .align 2, 0 -_08019EDC: .4byte gUnknown_081D9726 -_08019EE0: .4byte gUnknown_02024C98 -_08019EE4: .4byte 0xffefffff -_08019EE8: .4byte 0x02000000 -_08019EEC: .4byte 0x00016003 -_08019EF0: .4byte gUnknown_030041C0 -_08019EF4: .4byte gUnknown_02024A60 -_08019EF8: .4byte gUnknown_02024A6A -_08019EFC: .4byte gUnknown_03004290 -_08019F00: .4byte byte_2024C06 -_08019F04: - mov r5, r8 - strb r1, [r5] - ldr r0, [r2] - ldr r1, _08019F30 @ =0xfff7ffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _08019F34 @ =gUnknown_02024C10 - ldr r0, _08019F38 @ =gUnknown_081D9795 - str r0, [r1] -_08019F1A: - ldr r0, _08019F3C @ =0x02000000 - ldr r1, _08019F40 @ =0x000160dd - adds r0, r1 - strb r4, [r0] -_08019F22: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _08019F76 - .align 2, 0 -_08019F30: .4byte 0xfff7ffff -_08019F34: .4byte gUnknown_02024C10 -_08019F38: .4byte gUnknown_081D9795 -_08019F3C: .4byte 0x02000000 -_08019F40: .4byte 0x000160dd -_08019F44: - movs r4, 0 - ldr r0, _08019FA4 @ =gUnknown_02024A68 - ldrb r1, [r0] - cmp r4, r1 - bge _08019F76 - ldr r0, _08019FA8 @ =gBattleMons - adds r2, r1, 0 - adds r1, r0, 0 - adds r1, 0x20 - ldr r3, _08019FAC @ =byte_2024C06 -_08019F58: - ldrb r0, [r1] - cmp r0, r6 - bne _08019F6E - cmp r4, r10 - beq _08019F6E - strb r6, [r3] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08019F6E: - adds r1, 0x58 - adds r4, 0x1 - cmp r4, r2 - blt _08019F58 -_08019F76: - mov r2, r9 - cmp r2, 0 - beq _08019F92 -_08019F7C: - ldr r3, [sp, 0x4] - cmp r3, 0xB - bhi _08019F92 - ldr r1, _08019FAC @ =byte_2024C06 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08019F92 - adds r1, r0, 0 - mov r0, r10 - bl sub_81074C4 -_08019F92: - mov r0, r9 - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08019FA4: .4byte gUnknown_02024A68 -_08019FA8: .4byte gBattleMons -_08019FAC: .4byte byte_2024C06 - thumb_func_end sub_8018324 - - thumb_func_start b_call_bc_move_exec -b_call_bc_move_exec: @ 8019FB0 - ldr r1, _08019FD8 @ =gUnknown_02024C10 - str r0, [r1] - ldr r3, _08019FDC @ =0x02017140 - adds r2, r3, 0 - adds r2, 0x20 - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 22 - adds r0, r3 - ldr r2, _08019FE0 @ =gUnknown_030042D4 - ldr r1, [r2] - str r1, [r0] - ldr r0, _08019FE4 @ =sub_8013F54 - str r0, [r2] - ldr r1, _08019FE8 @ =gUnknown_02024A7F - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_08019FD8: .4byte gUnknown_02024C10 -_08019FDC: .4byte 0x02017140 -_08019FE0: .4byte gUnknown_030042D4 -_08019FE4: .4byte sub_8013F54 -_08019FE8: .4byte gUnknown_02024A7F - thumb_func_end b_call_bc_move_exec - - thumb_func_start b_push_move_exec -b_push_move_exec: @ 8019FEC - push {r4,lr} - adds r4, r0, 0 - bl b_movescr_stack_push_cursor - ldr r0, _0801A01C @ =gUnknown_02024C10 - str r4, [r0] - ldr r3, _0801A020 @ =0x02017140 - adds r2, r3, 0 - adds r2, 0x20 - ldrb r0, [r2] - adds r1, r0, 0x1 - strb r1, [r2] - lsls r0, 24 - lsrs r0, 22 - adds r0, r3 - ldr r2, _0801A024 @ =gUnknown_030042D4 - ldr r1, [r2] - str r1, [r0] - ldr r0, _0801A028 @ =sub_8013FBC - str r0, [r2] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801A01C: .4byte gUnknown_02024C10 -_0801A020: .4byte 0x02017140 -_0801A024: .4byte gUnknown_030042D4 -_0801A028: .4byte sub_8013FBC - thumb_func_end b_push_move_exec - - thumb_func_start sub_801A02C -sub_801A02C: @ 801A02C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r0, 0 - mov r10, r0 - movs r1, 0 - str r1, [sp, 0xC] - add r0, sp, 0x4 - strb r1, [r0] - ldr r4, _0801A078 @ =gUnknown_02024C04 - ldr r1, _0801A07C @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0801A084 - ldr r1, _0801A080 @ =gEnigmaBerries - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x7] - ldrb r0, [r0, 0x1A] - b _0801A098 - .align 2, 0 -_0801A078: .4byte gUnknown_02024C04 -_0801A07C: .4byte gBattleMons -_0801A080: .4byte gEnigmaBerries -_0801A084: - ldrh r0, [r4] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r0, 24 -_0801A098: - mov r9, r0 - ldr r1, _0801A0C0 @ =gBattleMons - ldr r0, _0801A0C4 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x2E] - str r0, [sp, 0x14] - cmp r0, 0xAF - bne _0801A0CC - ldr r1, _0801A0C8 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r3, [r0, 0x7] - mov r8, r3 - ldrb r0, [r0, 0x1A] - b _0801A0E2 - .align 2, 0 -_0801A0C0: .4byte gBattleMons -_0801A0C4: .4byte gUnknown_02024C07 -_0801A0C8: .4byte gEnigmaBerries -_0801A0CC: - ldr r0, [sp, 0x14] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r0, [sp, 0x14] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r0, 24 -_0801A0E2: - str r0, [sp, 0x10] - ldr r2, _0801A118 @ =gBattleMons - ldr r0, _0801A11C @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r4, [r0, 0x2E] - cmp r4, 0xAF - beq _0801A102 - adds r0, r4, 0 - bl ItemId_GetHoldEffect - adds r0, r4, 0 - bl ItemId_GetHoldEffectParam -_0801A102: - ldr r4, [sp, 0x8] - cmp r4, 0x4 - bls _0801A10C - bl _0801B3CA -_0801A10C: - lsls r0, r4, 2 - ldr r1, _0801A120 @ =_0801A124 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A118: .4byte gBattleMons -_0801A11C: .4byte gUnknown_02024C08 -_0801A120: .4byte _0801A124 - .align 2, 0 -_0801A124: - .4byte _0801A138 - .4byte _0801A1D4 - .4byte _0801B3CA - .4byte _0801AE0C - .4byte _0801B26C -_0801A138: - cmp r5, 0x17 - beq _0801A15C - cmp r5, 0x20 - beq _0801A144 - bl _0801B3CA -_0801A144: - ldr r0, _0801A154 @ =0x02000000 - ldr r5, _0801A158 @ =0x00016056 - adds r0, r5 - movs r1, 0x2 - strb r1, [r0] - bl _0801B3CA - .align 2, 0 -_0801A154: .4byte 0x02000000 -_0801A158: .4byte 0x00016056 -_0801A15C: - ldr r0, _0801A1B8 @ =gBattleMons - mov r8, r0 - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x18 - adds r1, r0 - movs r2, 0x6 - movs r3, 0x7 - mov r10, r3 -_0801A172: - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0801A180 - strb r2, [r1] - movs r4, 0x5 - str r4, [sp, 0xC] -_0801A180: - adds r1, 0x1 - movs r5, 0x1 - negs r5, r5 - add r10, r5 - mov r0, r10 - cmp r0, 0 - bge _0801A172 - ldr r1, [sp, 0xC] - cmp r1, 0 - bne _0801A198 - bl _0801B3CA -_0801A198: - ldr r0, _0801A1BC @ =0x02000000 - ldr r2, _0801A1C0 @ =0x00016003 - adds r0, r2 - strb r7, [r0] - ldr r0, _0801A1C4 @ =gUnknown_02024C0B - strb r7, [r0] - ldr r1, _0801A1C8 @ =gUnknown_02024A60 - ldr r0, _0801A1CC @ =gUnknown_02024C07 - strb r7, [r0] - strb r7, [r1] - ldr r0, _0801A1D0 @ =gUnknown_081D9A5E - bl b_call_bc_move_exec - bl _0801B3CA - .align 2, 0 -_0801A1B8: .4byte gBattleMons -_0801A1BC: .4byte 0x02000000 -_0801A1C0: .4byte 0x00016003 -_0801A1C4: .4byte gUnknown_02024C0B -_0801A1C8: .4byte gUnknown_02024A60 -_0801A1CC: .4byte gUnknown_02024C07 -_0801A1D0: .4byte gUnknown_081D9A5E -_0801A1D4: - ldr r1, _0801A1FC @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r0, r1 - ldrh r0, [r0, 0x28] - mov r8, r1 - cmp r0, 0 - bne _0801A1E8 - bl _0801B3CA -_0801A1E8: - subs r0, r5, 0x1 - cmp r0, 0x2A - bls _0801A1F2 - bl _0801AD5A -_0801A1F2: - lsls r0, 2 - ldr r1, _0801A200 @ =_0801A204 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801A1FC: .4byte gBattleMons -_0801A200: .4byte _0801A204 - .align 2, 0 -_0801A204: - .4byte _0801A2B0 - .4byte _0801AAC8 - .4byte _0801AB84 - .4byte _0801AAF8 - .4byte _0801AB2C - .4byte _0801AB5C - .4byte _0801A2F8 - .4byte _0801ABC8 - .4byte _0801ABF8 - .4byte _0801A4CC - .4byte _0801A548 - .4byte _0801A5C4 - .4byte _0801A634 - .4byte _0801A6C8 - .4byte _0801A75C - .4byte _0801A7D4 - .4byte _0801A838 - .4byte _0801A89C - .4byte _0801A900 - .4byte _0801A97C - .4byte _0801A9C8 - .4byte _0801AD5A - .4byte _0801A3F8 - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD24 - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801AD5A - .4byte _0801A46C -_0801A2B0: - movs r0, 0x58 - muls r0, r7 - mov r3, r8 - adds r2, r0, r3 - ldrh r0, [r2, 0x2C] - ldrh r1, [r2, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _0801A2C6 - bl _0801AD5A -_0801A2C6: - cmp r6, 0 - beq _0801A2CE - bl _0801AD5A -_0801A2CE: - ldr r4, _0801A2F0 @ =gUnknown_02024BEC - mov r5, r9 - str r5, [r4] - ldrh r3, [r2, 0x28] - adds r0, r3, r5 - ldrh r1, [r2, 0x2C] - cmp r0, r1 - ble _0801A2E2 - subs r0, r1, r3 - str r0, [r4] -_0801A2E2: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - ldr r0, _0801A2F4 @ =gUnknown_081D9A74 - bl b_call_bc_move_exec - b _0801A752 - .align 2, 0 -_0801A2F0: .4byte gUnknown_02024BEC -_0801A2F4: .4byte gUnknown_081D9A74 -_0801A2F8: - cmp r6, 0 - beq _0801A300 - bl _0801AD5A -_0801A300: - adds r0, r7, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0801A324 - ldr r1, _0801A31C @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0801A320 @ =gPlayerParty - b _0801A332 - .align 2, 0 -_0801A31C: .4byte gUnknown_02024A6A -_0801A320: .4byte gPlayerParty -_0801A324: - ldr r1, _0801A3A0 @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0801A3A4 @ =gEnemyParty -_0801A332: - adds r4, r1, r0 - movs r1, 0 - mov r10, r1 - add r5, sp, 0x4 -_0801A33A: - mov r1, r10 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - mov r1, r10 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - strb r0, [r5] - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - lsls r0, 24 - lsrs r1, r0, 24 - cmp r6, 0 - beq _0801A36A - ldrb r0, [r5] - cmp r0, 0 - beq _0801A374 -_0801A36A: - movs r2, 0x1 - add r10, r2 - mov r3, r10 - cmp r3, 0x3 - ble _0801A33A -_0801A374: - mov r4, r10 - cmp r4, 0x4 - bne _0801A37E - bl _0801AD5A -_0801A37E: - lsls r2, r4, 24 - lsrs r2, 24 - adds r0, r6, 0 - bl CalculatePPWithBonus - lsls r0, 24 - lsrs r2, r0, 24 - add r0, sp, 0x4 - ldrb r0, [r0] - mov r5, r9 - adds r1, r0, r5 - cmp r1, r2 - ble _0801A3A8 - add r0, sp, 0x4 - strb r2, [r0] - b _0801A3AC - .align 2, 0 -_0801A3A0: .4byte gUnknown_02024A6A -_0801A3A4: .4byte gEnemyParty -_0801A3A8: - add r0, sp, 0x4 - strb r1, [r0] -_0801A3AC: - ldr r1, _0801A3EC @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - strb r6, [r1, 0x2] - lsrs r0, r6, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r0, _0801A3F0 @ =gUnknown_081D9A91 - bl b_call_bc_move_exec - mov r1, r10 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - add r0, sp, 0x4 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, _0801A3F4 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - movs r1, 0x3 - str r1, [sp, 0xC] - bl _0801AD62 - .align 2, 0 -_0801A3EC: .4byte gUnknown_030041C0 -_0801A3F0: .4byte gUnknown_081D9A91 -_0801A3F4: .4byte gUnknown_02024A60 -_0801A3F8: - ldr r0, _0801A450 @ =gBattleMons - movs r1, 0x58 - muls r1, r7 - adds r0, 0x18 - adds r1, r0 - movs r2, 0x6 - movs r3, 0x7 - mov r10, r3 -_0801A408: - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0801A416 - strb r2, [r1] - movs r4, 0x5 - str r4, [sp, 0xC] -_0801A416: - adds r1, 0x1 - movs r5, 0x1 - negs r5, r5 - add r10, r5 - mov r0, r10 - cmp r0, 0 - bge _0801A408 - movs r1, 0x8 - mov r10, r1 - ldr r2, [sp, 0xC] - cmp r2, 0 - bne _0801A432 - bl _0801B3CA -_0801A432: - ldr r0, _0801A454 @ =0x02000000 - ldr r3, _0801A458 @ =0x00016003 - adds r0, r3 - strb r7, [r0] - ldr r0, _0801A45C @ =gUnknown_02024C0B - strb r7, [r0] - ldr r1, _0801A460 @ =gUnknown_02024A60 - ldr r0, _0801A464 @ =gUnknown_02024C07 - strb r7, [r0] - strb r7, [r1] - ldr r0, _0801A468 @ =gUnknown_081D9A5E - bl b_call_bc_move_exec - bl _0801AD5A - .align 2, 0 -_0801A450: .4byte gBattleMons -_0801A454: .4byte 0x02000000 -_0801A458: .4byte 0x00016003 -_0801A45C: .4byte gUnknown_02024C0B -_0801A460: .4byte gUnknown_02024A60 -_0801A464: .4byte gUnknown_02024C07 -_0801A468: .4byte gUnknown_081D9A5E -_0801A46C: - movs r0, 0x58 - muls r0, r7 - mov r4, r8 - adds r1, r0, r4 - ldrh r0, [r1, 0x28] - ldrh r2, [r1, 0x2C] - cmp r0, r2 - bcc _0801A480 - bl _0801AD5A -_0801A480: - cmp r6, 0 - beq _0801A488 - bl _0801AD5A -_0801A488: - ldr r3, _0801A4C4 @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - lsrs r0, 4 - str r0, [r3] - cmp r0, 0 - bne _0801A498 - movs r0, 0x1 - str r0, [r3] -_0801A498: - ldrh r2, [r1, 0x28] - ldr r0, [r3] - adds r0, r2, r0 - ldrh r1, [r1, 0x2C] - cmp r0, r1 - ble _0801A4A8 - subs r0, r1, r2 - str r0, [r3] -_0801A4A8: - ldr r0, [r3] - negs r0, r0 - str r0, [r3] - ldr r0, _0801A4C8 @ =gUnknown_081D9AA1 - bl b_call_bc_move_exec - movs r3, 0x4 - str r3, [sp, 0xC] - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_81074F8 - bl _0801AD5A - .align 2, 0 -_0801A4C4: .4byte gUnknown_02024BEC -_0801A4C8: .4byte gUnknown_081D9AA1 -_0801A4CC: - movs r0, 0x58 - adds r4, r7, 0 - muls r4, r0 - str r4, [sp, 0x18] - add r4, r8 - ldrh r0, [r4, 0x2C] - ldrh r1, [r4, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _0801A4E4 - bl _0801AD5A -_0801A4E4: - cmp r6, 0 - beq _0801A4EC - bl _0801AD5A -_0801A4EC: - ldr r1, _0801A540 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - strb r6, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r5, _0801A544 @ =gUnknown_02024BEC - ldrh r0, [r4, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _0801A510 - movs r0, 0x1 - str r0, [r5] -_0801A510: - ldrh r2, [r4, 0x28] - ldr r0, [r5] - adds r0, r2, r0 - ldrh r1, [r4, 0x2C] - cmp r0, r1 - ble _0801A520 - subs r0, r1, r2 - str r0, [r5] -_0801A520: - ldr r0, [r5] - negs r0, r0 - str r0, [r5] - mov r0, r8 - adds r0, 0x48 - ldr r5, [sp, 0x18] - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0 -_0801A532: - bl sub_8040A7C - lsls r0, 24 - cmp r0, 0 - bge _0801A53E - b _0801A738 -_0801A53E: - b _0801A74C - .align 2, 0 -_0801A540: .4byte gUnknown_030041C0 -_0801A544: .4byte gUnknown_02024BEC -_0801A548: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - str r1, [sp, 0x1C] - adds r5, r1, 0 - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _0801A562 - bl _0801AD5A -_0801A562: - cmp r6, 0 - beq _0801A56A - bl _0801AD5A -_0801A56A: - ldr r1, _0801A5BC @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r6, 0x1 - strb r6, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, _0801A5C0 @ =gUnknown_02024BEC - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801A58E - str r6, [r4] -_0801A58E: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _0801A59E - subs r0, r1, r2 - str r0, [r4] -_0801A59E: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r2, [sp, 0x1C] - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x1 - bl sub_8040A7C - lsls r0, 24 - cmp r0, 0 - blt _0801A6A4 - b _0801A6B8 - .align 2, 0 -_0801A5BC: .4byte gUnknown_030041C0 -_0801A5C0: .4byte gUnknown_02024BEC -_0801A5C4: - movs r0, 0x58 - adds r4, r7, 0 - muls r4, r0 - str r4, [sp, 0x20] - adds r5, r4, 0 - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _0801A5DC - b _0801AD5A -_0801A5DC: - cmp r6, 0 - beq _0801A5E2 - b _0801AD5A -_0801A5E2: - ldr r1, _0801A62C @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, _0801A630 @ =gUnknown_02024BEC - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801A608 - movs r0, 0x1 - str r0, [r4] -_0801A608: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _0801A618 - subs r0, r1, r2 - str r0, [r4] -_0801A618: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r5, [sp, 0x20] - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0x2 - b _0801A532 - .align 2, 0 -_0801A62C: .4byte gUnknown_030041C0 -_0801A630: .4byte gUnknown_02024BEC -_0801A634: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - str r1, [sp, 0x24] - adds r5, r1, 0 - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _0801A64C - b _0801AD5A -_0801A64C: - cmp r6, 0 - beq _0801A652 - b _0801AD5A -_0801A652: - ldr r1, _0801A6AC @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r0, 0x3 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, _0801A6B0 @ =gUnknown_02024BEC - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801A678 - movs r0, 0x1 - str r0, [r4] -_0801A678: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _0801A688 - subs r0, r1, r2 - str r0, [r4] -_0801A688: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r2, [sp, 0x24] - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x3 - bl sub_8040A7C - lsls r0, 24 - cmp r0, 0 - bge _0801A6B8 -_0801A6A4: - ldr r0, _0801A6B4 @ =gUnknown_081D9AD4 - bl b_call_bc_move_exec - b _0801A6BE - .align 2, 0 -_0801A6AC: .4byte gUnknown_030041C0 -_0801A6B0: .4byte gUnknown_02024BEC -_0801A6B4: .4byte gUnknown_081D9AD4 -_0801A6B8: - ldr r0, _0801A6C4 @ =gUnknown_081D9A74 - bl b_call_bc_move_exec -_0801A6BE: - movs r3, 0x4 - str r3, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801A6C4: .4byte gUnknown_081D9A74 -_0801A6C8: - movs r0, 0x58 - adds r4, r7, 0 - muls r4, r0 - str r4, [sp, 0x28] - adds r5, r4, 0 - add r5, r8 - ldrh r0, [r5, 0x2C] - ldrh r1, [r5, 0x28] - lsrs r0, 1 - cmp r1, r0 - bls _0801A6E0 - b _0801AD5A -_0801A6E0: - cmp r6, 0 - beq _0801A6E6 - b _0801AD5A -_0801A6E6: - ldr r1, _0801A740 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x8 - strb r0, [r1, 0x1] - movs r0, 0x4 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r4, _0801A744 @ =gUnknown_02024BEC - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801A70C - movs r0, 0x1 - str r0, [r4] -_0801A70C: - ldrh r2, [r5, 0x28] - ldr r0, [r4] - adds r0, r2, r0 - ldrh r1, [r5, 0x2C] - cmp r0, r1 - ble _0801A71C - subs r0, r1, r2 - str r0, [r4] -_0801A71C: - ldr r0, [r4] - negs r0, r0 - str r0, [r4] - mov r0, r8 - adds r0, 0x48 - ldr r5, [sp, 0x28] - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0x4 - bl sub_8040A7C - lsls r0, 24 - cmp r0, 0 - bge _0801A74C -_0801A738: - ldr r0, _0801A748 @ =gUnknown_081D9AD4 - bl b_call_bc_move_exec - b _0801A752 - .align 2, 0 -_0801A740: .4byte gUnknown_030041C0 -_0801A744: .4byte gUnknown_02024BEC -_0801A748: .4byte gUnknown_081D9AD4 -_0801A74C: - ldr r0, _0801A758 @ =gUnknown_081D9A74 - bl b_call_bc_move_exec -_0801A752: - movs r0, 0x4 - str r0, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801A758: .4byte gUnknown_081D9A74 -_0801A75C: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _0801A774 - b _0801AD5A -_0801A774: - cmp r6, 0 - beq _0801A77A - b _0801AD5A -_0801A77A: - movs r0, 0x19 - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _0801A784 - b _0801AD5A -_0801A784: - ldr r1, _0801A7BC @ =gUnknown_030041C0 - movs r2, 0xFD - strb r2, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x1 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, _0801A7C0 @ =gUnknown_03004290 - strb r2, [r1] - strb r6, [r1, 0x1] - movs r0, 0xD2 - strb r0, [r1, 0x2] - strb r6, [r1, 0x3] - subs r0, 0xD3 - strb r0, [r1, 0x4] - ldr r0, _0801A7C4 @ =gUnknown_02024C0A - strb r7, [r0] - ldr r1, _0801A7C8 @ =0x02000000 - ldr r3, _0801A7CC @ =0x0001601e - adds r2, r1, r3 - movs r0, 0x11 - strb r0, [r2] - ldr r4, _0801A7D0 @ =0x000160a4 - adds r2, r1, r4 - movs r0, 0xF - b _0801A94C - .align 2, 0 -_0801A7BC: .4byte gUnknown_030041C0 -_0801A7C0: .4byte gUnknown_03004290 -_0801A7C4: .4byte gUnknown_02024C0A -_0801A7C8: .4byte 0x02000000 -_0801A7CC: .4byte 0x0001601e -_0801A7D0: .4byte 0x000160a4 -_0801A7D4: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _0801A7EC - b _0801AD5A -_0801A7EC: - cmp r6, 0 - beq _0801A7F2 - b _0801AD5A -_0801A7F2: - movs r0, 0x1A - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _0801A7FC - b _0801AD5A -_0801A7FC: - ldr r1, _0801A824 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, _0801A828 @ =gUnknown_02024C0A - strb r7, [r0] - ldr r1, _0801A82C @ =0x02000000 - ldr r3, _0801A830 @ =0x0001601e - adds r2, r1, r3 - movs r0, 0x12 - strb r0, [r2] - ldr r4, _0801A834 @ =0x000160a4 - adds r2, r1, r4 - movs r0, 0x10 - b _0801A94C - .align 2, 0 -_0801A824: .4byte gUnknown_030041C0 -_0801A828: .4byte gUnknown_02024C0A -_0801A82C: .4byte 0x02000000 -_0801A830: .4byte 0x0001601e -_0801A834: .4byte 0x000160a4 -_0801A838: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _0801A850 - b _0801AD5A -_0801A850: - cmp r6, 0 - beq _0801A856 - b _0801AD5A -_0801A856: - movs r0, 0x1B - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _0801A860 - b _0801AD5A -_0801A860: - ldr r1, _0801A888 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x3 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, _0801A88C @ =gUnknown_02024C0A - strb r7, [r0] - ldr r1, _0801A890 @ =0x02000000 - ldr r3, _0801A894 @ =0x0001601e - adds r2, r1, r3 - movs r0, 0x13 - strb r0, [r2] - ldr r4, _0801A898 @ =0x000160a4 - adds r2, r1, r4 - movs r0, 0x11 - b _0801A94C - .align 2, 0 -_0801A888: .4byte gUnknown_030041C0 -_0801A88C: .4byte gUnknown_02024C0A -_0801A890: .4byte 0x02000000 -_0801A894: .4byte 0x0001601e -_0801A898: .4byte 0x000160a4 -_0801A89C: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _0801A8B4 - b _0801AD5A -_0801A8B4: - cmp r6, 0 - beq _0801A8BA - b _0801AD5A -_0801A8BA: - movs r0, 0x1C - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _0801A8C4 - b _0801AD5A -_0801A8C4: - ldr r1, _0801A8EC @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - movs r0, 0x4 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, _0801A8F0 @ =gUnknown_02024C0A - strb r7, [r0] - ldr r1, _0801A8F4 @ =0x02000000 - ldr r3, _0801A8F8 @ =0x0001601e - adds r2, r1, r3 - movs r0, 0x14 - strb r0, [r2] - ldr r4, _0801A8FC @ =0x000160a4 - adds r2, r1, r4 - movs r0, 0x12 - b _0801A94C - .align 2, 0 -_0801A8EC: .4byte gUnknown_030041C0 -_0801A8F0: .4byte gUnknown_02024C0A -_0801A8F4: .4byte 0x02000000 -_0801A8F8: .4byte 0x0001601e -_0801A8FC: .4byte 0x000160a4 -_0801A900: - movs r0, 0x58 - muls r0, r7 - mov r1, r8 - adds r5, r0, r1 - ldrh r4, [r5, 0x28] - ldrh r0, [r5, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _0801A918 - b _0801AD5A -_0801A918: - cmp r6, 0 - beq _0801A91E - b _0801AD5A -_0801A91E: - movs r0, 0x1D - ldrsb r0, [r5, r0] - cmp r0, 0xB - ble _0801A928 - b _0801AD5A -_0801A928: - ldr r1, _0801A960 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, _0801A964 @ =gUnknown_02024C0A - strb r7, [r0] - ldr r1, _0801A968 @ =0x02000000 - ldr r3, _0801A96C @ =0x0001601e - adds r2, r1, r3 - movs r0, 0x15 - strb r0, [r2] - ldr r4, _0801A970 @ =0x000160a4 - adds r2, r1, r4 - movs r0, 0x13 -_0801A94C: - strb r0, [r2] - ldr r5, _0801A974 @ =0x000160a5 - adds r1, r5 - strb r6, [r1] - ldr r0, _0801A978 @ =gUnknown_081D9AFE - bl b_call_bc_move_exec - movs r0, 0x5 - str r0, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801A960: .4byte gUnknown_030041C0 -_0801A964: .4byte gUnknown_02024C0A -_0801A968: .4byte 0x02000000 -_0801A96C: .4byte 0x0001601e -_0801A970: .4byte 0x000160a4 -_0801A974: .4byte 0x000160a5 -_0801A978: .4byte gUnknown_081D9AFE -_0801A97C: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - mov r1, r8 - adds r0, r5, r1 - ldrh r4, [r0, 0x28] - ldrh r0, [r0, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _0801A996 - b _0801AD5A -_0801A996: - cmp r6, 0 - beq _0801A99C - b _0801AD5A -_0801A99C: - mov r0, r8 - adds r0, 0x50 - adds r1, r5, r0 - ldr r2, [r1] - movs r3, 0x80 - lsls r3, 13 - adds r0, r2, 0 - ands r0, r3 - cmp r0, 0 - beq _0801A9B2 - b _0801AD5A -_0801A9B2: - orrs r2, r3 - str r2, [r1] - ldr r0, _0801A9C4 @ =gUnknown_081D9B19 - bl b_call_bc_move_exec - movs r2, 0x2 - str r2, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801A9C4: .4byte gUnknown_081D9B19 -_0801A9C8: - cmp r6, 0 - beq _0801A9CE - b _0801AD5A -_0801A9CE: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - mov r3, r8 - adds r0, r5, r3 - ldrh r4, [r0, 0x28] - ldrh r0, [r0, 0x2C] - mov r1, r9 - bl __divsi3 - cmp r4, r0 - ble _0801A9E8 - b _0801AD5A -_0801A9E8: - movs r4, 0 - mov r10, r4 - adds r0, r5, 0x1 - mov r1, r8 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xB - ble _0801AA18 - mov r0, r8 - adds r0, 0x19 - adds r1, r5, r0 -_0801AA04: - adds r1, 0x1 - movs r5, 0x1 - add r10, r5 - mov r0, r10 - cmp r0, 0x4 - bgt _0801AA18 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0xB - bgt _0801AA04 -_0801AA18: - mov r1, r10 - cmp r1, 0x5 - bne _0801AA20 - b _0801AD5A -_0801AA20: - movs r0, 0x58 - muls r0, r7 - adds r4, r0, 0x1 - ldr r5, _0801AAA4 @ =gUnknown_02024A98 -_0801AA28: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xC - beq _0801AA28 - ldr r1, _0801AAA8 @ =gUnknown_030041C0 - movs r3, 0 - movs r2, 0xFD - strb r2, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - mov r0, r10 - adds r0, 0x1 - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r0, _0801AAAC @ =gUnknown_03004290 - strb r2, [r0] - strb r3, [r0, 0x1] - movs r1, 0xD1 - strb r1, [r0, 0x2] - strb r3, [r0, 0x3] - strb r3, [r0, 0x4] - movs r1, 0xD2 - strb r1, [r0, 0x5] - strb r3, [r0, 0x6] - subs r1, 0xD3 - strb r1, [r0, 0x7] - ldr r0, _0801AAB0 @ =gUnknown_02024C0A - strb r7, [r0] - ldr r1, _0801AAB4 @ =0x02000000 - mov r2, r10 - adds r2, 0x21 - ldr r4, _0801AAB8 @ =0x0001601e - adds r0, r1, r4 - strb r2, [r0] - adds r2, 0x6 - ldr r5, _0801AABC @ =0x000160a4 - adds r0, r1, r5 - strb r2, [r0] - ldr r0, _0801AAC0 @ =0x000160a5 - adds r1, r0 - strb r3, [r1] - ldr r0, _0801AAC4 @ =gUnknown_081D9AFE - bl b_call_bc_move_exec - movs r1, 0x5 - str r1, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801AAA4: .4byte gUnknown_02024A98 -_0801AAA8: .4byte gUnknown_030041C0 -_0801AAAC: .4byte gUnknown_03004290 -_0801AAB0: .4byte gUnknown_02024C0A -_0801AAB4: .4byte 0x02000000 -_0801AAB8: .4byte 0x0001601e -_0801AABC: .4byte 0x000160a4 -_0801AAC0: .4byte 0x000160a5 -_0801AAC4: .4byte gUnknown_081D9AFE -_0801AAC8: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _0801AAE0 - b _0801AD5A -_0801AAE0: - movs r0, 0x41 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, _0801AAF4 @ =gUnknown_081D99B6 - bl b_call_bc_move_exec - movs r2, 0x1 - str r2, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801AAF4: .4byte gUnknown_081D99B6 -_0801AAF8: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x88 - ands r0, r2 - cmp r0, 0 - bne _0801AB10 - b _0801AD5A -_0801AB10: - ldr r0, _0801AB24 @ =0xfffff077 - ands r2, r0 - str r2, [r1] - ldr r0, _0801AB28 @ =gUnknown_081D99CE - bl b_call_bc_move_exec - movs r3, 0x1 - str r3, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801AB24: .4byte 0xfffff077 -_0801AB28: .4byte gUnknown_081D99CE -_0801AB2C: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x10 - ands r0, r2 - cmp r0, 0 - bne _0801AB44 - b _0801AD5A -_0801AB44: - movs r0, 0x11 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, _0801AB58 @ =gUnknown_081D99E6 - bl b_call_bc_move_exec - movs r4, 0x1 - str r4, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801AB58: .4byte gUnknown_081D99E6 -_0801AB5C: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x4C - adds r1, r0 - ldr r2, [r1] - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - bne _0801AB74 - b _0801AD5A -_0801AB74: - movs r0, 0x21 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, _0801AB80 @ =gUnknown_081D99FE - b _0801AD0E - .align 2, 0 -_0801AB80: .4byte gUnknown_081D99FE -_0801AB84: - movs r0, 0x58 - adds r3, r7, 0 - muls r3, r0 - mov r0, r8 - adds r0, 0x4C - adds r2, r3, r0 - ldr r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801AB9C - b _0801AD5A -_0801AB9C: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] - mov r1, r8 - adds r1, 0x50 - adds r1, r3, r1 - ldr r0, [r1] - ldr r2, _0801ABC0 @ =0xf7ffffff - ands r0, r2 - str r0, [r1] - ldr r0, _0801ABC4 @ =gUnknown_081D9A16 - bl b_call_bc_move_exec - movs r0, 0x1 - str r0, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801ABC0: .4byte 0xf7ffffff -_0801ABC4: .4byte gUnknown_081D9A16 -_0801ABC8: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x50 - adds r1, r0 - ldr r2, [r1] - movs r0, 0x7 - ands r0, r2 - cmp r0, 0 - bne _0801ABE0 - b _0801AD5A -_0801ABE0: - movs r0, 0x8 - negs r0, r0 - ands r2, r0 - str r2, [r1] - ldr r0, _0801ABF4 @ =gUnknown_081D9A2E - bl b_call_bc_move_exec - movs r1, 0x2 - str r1, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801ABF4: .4byte gUnknown_081D9A2E -_0801ABF8: - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - mov r0, r8 - adds r0, 0x4C - adds r4, r5, r0 - ldr r2, [r4] - ldrb r0, [r4] - cmp r0, 0 - bne _0801AC1E - mov r0, r8 - adds r0, 0x50 - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801AC1E - b _0801AD5A -_0801AC1E: - movs r3, 0 - mov r10, r3 - movs r0, 0x88 - ands r2, r0 - cmp r2, 0 - beq _0801AC36 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 - ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn - bl StringCopy - movs r0, 0x1 - mov r10, r0 -_0801AC36: - ldr r0, [r4] - movs r1, 0x7 - mov r9, r1 - ands r0, r1 - mov r6, r8 - adds r6, 0x50 - cmp r0, 0 - beq _0801AC5C - adds r2, r5, r6 - ldr r0, [r2] - ldr r1, _0801ACCC @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r0, _0801ACC4 @ =gUnknown_030041C0 - ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn - bl StringCopy - movs r2, 0x1 - add r10, r2 -_0801AC5C: - ldr r0, [r4] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801AC72 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 - ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn - bl StringCopy - movs r3, 0x1 - add r10, r3 -_0801AC72: - ldr r0, [r4] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0801AC88 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 - ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn - bl StringCopy - movs r0, 0x1 - add r10, r0 -_0801AC88: - ldr r0, [r4] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0801AC9E - ldr r0, _0801ACC4 @ =gUnknown_030041C0 - ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn - bl StringCopy - movs r1, 0x1 - add r10, r1 -_0801AC9E: - adds r0, r5, r6 - ldr r0, [r0] - mov r2, r9 - ands r0, r2 - cmp r0, 0 - beq _0801ACB6 - ldr r0, _0801ACC4 @ =gUnknown_030041C0 - ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn - bl StringCopy - movs r3, 0x1 - add r10, r3 -_0801ACB6: - mov r4, r10 - cmp r4, 0x1 - bgt _0801ACE8 - ldr r1, _0801ACE4 @ =gUnknown_02024D1E - movs r0, 0 - b _0801ACEC - .align 2, 0 -_0801ACC4: .4byte gUnknown_030041C0 -_0801ACC8: .4byte gStatusConditionString_PoisonJpn -_0801ACCC: .4byte 0xf7ffffff -_0801ACD0: .4byte gStatusConditionString_SleepJpn -_0801ACD4: .4byte gStatusConditionString_ParalysisJpn -_0801ACD8: .4byte gStatusConditionString_BurnJpn -_0801ACDC: .4byte gStatusConditionString_IceJpn -_0801ACE0: .4byte gStatusConditionString_ConfusionJpn -_0801ACE4: .4byte gUnknown_02024D1E -_0801ACE8: - ldr r1, _0801AD18 @ =gUnknown_02024D1E - movs r0, 0x1 -_0801ACEC: - strb r0, [r1, 0x5] - ldr r2, _0801AD1C @ =gBattleMons - movs r0, 0x58 - adds r3, r7, 0 - muls r3, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r3, r0 - movs r1, 0 - str r1, [r0] - adds r2, 0x50 - adds r3, r2 - ldr r0, [r3] - subs r1, 0x8 - ands r0, r1 - str r0, [r3] - ldr r0, _0801AD20 @ =gUnknown_081D9A44 -_0801AD0E: - bl b_call_bc_move_exec - movs r5, 0x1 - str r5, [sp, 0xC] - b _0801AD62 - .align 2, 0 -_0801AD18: .4byte gUnknown_02024D1E -_0801AD1C: .4byte gBattleMons -_0801AD20: .4byte gUnknown_081D9A44 -_0801AD24: - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x50 - adds r1, r0 - ldr r2, [r1] - movs r0, 0xF0 - lsls r0, 12 - ands r0, r2 - cmp r0, 0 - beq _0801AD5A - ldr r0, _0801AD84 @ =0xfff0ffff - ands r2, r0 - str r2, [r1] - ldr r0, _0801AD88 @ =gUnknown_030041C0 - ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn - bl StringCopy - ldr r0, _0801AD90 @ =gUnknown_081D9A44 - bl b_call_bc_move_exec - ldr r1, _0801AD94 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] - movs r0, 0x2 - str r0, [sp, 0xC] -_0801AD5A: - ldr r1, [sp, 0xC] - cmp r1, 0 - bne _0801AD62 - b _0801B3CA -_0801AD62: - ldr r0, _0801AD98 @ =0x02000000 - ldr r2, _0801AD9C @ =0x00016003 - adds r0, r2 - strb r7, [r0] - ldr r0, _0801ADA0 @ =gUnknown_02024C0B - strb r7, [r0] - ldr r4, _0801ADA4 @ =gUnknown_02024A60 - ldr r0, _0801ADA8 @ =gUnknown_02024C07 - strb r7, [r0] - strb r7, [r4] - ldr r3, [sp, 0xC] - cmp r3, 0x1 - beq _0801ADAC - cmp r3, 0x3 - beq _0801ADB2 - b _0801B3CA - .align 2, 0 -_0801AD84: .4byte 0xfff0ffff -_0801AD88: .4byte gUnknown_030041C0 -_0801AD8C: .4byte gStatusConditionString_LoveJpn -_0801AD90: .4byte gUnknown_081D9A44 -_0801AD94: .4byte gUnknown_02024D1E -_0801AD98: .4byte 0x02000000 -_0801AD9C: .4byte 0x00016003 -_0801ADA0: .4byte gUnknown_02024C0B -_0801ADA4: .4byte gUnknown_02024A60 -_0801ADA8: .4byte gUnknown_02024C07 -_0801ADAC: - movs r0, 0x58 - muls r0, r7 - b _0801B224 -_0801ADB2: - ldr r4, _0801AE00 @ =gBattleMons - movs r0, 0x58 - adds r3, r7, 0 - muls r3, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - beq _0801ADCE - b _0801B3CA -_0801ADCE: - ldr r1, _0801AE04 @ =gUnknown_02024CA8 - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _0801AE08 @ =gBitTable - mov r5, r10 - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801ADEE - b _0801B3CA -_0801ADEE: - adds r1, r5, r3 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - add r0, sp, 0x4 - ldrb r0, [r0] - strb r0, [r1] - b _0801B3CA - .align 2, 0 -_0801AE00: .4byte gBattleMons -_0801AE04: .4byte gUnknown_02024CA8 -_0801AE08: .4byte gBitTable -_0801AE0C: - movs r7, 0 - ldr r0, _0801AE3C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r7, r0 - bcc _0801AE18 - b _0801B3CA -_0801AE18: - ldr r4, _0801AE40 @ =gUnknown_02024C04 - ldr r1, _0801AE44 @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0801AE4C - ldr r1, _0801AE48 @ =gEnigmaBerries - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x7] - b _0801AE5C - .align 2, 0 -_0801AE3C: .4byte gUnknown_02024A68 -_0801AE40: .4byte gUnknown_02024C04 -_0801AE44: .4byte gBattleMons -_0801AE48: .4byte gEnigmaBerries -_0801AE4C: - ldrh r0, [r4] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4] - bl ItemId_GetHoldEffectParam -_0801AE5C: - subs r0, r5, 0x2 - cmp r0, 0x1A - bls _0801AE64 - b _0801B208 -_0801AE64: - lsls r0, 2 - ldr r1, _0801AE70 @ =_0801AE74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801AE70: .4byte _0801AE74 - .align 2, 0 -_0801AE74: - .4byte _0801AEE0 - .4byte _0801AFC8 - .4byte _0801AF1C - .4byte _0801AF58 - .4byte _0801AF94 - .4byte _0801B208 - .4byte _0801B018 - .4byte _0801B0AC - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B1A0 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B208 - .4byte _0801B054 -_0801AEE0: - ldr r1, _0801AF10 @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0801AEF6 - b _0801B208 -_0801AEF6: - movs r0, 0x41 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801AF14 @ =gUnknown_02024C10 - ldr r0, _0801AF18 @ =gUnknown_081D99BC - str r0, [r1] - movs r0, 0x1 - str r0, [sp, 0xC] - b _0801B20E - .align 2, 0 -_0801AF10: .4byte gBattleMons -_0801AF14: .4byte gUnknown_02024C10 -_0801AF18: .4byte gUnknown_081D99BC -_0801AF1C: - ldr r1, _0801AF48 @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0801AF32 - b _0801B208 -_0801AF32: - ldr r0, _0801AF4C @ =0xfffff077 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801AF50 @ =gUnknown_02024C10 - ldr r0, _0801AF54 @ =gUnknown_081D99D4 - str r0, [r1] - movs r1, 0x1 - str r1, [sp, 0xC] - b _0801B20E - .align 2, 0 -_0801AF48: .4byte gBattleMons -_0801AF4C: .4byte 0xfffff077 -_0801AF50: .4byte gUnknown_02024C10 -_0801AF54: .4byte gUnknown_081D99D4 -_0801AF58: - ldr r1, _0801AF88 @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0801AF6E - b _0801B208 -_0801AF6E: - movs r0, 0x11 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801AF8C @ =gUnknown_02024C10 - ldr r0, _0801AF90 @ =gUnknown_081D99EC - str r0, [r1] - movs r2, 0x1 - str r2, [sp, 0xC] - b _0801B20E - .align 2, 0 -_0801AF88: .4byte gBattleMons -_0801AF8C: .4byte gUnknown_02024C10 -_0801AF90: .4byte gUnknown_081D99EC -_0801AF94: - ldr r1, _0801AFBC @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x4C - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0801AFAA - b _0801B208 -_0801AFAA: - movs r0, 0x21 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801AFC0 @ =gUnknown_02024C10 - ldr r0, _0801AFC4 @ =gUnknown_081D9A04 - b _0801B168 - .align 2, 0 -_0801AFBC: .4byte gBattleMons -_0801AFC0: .4byte gUnknown_02024C10 -_0801AFC4: .4byte gUnknown_081D9A04 -_0801AFC8: - ldr r2, _0801B008 @ =gBattleMons - movs r0, 0x58 - adds r4, r7, 0 - muls r4, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r3, r4, r0 - ldr r1, [r3] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801AFE2 - b _0801B208 -_0801AFE2: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r3] - adds r2, 0x50 - adds r2, r4, r2 - ldr r0, [r2] - ldr r1, _0801B00C @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801B010 @ =gUnknown_02024C10 - ldr r0, _0801B014 @ =gUnknown_081D9A1C - str r0, [r1] - movs r4, 0x1 - str r4, [sp, 0xC] - b _0801B20E - .align 2, 0 -_0801B008: .4byte gBattleMons -_0801B00C: .4byte 0xf7ffffff -_0801B010: .4byte gUnknown_02024C10 -_0801B014: .4byte gUnknown_081D9A1C -_0801B018: - ldr r1, _0801B048 @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801B02E - b _0801B208 -_0801B02E: - movs r0, 0x8 - negs r0, r0 - ands r1, r0 - str r1, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801B04C @ =gUnknown_02024C10 - ldr r0, _0801B050 @ =gUnknown_081D9A34 - str r0, [r1] - movs r5, 0x2 - str r5, [sp, 0xC] - b _0801B20E - .align 2, 0 -_0801B048: .4byte gBattleMons -_0801B04C: .4byte gUnknown_02024C10 -_0801B050: .4byte gUnknown_081D9A34 -_0801B054: - ldr r1, _0801B090 @ =gBattleMons - movs r0, 0x58 - muls r0, r7 - adds r1, 0x50 - adds r2, r0, r1 - ldr r1, [r2] - movs r0, 0xF0 - lsls r0, 12 - ands r0, r1 - cmp r0, 0 - bne _0801B06C - b _0801B208 -_0801B06C: - ldr r0, _0801B094 @ =0xfff0ffff - ands r1, r0 - str r1, [r2] - ldr r0, _0801B098 @ =gUnknown_030041C0 - ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn - bl StringCopy - bl b_movescr_stack_push_cursor - ldr r1, _0801B0A0 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] - ldr r1, _0801B0A4 @ =gUnknown_02024C10 - ldr r0, _0801B0A8 @ =gUnknown_081D9A4A - str r0, [r1] - movs r0, 0x2 - str r0, [sp, 0xC] - b _0801B20E - .align 2, 0 -_0801B090: .4byte gBattleMons -_0801B094: .4byte 0xfff0ffff -_0801B098: .4byte gUnknown_030041C0 -_0801B09C: .4byte gStatusConditionString_LoveJpn -_0801B0A0: .4byte gUnknown_02024D1E -_0801B0A4: .4byte gUnknown_02024C10 -_0801B0A8: .4byte gUnknown_081D9A4A -_0801B0AC: - ldr r4, _0801B170 @ =gBattleMons - movs r0, 0x58 - adds r5, r7, 0 - muls r5, r0 - adds r0, r4, 0 - adds r0, 0x4C - adds r6, r5, r0 - ldr r2, [r6] - ldrb r0, [r6] - cmp r0, 0 - bne _0801B0D4 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r5, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801B0D4 - b _0801B208 -_0801B0D4: - movs r0, 0x88 - ands r2, r0 - cmp r2, 0 - beq _0801B0E4 - ldr r0, _0801B174 @ =gUnknown_030041C0 - ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn - bl StringCopy -_0801B0E4: - ldr r0, [r6] - movs r1, 0x7 - mov r8, r1 - ands r0, r1 - adds r4, 0x50 - cmp r0, 0 - beq _0801B104 - adds r2, r5, r4 - ldr r0, [r2] - ldr r1, _0801B17C @ =0xf7ffffff - ands r0, r1 - str r0, [r2] - ldr r0, _0801B174 @ =gUnknown_030041C0 - ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn - bl StringCopy -_0801B104: - ldr r0, [r6] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801B116 - ldr r0, _0801B174 @ =gUnknown_030041C0 - ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn - bl StringCopy -_0801B116: - ldr r0, [r6] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0801B128 - ldr r0, _0801B174 @ =gUnknown_030041C0 - ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn - bl StringCopy -_0801B128: - ldr r0, [r6] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0801B13A - ldr r0, _0801B174 @ =gUnknown_030041C0 - ldr r1, _0801B18C @ =gStatusConditionString_IceJpn - bl StringCopy -_0801B13A: - adds r5, r4 - ldr r0, [r5] - mov r2, r8 - ands r0, r2 - cmp r0, 0 - beq _0801B14E - ldr r0, _0801B174 @ =gUnknown_030041C0 - ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn - bl StringCopy -_0801B14E: - movs r4, 0 - str r4, [r6] - ldr r0, [r5] - movs r1, 0x8 - negs r1, r1 - ands r0, r1 - str r0, [r5] - bl b_movescr_stack_push_cursor - ldr r0, _0801B194 @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - ldr r1, _0801B198 @ =gUnknown_02024C10 - ldr r0, _0801B19C @ =gUnknown_081D9A4A -_0801B168: - str r0, [r1] - movs r3, 0x1 - str r3, [sp, 0xC] - b _0801B20E - .align 2, 0 -_0801B170: .4byte gBattleMons -_0801B174: .4byte gUnknown_030041C0 -_0801B178: .4byte gStatusConditionString_PoisonJpn -_0801B17C: .4byte 0xf7ffffff -_0801B180: .4byte gStatusConditionString_SleepJpn -_0801B184: .4byte gStatusConditionString_ParalysisJpn -_0801B188: .4byte gStatusConditionString_BurnJpn -_0801B18C: .4byte gStatusConditionString_IceJpn -_0801B190: .4byte gStatusConditionString_ConfusionJpn -_0801B194: .4byte gUnknown_02024D1E -_0801B198: .4byte gUnknown_02024C10 -_0801B19C: .4byte gUnknown_081D9A4A -_0801B1A0: - ldr r4, _0801B1F0 @ =gBattleMons - mov r8, r4 - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - mov r0, r8 - adds r0, 0x18 - adds r1, r0 - movs r2, 0x6 - movs r5, 0x7 - mov r10, r5 -_0801B1B6: - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0x5 - bgt _0801B1C4 - strb r2, [r1] - movs r0, 0x5 - str r0, [sp, 0xC] -_0801B1C4: - adds r1, 0x1 - movs r3, 0x1 - negs r3, r3 - add r10, r3 - mov r4, r10 - cmp r4, 0 - bge _0801B1B6 - ldr r5, [sp, 0xC] - cmp r5, 0 - beq _0801B254 - ldr r0, _0801B1F4 @ =0x02000000 - ldr r1, _0801B1F8 @ =0x00016003 - adds r0, r1 - strb r7, [r0] - ldr r0, _0801B1FC @ =gUnknown_02024C0B - strb r7, [r0] - bl b_movescr_stack_push_cursor - ldr r1, _0801B200 @ =gUnknown_02024C10 - ldr r0, _0801B204 @ =gUnknown_081D9A64 - str r0, [r1] - b _0801B3CA - .align 2, 0 -_0801B1F0: .4byte gBattleMons -_0801B1F4: .4byte 0x02000000 -_0801B1F8: .4byte 0x00016003 -_0801B1FC: .4byte gUnknown_02024C0B -_0801B200: .4byte gUnknown_02024C10 -_0801B204: .4byte gUnknown_081D9A64 -_0801B208: - ldr r2, [sp, 0xC] - cmp r2, 0 - beq _0801B254 -_0801B20E: - ldr r0, _0801B240 @ =0x02000000 - ldr r3, _0801B244 @ =0x00016003 - adds r0, r3 - strb r7, [r0] - ldr r0, _0801B248 @ =gUnknown_02024C0B - strb r7, [r0] - ldr r4, _0801B24C @ =gUnknown_02024A60 - strb r7, [r4] - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 -_0801B224: - ldr r1, _0801B250 @ =gUnknown_02024ACC - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0801B3CA - .align 2, 0 -_0801B240: .4byte 0x02000000 -_0801B244: .4byte 0x00016003 -_0801B248: .4byte gUnknown_02024C0B -_0801B24C: .4byte gUnknown_02024A60 -_0801B250: .4byte gUnknown_02024ACC -_0801B254: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0801B268 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r7, r0 - bcs _0801B264 - b _0801AE18 -_0801B264: - b _0801B3CA - .align 2, 0 -_0801B268: .4byte gUnknown_02024A68 -_0801B26C: - ldr r7, _0801B284 @ =gUnknown_02024BEC - ldr r0, [r7] - cmp r0, 0 - bne _0801B276 - b _0801B3CA -_0801B276: - mov r4, r8 - cmp r4, 0x1E - beq _0801B288 - cmp r4, 0x3E - beq _0801B330 - b _0801B3CA - .align 2, 0 -_0801B284: .4byte gUnknown_02024BEC -_0801B288: - ldr r0, _0801B314 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801B296 - b _0801B3CA -_0801B296: - ldr r2, _0801B318 @ =gUnknown_02024D68 - ldr r4, _0801B31C @ =gUnknown_02024C08 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r1, r0, 2 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801B2BC - adds r0, r2, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0801B2BC - b _0801B3CA -_0801B2BC: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r9 - bcs _0801B3CA - ldr r2, _0801B320 @ =gBattleMoves - ldr r0, _0801B324 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0801B3CA - ldr r2, _0801B328 @ =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801B3CA - ldr r1, _0801B32C @ =gUnknown_02024D1E - movs r0, 0x8 - strb r0, [r1, 0x3] - bl b_movescr_stack_push_cursor - movs r0, 0 - movs r1, 0 - bl sub_801E3EC - bl b_movescr_stack_pop_cursor - b _0801B3CA - .align 2, 0 -_0801B314: .4byte gUnknown_02024C68 -_0801B318: .4byte gUnknown_02024D68 -_0801B31C: .4byte gUnknown_02024C08 -_0801B320: .4byte gBattleMoves -_0801B324: .4byte gUnknown_02024BE6 -_0801B328: .4byte gBattleMons -_0801B32C: .4byte gUnknown_02024D1E -_0801B330: - ldr r0, _0801B3DC @ =gUnknown_02024C68 - ldrb r0, [r0] - movs r4, 0x29 - ands r4, r0 - cmp r4, 0 - bne _0801B3CA - ldr r1, _0801B3E0 @ =gUnknown_02024D68 - ldr r5, _0801B3E4 @ =gUnknown_02024C08 - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 2 - adds r6, r1, 0x4 - adds r0, r6 - ldr r1, [r0] - cmp r1, 0 - beq _0801B3CA - ldr r0, _0801B3E8 @ =0x0000ffff - cmp r1, r0 - beq _0801B3CA - ldr r0, _0801B3EC @ =gUnknown_02024C07 - ldrb r3, [r0] - cmp r3, r2 - beq _0801B3CA - ldr r2, _0801B3F0 @ =gBattleMons - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - beq _0801B3CA - cmp r1, 0 - beq _0801B3CA - ldr r0, _0801B3F4 @ =gUnknown_02024C04 - mov r1, sp - ldrh r1, [r1, 0x14] - strh r1, [r0] - ldr r0, _0801B3F8 @ =gUnknown_02024C0B - strb r3, [r0] - ldr r0, _0801B3FC @ =0x02000000 - ldr r2, _0801B400 @ =0x00016003 - adds r0, r2 - strb r3, [r0] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldr r1, [sp, 0x10] - bl __divsi3 - negs r0, r0 - str r0, [r7] - ldrb r1, [r5] - cmp r0, 0 - bne _0801B3AC - movs r0, 0x1 - negs r0, r0 - str r0, [r7] -_0801B3AC: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - str r4, [r0] - bl b_movescr_stack_push_cursor - ldr r1, _0801B404 @ =gUnknown_02024C10 - ldr r0, _0801B408 @ =gUnknown_081D9AA7 - str r0, [r1] - ldr r0, [sp, 0xC] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] -_0801B3CA: - ldr r0, [sp, 0xC] - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801B3DC: .4byte gUnknown_02024C68 -_0801B3E0: .4byte gUnknown_02024D68 -_0801B3E4: .4byte gUnknown_02024C08 -_0801B3E8: .4byte 0x0000ffff -_0801B3EC: .4byte gUnknown_02024C07 -_0801B3F0: .4byte gBattleMons -_0801B3F4: .4byte gUnknown_02024C04 -_0801B3F8: .4byte gUnknown_02024C0B -_0801B3FC: .4byte 0x02000000 -_0801B400: .4byte 0x00016003 -_0801B404: .4byte gUnknown_02024C10 -_0801B408: .4byte gUnknown_081D9AA7 - thumb_func_end sub_801A02C - - thumb_func_start unref_sub_801B40C -unref_sub_801B40C: @ 801B40C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - str r0, [sp] - ldr r0, _0801B464 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801B42A - b _0801B56E -_0801B42A: - movs r1, 0x1 - mov r9, r1 -_0801B42E: - movs r5, 0 - ldr r4, _0801B468 @ =gUnknown_081FC1D0 - ldr r2, [sp] - adds r2, 0x1 - str r2, [sp, 0x4] -_0801B438: - ldr r0, _0801B46C @ =gUnknown_02024C0C - ldrb r2, [r0] - ldr r3, _0801B470 @ =gBitTable - lsls r0, r5, 2 - adds r0, r3 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - bne _0801B45A - adds r0, r5, 0x2 - lsls r1, r0, 2 - adds r1, r3 - ldr r1, [r1] - ands r2, r1 - adds r7, r0, 0 - cmp r2, 0 - beq _0801B474 -_0801B45A: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _0801B556 - .align 2, 0 -_0801B464: .4byte gUnknown_020239F8 -_0801B468: .4byte gUnknown_081FC1D0 -_0801B46C: .4byte gUnknown_02024C0C -_0801B470: .4byte gBitTable -_0801B474: - ldr r0, _0801B580 @ =gUnknown_081FC1D0 - ldr r2, [sp] - lsls r1, r2, 3 - adds r6, r1, r0 - ldr r4, _0801B584 @ =gUnknown_02024C60 - lsls r0, r5, 1 - adds r3, r0, r4 - ldrh r2, [r6] - mov r8, r1 - mov r10, r0 - ldrh r3, [r3] - cmp r2, r3 - bne _0801B4E4 - lsls r0, r7, 1 - adds r0, r4 - ldrh r1, [r6, 0x2] - ldrh r0, [r0] - cmp r1, r0 - bne _0801B4E4 - adds r0, r5, 0 - bl battle_get_per_side_status - mov r2, r9 - ands r2, r0 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r0, _0801B588 @ =gUnknown_02024C80 - adds r1, r0 - lsls r0, r7, 4 - orrs r0, r5 - strb r0, [r1, 0x3] - adds r0, r5, 0 - bl battle_get_per_side_status - mov r1, r9 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0801B588 @ =gUnknown_02024C80 - adds r0, r1 - ldrh r1, [r6, 0x4] - strh r1, [r0, 0x4] - adds r0, r5, 0 - bl battle_get_per_side_status - mov r1, r9 - ands r1, r0 - lsls r1, 1 - ldr r2, _0801B58C @ =gUnknown_02024C7A - adds r1, r2 - ldrh r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strh r0, [r1] -_0801B4E4: - ldr r0, _0801B580 @ =gUnknown_081FC1D0 - mov r1, r8 - adds r4, r1, r0 - ldr r2, _0801B584 @ =gUnknown_02024C60 - lsls r0, r7, 1 - adds r0, r2 - ldrh r1, [r4] - ldrh r0, [r0] - cmp r1, r0 - bne _0801B54E - mov r0, r10 - adds r1, r0, r2 - ldrh r0, [r4, 0x2] - ldrh r1, [r1] - cmp r0, r1 - bne _0801B54E - adds r0, r5, 0 - bl battle_get_per_side_status - mov r2, r9 - ands r2, r0 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r2, _0801B588 @ =gUnknown_02024C80 - adds r1, r2 - lsls r0, r5, 4 - orrs r0, r7 - strb r0, [r1, 0x3] - adds r0, r5, 0 - bl battle_get_per_side_status - mov r1, r9 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0801B588 @ =gUnknown_02024C80 - adds r0, r1 - ldrh r1, [r4, 0x4] - strh r1, [r0, 0x4] - adds r0, r5, 0 - bl battle_get_per_side_status - mov r1, r9 - ands r1, r0 - lsls r1, 1 - ldr r2, _0801B58C @ =gUnknown_02024C7A - adds r1, r2 - ldrh r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strh r0, [r1] -_0801B54E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _0801B580 @ =gUnknown_081FC1D0 -_0801B556: - cmp r5, 0x1 - bhi _0801B55C - b _0801B438 -_0801B55C: - ldr r0, [sp, 0x4] - str r0, [sp] - lsls r0, 3 - adds r0, r4 - ldrh r1, [r0] - ldr r0, _0801B590 @ =0x0000ffff - cmp r1, r0 - beq _0801B56E - b _0801B42E -_0801B56E: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801B580: .4byte gUnknown_081FC1D0 -_0801B584: .4byte gUnknown_02024C60 -_0801B588: .4byte gUnknown_02024C80 -_0801B58C: .4byte gUnknown_02024C7A -_0801B590: .4byte 0x0000ffff - thumb_func_end unref_sub_801B40C - - thumb_func_start sub_801B594 -sub_801B594: @ 801B594 - push {lr} - ldr r0, _0801B5B4 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801B5B0 - ldr r1, _0801B5B8 @ =gUnknown_081FA73C - ldr r0, _0801B5BC @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_0801B5B0: - pop {r0} - bx r0 - .align 2, 0 -_0801B5B4: .4byte gUnknown_02024A64 -_0801B5B8: .4byte gUnknown_081FA73C -_0801B5BC: .4byte gUnknown_02024C10 - thumb_func_end sub_801B594 - - thumb_func_start sub_801B5C0 -sub_801B5C0: @ 801B5C0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 16 - lsrs r7, r0, 16 - lsls r1, 24 - lsrs r0, r1, 24 - movs r5, 0 - cmp r0, 0 - beq _0801B5DE - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _0801B5EA -_0801B5DE: - ldr r1, _0801B5FC @ =gBattleMoves - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x6] -_0801B5EA: - cmp r6, 0x40 - bls _0801B5F0 - b _0801B900 -_0801B5F0: - lsls r0, r6, 2 - ldr r1, _0801B600 @ =_0801B604 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B5FC: .4byte gBattleMoves -_0801B600: .4byte _0801B604 - .align 2, 0 -_0801B604: - .4byte _0801B708 - .4byte _0801B808 - .4byte _0801B8FC - .4byte _0801B900 - .4byte _0801B820 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B808 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B8FC - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B808 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B900 - .4byte _0801B808 -_0801B708: - ldr r0, _0801B7E8 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _0801B7EC @ =gUnknown_02024C80 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0801B73A - ldr r1, _0801B7F0 @ =gBattleMons - ldrb r4, [r2, 0x9] - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801B73A - b _0801B850 -_0801B73A: - ldr r0, _0801B7E8 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r7, 1 - mov r8, r0 -_0801B74A: - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0801B7F4 @ =gUnknown_02024A68 - ldrb r1, [r1] - bl __modsi3 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r6, _0801B7E8 @ =gUnknown_02024C07 - ldrb r2, [r6] - cmp r5, r2 - beq _0801B74A - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - beq _0801B74A - ldr r0, _0801B7F8 @ =gUnknown_02024C0C - ldrb r2, [r0] - ldr r1, _0801B7FC @ =gBitTable - lsls r0, r5, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _0801B74A - ldr r0, _0801B800 @ =gBattleMoves - mov r3, r8 - adds r1, r3, r7 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x2] - cmp r0, 0xD - beq _0801B798 - b _0801B900 -_0801B798: - ldrb r1, [r6] - str r2, [sp] - movs r0, 0x10 - movs r2, 0x1F - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0801B7AE - b _0801B900 -_0801B7AE: - ldr r2, _0801B7F0 @ =gBattleMons - movs r1, 0x58 - adds r0, r5, 0 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1F - bne _0801B7C2 - b _0801B900 -_0801B7C2: - movs r4, 0x2 - eors r5, r4 - adds r0, r5, 0 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_81074C4 - ldr r1, _0801B804 @ =gUnknown_02024D68 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0] - orrs r1, r4 - strb r1, [r0] - b _0801B900 - .align 2, 0 -_0801B7E8: .4byte gUnknown_02024C07 -_0801B7EC: .4byte gUnknown_02024C80 -_0801B7F0: .4byte gBattleMons -_0801B7F4: .4byte gUnknown_02024A68 -_0801B7F8: .4byte gUnknown_02024C0C -_0801B7FC: .4byte gBitTable -_0801B800: .4byte gBattleMoves -_0801B804: .4byte gUnknown_02024D68 -_0801B808: - ldr r0, _0801B81C @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - b _0801B8B2 - .align 2, 0 -_0801B81C: .4byte gUnknown_02024C07 -_0801B820: - ldr r0, _0801B854 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _0801B858 @ =gUnknown_02024C80 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0801B860 - ldr r1, _0801B85C @ =gBattleMons - ldrb r4, [r2, 0x9] - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801B860 -_0801B850: - adds r5, r4, 0 - b _0801B900 - .align 2, 0 -_0801B854: .4byte gUnknown_02024C07 -_0801B858: .4byte gUnknown_02024C80 -_0801B85C: .4byte gBattleMons -_0801B860: - ldr r0, _0801B894 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0801B8DC - movs r0, 0x4 - ands r6, r0 - cmp r6, 0 - beq _0801B8DC - ldr r0, _0801B898 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0801B8A0 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _0801B89C - movs r0, 0x1 - b _0801B8B2 - .align 2, 0 -_0801B894: .4byte gUnknown_020239F8 -_0801B898: .4byte gUnknown_02024C07 -_0801B89C: - movs r0, 0x3 - b _0801B8B2 -_0801B8A0: - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _0801B8B0 - movs r0, 0 - b _0801B8B2 -_0801B8B0: - movs r0, 0x2 -_0801B8B2: - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0801B8D4 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _0801B8D8 @ =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801B900 - movs r0, 0x2 - eors r5, r0 - b _0801B900 - .align 2, 0 -_0801B8D4: .4byte gUnknown_02024C0C -_0801B8D8: .4byte gBitTable -_0801B8DC: - ldr r0, _0801B8F8 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - b _0801B900 - .align 2, 0 -_0801B8F8: .4byte gUnknown_02024C07 -_0801B8FC: - ldr r0, _0801B91C @ =gUnknown_02024C07 - ldrb r5, [r0] -_0801B900: - ldr r1, _0801B920 @ =0x02000000 - ldr r0, _0801B91C @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r2, _0801B924 @ =0x00016010 - adds r0, r2 - adds r0, r1 - strb r5, [r0] - adds r0, r5, 0 - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801B91C: .4byte gUnknown_02024C07 -_0801B920: .4byte 0x02000000 -_0801B924: .4byte 0x00016010 - thumb_func_end sub_801B5C0 - - thumb_func_start sub_801B928 -sub_801B928: @ 801B928 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r0, _0801B9E0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0801B9DA - ldr r7, _0801B9E4 @ =gUnknown_02024C07 - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0801B9DA - ldr r5, _0801B9E8 @ =gBattleMons - ldrb r0, [r7] - movs r1, 0x58 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r5, 0 - adds r0, 0x54 - adds r0, r1, r0 - ldr r0, [r0] - adds r2, r5, 0 - adds r2, 0x3C - adds r1, r2 - bl sub_8040AD0 - lsls r0, 24 - cmp r0, 0 - beq _0801B9DA - ldr r0, _0801B9EC @ =0x0000080e - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0801B9DA - movs r6, 0xA - ldr r0, _0801B9F0 @ =0x00000808 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0801B98E - movs r6, 0x1E -_0801B98E: - ldr r0, _0801B9F4 @ =0x0000080a - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0801B99C - movs r6, 0x32 -_0801B99C: - ldr r0, _0801B9F8 @ =0x0000080c - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0801B9AA - movs r6, 0x46 -_0801B9AA: - ldrb r0, [r7] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r5 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, r6 - bls _0801B9DA - bl Random - movs r1, 0xFF - ands r1, r0 - ldrb r0, [r7] - mov r2, r8 - muls r2, r0 - adds r0, r2, r5 - adds r0, 0x2A - ldrb r0, [r0] - adds r0, r6 - muls r0, r1 - asrs r4, r0, 8 - cmp r4, r6 - bge _0801B9FC -_0801B9DA: - movs r0, 0 - b _0801BC24 - .align 2, 0 -_0801B9E0: .4byte gUnknown_020239F8 -_0801B9E4: .4byte gUnknown_02024C07 -_0801B9E8: .4byte gBattleMons -_0801B9EC: .4byte 0x0000080e -_0801B9F0: .4byte 0x00000808 -_0801B9F4: .4byte 0x0000080a -_0801B9F8: .4byte 0x0000080c -_0801B9FC: - ldr r3, _0801BA3C @ =gUnknown_02024BE6 - ldrh r0, [r3] - cmp r0, 0x63 - bne _0801BA12 - adds r0, r5, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r1, [r0] - ldr r2, _0801BA40 @ =0xff7fffff - ands r1, r2 - str r1, [r0] -_0801BA12: - ldrb r0, [r7] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r1, r5, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0801BA4C - ldrh r0, [r3] - cmp r0, 0xAD - beq _0801BA34 - cmp r0, 0xD6 - bne _0801BA4C -_0801BA34: - ldr r1, _0801BA44 @ =gUnknown_02024C10 - ldr r0, _0801BA48 @ =gUnknown_081D995F - b _0801BBCE - .align 2, 0 -_0801BA3C: .4byte gUnknown_02024BE6 -_0801BA40: .4byte 0xff7fffff -_0801BA44: .4byte gUnknown_02024C10 -_0801BA48: .4byte gUnknown_081D995F -_0801BA4C: - bl Random - movs r5, 0xFF - adds r1, r5, 0 - ands r1, r0 - ldr r7, _0801BB04 @ =gBattleMons - ldr r2, _0801BB08 @ =gUnknown_02024C07 - mov r9, r2 - ldrb r3, [r2] - movs r0, 0x58 - mov r8, r0 - mov r0, r8 - muls r0, r3 - adds r0, r7 - adds r0, 0x2A - ldrb r2, [r0] - adds r0, r2, r6 - muls r0, r1 - asrs r4, r0, 8 - cmp r4, r6 - bge _0801BB3C - ldr r7, _0801BB0C @ =gBitTable - ldr r5, _0801BB10 @ =gUnknown_02024BE4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0] - adds r0, r3, 0 - movs r2, 0xFF - bl sub_8015A98 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bne _0801BA94 - b _0801BBBE -_0801BA94: - adds r6, r5, 0 - ldr r1, _0801BB14 @ =gUnknown_02024BE5 - mov r9, r1 - movs r2, 0x3 - mov r8, r2 -_0801BA9E: - bl Random - mov r1, r8 - ands r0, r1 - mov r2, r9 - strb r0, [r2] - strb r0, [r6] - ldrb r0, [r6] - lsls r0, 2 - adds r0, r7 - ldr r5, [r0] - ands r5, r4 - cmp r5, 0 - bne _0801BA9E - ldr r4, _0801BB18 @ =gUnknown_02024BEA - ldr r3, _0801BB04 @ =gBattleMons - ldr r0, _0801BB10 @ =gUnknown_02024BE4 - ldrb r0, [r0] - lsls r0, 1 - ldr r1, _0801BB08 @ =gUnknown_02024C07 - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - adds r3, 0xC - adds r0, r3 - ldrh r0, [r0] - strh r0, [r4] - ldr r0, _0801BB1C @ =gUnknown_02024D1E - strb r5, [r0, 0x3] - ldr r0, _0801BB20 @ =gUnknown_02024DEC - movs r1, 0 - strh r5, [r0] - ldr r0, _0801BB24 @ =0x02000000 - ldr r2, _0801BB28 @ =0x0001601c - adds r0, r2 - strb r1, [r0] - ldr r1, _0801BB2C @ =gUnknown_02024C10 - ldr r0, _0801BB30 @ =gUnknown_081D996F - str r0, [r1] - ldrh r0, [r4] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _0801BB34 @ =gUnknown_02024C08 - strb r0, [r1] - ldr r2, _0801BB38 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 14 - b _0801BC1E - .align 2, 0 -_0801BB04: .4byte gBattleMons -_0801BB08: .4byte gUnknown_02024C07 -_0801BB0C: .4byte gBitTable -_0801BB10: .4byte gUnknown_02024BE4 -_0801BB14: .4byte gUnknown_02024BE5 -_0801BB18: .4byte gUnknown_02024BEA -_0801BB1C: .4byte gUnknown_02024D1E -_0801BB20: .4byte gUnknown_02024DEC -_0801BB24: .4byte 0x02000000 -_0801BB28: .4byte 0x0001601c -_0801BB2C: .4byte gUnknown_02024C10 -_0801BB30: .4byte gUnknown_081D996F -_0801BB34: .4byte gUnknown_02024C08 -_0801BB38: .4byte gUnknown_02024C6C -_0801BB3C: - subs r0, r2, r6 - lsls r0, 24 - lsrs r6, r0, 24 - bl Random - adds r4, r5, 0 - ands r4, r0 - cmp r4, r6 - bge _0801BBB8 - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r7, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - bne _0801BBB8 - adds r0, r1, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x48 - beq _0801BBB8 - cmp r0, 0xF - beq _0801BBB8 - movs r2, 0 - ldr r0, _0801BBAC @ =gUnknown_02024A68 - ldrb r3, [r0] - mov r8, r0 - cmp r2, r3 - bge _0801BB9E - ldr r0, [r7, 0x50] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - bne _0801BB9E - adds r1, r7, 0 - adds r1, 0x50 - movs r5, 0x70 -_0801BB8E: - adds r1, 0x58 - adds r2, 0x1 - cmp r2, r3 - bge _0801BB9E - ldr r0, [r1] - ands r0, r5 - cmp r0, 0 - beq _0801BB8E -_0801BB9E: - mov r0, r8 - ldrb r0, [r0] - cmp r2, r0 - bne _0801BBB8 - ldr r1, _0801BBB0 @ =gUnknown_02024C10 - ldr r0, _0801BBB4 @ =gUnknown_081D9989 - b _0801BBCE - .align 2, 0 -_0801BBAC: .4byte gUnknown_02024A68 -_0801BBB0: .4byte gUnknown_02024C10 -_0801BBB4: .4byte gUnknown_081D9989 -_0801BBB8: - subs r4, r6 - cmp r4, r6 - blt _0801BBE0 -_0801BBBE: - bl Random - ldr r2, _0801BBD4 @ =gUnknown_02024D1E - movs r1, 0x3 - ands r1, r0 - strb r1, [r2, 0x5] - ldr r1, _0801BBD8 @ =gUnknown_02024C10 - ldr r0, _0801BBDC @ =gUnknown_081D9977 -_0801BBCE: - str r0, [r1] - movs r0, 0x1 - b _0801BC24 - .align 2, 0 -_0801BBD4: .4byte gUnknown_02024D1E -_0801BBD8: .4byte gUnknown_02024C10 -_0801BBDC: .4byte gUnknown_081D9977 -_0801BBE0: - ldr r4, _0801BC34 @ =gUnknown_02024C07 - ldrb r1, [r4] - movs r0, 0x58 - muls r1, r0 - ldr r0, _0801BC38 @ =gBattleMons - adds r1, r0 - movs r0, 0x28 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - ldrb r0, [r4] - str r0, [sp, 0x8] - ldrb r0, [r4] - str r0, [sp, 0xC] - adds r0, r1, 0 - movs r2, 0x1 - movs r3, 0 - bl CalculateBaseDamage - ldr r1, _0801BC3C @ =gUnknown_02024BEC - str r0, [r1] - ldr r1, _0801BC40 @ =gUnknown_02024C08 - ldrb r0, [r4] - strb r0, [r1] - ldr r1, _0801BC44 @ =gUnknown_02024C10 - ldr r0, _0801BC48 @ =gUnknown_081D99A0 - str r0, [r1] - ldr r2, _0801BC4C @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 12 -_0801BC1E: - orrs r0, r1 - str r0, [r2] - movs r0, 0x2 -_0801BC24: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801BC34: .4byte gUnknown_02024C07 -_0801BC38: .4byte gBattleMons -_0801BC3C: .4byte gUnknown_02024BEC -_0801BC40: .4byte gUnknown_02024C08 -_0801BC44: .4byte gUnknown_02024C10 -_0801BC48: .4byte gUnknown_081D99A0 -_0801BC4C: .4byte gUnknown_02024C6C - thumb_func_end sub_801B928 - - thumb_func_start atk00_attackcanceler -atk00_attackcanceler: @ 801BC50 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r0, _0801BC6C @ =gUnknown_02024D26 - ldrb r0, [r0] - cmp r0, 0 - beq _0801BC74 - ldr r1, _0801BC70 @ =gUnknown_02024A7F - movs r0, 0xC - strb r0, [r1] - b _0801BFF4 - .align 2, 0 -_0801BC6C: .4byte gUnknown_02024D26 -_0801BC70: .4byte gUnknown_02024A7F -_0801BC74: - ldr r2, _0801BCA4 @ =gBattleMons - ldr r0, _0801BCA8 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0801BCB8 - ldr r2, _0801BCAC @ =gUnknown_02024C6C - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0801BCB8 - movs r0, 0x80 - lsls r0, 12 - orrs r1, r0 - str r1, [r2] - ldr r1, _0801BCB0 @ =gUnknown_02024C10 - ldr r0, _0801BCB4 @ =BattleScript_1D6F62 - b _0801BFF2 - .align 2, 0 -_0801BCA4: .4byte gBattleMons -_0801BCA8: .4byte gUnknown_02024C07 -_0801BCAC: .4byte gUnknown_02024C6C -_0801BCB0: .4byte gUnknown_02024C10 -_0801BCB4: .4byte BattleScript_1D6F62 -_0801BCB8: - bl sub_8017718 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0801BCC6 - b _0801BFF4 -_0801BCC6: - ldr r0, _0801BD34 @ =gUnknown_02024C08 - ldrb r1, [r0] - str r2, [sp] - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _0801BCDE - b _0801BFF4 -_0801BCDE: - ldr r4, _0801BD38 @ =gBattleMons - ldr r0, _0801BD3C @ =gUnknown_02024BE4 - ldrb r1, [r0] - ldr r3, _0801BD40 @ =gUnknown_02024C07 - ldrb r2, [r3] - movs r0, 0x58 - muls r2, r0 - adds r1, r2 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - ldr r5, _0801BD44 @ =gUnknown_02024C6C - cmp r0, 0 - bne _0801BD5C - ldr r0, _0801BD48 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xA5 - beq _0801BD5C - ldr r0, [r5] - ldr r1, _0801BD4C @ =0x00800200 - ands r0, r1 - cmp r0, 0 - bne _0801BD5C - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - bne _0801BD5C - ldr r1, _0801BD50 @ =gUnknown_02024C10 - ldr r0, _0801BD54 @ =gUnknown_081D936D - str r0, [r1] - ldr r2, _0801BD58 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - b _0801BFF4 - .align 2, 0 -_0801BD34: .4byte gUnknown_02024C08 -_0801BD38: .4byte gBattleMons -_0801BD3C: .4byte gUnknown_02024BE4 -_0801BD40: .4byte gUnknown_02024C07 -_0801BD44: .4byte gUnknown_02024C6C -_0801BD48: .4byte gUnknown_02024BE6 -_0801BD4C: .4byte 0x00800200 -_0801BD50: .4byte gUnknown_02024C10 -_0801BD54: .4byte gUnknown_081D936D -_0801BD58: .4byte gUnknown_02024C68 -_0801BD5C: - ldr r0, [r5] - ldr r1, _0801BDA0 @ =0xff7fffff - ands r0, r1 - str r0, [r5] - movs r6, 0x80 - lsls r6, 18 - ands r0, r6 - cmp r0, 0 - bne _0801BDB4 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r1, r4, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - bne _0801BDB4 - bl sub_801B928 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0801BDB4 - cmp r2, 0x2 - bne _0801BDA4 - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - b _0801BFF4 - .align 2, 0 -_0801BDA0: .4byte 0xff7fffff -_0801BDA4: - ldr r0, _0801BDB0 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _0801BFF4 - .align 2, 0 -_0801BDB0: .4byte gUnknown_02024C68 -_0801BDB4: - ldr r2, _0801BE18 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - orrs r0, r1 - str r0, [r2] - ldr r2, _0801BE1C @ =gUnknown_02024D28 - ldr r1, _0801BE20 @ =gUnknown_02024C08 - ldrb r3, [r1] - lsls r0, r3, 4 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 27 - mov r8, r1 - mov r9, r2 - cmp r0, 0 - bge _0801BE3C - ldr r2, _0801BE24 @ =gBattleMoves - ldr r0, _0801BE28 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801BE3C - ldr r0, _0801BE2C @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r2, _0801BE30 @ =0x00000115 - adds r1, r3, 0 - bl sub_80151D4 - mov r0, r8 - ldrb r1, [r0] - lsls r1, 4 - add r1, r9 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl b_movescr_stack_push_cursor - ldr r1, _0801BE34 @ =gUnknown_02024C10 - ldr r0, _0801BE38 @ =gUnknown_081D946F - b _0801BFF2 - .align 2, 0 -_0801BE18: .4byte gUnknown_02024C6C -_0801BE1C: .4byte gUnknown_02024D28 -_0801BE20: .4byte gUnknown_02024C08 -_0801BE24: .4byte gBattleMoves -_0801BE28: .4byte gUnknown_02024BE6 -_0801BE2C: .4byte gUnknown_02024C07 -_0801BE30: .4byte 0x00000115 -_0801BE34: .4byte gUnknown_02024C10 -_0801BE38: .4byte gUnknown_081D946F -_0801BE3C: - movs r2, 0 - ldr r0, _0801BEB8 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r2, r0 - bge _0801BE7E - ldr r6, _0801BEBC @ =gUnknown_02024D28 - ldr r1, _0801BEC0 @ =gBattleMoves - mov r12, r1 - adds r5, r0, 0 - ldr r7, _0801BEC4 @ =gUnknown_02024A7A -_0801BE50: - adds r4, r2, r7 - ldrb r3, [r4] - lsls r0, r3, 4 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _0801BE78 - ldr r0, _0801BEC8 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r1, [r0, 0x8] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0801BE78 - b _0801BFA4 -_0801BE78: - adds r2, 0x1 - cmp r2, r5 - blt _0801BE50 -_0801BE7E: - ldr r0, _0801BECC @ =gUnknown_02024D68 - mov r1, r8 - ldrb r2, [r1] - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r3, [r1] - lsls r0, r3, 30 - cmp r0, 0 - bge _0801BEDC - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - strb r0, [r1] - ldr r4, _0801BED0 @ =byte_2024C06 - movs r0, 0x1F - strb r0, [r4] - bl b_movescr_stack_push_cursor - ldr r1, _0801BED4 @ =gUnknown_02024C10 - ldr r0, _0801BED8 @ =gUnknown_081D9812 - str r0, [r1] - mov r2, r8 - ldrb r0, [r2] - ldrb r1, [r4] - bl sub_81074C4 - b _0801BFF4 - .align 2, 0 -_0801BEB8: .4byte gUnknown_02024A68 -_0801BEBC: .4byte gUnknown_02024D28 -_0801BEC0: .4byte gBattleMoves -_0801BEC4: .4byte gUnknown_02024A7A -_0801BEC8: .4byte gUnknown_02024BE6 -_0801BECC: .4byte gUnknown_02024D68 -_0801BED0: .4byte byte_2024C06 -_0801BED4: .4byte gUnknown_02024C10 -_0801BED8: .4byte gUnknown_081D9812 -_0801BEDC: - lsls r0, r2, 4 - add r0, r9 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0801BEEA - b _0801BFEC -_0801BEEA: - ldr r1, _0801BF80 @ =gBattleMoves - ldr r2, _0801BF84 @ =gUnknown_02024BE6 - ldrh r3, [r2] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - adds r4, r2, 0 - cmp r0, 0 - beq _0801BFEC - cmp r3, 0xAE - bne _0801BF28 - ldr r2, _0801BF88 @ =gBattleMons - ldr r0, _0801BF8C @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _0801BF28 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _0801BFEC -_0801BF28: - ldrh r0, [r4] - bl sub_8028350 - lsls r0, 24 - cmp r0, 0 - beq _0801BF4E - ldr r1, _0801BF88 @ =gBattleMons - ldr r0, _0801BF8C @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 5 - ands r0, r1 - cmp r0, 0 - beq _0801BFEC -_0801BF4E: - ldr r0, _0801BF8C @ =gUnknown_02024C07 - ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe - ldr r2, _0801BF90 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0801BF94 @ =gUnknown_02024C3C - ldr r3, _0801BF98 @ =gUnknown_02024C08 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, _0801BF9C @ =gUnknown_02024C44 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, _0801BFA0 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x6] - b _0801BFEC - .align 2, 0 -_0801BF80: .4byte gBattleMoves -_0801BF84: .4byte gUnknown_02024BE6 -_0801BF88: .4byte gBattleMons -_0801BF8C: .4byte gUnknown_02024C07 -_0801BF90: .4byte gUnknown_02024C68 -_0801BF94: .4byte gUnknown_02024C3C -_0801BF98: .4byte gUnknown_02024C08 -_0801BF9C: .4byte gUnknown_02024C44 -_0801BFA0: .4byte gUnknown_02024D1E -_0801BFA4: - ldr r0, _0801BFD4 @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r2, _0801BFD8 @ =0x00000121 - adds r1, r3, 0 - bl sub_80151D4 - ldrb r1, [r4] - lsls r1, 4 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, _0801BFDC @ =0x02000000 - ldrb r1, [r4] - ldr r2, _0801BFE0 @ =0x00016003 - adds r0, r2 - strb r1, [r0] - bl b_movescr_stack_push_cursor - ldr r1, _0801BFE4 @ =gUnknown_02024C10 - ldr r0, _0801BFE8 @ =gUnknown_081D9487 - b _0801BFF2 - .align 2, 0 -_0801BFD4: .4byte gUnknown_02024C07 -_0801BFD8: .4byte 0x00000121 -_0801BFDC: .4byte 0x02000000 -_0801BFE0: .4byte 0x00016003 -_0801BFE4: .4byte gUnknown_02024C10 -_0801BFE8: .4byte gUnknown_081D9487 -_0801BFEC: - ldr r1, _0801C004 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 -_0801BFF2: - str r0, [r1] -_0801BFF4: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801C004: .4byte gUnknown_02024C10 - thumb_func_end atk00_attackcanceler - - thumb_func_start mcmd_jump_if_move_not_executed -mcmd_jump_if_move_not_executed: @ 801C008 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r1, _0801C054 @ =gUnknown_02024C10 - ldr r5, [r1] - adds r4, r5, r0 - ldr r0, _0801C058 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801C068 - ldr r1, _0801C05C @ =gUnknown_02024C3C - ldr r3, _0801C060 @ =gUnknown_02024C08 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, _0801C064 @ =gUnknown_02024C44 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldrb r4, [r5, 0x1] - ldrb r0, [r5, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r5, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r5, 0x4] - lsls r0, 24 - orrs r4, r0 - b _0801C082 - .align 2, 0 -_0801C054: .4byte gUnknown_02024C10 -_0801C058: .4byte gUnknown_02024C68 -_0801C05C: .4byte gUnknown_02024C3C -_0801C060: .4byte gUnknown_02024C08 -_0801C064: .4byte gUnknown_02024C44 -_0801C068: - bl b_feature_update_destiny_bond - ldr r0, _0801C090 @ =gUnknown_02024C08 - ldrb r1, [r0] - str r6, [sp] - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0801C086 -_0801C082: - ldr r0, _0801C094 @ =gUnknown_02024C10 - str r4, [r0] -_0801C086: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801C090: .4byte gUnknown_02024C08 -_0801C094: .4byte gUnknown_02024C10 - thumb_func_end mcmd_jump_if_move_not_executed - - thumb_func_start atk40_801DBA0 -atk40_801DBA0: @ 801C098 - push {lr} - ldr r1, _0801C0E0 @ =gUnknown_02024D28 - ldr r0, _0801C0E4 @ =gUnknown_02024C08 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0801C0F8 - ldr r2, _0801C0E8 @ =gBattleMoves - ldr r0, _0801C0EC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0801C0F8 - ldr r2, _0801C0F0 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x5 - movs r1, 0 - bl mcmd_jump_if_move_not_executed - ldr r1, _0801C0F4 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x6] - b _0801C100 - .align 2, 0 -_0801C0E0: .4byte gUnknown_02024D28 -_0801C0E4: .4byte gUnknown_02024C08 -_0801C0E8: .4byte gBattleMoves -_0801C0EC: .4byte gUnknown_02024BE6 -_0801C0F0: .4byte gUnknown_02024C68 -_0801C0F4: .4byte gUnknown_02024D1E -_0801C0F8: - ldr r1, _0801C104 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0801C100: - pop {r0} - bx r0 - .align 2, 0 -_0801C104: .4byte gUnknown_02024C10 - thumb_func_end atk40_801DBA0 - - thumb_func_start sub_801C108 -sub_801C108: @ 801C108 - push {r4,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r4, 0 - ldr r1, _0801C15C @ =gUnknown_02024D28 - ldr r0, _0801C160 @ =gUnknown_02024C08 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0801C154 - ldr r2, _0801C164 @ =gBattleMoves - ldr r0, _0801C168 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x8] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0801C154 - ldr r2, _0801C16C @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x7 - adds r1, r3, 0 - bl mcmd_jump_if_move_not_executed - ldr r1, _0801C170 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x6] - movs r4, 0x1 -_0801C154: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801C15C: .4byte gUnknown_02024D28 -_0801C160: .4byte gUnknown_02024C08 -_0801C164: .4byte gBattleMoves -_0801C168: .4byte gUnknown_02024BE6 -_0801C16C: .4byte gUnknown_02024C68 -_0801C170: .4byte gUnknown_02024D1E - thumb_func_end sub_801C108 - - thumb_func_start sub_801C174 -sub_801C174: @ 801C174 - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r2, _0801C1D4 @ =gUnknown_02024C98 - ldr r3, _0801C1D8 @ =gUnknown_02024C08 - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x18 - ands r1, r0 - adds r6, r2, 0 - cmp r1, 0 - beq _0801C1A6 - ldr r1, _0801C1DC @ =gUnknown_02024CA8 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, _0801C1E0 @ =gUnknown_02024C07 - ldrb r0, [r0, 0x15] - ldrb r1, [r1] - cmp r0, r1 - beq _0801C290 -_0801C1A6: - ldr r0, _0801C1E4 @ =gUnknown_02024C6C - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 9 - ands r1, r2 - adds r2, r0, 0 - cmp r1, 0 - bne _0801C1EC - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801C1EC -_0801C1C6: - ldr r0, _0801C1E8 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _0801C290 - .align 2, 0 -_0801C1D4: .4byte gUnknown_02024C98 -_0801C1D8: .4byte gUnknown_02024C08 -_0801C1DC: .4byte gUnknown_02024CA8 -_0801C1E0: .4byte gUnknown_02024C07 -_0801C1E4: .4byte gUnknown_02024C6C -_0801C1E8: .4byte gUnknown_02024C68 -_0801C1EC: - ldr r0, [r2] - ldr r1, _0801C29C @ =0xfffeffff - ands r0, r1 - str r0, [r2] - movs r1, 0x80 - lsls r1, 10 - ands r0, r1 - cmp r0, 0 - bne _0801C20E - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0801C1C6 -_0801C20E: - ldr r0, [r2] - ldr r1, _0801C2A0 @ =0xfffdffff - ands r0, r1 - str r0, [r2] - movs r1, 0x80 - lsls r1, 11 - ands r0, r1 - cmp r0, 0 - bne _0801C22E - ldrb r0, [r3] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r0, r1 - cmp r0, 0 - bne _0801C1C6 -_0801C22E: - ldr r0, [r2] - ldr r1, _0801C2A4 @ =0xfffbffff - ands r0, r1 - str r0, [r2] - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - lsls r4, r5, 1 - cmp r0, 0 - bne _0801C27E - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0801C27E - ldr r0, _0801C2A8 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0801C27E - ldr r0, _0801C2AC @ =gBattleMoves - adds r1, r4, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x98 - beq _0801C290 -_0801C27E: - ldr r1, _0801C2AC @ =gBattleMoves - adds r0, r4, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x11 - beq _0801C290 - cmp r0, 0x4E - bne _0801C2B0 -_0801C290: - movs r0, 0x7 - adds r1, r5, 0 - bl mcmd_jump_if_move_not_executed - movs r0, 0x1 - b _0801C2B2 - .align 2, 0 -_0801C29C: .4byte 0xfffeffff -_0801C2A0: .4byte 0xfffdffff -_0801C2A4: .4byte 0xfffbffff -_0801C2A8: .4byte word_2024DB8 -_0801C2AC: .4byte gBattleMoves -_0801C2B0: - movs r0, 0 -_0801C2B2: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_801C174 - - thumb_func_start atk01_accuracycheck -atk01_accuracycheck: @ 801C2BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, _0801C314 @ =gUnknown_02024C10 - ldr r5, [r0] - ldrb r6, [r5, 0x5] - ldrb r1, [r5, 0x6] - lsls r1, 8 - orrs r6, r1 - adds r1, r6, 0x2 - lsls r1, 16 - lsrs r1, 16 - adds r7, r0, 0 - cmp r1, 0x1 - bhi _0801C378 - ldr r2, _0801C318 @ =gUnknown_02024C98 - ldr r3, _0801C31C @ =gUnknown_02024C08 - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r1, [r0] - movs r0, 0x18 - ands r1, r0 - cmp r1, 0 - beq _0801C32C - ldr r0, _0801C320 @ =0x0000ffff - cmp r6, r0 - bne _0801C32C - ldr r1, _0801C324 @ =gUnknown_02024CA8 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, _0801C328 @ =gUnknown_02024C07 - ldrb r0, [r0, 0x15] - ldrb r1, [r1] - cmp r0, r1 - bne _0801C32C - adds r0, r5, 0x7 - str r0, [r7] - b _0801C632 - .align 2, 0 -_0801C314: .4byte gUnknown_02024C10 -_0801C318: .4byte gUnknown_02024C98 -_0801C31C: .4byte gUnknown_02024C08 -_0801C320: .4byte 0x0000ffff -_0801C324: .4byte gUnknown_02024CA8 -_0801C328: .4byte gUnknown_02024C07 -_0801C32C: - ldrb r0, [r3] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ldr r1, _0801C358 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _0801C35C - ldr r2, [r7] - 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, [r7] - b _0801C632 - .align 2, 0 -_0801C358: .4byte 0x000400c0 -_0801C35C: - movs r0, 0 - bl sub_801C108 - lsls r0, 24 - cmp r0, 0 - beq _0801C36A - b _0801C632 -_0801C36A: - ldr r1, _0801C374 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x7 - str r0, [r1] - b _0801C632 - .align 2, 0 -_0801C374: .4byte gUnknown_02024C10 -_0801C378: - cmp r6, 0 - bne _0801C380 - ldr r0, _0801C398 @ =gUnknown_02024BE6 - ldrh r6, [r0] -_0801C380: - ldr r0, _0801C39C @ =0x02000000 - ldr r1, _0801C3A0 @ =0x0001601c - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0801C3A4 - movs r2, 0x3F - mov r10, r2 - mov r3, r10 - ands r3, r0 - mov r10, r3 - b _0801C3B2 - .align 2, 0 -_0801C398: .4byte gUnknown_02024BE6 -_0801C39C: .4byte 0x02000000 -_0801C3A0: .4byte 0x0001601c -_0801C3A4: - ldr r1, _0801C3F8 @ =gBattleMoves - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - mov r10, r0 -_0801C3B2: - adds r0, r6, 0 - bl sub_801C108 - lsls r0, 24 - cmp r0, 0 - beq _0801C3C0 - b _0801C632 -_0801C3C0: - adds r0, r6, 0 - bl sub_801C174 - lsls r0, 24 - cmp r0, 0 - beq _0801C3CE - b _0801C632 -_0801C3CE: - ldr r3, _0801C3FC @ =gBattleMons - ldr r0, _0801C400 @ =gUnknown_02024C08 - ldrb r0, [r0] - movs r2, 0x58 - adds r4, r0, 0 - muls r4, r2 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _0801C408 - ldr r0, _0801C404 @ =gUnknown_02024C07 - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - ldrb r5, [r0, 0x1E] - b _0801C41E - .align 2, 0 -_0801C3F8: .4byte gBattleMoves -_0801C3FC: .4byte gBattleMons -_0801C400: .4byte gUnknown_02024C08 -_0801C404: .4byte gUnknown_02024C07 -_0801C408: - ldr r0, _0801C56C @ =gUnknown_02024C07 - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - ldrb r0, [r0, 0x1E] - adds r0, 0x6 - adds r1, r4, r3 - ldrb r1, [r1, 0x1F] - subs r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 -_0801C41E: - lsls r0, r5, 24 - cmp r0, 0 - bge _0801C426 - movs r5, 0 -_0801C426: - lsls r0, r5, 24 - asrs r0, 24 - cmp r0, 0xC - ble _0801C430 - movs r5, 0xC -_0801C430: - ldr r1, _0801C570 @ =gBattleMoves - lsls r4, r6, 1 - adds r0, r4, r6 - lsls r0, 2 - adds r7, r0, r1 - ldrb r0, [r7, 0x3] - mov r8, r0 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - str r4, [sp, 0x4] - cmp r0, 0 - bne _0801C482 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0801C482 - ldr r0, _0801C574 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _0801C482 - ldrb r0, [r7] - cmp r0, 0x98 - bne _0801C482 - movs r1, 0x32 - mov r8, r1 -_0801C482: - ldr r1, _0801C578 @ =gAccuracyStageRatios - lsls r0, r5, 24 - asrs r0, 22 - adds r0, r1 - ldrb r1, [r0] - mov r4, r8 - muls r4, r1 - ldrb r1, [r0, 0x1] - adds r0, r4, 0 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r7, _0801C57C @ =gBattleMons - ldr r0, _0801C56C @ =gUnknown_02024C07 - ldrb r0, [r0] - movs r5, 0x58 - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0xE - bne _0801C4C0 - lsls r0, r4, 6 - adds r0, r4 - lsls r0, 1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_0801C4C0: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0801C518 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0801C518 - ldr r0, _0801C580 @ =gUnknown_02024C08 - ldrb r0, [r0] - muls r0, r5 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x8 - bne _0801C518 - ldr r0, _0801C574 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _0801C518 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_0801C518: - ldr r2, _0801C57C @ =gBattleMons - ldr r0, _0801C56C @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r9, r2 - cmp r0, 0x37 - bne _0801C544 - mov r2, r10 - cmp r2, 0x8 - bhi _0801C544 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_0801C544: - ldr r3, _0801C580 @ =gUnknown_02024C08 - mov r8, r3 - ldrb r2, [r3] - movs r7, 0x58 - adds r0, r2, 0 - muls r0, r7 - mov r3, r9 - adds r1, r0, r3 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0801C588 - ldr r1, _0801C584 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x7] - ldrb r2, [r0, 0x1A] - b _0801C5A4 - .align 2, 0 -_0801C56C: .4byte gUnknown_02024C07 -_0801C570: .4byte gBattleMoves -_0801C574: .4byte word_2024DB8 -_0801C578: .4byte gAccuracyStageRatios -_0801C57C: .4byte gBattleMons -_0801C580: .4byte gUnknown_02024C08 -_0801C584: .4byte gEnigmaBerries -_0801C588: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r8 - ldrb r0, [r1] - muls r0, r7 - add r0, r9 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r2, r0, 24 -_0801C5A4: - ldr r0, _0801C608 @ =gUnknown_02024C0B - ldr r1, _0801C60C @ =gUnknown_02024C08 - ldrb r1, [r1] - strb r1, [r0] - cmp r5, 0x16 - bne _0801C5C0 - movs r0, 0x64 - subs r0, r2 - muls r0, r4 - movs r1, 0x64 - bl __divsi3 - lsls r0, 16 - lsrs r4, r0, 16 -_0801C5C0: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - ble _0801C62A - ldr r2, _0801C610 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, _0801C614 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0801C620 - ldr r1, _0801C618 @ =gBattleMoves - ldr r2, [sp, 0x4] - adds r0, r2, r6 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x6] - cmp r0, 0x8 - beq _0801C602 - cmp r0, 0x20 - bne _0801C620 -_0801C602: - ldr r1, _0801C61C @ =gUnknown_02024D1E - movs r0, 0x2 - b _0801C624 - .align 2, 0 -_0801C608: .4byte gUnknown_02024C0B -_0801C60C: .4byte gUnknown_02024C08 -_0801C610: .4byte gUnknown_02024C68 -_0801C614: .4byte gUnknown_020239F8 -_0801C618: .4byte gBattleMoves -_0801C61C: .4byte gUnknown_02024D1E -_0801C620: - ldr r1, _0801C644 @ =gUnknown_02024D1E - movs r0, 0 -_0801C624: - strb r0, [r1, 0x6] - bl b_wonderguard_and_levitate -_0801C62A: - movs r0, 0x7 - adds r1, r6, 0 - bl mcmd_jump_if_move_not_executed -_0801C632: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801C644: .4byte gUnknown_02024D1E - thumb_func_end atk01_accuracycheck - - thumb_func_start atk02_attackstring -atk02_attackstring: @ 801C648 - push {r4,r5,lr} - ldr r0, _0801C688 @ =gUnknown_02024A64 - ldr r5, [r0] - cmp r5, 0 - bne _0801C680 - ldr r4, _0801C68C @ =gUnknown_02024C6C - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - bne _0801C674 - ldr r0, _0801C690 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x4 - bl b_std_message - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 3 - orrs r0, r1 - str r0, [r4] -_0801C674: - ldr r0, _0801C694 @ =gUnknown_02024C10 - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - ldr r0, _0801C698 @ =gUnknown_02024D1E - strb r5, [r0, 0x7] -_0801C680: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801C688: .4byte gUnknown_02024A64 -_0801C68C: .4byte gUnknown_02024C6C -_0801C690: .4byte gUnknown_02024C07 -_0801C694: .4byte gUnknown_02024C10 -_0801C698: .4byte gUnknown_02024D1E - thumb_func_end atk02_attackstring - - thumb_func_start atk03_ppreduce -atk03_ppreduce: @ 801C69C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r6, 0x1 - ldr r0, _0801C6EC @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _0801C6B4 - b _0801C84E -_0801C6B4: - ldr r1, _0801C6F0 @ =gUnknown_02024D68 - ldr r2, _0801C6F4 @ =gUnknown_02024C07 - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r4, r0, 31 - mov r9, r2 - cmp r4, 0 - bne _0801C756 - ldr r2, _0801C6F8 @ =gBattleMoves - ldr r0, _0801C6FC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - cmp r0, 0x20 - beq _0801C706 - cmp r0, 0x20 - bgt _0801C700 - cmp r0, 0x8 - beq _0801C71C - b _0801C736 - .align 2, 0 -_0801C6EC: .4byte gUnknown_02024A64 -_0801C6F0: .4byte gUnknown_02024D68 -_0801C6F4: .4byte gUnknown_02024C07 -_0801C6F8: .4byte gBattleMoves -_0801C6FC: .4byte gUnknown_02024BE6 -_0801C700: - cmp r0, 0x40 - beq _0801C71C - b _0801C736 -_0801C706: - str r4, [sp] - movs r0, 0x12 - adds r1, r3, 0 - movs r2, 0x2E - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0, 0x1 - b _0801C756 -_0801C71C: - mov r0, r9 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x10 - movs r2, 0x2E - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - adds r6, r0 - b _0801C756 -_0801C736: - ldr r1, _0801C7B8 @ =gUnknown_02024C08 - mov r2, r9 - ldrb r0, [r2] - ldrb r7, [r1] - cmp r0, r7 - beq _0801C756 - ldr r2, _0801C7BC @ =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2E - bne _0801C756 - adds r6, 0x1 -_0801C756: - ldr r0, _0801C7C0 @ =gUnknown_02024C6C - ldr r4, [r0] - movs r0, 0xA0 - lsls r0, 4 - ands r4, r0 - cmp r4, 0 - bne _0801C83C - ldr r2, _0801C7BC @ =gBattleMons - ldr r3, _0801C7C4 @ =gUnknown_02024BE4 - ldr r1, _0801C7C8 @ =gUnknown_02024C07 - ldrb r5, [r1] - movs r0, 0x58 - mov r8, r0 - mov r0, r8 - muls r0, r5 - ldrb r7, [r3] - adds r0, r7 - movs r7, 0x24 - adds r7, r2 - mov r12, r7 - add r0, r12 - ldrb r0, [r0] - mov r9, r1 - mov r10, r2 - adds r7, r3, 0 - cmp r0, 0 - beq _0801C83C - ldr r0, _0801C7CC @ =gUnknown_02024D28 - lsls r1, r5, 4 - adds r1, r0 - ldrb r0, [r1, 0x2] - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x2] - mov r1, r9 - ldrb r0, [r1] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldrb r1, [r7] - adds r0, r1 - mov r1, r12 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, r6 - ble _0801C7D0 - subs r0, r6 - strb r0, [r2] - b _0801C7D2 - .align 2, 0 -_0801C7B8: .4byte gUnknown_02024C08 -_0801C7BC: .4byte gBattleMons -_0801C7C0: .4byte gUnknown_02024C6C -_0801C7C4: .4byte gUnknown_02024BE4 -_0801C7C8: .4byte gUnknown_02024C07 -_0801C7CC: .4byte gUnknown_02024D28 -_0801C7D0: - strb r4, [r2] -_0801C7D2: - mov r2, r9 - ldrb r3, [r2] - movs r4, 0x58 - adds r0, r3, 0 - muls r0, r4 - mov r1, r10 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _0801C83C - ldr r1, _0801C860 @ =gUnknown_02024CA8 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _0801C864 @ =gBitTable - ldrb r0, [r7] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0801C83C - ldr r0, _0801C868 @ =gUnknown_02024A60 - strb r3, [r0] - ldrb r1, [r7] - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - mov r2, r9 - ldrb r0, [r2] - muls r0, r4 - mov r2, r10 - adds r2, 0x24 - adds r0, r2 - ldrb r7, [r7] - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - mov r7, r9 - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution -_0801C83C: - ldr r2, _0801C86C @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0801C870 @ =0xfffff7ff - ands r0, r1 - str r0, [r2] - ldr r1, _0801C874 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0801C84E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801C860: .4byte gUnknown_02024CA8 -_0801C864: .4byte gBitTable -_0801C868: .4byte gUnknown_02024A60 -_0801C86C: .4byte gUnknown_02024C6C -_0801C870: .4byte 0xfffff7ff -_0801C874: .4byte gUnknown_02024C10 - thumb_func_end atk03_ppreduce - - thumb_func_start atk04_critcalc -atk04_critcalc: @ 801C878 - push {r4-r7,lr} - ldr r1, _0801C89C @ =gBattleMons - ldr r0, _0801C8A0 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x2E] - cmp r0, 0xAF - bne _0801C8A8 - ldr r1, _0801C8A4 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - b _0801C8B0 - .align 2, 0 -_0801C89C: .4byte gBattleMons -_0801C8A0: .4byte gUnknown_02024C07 -_0801C8A4: .4byte gEnigmaBerries -_0801C8A8: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 -_0801C8B0: - ldr r1, _0801C93C @ =gUnknown_02024C0B - ldr r3, _0801C940 @ =gUnknown_02024C07 - ldrb r0, [r3] - strb r0, [r1] - ldr r4, _0801C944 @ =gBattleMons - ldrb r1, [r3] - movs r0, 0x58 - adds r7, r1, 0 - muls r7, r0 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r7, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - negs r0, r0 - asrs r5, r0, 31 - movs r0, 0x2 - ands r5, r0 - ldr r2, _0801C948 @ =gBattleMoves - ldr r0, _0801C94C @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - mov r12, r3 - cmp r1, 0x2B - bne _0801C8F0 - adds r5, 0x1 -_0801C8F0: - adds r0, r5, 0 - cmp r1, 0x4B - bne _0801C8F8 - adds r0, 0x1 -_0801C8F8: - cmp r1, 0xC8 - bne _0801C8FE - adds r0, 0x1 -_0801C8FE: - adds r2, r0, 0 - cmp r1, 0xD1 - bne _0801C906 - adds r2, 0x1 -_0801C906: - movs r1, 0 - cmp r6, 0x3F - bne _0801C916 - adds r0, r7, r4 - ldrh r0, [r0] - cmp r0, 0x71 - bne _0801C916 - movs r1, 0x1 -_0801C916: - lsls r5, r1, 1 - movs r3, 0 - cmp r6, 0x42 - bne _0801C930 - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0x53 - bne _0801C930 - movs r3, 0x1 -_0801C930: - lsls r1, r3, 1 - cmp r6, 0x29 - bne _0801C950 - adds r0, r5, 0x1 - adds r0, r2, r0 - b _0801C952 - .align 2, 0 -_0801C93C: .4byte gUnknown_02024C0B -_0801C940: .4byte gUnknown_02024C07 -_0801C944: .4byte gBattleMons -_0801C948: .4byte gBattleMoves -_0801C94C: .4byte gUnknown_02024BE6 -_0801C950: - adds r0, r2, r5 -_0801C952: - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - adds r5, r0, 0 - cmp r5, 0x4 - bls _0801C960 - movs r5, 0x4 -_0801C960: - ldr r0, _0801C9BC @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r4, [r0] - cmp r4, 0x4 - beq _0801C9D0 - cmp r4, 0x4B - beq _0801C9D0 - ldr r1, _0801C9C0 @ =gUnknown_02024C98 - mov r2, r12 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _0801C9D0 - ldr r0, _0801C9C4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x84 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - bne _0801C9D0 - bl Random - ldr r2, _0801C9C8 @ =gCriticalHitChance - lsls r1, r5, 1 - adds r1, r2 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r1] - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _0801C9D0 - ldr r1, _0801C9CC @ =gCritMultiplier - movs r0, 0x2 - b _0801C9D4 - .align 2, 0 -_0801C9BC: .4byte gUnknown_02024C08 -_0801C9C0: .4byte gUnknown_02024C98 -_0801C9C4: .4byte gUnknown_020239F8 -_0801C9C8: .4byte gCriticalHitChance -_0801C9CC: .4byte gCritMultiplier -_0801C9D0: - ldr r1, _0801C9E4 @ =gCritMultiplier - movs r0, 0x1 -_0801C9D4: - strb r0, [r1] - ldr r1, _0801C9E8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801C9E4: .4byte gCritMultiplier -_0801C9E8: .4byte gUnknown_02024C10 - thumb_func_end atk04_critcalc - - thumb_func_start atk05_damagecalc1 -atk05_damagecalc1: @ 801C9EC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r4, _0801CABC @ =gUnknown_02024C7A - ldr r6, _0801CAC0 @ =gUnknown_02024C08 - ldrb r0, [r6] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldr r0, _0801CAC4 @ =gUnknown_02024C07 - mov r8, r0 - ldrb r0, [r0] - movs r4, 0x58 - muls r0, r4 - ldr r2, _0801CAC8 @ =gBattleMons - adds r0, r2 - ldrb r1, [r6] - muls r1, r4 - adds r1, r2 - ldr r2, _0801CACC @ =gUnknown_02024BE6 - mov r9, r2 - ldrh r2, [r2] - ldr r4, _0801CAD0 @ =gUnknown_02024DEC - ldrh r4, [r4] - str r4, [sp] - ldr r5, _0801CAD4 @ =0x02000000 - ldr r7, _0801CAD8 @ =0x0001601c - adds r4, r5, r7 - ldrb r4, [r4] - str r4, [sp, 0x4] - mov r7, r8 - ldrb r4, [r7] - str r4, [sp, 0x8] - ldrb r4, [r6] - str r4, [sp, 0xC] - bl CalculateBaseDamage - ldr r4, _0801CADC @ =gUnknown_02024BEC - ldr r1, _0801CAE0 @ =gCritMultiplier - ldrb r1, [r1] - muls r1, r0 - ldr r0, _0801CAE4 @ =0x0001601f - adds r5, r0 - ldrb r0, [r5] - adds r3, r1, 0 - muls r3, r0 - str r3, [r4] - ldr r1, _0801CAE8 @ =gUnknown_02024C98 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _0801CA82 - ldr r2, _0801CAEC @ =gBattleMoves - mov r7, r9 - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - cmp r0, 0xD - bne _0801CA82 - lsls r0, r3, 1 - str r0, [r4] -_0801CA82: - ldr r1, _0801CAF0 @ =gUnknown_02024D28 - ldr r0, _0801CAC4 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _0801CAA4 - ldr r4, _0801CADC @ =gUnknown_02024BEC - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0801CAA4: - ldr r1, _0801CAF4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801CABC: .4byte gUnknown_02024C7A -_0801CAC0: .4byte gUnknown_02024C08 -_0801CAC4: .4byte gUnknown_02024C07 -_0801CAC8: .4byte gBattleMons -_0801CACC: .4byte gUnknown_02024BE6 -_0801CAD0: .4byte gUnknown_02024DEC -_0801CAD4: .4byte 0x02000000 -_0801CAD8: .4byte 0x0001601c -_0801CADC: .4byte gUnknown_02024BEC -_0801CAE0: .4byte gCritMultiplier -_0801CAE4: .4byte 0x0001601f -_0801CAE8: .4byte gUnknown_02024C98 -_0801CAEC: .4byte gBattleMoves -_0801CAF0: .4byte gUnknown_02024D28 -_0801CAF4: .4byte gUnknown_02024C10 - thumb_func_end atk05_damagecalc1 - - thumb_func_start sub_801CAF8 -sub_801CAF8: @ 801CAF8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r5, r1, 0 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r5, 24 - lsrs r5, 24 - ldr r4, _0801CBBC @ =gUnknown_02024C7A - adds r0, r5, 0 - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - movs r1, 0x58 - adds r0, r7, 0 - muls r0, r1 - ldr r2, _0801CBC0 @ =gBattleMons - adds r0, r2 - muls r1, r5 - adds r1, r2 - ldr r2, _0801CBC4 @ =gUnknown_02024BE6 - mov r9, r2 - ldrh r2, [r2] - ldr r4, _0801CBC8 @ =gUnknown_02024DEC - mov r8, r4 - ldrh r4, [r4] - str r4, [sp] - ldr r6, _0801CBCC @ =0x02000000 - ldr r4, _0801CBD0 @ =0x0001601c - ldrb r4, [r4, r6] - str r4, [sp, 0x4] - str r7, [sp, 0x8] - str r5, [sp, 0xC] - bl CalculateBaseDamage - ldr r4, _0801CBD4 @ =gUnknown_02024BEC - movs r1, 0 - mov r2, r8 - strh r1, [r2] - ldr r1, _0801CBD8 @ =gCritMultiplier - ldrb r1, [r1] - muls r1, r0 - ldr r0, _0801CBDC @ =0x0001601f - adds r6, r0 - ldrb r0, [r6] - adds r3, r1, 0 - muls r3, r0 - str r3, [r4] - ldr r1, _0801CBE0 @ =gUnknown_02024C98 - lsls r0, r7, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _0801CB8E - ldr r2, _0801CBE4 @ =gBattleMoves - mov r6, r9 - ldrh r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - cmp r0, 0xD - bne _0801CB8E - lsls r0, r3, 1 - str r0, [r4] -_0801CB8E: - ldr r0, _0801CBE8 @ =gUnknown_02024D28 - lsls r1, r7, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 28 - cmp r0, 0 - bge _0801CBAC - ldr r4, _0801CBD4 @ =gUnknown_02024BEC - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0801CBAC: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801CBBC: .4byte gUnknown_02024C7A -_0801CBC0: .4byte gBattleMons -_0801CBC4: .4byte gUnknown_02024BE6 -_0801CBC8: .4byte gUnknown_02024DEC -_0801CBCC: .4byte 0x02000000 -_0801CBD0: .4byte 0x0001601c -_0801CBD4: .4byte gUnknown_02024BEC -_0801CBD8: .4byte gCritMultiplier -_0801CBDC: .4byte 0x0001601f -_0801CBE0: .4byte gUnknown_02024C98 -_0801CBE4: .4byte gBattleMoves -_0801CBE8: .4byte gUnknown_02024D28 - thumb_func_end sub_801CAF8 - - thumb_func_start battle_attack_damage_modulate_by_effectivity -battle_attack_damage_modulate_by_effectivity: @ 801CBEC - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, _0801CC1C @ =gUnknown_02024BEC - ldr r0, [r5] - muls r0, r4 - movs r1, 0xA - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _0801CC0C - cmp r4, 0 - beq _0801CC0C - movs r0, 0x1 - str r0, [r5] -_0801CC0C: - cmp r4, 0x5 - beq _0801CC3C - cmp r4, 0x5 - bgt _0801CC20 - cmp r4, 0 - beq _0801CC26 - b _0801CCBE - .align 2, 0 -_0801CC1C: .4byte gUnknown_02024BEC -_0801CC20: - cmp r4, 0x14 - beq _0801CC7C - b _0801CCBE -_0801CC26: - ldr r2, _0801CC38 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0xFB - ands r0, r1 - movs r1, 0xFD - ands r0, r1 - b _0801CCBC - .align 2, 0 -_0801CC38: .4byte gUnknown_02024C68 -_0801CC3C: - ldr r2, _0801CC6C @ =gBattleMoves - ldr r0, _0801CC70 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0801CCBE - ldr r2, _0801CC74 @ =gUnknown_02024C68 - ldrb r1, [r2] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801CCBE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0801CC78 - movs r0, 0xFD - ands r0, r1 - b _0801CCBC - .align 2, 0 -_0801CC6C: .4byte gBattleMoves -_0801CC70: .4byte gUnknown_02024BE6 -_0801CC74: .4byte gUnknown_02024C68 -_0801CC78: - movs r0, 0x4 - b _0801CCBA -_0801CC7C: - ldr r2, _0801CCAC @ =gBattleMoves - ldr r0, _0801CCB0 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0801CCBE - ldr r2, _0801CCB4 @ =gUnknown_02024C68 - ldrb r1, [r2] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801CCBE - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801CCB8 - movs r0, 0xFB - ands r0, r1 - b _0801CCBC - .align 2, 0 -_0801CCAC: .4byte gBattleMoves -_0801CCB0: .4byte gUnknown_02024BE6 -_0801CCB4: .4byte gUnknown_02024C68 -_0801CCB8: - movs r0, 0x2 -_0801CCBA: - orrs r0, r1 -_0801CCBC: - strb r0, [r2] -_0801CCBE: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end battle_attack_damage_modulate_by_effectivity - - thumb_func_start atk06_damagecalc2 -atk06_damagecalc2: @ 801CCC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0 - ldr r1, _0801CCF0 @ =gUnknown_02024BE6 - ldrh r0, [r1] - cmp r0, 0xA5 - bne _0801CCD8 - b _0801CEF4 -_0801CCD8: - ldr r0, _0801CCF4 @ =0x02000000 - ldr r2, _0801CCF8 @ =0x0001601c - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0801CCFC - movs r1, 0x3F - mov r8, r1 - mov r2, r8 - ands r2, r0 - mov r8, r2 - b _0801CD0C - .align 2, 0 -_0801CCF0: .4byte gUnknown_02024BE6 -_0801CCF4: .4byte 0x02000000 -_0801CCF8: .4byte 0x0001601c -_0801CCFC: - ldr r2, _0801CD94 @ =gBattleMoves - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r8, r0 -_0801CD0C: - ldr r2, _0801CD98 @ =gBattleMons - ldr r0, _0801CD9C @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - adds r5, r2, 0 - cmp r0, r8 - beq _0801CD2E - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r8 - bne _0801CD44 -_0801CD2E: - ldr r4, _0801CDA0 @ =gUnknown_02024BEC - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - str r0, [r4] - movs r1, 0xA - str r3, [sp, 0x4] - bl __divsi3 - str r0, [r4] - ldr r3, [sp, 0x4] -_0801CD44: - ldr r2, _0801CDA4 @ =gUnknown_02024C08 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r2, 0 - cmp r0, 0x1A - bne _0801CDBC - mov r1, r8 - cmp r1, 0x4 - bne _0801CDBC - ldr r3, _0801CDA8 @ =byte_2024C06 - strb r0, [r3] - ldr r2, _0801CDAC @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x9 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0801CDB0 @ =gUnknown_02024C3C - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, _0801CDB4 @ =gUnknown_02024C44 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r0, _0801CDB8 @ =gUnknown_02024D1E - mov r2, r8 - strb r2, [r0, 0x6] - ldrb r0, [r4] - ldrb r1, [r3] - bl sub_81074C4 - b _0801CE58 - .align 2, 0 -_0801CD94: .4byte gBattleMoves -_0801CD98: .4byte gBattleMons -_0801CD9C: .4byte gUnknown_02024C07 -_0801CDA0: .4byte gUnknown_02024BEC -_0801CDA4: .4byte gUnknown_02024C08 -_0801CDA8: .4byte byte_2024C06 -_0801CDAC: .4byte gUnknown_02024C68 -_0801CDB0: .4byte gUnknown_02024C3C -_0801CDB4: .4byte gUnknown_02024C44 -_0801CDB8: .4byte gUnknown_02024D1E -_0801CDBC: - ldr r1, _0801CDC8 @ =gTypeEffectiveness - adds r0, r3, r1 - ldrb r0, [r0] - adds r2, r1, 0 - b _0801CE38 - .align 2, 0 -_0801CDC8: .4byte gTypeEffectiveness -_0801CDCC: - adds r3, 0x3 - b _0801CE34 -_0801CDD0: - ldr r5, _0801CF08 @ =gTypeEffectiveness - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, r8 - bne _0801CE2C - adds r1, r3, 0x1 - adds r1, r5 - ldr r2, _0801CF0C @ =gBattleMons - ldr r7, _0801CF10 @ =gUnknown_02024C08 - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - adds r0, r2 - adds r0, 0x21 - ldrb r4, [r1] - ldrb r0, [r0] - cmp r4, r0 - bne _0801CE06 - adds r0, r3, 0x2 - adds r0, r5 - ldrb r0, [r0] - str r2, [sp] - str r3, [sp, 0x4] - bl battle_attack_damage_modulate_by_effectivity - ldr r3, [sp, 0x4] - ldr r2, [sp] -_0801CE06: - ldrb r0, [r7] - muls r0, r6 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r4, r1 - bne _0801CE2C - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r4 - beq _0801CE2C - adds r0, r3, 0x2 - adds r0, r5 - ldrb r0, [r0] - str r3, [sp, 0x4] - bl battle_attack_damage_modulate_by_effectivity - ldr r3, [sp, 0x4] -_0801CE2C: - adds r3, 0x3 - ldr r5, _0801CF0C @ =gBattleMons - ldr r4, _0801CF10 @ =gUnknown_02024C08 - ldr r2, _0801CF08 @ =gTypeEffectiveness -_0801CE34: - adds r0, r3, r2 - ldrb r0, [r0] -_0801CE38: - cmp r0, 0xFF - beq _0801CE58 - cmp r0, 0xFE - bne _0801CDD0 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r1, r5, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _0801CDCC -_0801CE58: - ldr r2, _0801CF0C @ =gBattleMons - ldr r5, _0801CF10 @ =gUnknown_02024C08 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r6, [r0] - cmp r6, 0x19 - bne _0801CED6 - ldr r0, _0801CF14 @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r7, _0801CF18 @ =gUnknown_02024BE6 - ldrh r1, [r7] - bl move_weather_interaction - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0801CED6 - ldr r1, _0801CF1C @ =gUnknown_02024C68 - mov r8, r1 - ldrb r4, [r1] - ands r0, r4 - cmp r0, 0 - beq _0801CE94 - movs r0, 0x6 - ands r0, r4 - cmp r0, 0x6 - bne _0801CED6 -_0801CE94: - ldr r2, _0801CF20 @ =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0801CED6 - ldr r3, _0801CF24 @ =byte_2024C06 - strb r6, [r3] - movs r0, 0x1 - orrs r0, r4 - mov r2, r8 - strb r0, [r2] - ldr r1, _0801CF28 @ =gUnknown_02024C3C - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - movs r2, 0 - strh r2, [r0] - ldr r1, _0801CF2C @ =gUnknown_02024C44 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, _0801CF30 @ =gUnknown_02024D1E - movs r0, 0x3 - strb r0, [r1, 0x6] - ldrb r0, [r5] - ldrb r1, [r3] - bl sub_81074C4 -_0801CED6: - ldr r0, _0801CF1C @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0801CEF4 - ldr r2, _0801CF34 @ =gUnknown_02024D28 - ldr r0, _0801CF14 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 4 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x1] -_0801CEF4: - ldr r1, _0801CF38 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801CF08: .4byte gTypeEffectiveness -_0801CF0C: .4byte gBattleMons -_0801CF10: .4byte gUnknown_02024C08 -_0801CF14: .4byte gUnknown_02024C07 -_0801CF18: .4byte gUnknown_02024BE6 -_0801CF1C: .4byte gUnknown_02024C68 -_0801CF20: .4byte gBattleMoves -_0801CF24: .4byte byte_2024C06 -_0801CF28: .4byte gUnknown_02024C3C -_0801CF2C: .4byte gUnknown_02024C44 -_0801CF30: .4byte gUnknown_02024D1E -_0801CF34: .4byte gUnknown_02024D28 -_0801CF38: .4byte gUnknown_02024C10 - thumb_func_end atk06_damagecalc2 - - thumb_func_start b_wonderguard_and_levitate -b_wonderguard_and_levitate: @ 801CF3C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r5, 0 - ldr r0, _0801CF80 @ =gUnknown_02024BE6 - ldrh r1, [r0] - mov r9, r0 - cmp r1, 0xA5 - bne _0801CF54 - b _0801D1A4 -_0801CF54: - ldr r2, _0801CF84 @ =gBattleMoves - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0801CF66 - b _0801D1A4 -_0801CF66: - ldr r0, _0801CF88 @ =0x02000000 - ldr r2, _0801CF8C @ =0x0001601c - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0801CF90 - movs r1, 0x3F - mov r12, r1 - mov r2, r12 - ands r2, r0 - mov r12, r2 - b _0801CF94 - .align 2, 0 -_0801CF80: .4byte gUnknown_02024BE6 -_0801CF84: .4byte gBattleMoves -_0801CF88: .4byte 0x02000000 -_0801CF8C: .4byte 0x0001601c -_0801CF90: - ldrb r1, [r1, 0x2] - mov r12, r1 -_0801CF94: - ldr r2, _0801CFC8 @ =gBattleMons - ldr r3, _0801CFCC @ =gUnknown_02024C08 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r1, [r0] - adds r7, r2, 0 - mov r8, r3 - cmp r1, 0x1A - bne _0801CFD8 - mov r0, r12 - cmp r0, 0x4 - bne _0801CFD8 - ldr r0, _0801CFD0 @ =byte_2024C06 - strb r1, [r0] - ldr r0, _0801CFD4 @ =gUnknown_02024D1E - mov r1, r12 - strb r1, [r0, 0x6] - ldrb r0, [r3] - movs r1, 0x1A - bl sub_81074C4 - b _0801D1A4 - .align 2, 0 -_0801CFC8: .4byte gBattleMons -_0801CFCC: .4byte gUnknown_02024C08 -_0801CFD0: .4byte byte_2024C06 -_0801CFD4: .4byte gUnknown_02024D1E -_0801CFD8: - ldr r1, _0801CFE4 @ =gTypeEffectiveness - adds r0, r5, r1 - ldrb r0, [r0] - adds r4, r1, 0 - b _0801D12A - .align 2, 0 -_0801CFE4: .4byte gTypeEffectiveness -_0801CFE8: - adds r0, r5, r4 - ldrb r0, [r0] - cmp r0, r12 - beq _0801CFF2 - b _0801D124 -_0801CFF2: - adds r2, r5, 0x1 - adds r3, r2, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r3] - adds r3, r2, 0 - ldrb r0, [r0] - cmp r1, r0 - bne _0801D032 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _0801D032 - ldr r2, _0801D1B0 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0801D1B4 @ =gUnknown_02024D28 - ldr r0, _0801D1B8 @ =gUnknown_02024C07 - ldrb r2, [r0] - lsls r2, 4 - adds r2, r1 - ldrb r0, [r2, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x1] -_0801D032: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0801D078 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0801D078 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _0801D078 - ldr r2, _0801D1B0 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0801D1B4 @ =gUnknown_02024D28 - ldr r0, _0801D1B8 @ =gUnknown_02024C07 - ldrb r2, [r0] - lsls r2, 4 - adds r2, r1 - ldrb r0, [r2, 0x1] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x1] -_0801D078: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _0801D09C - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0801D09C - movs r0, 0x1 - orrs r6, r0 -_0801D09C: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0801D0CA - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0801D0CA - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0801D0CA - movs r0, 0x1 - orrs r6, r0 -_0801D0CA: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x21 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bne _0801D0F2 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x5 - bne _0801D0F2 - movs r0, 0x2 - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_0801D0F2: - adds r2, r3, r4 - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0801D124 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0801D124 - adds r0, r5, 0x2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x5 - bne _0801D124 - movs r0, 0x2 - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_0801D124: - adds r5, 0x3 - adds r0, r5, r4 - ldrb r0, [r0] -_0801D12A: - cmp r0, 0xFF - beq _0801D14E - cmp r0, 0xFE - beq _0801D134 - b _0801CFE8 -_0801D134: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _0801D124 -_0801D14E: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7 - adds r0, 0x20 - ldrb r4, [r0] - cmp r4, 0x19 - bne _0801D1A4 - ldr r0, _0801D1B8 @ =gUnknown_02024C07 - ldrb r0, [r0] - mov r2, r9 - ldrh r1, [r2] - bl move_weather_interaction - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0801D1A4 - movs r0, 0x3 - ands r6, r0 - cmp r6, 0x1 - beq _0801D1A4 - ldr r2, _0801D1BC @ =gBattleMoves - mov r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _0801D1A4 - ldr r0, _0801D1C0 @ =byte_2024C06 - strb r4, [r0] - ldr r1, _0801D1C4 @ =gUnknown_02024D1E - movs r0, 0x3 - strb r0, [r1, 0x6] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x19 - bl sub_81074C4 -_0801D1A4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801D1B0: .4byte gUnknown_02024C68 -_0801D1B4: .4byte gUnknown_02024D28 -_0801D1B8: .4byte gUnknown_02024C07 -_0801D1BC: .4byte gBattleMoves -_0801D1C0: .4byte byte_2024C06 -_0801D1C4: .4byte gUnknown_02024D1E - thumb_func_end b_wonderguard_and_levitate - - thumb_func_start b_attack_effectivity_adapt -b_attack_effectivity_adapt: @ 801D1C8 - push {r4-r7,lr} - adds r6, r2, 0 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r7, _0801D1FC @ =gUnknown_02024BEC - ldr r0, [r7] - muls r0, r4 - movs r1, 0xA - bl __divsi3 - str r0, [r7] - cmp r0, 0 - bne _0801D1EE - cmp r4, 0 - beq _0801D1EE - movs r0, 0x1 - str r0, [r7] -_0801D1EE: - cmp r4, 0x5 - beq _0801D216 - cmp r4, 0x5 - bgt _0801D200 - cmp r4, 0 - beq _0801D206 - b _0801D27A - .align 2, 0 -_0801D1FC: .4byte gUnknown_02024BEC -_0801D200: - cmp r4, 0x14 - beq _0801D248 - b _0801D27A -_0801D206: - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0xFB - ands r0, r1 - movs r1, 0xFD - ands r0, r1 - b _0801D278 -_0801D216: - ldr r0, _0801D240 @ =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0801D27A - ldrb r1, [r6] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801D27A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0801D244 - movs r0, 0xFD - ands r0, r1 - b _0801D278 - .align 2, 0 -_0801D240: .4byte gBattleMoves -_0801D244: - movs r0, 0x4 - b _0801D276 -_0801D248: - ldr r0, _0801D270 @ =gBattleMoves - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0801D27A - ldrb r1, [r6] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801D27A - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801D274 - movs r0, 0xFB - ands r0, r1 - b _0801D278 - .align 2, 0 -_0801D270: .4byte gBattleMoves -_0801D274: - movs r0, 0x2 -_0801D276: - orrs r0, r1 -_0801D278: - strb r0, [r6] -_0801D27A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end b_attack_effectivity_adapt - - thumb_func_start move_effectiveness_something -move_effectiveness_something: @ 801D280 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - movs r7, 0 - mov r0, sp - strb r7, [r0] - mov r0, r10 - cmp r0, 0xA5 - bne _0801D2AE - movs r0, 0 - b _0801D43A -_0801D2AE: - ldr r1, _0801D31C @ =gBattleMoves - mov r3, r10 - lsls r2, r3, 1 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x2] - str r0, [sp, 0x8] - ldr r1, _0801D320 @ =gBattleMons - movs r0, 0x58 - ldr r3, [sp, 0x4] - muls r0, r3 - adds r3, r0, r1 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - str r2, [sp, 0xC] - adds r5, r1, 0 - ldr r1, [sp, 0x8] - cmp r0, r1 - beq _0801D2E2 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _0801D2F4 -_0801D2E2: - ldr r4, _0801D324 @ =gUnknown_02024BEC - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - str r0, [r4] - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_0801D2F4: - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - bne _0801D328 - ldr r3, [sp, 0x8] - cmp r3, 0x4 - bne _0801D328 - movs r1, 0x9 - mov r0, sp - ldrb r0, [r0] - orrs r0, r1 - mov r1, sp - strb r0, [r1] - b _0801D3DC - .align 2, 0 -_0801D31C: .4byte gBattleMoves -_0801D320: .4byte gBattleMons -_0801D324: .4byte gUnknown_02024BEC -_0801D328: - ldr r1, _0801D344 @ =gTypeEffectiveness - adds r0, r7, r1 - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0xFF - beq _0801D3DC - cmp r0, 0xFE - bne _0801D34C - movs r0, 0x58 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - b _0801D3CA - .align 2, 0 -_0801D344: .4byte gTypeEffectiveness -_0801D348: - adds r7, 0x3 - b _0801D3B6 -_0801D34C: - ldr r6, _0801D44C @ =gTypeEffectiveness - adds r0, r7, r6 - ldrb r0, [r0] - ldr r2, [sp, 0x8] - cmp r0, r2 - bne _0801D3B0 - adds r1, r7, 0x1 - adds r1, r6 - ldr r3, _0801D450 @ =gBattleMons - mov r8, r3 - movs r3, 0x58 - mov r0, r9 - muls r0, r3 - mov r2, r8 - adds r5, r0, r2 - adds r0, r5, 0 - adds r0, 0x21 - ldrb r4, [r1] - ldrb r0, [r0] - cmp r4, r0 - bne _0801D388 - adds r0, r7, 0x2 - adds r0, r6 - ldrb r0, [r0] - mov r1, r10 - mov r2, sp - str r3, [sp, 0x10] - bl b_attack_effectivity_adapt - ldr r3, [sp, 0x10] -_0801D388: - adds r0, r5, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r4, r0 - bne _0801D3B0 - ldr r0, _0801D454 @ =gUnknown_02024C08 - ldrb r0, [r0] - muls r0, r3 - add r0, r8 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r4 - beq _0801D3B0 - adds r0, r7, 0x2 - adds r0, r6 - ldrb r0, [r0] - mov r1, r10 - mov r2, sp - bl b_attack_effectivity_adapt -_0801D3B0: - adds r7, 0x3 - ldr r5, _0801D450 @ =gBattleMons - ldr r2, _0801D44C @ =gTypeEffectiveness -_0801D3B6: - adds r0, r7, r2 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0801D3DC - cmp r0, 0xFE - bne _0801D34C - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 -_0801D3CA: - adds r1, r5, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _0801D348 -_0801D3DC: - movs r0, 0x58 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x19 - bne _0801D436 - mov r0, sp - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0801D436 - ldr r0, [sp, 0x4] - mov r1, r10 - bl move_weather_interaction - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _0801D436 - mov r0, sp - ldrb r3, [r0] - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0801D41E - movs r0, 0x6 - ands r0, r3 - cmp r0, 0x6 - bne _0801D436 -_0801D41E: - ldr r0, _0801D458 @ =gBattleMoves - ldr r1, [sp, 0xC] - add r1, r10 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0801D436 - mov r0, sp - movs r1, 0x1 - orrs r1, r3 - strb r1, [r0] -_0801D436: - mov r0, sp - ldrb r0, [r0] -_0801D43A: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801D44C: .4byte gTypeEffectiveness -_0801D450: .4byte gBattleMons -_0801D454: .4byte gUnknown_02024C08 -_0801D458: .4byte gBattleMoves - thumb_func_end move_effectiveness_something - - thumb_func_start ai_rate_move -ai_rate_move: @ 801D45C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - movs r7, 0 - mov r0, sp - strb r7, [r0] - ldr r2, _0801D498 @ =gBaseStats - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - str r1, [sp, 0x8] - ldrb r0, [r0, 0x7] - mov r8, r0 - cmp r6, 0xA5 - bne _0801D49C - movs r0, 0 - b _0801D554 - .align 2, 0 -_0801D498: .4byte gBaseStats -_0801D49C: - ldr r2, _0801D4C0 @ =gBattleMoves - lsls r1, r6, 1 - adds r0, r1, r6 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r9, r0 - str r1, [sp, 0xC] - ldr r3, [sp, 0x4] - cmp r3, 0x1A - bne _0801D4C4 - cmp r0, 0x4 - bne _0801D4C4 - movs r1, 0x9 - mov r0, sp - strb r1, [r0] - b _0801D51E - .align 2, 0 -_0801D4C0: .4byte gBattleMoves -_0801D4C4: - ldr r0, _0801D564 @ =gTypeEffectiveness - mov r10, r0 - adds r1, r7, r0 - ldrb r0, [r1] - cmp r0, 0xFF - beq _0801D51E - adds r4, r1, 0 -_0801D4D2: - ldrb r0, [r4] - cmp r0, 0xFE - beq _0801D510 - cmp r0, r9 - bne _0801D510 - ldrb r5, [r4, 0x1] - ldr r1, [sp, 0x8] - cmp r5, r1 - bne _0801D4EE - ldrb r0, [r4, 0x2] - adds r1, r6, 0 - mov r2, sp - bl b_attack_effectivity_adapt -_0801D4EE: - cmp r5, r8 - bne _0801D510 - ldr r0, _0801D568 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - ldr r3, _0801D56C @ =gBattleMons - adds r0, r3 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r8 - beq _0801D510 - ldrb r0, [r4, 0x2] - adds r1, r6, 0 - mov r2, sp - bl b_attack_effectivity_adapt -_0801D510: - adds r4, 0x3 - adds r7, 0x3 - mov r1, r10 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0801D4D2 -_0801D51E: - ldr r3, [sp, 0x4] - cmp r3, 0x19 - bne _0801D550 - mov r0, sp - ldrb r2, [r0] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0801D538 - movs r0, 0x6 - ands r0, r2 - cmp r0, 0x6 - bne _0801D550 -_0801D538: - ldr r0, _0801D570 @ =gBattleMoves - ldr r3, [sp, 0xC] - adds r1, r3, r6 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0 - beq _0801D550 - mov r0, sp - movs r1, 0x8 - orrs r1, r2 - strb r1, [r0] -_0801D550: - mov r0, sp - ldrb r0, [r0] -_0801D554: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801D564: .4byte gTypeEffectiveness -_0801D568: .4byte gUnknown_02024C08 -_0801D56C: .4byte gBattleMons -_0801D570: .4byte gBattleMoves - thumb_func_end ai_rate_move - - thumb_func_start unref_sub_801D574 -unref_sub_801D574: @ 801D574 - push {r4,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _0801D5AC @ =gUnknown_02024BEC - ldr r0, [r4] - cmp r0, 0 - beq _0801D5A6 - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801D5A6 - movs r0, 0x1 - str r0, [r4] -_0801D5A6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801D5AC: .4byte gUnknown_02024BEC - thumb_func_end unref_sub_801D574 - - thumb_func_start atk07_damagecalc3 -atk07_damagecalc3: @ 801D5B0 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _0801D608 @ =gUnknown_02024BEC - ldr r0, [r4] - cmp r0, 0 - beq _0801D5E2 - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801D5E2 - movs r0, 0x1 - str r0, [r4] -_0801D5E2: - ldr r7, _0801D60C @ =gBattleMons - ldr r6, _0801D610 @ =gUnknown_02024C08 - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0801D618 - ldr r1, _0801D614 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _0801D632 - .align 2, 0 -_0801D608: .4byte gUnknown_02024BEC -_0801D60C: .4byte gBattleMons -_0801D610: .4byte gUnknown_02024C08 -_0801D614: .4byte gEnigmaBerries -_0801D618: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_0801D632: - ldr r1, _0801D6F4 @ =gUnknown_02024C0B - ldr r5, _0801D6F8 @ =gUnknown_02024C08 - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _0801D670 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _0801D670 - ldrb r0, [r5] - movs r1, 0x27 - bl sub_81074F8 - ldr r2, _0801D6FC @ =gUnknown_02024D68 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_0801D670: - ldr r2, _0801D700 @ =gBattleMons - ldr r3, _0801D6F8 @ =gUnknown_02024C08 - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r5, r2, 0 - cmp r1, 0 - bne _0801D740 - ldr r2, _0801D704 @ =gBattleMoves - ldr r0, _0801D708 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x65 - beq _0801D6C2 - ldr r0, _0801D70C @ =gUnknown_02024D28 - lsls r1, r4, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _0801D6C2 - ldr r0, _0801D6FC @ =gUnknown_02024D68 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0801D740 -_0801D6C2: - ldrb r0, [r3] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r1, [r0, 0x28] - ldr r2, _0801D710 @ =gUnknown_02024BEC - ldr r0, [r2] - cmp r1, r0 - bgt _0801D740 - subs r0, r1, 0x1 - str r0, [r2] - ldr r1, _0801D70C @ =gUnknown_02024D28 - ldrb r3, [r3] - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _0801D718 - ldr r0, _0801D714 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0801D740 - .align 2, 0 -_0801D6F4: .4byte gUnknown_02024C0B -_0801D6F8: .4byte gUnknown_02024C08 -_0801D6FC: .4byte gUnknown_02024D68 -_0801D700: .4byte gBattleMons -_0801D704: .4byte gBattleMoves -_0801D708: .4byte gUnknown_02024BE6 -_0801D70C: .4byte gUnknown_02024D28 -_0801D710: .4byte gUnknown_02024BEC -_0801D714: .4byte gUnknown_02024C68 -_0801D718: - ldr r0, _0801D750 @ =gUnknown_02024D68 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0801D740 - ldr r2, _0801D754 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0801D758 @ =gUnknown_02024C04 - adds r0, r3, 0 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_0801D740: - ldr r1, _0801D75C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801D750: .4byte gUnknown_02024D68 -_0801D754: .4byte gUnknown_02024C68 -_0801D758: .4byte gUnknown_02024C04 -_0801D75C: .4byte gUnknown_02024C10 - thumb_func_end atk07_damagecalc3 - - thumb_func_start atk08_cmd8 -atk08_cmd8: @ 801D760 - push {r4-r7,lr} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - movs r1, 0x64 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r4, _0801D7B8 @ =gUnknown_02024BEC - ldr r0, [r4] - cmp r0, 0 - beq _0801D792 - muls r0, r1 - str r0, [r4] - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801D792 - movs r0, 0x1 - str r0, [r4] -_0801D792: - ldr r7, _0801D7BC @ =gBattleMons - ldr r6, _0801D7C0 @ =gUnknown_02024C08 - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0801D7C8 - ldr r1, _0801D7C4 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _0801D7E2 - .align 2, 0 -_0801D7B8: .4byte gUnknown_02024BEC -_0801D7BC: .4byte gBattleMons -_0801D7C0: .4byte gUnknown_02024C08 -_0801D7C4: .4byte gEnigmaBerries -_0801D7C8: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_0801D7E2: - ldr r1, _0801D888 @ =gUnknown_02024C0B - ldr r5, _0801D88C @ =gUnknown_02024C08 - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _0801D820 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _0801D820 - ldrb r0, [r5] - movs r1, 0x27 - bl sub_81074F8 - ldr r2, _0801D890 @ =gUnknown_02024D68 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_0801D820: - ldr r4, _0801D894 @ =gBattleMons - ldr r6, _0801D88C @ =gUnknown_02024C08 - ldrb r2, [r6] - movs r7, 0x58 - adds r3, r2, 0 - muls r3, r7 - adds r0, r4, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _0801D8CC - ldr r5, _0801D898 @ =gUnknown_02024D28 - lsls r0, r2, 4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - blt _0801D85E - ldr r0, _0801D890 @ =gUnknown_02024D68 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0801D8CC -_0801D85E: - adds r0, r3, r4 - ldrh r1, [r0, 0x28] - ldr r2, _0801D89C @ =gUnknown_02024BEC - ldr r0, [r2] - cmp r1, r0 - bgt _0801D8CC - subs r0, r1, 0x1 - str r0, [r2] - ldrb r3, [r6] - lsls r0, r3, 4 - adds r0, r5 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _0801D8A4 - ldr r0, _0801D8A0 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _0801D8CC - .align 2, 0 -_0801D888: .4byte gUnknown_02024C0B -_0801D88C: .4byte gUnknown_02024C08 -_0801D890: .4byte gUnknown_02024D68 -_0801D894: .4byte gBattleMons -_0801D898: .4byte gUnknown_02024D28 -_0801D89C: .4byte gUnknown_02024BEC -_0801D8A0: .4byte gUnknown_02024C68 -_0801D8A4: - ldr r0, _0801D8DC @ =gUnknown_02024D68 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _0801D8CC - ldr r2, _0801D8E0 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0801D8E4 @ =gUnknown_02024C04 - adds r0, r3, 0 - muls r0, r7 - adds r0, r4 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_0801D8CC: - ldr r1, _0801D8E8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801D8DC: .4byte gUnknown_02024D68 -_0801D8E0: .4byte gUnknown_02024C68 -_0801D8E4: .4byte gUnknown_02024C04 -_0801D8E8: .4byte gUnknown_02024C10 - thumb_func_end atk08_cmd8 - - thumb_func_start sub_801D8EC -sub_801D8EC: @ 801D8EC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0xC - ldr r0, _0801D940 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _0801D900 - b _0801DA4A -_0801D900: - ldr r0, _0801D944 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - ldr r3, _0801D948 @ =gUnknown_02024BE6 - cmp r0, 0 - beq _0801D960 - ldrh r0, [r3] - cmp r0, 0x90 - beq _0801D960 - cmp r0, 0xA4 - beq _0801D960 - ldr r4, _0801D94C @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801D950 @ =gUnknown_081D8EEF - str r0, [r4] - ldr r1, _0801D954 @ =0x02000000 - ldr r0, _0801D958 @ =0x00016002 - adds r2, r1, r0 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - ldr r2, _0801D95C @ =0x000160a1 - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0801DA4A - .align 2, 0 -_0801D940: .4byte gUnknown_02024A64 -_0801D944: .4byte gUnknown_02024C6C -_0801D948: .4byte gUnknown_02024BE6 -_0801D94C: .4byte gUnknown_02024C10 -_0801D950: .4byte gUnknown_081D8EEF -_0801D954: .4byte 0x02000000 -_0801D958: .4byte 0x00016002 -_0801D95C: .4byte 0x000160a1 -_0801D960: - ldr r2, _0801DA0C @ =gBattleMoves - ldrh r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0801D986 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0801D986 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0801D992 -_0801D986: - ldr r0, _0801DA10 @ =0x02000000 - ldr r1, _0801DA14 @ =0x000160a1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0801DA00 -_0801D992: - ldr r0, _0801DA18 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801DA3C - ldr r1, _0801DA1C @ =gUnknown_02024A60 - ldr r2, _0801DA20 @ =gUnknown_02024C07 - mov r9, r2 - ldrb r0, [r2] - strb r0, [r1] - ldrh r1, [r3] - ldr r6, _0801DA10 @ =0x02000000 - ldr r0, _0801DA24 @ =0x00016002 - adds r0, r6 - mov r8, r0 - ldrb r2, [r0] - ldr r0, _0801DA28 @ =gBattleMovePower - ldrh r3, [r0] - ldr r0, _0801DA2C @ =gUnknown_02024BEC - ldr r0, [r0] - str r0, [sp] - ldr r5, _0801DA30 @ =gBattleMons - mov r0, r9 - ldrb r4, [r0] - movs r0, 0x58 - muls r0, r4 - adds r0, r5 - adds r0, 0x2B - ldrb r0, [r0] - str r0, [sp, 0x4] - mov r0, r9 - ldrb r4, [r0] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r4, _0801DA34 @ =gUnknown_02024CA8 - adds r0, r4 - str r0, [sp, 0x8] - movs r0, 0 - bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes - mov r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, _0801DA14 @ =0x000160a1 - adds r6, r2 - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - mov r1, r9 - ldrb r0, [r1] - bl dp01_battle_side_mark_buffer_for_execution -_0801DA00: - ldr r1, _0801DA38 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _0801DA4A - .align 2, 0 -_0801DA0C: .4byte gBattleMoves -_0801DA10: .4byte 0x02000000 -_0801DA14: .4byte 0x000160a1 -_0801DA18: .4byte gUnknown_02024C68 -_0801DA1C: .4byte gUnknown_02024A60 -_0801DA20: .4byte gUnknown_02024C07 -_0801DA24: .4byte 0x00016002 -_0801DA28: .4byte gBattleMovePower -_0801DA2C: .4byte gUnknown_02024BEC -_0801DA30: .4byte gBattleMons -_0801DA34: .4byte gUnknown_02024CA8 -_0801DA38: .4byte gUnknown_02024C10 -_0801DA3C: - ldr r4, _0801DA58 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801DA5C @ =gUnknown_081D8EEF - str r0, [r4] -_0801DA4A: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801DA58: .4byte gUnknown_02024C10 -_0801DA5C: .4byte gUnknown_081D8EEF - thumb_func_end sub_801D8EC - - thumb_func_start sub_801DA60 -sub_801DA60: @ 801DA60 - push {lr} - ldr r0, _0801DA78 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801DA72 - ldr r1, _0801DA7C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0801DA72: - pop {r0} - bx r0 - .align 2, 0 -_0801DA78: .4byte gUnknown_02024A64 -_0801DA7C: .4byte gUnknown_02024C10 - thumb_func_end sub_801DA60 - - thumb_func_start sub_801DA80 -sub_801DA80: @ 801DA80 - push {r4,r5,lr} - ldr r0, _0801DAE4 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801DB36 - ldr r0, _0801DAE8 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801DB2E - ldr r0, _0801DAEC @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r2, _0801DAF0 @ =gUnknown_02024A60 - strb r0, [r2] - ldr r1, _0801DAF4 @ =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _0801DB00 - ldr r0, _0801DAF8 @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - beq _0801DB00 - ldr r0, _0801DAFC @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - bne _0801DB00 - movs r0, 0x80 - adds r1, r2, 0 - bl b_std_message - b _0801DB2E - .align 2, 0 -_0801DAE4: .4byte gUnknown_02024A64 -_0801DAE8: .4byte gUnknown_02024C68 -_0801DAEC: .4byte gUnknown_02024C10 -_0801DAF0: .4byte gUnknown_02024A60 -_0801DAF4: .4byte gBattleMons -_0801DAF8: .4byte gUnknown_02024CA8 -_0801DAFC: .4byte gUnknown_02024C6C -_0801DB00: - ldr r5, _0801DB3C @ =gUnknown_02024BEC - ldrh r1, [r5] - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r4, _0801DB40 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0801DB2E - ldr r0, [r5] - cmp r0, 0 - ble _0801DB2E - ldr r0, _0801DB44 @ =gUnknown_030042E0 - ldrb r1, [r0, 0x5] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x5] -_0801DB2E: - ldr r1, _0801DB48 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0801DB36: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801DB3C: .4byte gUnknown_02024BEC -_0801DB40: .4byte gUnknown_02024A60 -_0801DB44: .4byte gUnknown_030042E0 -_0801DB48: .4byte gUnknown_02024C10 - thumb_func_end sub_801DA80 - - thumb_func_start atk0C_datahpupdate -atk0C_datahpupdate: @ 801DB4C - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, _0801DB74 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _0801DB5A - b _0801DF2E -_0801DB5A: - ldr r0, _0801DB78 @ =0x02000000 - ldr r1, _0801DB7C @ =0x0001601c - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0 - beq _0801DB80 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0801DB80 - movs r6, 0x3F - ands r6, r1 - b _0801DB90 - .align 2, 0 -_0801DB74: .4byte gUnknown_02024A64 -_0801DB78: .4byte 0x02000000 -_0801DB7C: .4byte 0x0001601c -_0801DB80: - ldr r2, _0801DC1C @ =gBattleMoves - ldr r0, _0801DC20 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r6, [r0, 0x2] -_0801DB90: - ldr r0, _0801DC24 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0801DB9E - b _0801DF00 -_0801DB9E: - ldr r0, _0801DC28 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r7, _0801DC2C @ =gUnknown_02024A60 - strb r0, [r7] - ldr r1, _0801DC30 @ =gBattleMons - ldrb r2, [r7] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _0801DCB4 - ldr r0, _0801DC34 @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r4, r1, r0 - ldrb r1, [r4, 0xA] - mov r12, r0 - cmp r1, 0 - beq _0801DCB4 - ldr r0, _0801DC38 @ =gUnknown_02024C6C - ldr r3, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r3, r0 - cmp r3, 0 - bne _0801DCB4 - adds r5, r1, 0 - ldr r6, _0801DC3C @ =gUnknown_02024BEC - ldr r4, [r6] - cmp r5, r4 - blt _0801DC48 - ldr r0, _0801DC40 @ =gUnknown_02024D68 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _0801DC02 - str r4, [r1] -_0801DC02: - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r12 - ldr r2, [r6] - ldrb r0, [r1, 0xA] - subs r0, r2 - strb r0, [r1, 0xA] - ldr r1, _0801DC44 @ =gUnknown_02024BF0 - ldr r0, [r6] - str r0, [r1] - b _0801DC78 - .align 2, 0 -_0801DC1C: .4byte gBattleMoves -_0801DC20: .4byte gUnknown_02024BE6 -_0801DC24: .4byte gUnknown_02024C68 -_0801DC28: .4byte gUnknown_02024C10 -_0801DC2C: .4byte gUnknown_02024A60 -_0801DC30: .4byte gBattleMons -_0801DC34: .4byte gUnknown_02024CA8 -_0801DC38: .4byte gUnknown_02024C6C -_0801DC3C: .4byte gUnknown_02024BEC -_0801DC40: .4byte gUnknown_02024D68 -_0801DC44: .4byte gUnknown_02024BF0 -_0801DC48: - ldr r0, _0801DCA0 @ =gUnknown_02024D68 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _0801DC5C - str r5, [r1] -_0801DC5C: - ldr r2, _0801DCA4 @ =gUnknown_02024BF0 - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xA] - str r0, [r2] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r3, [r0, 0xA] -_0801DC78: - ldr r0, _0801DCA8 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r0, [r0, 0xA] - cmp r0, 0 - beq _0801DC8C - b _0801DF26 -_0801DC8C: - ldr r4, _0801DCAC @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - bl b_movescr_stack_push_cursor - ldr r0, _0801DCB0 @ =gUnknown_081D99AB - str r0, [r4] - b _0801DF2E - .align 2, 0 -_0801DCA0: .4byte gUnknown_02024D68 -_0801DCA4: .4byte gUnknown_02024BF0 -_0801DCA8: .4byte gUnknown_02024A60 -_0801DCAC: .4byte gUnknown_02024C10 -_0801DCB0: .4byte gUnknown_081D99AB -_0801DCB4: - ldr r0, _0801DCF4 @ =gUnknown_02024C6C - ldr r2, [r0] - ldr r1, _0801DCF8 @ =0xfffffeff - ands r2, r1 - str r2, [r0] - ldr r1, _0801DCFC @ =gUnknown_02024BEC - ldr r5, [r1] - mov r12, r0 - adds r7, r1, 0 - cmp r5, 0 - bge _0801DD08 - ldr r4, _0801DD00 @ =gBattleMons - ldr r2, _0801DD04 @ =gUnknown_02024A60 - ldrb r0, [r2] - movs r3, 0x58 - adds r1, r0, 0 - muls r1, r3 - adds r1, r4 - ldrh r0, [r1, 0x28] - subs r0, r5 - strh r0, [r1, 0x28] - ldrb r0, [r2] - muls r0, r3 - adds r1, r0, r4 - ldrh r3, [r1, 0x2C] - ldrh r0, [r1, 0x28] - adds r5, r2, 0 - cmp r0, r3 - bhi _0801DCF0 - b _0801DEC6 -_0801DCF0: - strh r3, [r1, 0x28] - b _0801DEC6 - .align 2, 0 -_0801DCF4: .4byte gUnknown_02024C6C -_0801DCF8: .4byte 0xfffffeff -_0801DCFC: .4byte gUnknown_02024BEC -_0801DD00: .4byte gBattleMons -_0801DD04: .4byte gUnknown_02024A60 -_0801DD08: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _0801DD24 - movs r0, 0x21 - negs r0, r0 - ands r2, r0 - mov r0, r12 - str r2, [r0] - ldr r5, _0801DD20 @ =gUnknown_02024A60 - b _0801DD6C - .align 2, 0 -_0801DD20: .4byte gUnknown_02024A60 -_0801DD24: - ldr r0, _0801DD4C @ =gUnknown_02024BF4 - ldr r2, _0801DD50 @ =gUnknown_02024A60 - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - adds r0, r5 - str r0, [r1] - ldr r0, _0801DD54 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - adds r5, r2, 0 - cmp r0, 0 - bne _0801DD60 - ldr r1, _0801DD58 @ =gUnknown_02024C74 - ldrb r0, [r5] - adds r0, r1 - ldr r1, _0801DD5C @ =gUnknown_02024C07 - b _0801DD68 - .align 2, 0 -_0801DD4C: .4byte gUnknown_02024BF4 -_0801DD50: .4byte gUnknown_02024A60 -_0801DD54: .4byte gUnknown_02024C10 -_0801DD58: .4byte gUnknown_02024C74 -_0801DD5C: .4byte gUnknown_02024C07 -_0801DD60: - ldr r1, _0801DD8C @ =gUnknown_02024C74 - ldrb r0, [r5] - adds r0, r1 - ldr r1, _0801DD90 @ =gUnknown_02024C08 -_0801DD68: - ldrb r1, [r1] - strb r1, [r0] -_0801DD6C: - ldr r4, _0801DD94 @ =gBattleMons - ldrb r0, [r5] - movs r3, 0x58 - muls r0, r3 - adds r2, r0, r4 - ldrh r0, [r2, 0x28] - ldr r1, [r7] - cmp r0, r1 - ble _0801DD9C - subs r0, r1 - strh r0, [r2, 0x28] - ldr r0, _0801DD98 @ =gUnknown_02024BF0 - str r1, [r0] - adds r7, r0, 0 - b _0801DDAC - .align 2, 0 -_0801DD8C: .4byte gUnknown_02024C74 -_0801DD90: .4byte gUnknown_02024C08 -_0801DD94: .4byte gBattleMons -_0801DD98: .4byte gUnknown_02024BF0 -_0801DD9C: - ldr r2, _0801DE20 @ =gUnknown_02024BF0 - str r0, [r2] - ldrb r0, [r5] - muls r0, r3 - adds r0, r4 - movs r1, 0 - strh r1, [r0, 0x28] - adds r7, r2, 0 -_0801DDAC: - ldr r2, _0801DE24 @ =gUnknown_02024D68 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0x4 - adds r3, r0, r1 - ldr r0, [r3] - adds r4, r2, 0 - cmp r0, 0 - bne _0801DDD4 - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _0801DDD4 - ldr r0, [r7] - str r0, [r3] -_0801DDD4: - cmp r6, 0x8 - bhi _0801DE5C - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _0801DE58 - ldr r0, _0801DE28 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xDC - beq _0801DE58 - ldr r3, _0801DE2C @ =gUnknown_02024D28 - ldrb r0, [r5] - lsls r0, 4 - adds r1, r3, 0x4 - adds r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x8 - adds r0, r1 - str r2, [r0] - ldr r0, _0801DE30 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0801DE38 - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, _0801DE34 @ =gUnknown_02024C07 - b _0801DE40 - .align 2, 0 -_0801DE20: .4byte gUnknown_02024BF0 -_0801DE24: .4byte gUnknown_02024D68 -_0801DE28: .4byte gUnknown_02024BE6 -_0801DE2C: .4byte gUnknown_02024D28 -_0801DE30: .4byte gUnknown_02024C10 -_0801DE34: .4byte gUnknown_02024C07 -_0801DE38: - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, _0801DE54 @ =gUnknown_02024C08 -_0801DE40: - ldrb r1, [r2] - strb r1, [r0, 0xC] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r2] - strb r1, [r0, 0x10] - b _0801DEC6 - .align 2, 0 -_0801DE54: .4byte gUnknown_02024C08 -_0801DE58: - cmp r6, 0x8 - bls _0801DEC6 -_0801DE5C: - mov r1, r12 - ldr r0, [r1] - movs r1, 0x80 - lsls r1, 13 - ands r0, r1 - cmp r0, 0 - bne _0801DEC6 - ldr r3, _0801DEA0 @ =gUnknown_02024D28 - ldrb r0, [r5] - lsls r0, 4 - adds r1, r3, 0 - adds r1, 0x8 - adds r0, r1 - ldr r2, [r7] - str r2, [r0] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - str r2, [r0] - ldr r0, _0801DEA4 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0801DEAC - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, _0801DEA8 @ =gUnknown_02024C07 - b _0801DEB4 - .align 2, 0 -_0801DEA0: .4byte gUnknown_02024D28 -_0801DEA4: .4byte gUnknown_02024C10 -_0801DEA8: .4byte gUnknown_02024C07 -_0801DEAC: - ldrb r0, [r5] - lsls r0, 4 - adds r0, r3 - ldr r2, _0801DEF4 @ =gUnknown_02024C08 -_0801DEB4: - ldrb r1, [r2] - strb r1, [r0, 0xD] - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r2] - strb r1, [r0, 0x11] -_0801DEC6: - mov r1, r12 - ldr r0, [r1] - ldr r1, _0801DEF8 @ =0xffefffff - ands r0, r1 - mov r1, r12 - str r0, [r1] - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - ldr r1, _0801DEFC @ =gUnknown_02024AA8 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2A - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - b _0801DF26 - .align 2, 0 -_0801DEF4: .4byte gUnknown_02024C08 -_0801DEF8: .4byte 0xffefffff -_0801DEFC: .4byte gUnknown_02024AA8 -_0801DF00: - ldr r0, _0801DF38 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r1, _0801DF3C @ =gUnknown_02024A60 - strb r0, [r1] - ldr r2, _0801DF40 @ =gUnknown_02024D68 - ldrb r1, [r1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r1, r0, r2 - ldr r0, [r1] - cmp r0, 0 - bne _0801DF26 - ldr r0, _0801DF44 @ =0x0000ffff - str r0, [r1] -_0801DF26: - ldr r1, _0801DF38 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0801DF2E: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801DF38: .4byte gUnknown_02024C10 -_0801DF3C: .4byte gUnknown_02024A60 -_0801DF40: .4byte gUnknown_02024D68 -_0801DF44: .4byte 0x0000ffff - thumb_func_end atk0C_datahpupdate - - thumb_func_start atk0D_critmessage -atk0D_critmessage: @ 801DF48 - push {lr} - ldr r0, _0801DF84 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801DF7E - ldr r0, _0801DF88 @ =gCritMultiplier - ldrb r0, [r0] - cmp r0, 0x2 - bne _0801DF76 - ldr r0, _0801DF8C @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801DF76 - ldr r0, _0801DF90 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0xD9 - bl b_std_message - ldr r1, _0801DF94 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x7] -_0801DF76: - ldr r1, _0801DF98 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0801DF7E: - pop {r0} - bx r0 - .align 2, 0 -_0801DF84: .4byte gUnknown_02024A64 -_0801DF88: .4byte gCritMultiplier -_0801DF8C: .4byte gUnknown_02024C68 -_0801DF90: .4byte gUnknown_02024C07 -_0801DF94: .4byte gUnknown_02024D1E -_0801DF98: .4byte gUnknown_02024C10 - thumb_func_end atk0D_critmessage - - thumb_func_start atk0E_missmessage -atk0E_missmessage: @ 801DF9C - push {r4,lr} - ldr r0, _0801DFD4 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801E05C - ldr r4, _0801DFD8 @ =gUnknown_02024A60 - ldr r0, _0801DFDC @ =gUnknown_02024C08 - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _0801DFE0 @ =gUnknown_02024C68 - ldrb r2, [r1] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _0801E054 - movs r0, 0xFE - ands r0, r2 - cmp r0, 0x10 - beq _0801E00E - cmp r0, 0x10 - bgt _0801DFEA - cmp r0, 0x4 - beq _0801DFFE - cmp r0, 0x4 - bgt _0801DFE4 - cmp r0, 0x2 - beq _0801DFF8 - b _0801E00E - .align 2, 0 -_0801DFD4: .4byte gUnknown_02024A64 -_0801DFD8: .4byte gUnknown_02024A60 -_0801DFDC: .4byte gUnknown_02024C08 -_0801DFE0: .4byte gUnknown_02024C68 -_0801DFE4: - cmp r0, 0x8 - beq _0801E054 - b _0801E00E -_0801DFEA: - cmp r0, 0x40 - beq _0801E00E - cmp r0, 0x40 - bgt _0801E00E - cmp r0, 0x20 - beq _0801E054 - b _0801E00E -_0801DFF8: - movs r0, 0 - movs r1, 0xE - b _0801E002 -_0801DFFE: - movs r0, 0 - movs r1, 0xC -_0801E002: - bl dp01_build_cmdbuf_x2B_aa_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0801E054 -_0801E00E: - ldrb r1, [r1] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0801E01E - movs r0, 0 - movs r1, 0xE - b _0801E02A -_0801E01E: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801E03C - movs r0, 0 - movs r1, 0xC -_0801E02A: - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, _0801E038 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - b _0801E054 - .align 2, 0 -_0801E038: .4byte gUnknown_02024A60 -_0801E03C: - movs r0, 0x28 - ands r0, r1 - cmp r0, 0 - bne _0801E054 - movs r0, 0 - movs r1, 0xD - bl dp01_build_cmdbuf_x2B_aa_0 - ldr r0, _0801E064 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_0801E054: - ldr r1, _0801E068 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0801E05C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801E064: .4byte gUnknown_02024A60 -_0801E068: .4byte gUnknown_02024C10 - thumb_func_end atk0E_missmessage - - thumb_func_start atk0F_resultmessage -atk0F_resultmessage: @ 801E06C - push {r4-r7,lr} - movs r3, 0 - ldr r0, _0801E0A8 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _0801E07A - b _0801E20C -_0801E07A: - ldr r1, _0801E0AC @ =gUnknown_02024C68 - ldrb r2, [r1] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r2 - adds r6, r1, 0 - ldr r7, _0801E0B0 @ =gUnknown_02024D1E - cmp r0, 0 - beq _0801E0B8 - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0801E09A - ldrb r0, [r7, 0x6] - cmp r0, 0x2 - bls _0801E0B8 -_0801E09A: - ldr r1, _0801E0B4 @ =gUnknown_08401508 - ldrb r0, [r7, 0x6] - lsls r0, 1 - adds r0, r1 - ldrh r3, [r0] - strb r4, [r7, 0x7] - b _0801E1F6 - .align 2, 0 -_0801E0A8: .4byte gUnknown_02024A64 -_0801E0AC: .4byte gUnknown_02024C68 -_0801E0B0: .4byte gUnknown_02024D1E -_0801E0B4: .4byte gUnknown_08401508 -_0801E0B8: - movs r0, 0x1 - strb r0, [r7, 0x7] - ldrb r5, [r6] - movs r0, 0xFE - ands r0, r5 - cmp r0, 0x10 - beq _0801E0FC - cmp r0, 0x10 - bgt _0801E0DE - cmp r0, 0x4 - beq _0801E0F8 - cmp r0, 0x4 - bgt _0801E0D8 - cmp r0, 0x2 - beq _0801E0F4 - b _0801E144 -_0801E0D8: - cmp r0, 0x8 - beq _0801E150 - b _0801E144 -_0801E0DE: - cmp r0, 0x40 - beq _0801E100 - cmp r0, 0x40 - bgt _0801E0EE - cmp r0, 0x20 - bne _0801E0EC - b _0801E1F0 -_0801E0EC: - b _0801E144 -_0801E0EE: - cmp r0, 0x80 - beq _0801E104 - b _0801E144 -_0801E0F4: - movs r3, 0xDE - b _0801E1FA -_0801E0F8: - movs r3, 0xDD - b _0801E1FA -_0801E0FC: - movs r3, 0xDA - b _0801E1FA -_0801E100: - movs r3, 0x99 - b _0801E1FA -_0801E104: - ldr r4, _0801E12C @ =gUnknown_02024C04 - ldr r2, _0801E130 @ =gBattleMons - ldr r3, _0801E134 @ =gUnknown_02024C08 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - ldr r1, _0801E138 @ =gUnknown_02024C0B - ldrb r0, [r3] - strb r0, [r1] - movs r0, 0x3F - ands r0, r5 - strb r0, [r6] - bl b_movescr_stack_push_cursor - ldr r1, _0801E13C @ =gUnknown_02024C10 - ldr r0, _0801E140 @ =gUnknown_081D9AC6 - b _0801E20A - .align 2, 0 -_0801E12C: .4byte gUnknown_02024C04 -_0801E130: .4byte gBattleMons -_0801E134: .4byte gUnknown_02024C08 -_0801E138: .4byte gUnknown_02024C0B -_0801E13C: .4byte gUnknown_02024C10 -_0801E140: .4byte gUnknown_081D9AC6 -_0801E144: - adds r2, r6, 0 - ldrb r5, [r2] - movs r0, 0x8 - ands r0, r5 - cmp r0, 0 - beq _0801E154 -_0801E150: - movs r3, 0x1B - b _0801E1FA -_0801E154: - movs r0, 0x10 - ands r0, r5 - cmp r0, 0 - beq _0801E17C - movs r0, 0xEF - ands r0, r5 - movs r1, 0xFD - ands r0, r1 - movs r1, 0xFB - ands r0, r1 - strb r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801E174 @ =gUnknown_02024C10 - ldr r0, _0801E178 @ =gUnknown_081D94A9 - b _0801E20A - .align 2, 0 -_0801E174: .4byte gUnknown_02024C10 -_0801E178: .4byte gUnknown_081D94A9 -_0801E17C: - movs r0, 0x40 - ands r0, r5 - cmp r0, 0 - beq _0801E19C - movs r0, 0x3F - ands r0, r5 - strb r0, [r2] - bl b_movescr_stack_push_cursor - ldr r1, _0801E194 @ =gUnknown_02024C10 - ldr r0, _0801E198 @ =gUnknown_081D94A2 - b _0801E20A - .align 2, 0 -_0801E194: .4byte gUnknown_02024C10 -_0801E198: .4byte gUnknown_081D94A2 -_0801E19C: - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - beq _0801E1E4 - ldr r4, _0801E1CC @ =gUnknown_02024C04 - ldr r2, _0801E1D0 @ =gBattleMons - ldr r3, _0801E1D4 @ =gUnknown_02024C08 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r4] - ldr r1, _0801E1D8 @ =gUnknown_02024C0B - ldrb r0, [r3] - strb r0, [r1] - movs r0, 0x3F - ands r0, r5 - strb r0, [r6] - bl b_movescr_stack_push_cursor - ldr r1, _0801E1DC @ =gUnknown_02024C10 - ldr r0, _0801E1E0 @ =gUnknown_081D9AC6 - b _0801E20A - .align 2, 0 -_0801E1CC: .4byte gUnknown_02024C04 -_0801E1D0: .4byte gBattleMons -_0801E1D4: .4byte gUnknown_02024C08 -_0801E1D8: .4byte gUnknown_02024C0B -_0801E1DC: .4byte gUnknown_02024C10 -_0801E1E0: .4byte gUnknown_081D9AC6 -_0801E1E4: - movs r0, 0x20 - ands r0, r5 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0801E1F4 -_0801E1F0: - movs r3, 0xE5 - b _0801E1FA -_0801E1F4: - strb r0, [r7, 0x7] -_0801E1F6: - cmp r3, 0 - beq _0801E204 -_0801E1FA: - adds r0, r3, 0 - ldr r1, _0801E214 @ =gUnknown_02024C07 - ldrb r1, [r1] - bl b_std_message -_0801E204: - ldr r1, _0801E218 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 -_0801E20A: - str r0, [r1] -_0801E20C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801E214: .4byte gUnknown_02024C07 -_0801E218: .4byte gUnknown_02024C10 - thumb_func_end atk0F_resultmessage - - thumb_func_start atk10_printstring -atk10_printstring: @ 801E21C - push {r4,lr} - ldr r0, _0801E24C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801E246 - ldr r4, _0801E250 @ =gUnknown_02024C10 - ldr r1, [r4] - ldrb r0, [r1, 0x1] - ldrb r1, [r1, 0x2] - lsls r1, 8 - orrs r0, r1 - ldr r1, _0801E254 @ =gUnknown_02024C07 - ldrb r1, [r1] - bl b_std_message - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r1, _0801E258 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x7] -_0801E246: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801E24C: .4byte gUnknown_02024A64 -_0801E250: .4byte gUnknown_02024C10 -_0801E254: .4byte gUnknown_02024C07 -_0801E258: .4byte gUnknown_02024D1E - thumb_func_end atk10_printstring - - thumb_func_start atk11_printstring2 -atk11_printstring2: @ 801E25C - push {r4,r5,lr} - ldr r5, _0801E290 @ =gUnknown_02024A60 - ldr r0, _0801E294 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r5] - ldr r4, _0801E298 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - ldr r1, _0801E29C @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x7] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801E290: .4byte gUnknown_02024A60 -_0801E294: .4byte gUnknown_02024C07 -_0801E298: .4byte gUnknown_02024C10 -_0801E29C: .4byte gUnknown_02024D1E - thumb_func_end atk11_printstring2 - - thumb_func_start atk12_waitmessage -atk12_waitmessage: @ 801E2A0 - push {r4-r6,lr} - ldr r0, _0801E2BC @ =gUnknown_02024A64 - ldr r4, [r0] - cmp r4, 0 - bne _0801E2EE - ldr r6, _0801E2C0 @ =gUnknown_02024D1E - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _0801E2C8 - ldr r1, _0801E2C4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] - b _0801E2EE - .align 2, 0 -_0801E2BC: .4byte gUnknown_02024A64 -_0801E2C0: .4byte gUnknown_02024D1E -_0801E2C4: .4byte gUnknown_02024C10 -_0801E2C8: - ldr r5, _0801E2F4 @ =gUnknown_02024C10 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r3, _0801E2F8 @ =gUnknown_02024D18 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _0801E2EE - movs r1, 0 - strh r4, [r3] - adds r0, r2, 0x3 - str r0, [r5] - strb r1, [r6, 0x7] -_0801E2EE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801E2F4: .4byte gUnknown_02024C10 -_0801E2F8: .4byte gUnknown_02024D18 - thumb_func_end atk12_waitmessage - - thumb_func_start atk13_printfromtable -atk13_printfromtable: @ 801E2FC - push {r4,r5,lr} - ldr r0, _0801E340 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801E33A - ldr r4, _0801E344 @ =gUnknown_02024C10 - 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 - ldr r5, _0801E348 @ =gUnknown_02024D1E - ldrb r0, [r5, 0x5] - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - ldr r1, _0801E34C @ =gUnknown_02024C07 - ldrb r1, [r1] - bl b_std_message - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - movs r0, 0x1 - strb r0, [r5, 0x7] -_0801E33A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801E340: .4byte gUnknown_02024A64 -_0801E344: .4byte gUnknown_02024C10 -_0801E348: .4byte gUnknown_02024D1E -_0801E34C: .4byte gUnknown_02024C07 - thumb_func_end atk13_printfromtable - - thumb_func_start atk14_printfromtable2 -atk14_printfromtable2: @ 801E350 - push {r4-r6,lr} - ldr r0, _0801E3A0 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801E39A - ldr r5, _0801E3A4 @ =gUnknown_02024C10 - ldr r2, [r5] - 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 r6, _0801E3A8 @ =gUnknown_02024D1E - ldrb r0, [r6, 0x5] - lsls r0, 1 - adds r1, r0 - ldr r4, _0801E3AC @ =gUnknown_02024A60 - ldr r0, _0801E3B0 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r4] - ldrh r1, [r1] - movs r0, 0 - bl dp01_build_cmdbuf_x11_TODO - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x5 - str r0, [r5] - movs r0, 0x1 - strb r0, [r6, 0x7] -_0801E39A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801E3A0: .4byte gUnknown_02024A64 -_0801E3A4: .4byte gUnknown_02024C10 -_0801E3A8: .4byte gUnknown_02024D1E -_0801E3AC: .4byte gUnknown_02024A60 -_0801E3B0: .4byte gUnknown_02024C07 - thumb_func_end atk14_printfromtable2 - - thumb_func_start sub_801E3B4 -sub_801E3B4: @ 801E3B4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r0, _0801E3E4 @ =gUnknown_02024A68 - ldrb r3, [r0] - cmp r1, r3 - bge _0801E3DA - ldr r4, _0801E3E8 @ =gUnknown_02024A7A - ldrb r0, [r4] - cmp r0, r2 - beq _0801E3DA -_0801E3CC: - adds r1, 0x1 - cmp r1, r3 - bge _0801E3DA - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, r2 - bne _0801E3CC -_0801E3DA: - lsls r0, r1, 24 - lsrs r0, 24 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0801E3E4: .4byte gUnknown_02024A68 -_0801E3E8: .4byte gUnknown_02024A7A - thumb_func_end sub_801E3B4 - - thumb_func_start sub_801E3EC -sub_801E3EC: @ 801E3EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r0, 0 - mov r10, r0 - movs r6, 0 - movs r1, 0x1 - str r1, [sp, 0x4] - ldr r1, _0801E430 @ =gUnknown_02024D1E - ldrb r3, [r1, 0x3] - movs r0, 0x40 - ands r0, r3 - adds r7, r1, 0 - cmp r0, 0 - beq _0801E444 - ldr r2, _0801E434 @ =gUnknown_02024C0A - ldr r0, _0801E438 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0xBF - ands r0, r3 - strb r0, [r7, 0x3] - movs r6, 0x40 - ldr r0, _0801E43C @ =0x02000000 - ldr r1, _0801E440 @ =gUnknown_02024C08 - b _0801E450 - .align 2, 0 -_0801E430: .4byte gUnknown_02024D1E -_0801E434: .4byte gUnknown_02024C0A -_0801E438: .4byte gUnknown_02024C07 -_0801E43C: .4byte 0x02000000 -_0801E440: .4byte gUnknown_02024C08 -_0801E444: - ldr r2, _0801E538 @ =gUnknown_02024C0A - ldr r0, _0801E53C @ =gUnknown_02024C08 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _0801E540 @ =0x02000000 - ldr r1, _0801E544 @ =gUnknown_02024C07 -_0801E450: - ldrb r1, [r1] - ldr r3, _0801E548 @ =0x00016003 - adds r0, r3 - strb r1, [r0] - mov r8, r2 - ldr r2, _0801E54C @ =gBattleMons - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x13 - bne _0801E48A - ldr r0, _0801E550 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - bne _0801E48A - cmp r4, 0 - bne _0801E48A - ldrb r0, [r7, 0x3] - cmp r0, 0x9 - bhi _0801E48A - bl _0801F5DC -_0801E48A: - mov r1, r8 - ldrb r0, [r1] - bl battle_get_per_side_status - ldr r2, _0801E554 @ =gUnknown_02024C7A - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r1, [r1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0801E4C4 - ldr r0, _0801E550 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - bne _0801E4C4 - cmp r4, 0 - bne _0801E4C4 - ldr r0, _0801E558 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - cmp r0, 0x7 - bhi _0801E4C4 - bl _0801F5DC -_0801E4C4: - ldr r3, _0801E54C @ =gBattleMons - ldr r2, _0801E538 @ =gUnknown_02024C0A - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - mov r8, r2 - mov r9, r3 - cmp r0, 0 - bne _0801E4EA - ldr r0, _0801E558 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - cmp r0, 0xB - beq _0801E4EA - cmp r0, 0x1F - beq _0801E4EA - bl _0801F5DC -_0801E4EA: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - mov r1, r9 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _0801E50C - cmp r6, 0x40 - beq _0801E50C - bl _0801F5DC -_0801E50C: - ldr r0, _0801E558 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x3] - adds r7, r0, 0 - cmp r1, 0x6 - bls _0801E518 - b _0801EB4A -_0801E518: - ldr r1, _0801E55C @ =gUnknown_081FAB5C - ldrb r0, [r7, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x10 - bne _0801E528 - b _0801E714 -_0801E528: - cmp r0, 0x10 - bhi _0801E560 - cmp r0, 0x7 - beq _0801E57A - cmp r0, 0x8 - bne _0801E536 - b _0801E630 -_0801E536: - b _0801EA14 - .align 2, 0 -_0801E538: .4byte gUnknown_02024C0A -_0801E53C: .4byte gUnknown_02024C08 -_0801E540: .4byte 0x02000000 -_0801E544: .4byte gUnknown_02024C07 -_0801E548: .4byte 0x00016003 -_0801E54C: .4byte gBattleMons -_0801E550: .4byte gUnknown_02024C6C -_0801E554: .4byte gUnknown_02024C7A -_0801E558: .4byte gUnknown_02024D1E -_0801E55C: .4byte gUnknown_081FAB5C -_0801E560: - cmp r0, 0x40 - bne _0801E566 - b _0801E888 -_0801E566: - cmp r0, 0x40 - bhi _0801E572 - cmp r0, 0x20 - bne _0801E570 - b _0801E7EA -_0801E570: - b _0801EA14 -_0801E572: - cmp r0, 0x80 - bne _0801E578 - b _0801E8E4 -_0801E578: - b _0801EA14 -_0801E57A: - mov r3, r8 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - add r0, r9 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - beq _0801E5DC - ldr r0, _0801E5D4 @ =gUnknown_02024A60 - movs r1, 0 - strb r1, [r0] - ldr r1, _0801E5D8 @ =gUnknown_02024A68 - ldrb r3, [r1] - adds r7, r0, 0 - mov r12, r1 - cmp r3, 0 - beq _0801E5E8 - mov r4, r9 - ldr r0, [r4, 0x50] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - bne _0801E5E8 - adds r1, r7, 0 - mov r6, r9 - adds r6, 0x50 - movs r5, 0x58 - movs r4, 0x70 -_0801E5B4: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r3 - bcs _0801E5E8 - ldrb r0, [r7] - muls r0, r5 - adds r0, r6 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _0801E5B4 - b _0801E5E8 - .align 2, 0 -_0801E5D4: .4byte gUnknown_02024A60 -_0801E5D8: .4byte gUnknown_02024A68 -_0801E5DC: - ldr r0, _0801E628 @ =gUnknown_02024A60 - ldr r2, _0801E62C @ =gUnknown_02024A68 - ldrb r1, [r2] - strb r1, [r0] - adds r7, r0, 0 - mov r12, r2 -_0801E5E8: - mov r0, r8 - ldrb r2, [r0] - movs r0, 0x58 - adds r1, r2, 0 - muls r1, r0 - mov r0, r9 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0801E600 - b _0801EA14 -_0801E600: - ldrb r0, [r7] - mov r3, r12 - ldrb r3, [r3] - cmp r0, r3 - beq _0801E60C - b _0801EA14 -_0801E60C: - mov r4, r9 - adds r0, r1, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x48 - bne _0801E61A - b _0801EA14 -_0801E61A: - cmp r0, 0xF - bne _0801E620 - b _0801EA14 -_0801E620: - adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - b _0801EA04 - .align 2, 0 -_0801E628: .4byte gUnknown_02024A60 -_0801E62C: .4byte gUnknown_02024A68 -_0801E630: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r9 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x11 - bne _0801E688 - cmp r4, 0x1 - beq _0801E64A - cmp r5, 0x80 - bne _0801E688 -_0801E64A: - ldr r0, _0801E678 @ =byte_2024C06 - strb r1, [r0] - mov r3, r8 - ldrb r0, [r3] - movs r1, 0x11 - bl sub_81074C4 - ldr r4, _0801E67C @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801E680 @ =BattleScript_1D98BD -_0801E664: - str r0, [r4] - ldr r2, _0801E684 @ =gUnknown_02024C6C - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _0801E676 - b _0801E928 -_0801E676: - b _0801E94C - .align 2, 0 -_0801E678: .4byte byte_2024C06 -_0801E67C: .4byte gUnknown_02024C10 -_0801E680: .4byte BattleScript_1D98BD -_0801E684: .4byte gUnknown_02024C6C -_0801E688: - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x58 - muls r0, r1 - add r0, r9 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0x3 - beq _0801E6AC - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x3 - beq _0801E6AC - cmp r1, 0x8 - beq _0801E6AC - cmp r0, 0x8 - bne _0801E6C6 -_0801E6AC: - ldr r0, _0801E710 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _0801E6C6 - cmp r4, 0x1 - bne _0801E6C0 - b _0801E98C -_0801E6C0: - cmp r5, 0x80 - bne _0801E6C6 - b _0801E98C -_0801E6C6: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - muls r1, r0 - mov r4, r9 - adds r3, r1, r4 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r4, [r0] - cmp r4, 0x3 - bne _0801E6DE - b _0801EA14 -_0801E6DE: - adds r0, 0x1 - ldrb r0, [r0] - cmp r0, 0x3 - bne _0801E6E8 - b _0801EA14 -_0801E6E8: - cmp r4, 0x8 - bne _0801E6EE - b _0801EA14 -_0801E6EE: - cmp r0, 0x8 - bne _0801E6F4 - b _0801EA14 -_0801E6F4: - mov r0, r9 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0801E702 - b _0801EA14 -_0801E702: - adds r0, r3, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x11 - bne _0801E70E - b _0801EA14 -_0801E70E: - b _0801EA04 - .align 2, 0 -_0801E710: .4byte gUnknown_02024C6C -_0801E714: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - add r0, r9 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x29 - bne _0801E758 - cmp r4, 0x1 - beq _0801E72E - cmp r5, 0x80 - bne _0801E758 -_0801E72E: - ldr r0, _0801E74C @ =byte_2024C06 - strb r1, [r0] - mov r3, r8 - ldrb r0, [r3] - movs r1, 0x29 - bl sub_81074C4 - ldr r4, _0801E750 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801E754 @ =BattleScript_1D98A5 - b _0801E664 - .align 2, 0 -_0801E74C: .4byte byte_2024C06 -_0801E750: .4byte gUnknown_02024C10 -_0801E754: .4byte BattleScript_1D98A5 -_0801E758: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - mov r2, r9 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xA - beq _0801E778 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xA - bne _0801E7A8 -_0801E778: - ldr r0, _0801E79C @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _0801E7A8 - cmp r4, 0x1 - beq _0801E78E - cmp r5, 0x80 - bne _0801E7A8 -_0801E78E: - ldr r4, _0801E7A0 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801E7A4 @ =BattleScript_1D98A5 - b _0801E998 - .align 2, 0 -_0801E79C: .4byte gUnknown_02024C6C -_0801E7A0: .4byte gUnknown_02024C10 -_0801E7A4: .4byte BattleScript_1D98A5 -_0801E7A8: - mov r3, r8 - ldrb r0, [r3] - movs r1, 0x58 - adds r2, r0, 0 - muls r2, r1 - mov r4, r9 - adds r1, r2, r4 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xA - bne _0801E7C2 - b _0801EA14 -_0801E7C2: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xA - bne _0801E7CE - b _0801EA14 -_0801E7CE: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x29 - bne _0801E7DA - b _0801EA14 -_0801E7DA: - mov r0, r9 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0801E7E8 - b _0801EA14 -_0801E7E8: - b _0801EA04 -_0801E7EA: - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0801E826 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0801E826 - ldr r0, _0801E87C @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _0801E826 - movs r1, 0 - str r1, [sp, 0x4] -_0801E826: - ldr r4, _0801E880 @ =gBattleMons - ldr r0, _0801E884 @ =gUnknown_02024C0A - ldrb r3, [r0] - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r1, r2, r4 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xF - bne _0801E840 - b _0801EA14 -_0801E840: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xF - bne _0801E84C - b _0801EA14 -_0801E84C: - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0801E85A - b _0801EA14 -_0801E85A: - ldr r2, [sp, 0x4] - cmp r2, 0 - bne _0801E862 - b _0801EA14 -_0801E862: - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x28 - bne _0801E86E - b _0801EA14 -_0801E86E: - adds r0, r3, 0 - bl b_cancel_multi_turn_move_maybe - movs r3, 0x1 - mov r10, r3 - b _0801EA14 - .align 2, 0 -_0801E87C: .4byte word_2024DB8 -_0801E880: .4byte gBattleMons -_0801E884: .4byte gUnknown_02024C0A -_0801E888: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - mov r2, r9 - adds r0, r1, r2 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x7 - bne _0801E8D0 - cmp r4, 0x1 - beq _0801E8A6 - cmp r5, 0x80 - beq _0801E8A6 - b _0801EA14 -_0801E8A6: - ldr r0, _0801E8C4 @ =byte_2024C06 - strb r2, [r0] - mov r3, r8 - ldrb r0, [r3] - movs r1, 0x7 - bl sub_81074C4 - ldr r4, _0801E8C8 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801E8CC @ =BattleScript_1D98B1 - b _0801E664 - .align 2, 0 -_0801E8C4: .4byte byte_2024C06 -_0801E8C8: .4byte gUnknown_02024C10 -_0801E8CC: .4byte BattleScript_1D98B1 -_0801E8D0: - mov r0, r9 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0801E8DE - b _0801EA14 -_0801E8DE: - movs r4, 0x1 - mov r10, r4 - b _0801EA14 -_0801E8E4: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r9 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x11 - bne _0801E952 - cmp r4, 0x1 - beq _0801E8FE - cmp r5, 0x80 - bne _0801E952 -_0801E8FE: - ldr r0, _0801E938 @ =byte_2024C06 - strb r1, [r0] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x11 - bl sub_81074C4 - ldr r4, _0801E93C @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801E940 @ =BattleScript_1D98BD - str r0, [r4] - ldr r2, _0801E944 @ =gUnknown_02024C6C - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _0801E94C -_0801E928: - movs r0, 0x1 - strb r0, [r7, 0x5] - ldr r0, _0801E948 @ =0xffffdfff - ands r1, r0 - str r1, [r2] - bl _0801F5FA - .align 2, 0 -_0801E938: .4byte byte_2024C06 -_0801E93C: .4byte gUnknown_02024C10 -_0801E940: .4byte BattleScript_1D98BD -_0801E944: .4byte gUnknown_02024C6C -_0801E948: .4byte 0xffffdfff -_0801E94C: - strb r0, [r7, 0x5] - bl _0801F5FA -_0801E952: - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - add r0, r9 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0x3 - beq _0801E976 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x3 - beq _0801E976 - cmp r1, 0x8 - beq _0801E976 - cmp r0, 0x8 - bne _0801E9B4 -_0801E976: - ldr r0, _0801E9A4 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _0801E9B4 - cmp r4, 0x1 - beq _0801E98C - cmp r5, 0x80 - bne _0801E9B4 -_0801E98C: - ldr r4, _0801E9A8 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801E9AC @ =BattleScript_1D98BD -_0801E998: - str r0, [r4] - ldr r1, _0801E9B0 @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - bl _0801F5FA - .align 2, 0 -_0801E9A4: .4byte gUnknown_02024C6C -_0801E9A8: .4byte gUnknown_02024C10 -_0801E9AC: .4byte BattleScript_1D98BD -_0801E9B0: .4byte gUnknown_02024D1E -_0801E9B4: - mov r3, r8 - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - mov r2, r9 - adds r2, 0x4C - adds r5, r0, r2 - ldr r4, [r5] - cmp r4, 0 - bne _0801EA14 - mov r3, r9 - adds r1, r0, r3 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r3, [r0] - cmp r3, 0x3 - beq _0801EA0A - adds r0, 0x1 - ldrb r0, [r0] - cmp r0, 0x3 - beq _0801EA0A - cmp r3, 0x8 - beq _0801EA0A - cmp r0, 0x8 - beq _0801EA0A - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x11 - beq _0801EA14 - mov r4, r8 - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r6 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x9 - negs r2, r2 - ands r0, r2 - str r0, [r1] -_0801EA04: - movs r0, 0x1 - mov r10, r0 - b _0801EA14 -_0801EA0A: - ldr r0, _0801EA58 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_0801EA14: - mov r1, r10 - cmp r1, 0x1 - beq _0801EA1C - b _0801EB3C -_0801EA1C: - ldr r0, _0801EA5C @ =gUnknown_02024C10 - ldr r0, [r0] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, _0801EA60 @ =gUnknown_081FAB5C - ldr r0, _0801EA64 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r3, [r0] - cmp r3, 0x7 - bne _0801EA70 - bl Random - ldr r2, _0801EA68 @ =gBattleMons - ldr r1, _0801EA6C @ =gUnknown_02024C0A - ldrb r3, [r1] - movs r1, 0x58 - muls r3, r1 - adds r2, 0x4C - adds r3, r2 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - b _0801EA84 - .align 2, 0 -_0801EA58: .4byte gUnknown_02024C68 -_0801EA5C: .4byte gUnknown_02024C10 -_0801EA60: .4byte gUnknown_081FAB5C -_0801EA64: .4byte gUnknown_02024D1E -_0801EA68: .4byte gBattleMons -_0801EA6C: .4byte gUnknown_02024C0A -_0801EA70: - ldr r2, _0801EAD4 @ =gBattleMons - ldr r0, _0801EAD8 @ =gUnknown_02024C0A - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r2, 0x4C - adds r1, r2 - ldr r0, [r1] - orrs r0, r3 - str r0, [r1] -_0801EA84: - ldr r2, _0801EADC @ =gUnknown_02024C10 - ldr r1, _0801EAE0 @ =gUnknown_081FAC4C - ldr r5, _0801EAE4 @ =gUnknown_02024D1E - ldrb r0, [r5, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - ldr r4, _0801EAE8 @ =gUnknown_02024A60 - ldr r1, _0801EAD8 @ =gUnknown_02024C0A - ldrb r0, [r1] - strb r0, [r4] - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - ldr r1, _0801EAEC @ =gUnknown_02024ACC - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r2, _0801EAF0 @ =gUnknown_02024C6C - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 6 - ands r0, r1 - cmp r0, 0 - beq _0801EAF8 - movs r0, 0x1 - strb r0, [r5, 0x5] - ldr r0, _0801EAF4 @ =0xffffdfff - ands r1, r0 - str r1, [r2] - b _0801EAFA - .align 2, 0 -_0801EAD4: .4byte gBattleMons -_0801EAD8: .4byte gUnknown_02024C0A -_0801EADC: .4byte gUnknown_02024C10 -_0801EAE0: .4byte gUnknown_081FAC4C -_0801EAE4: .4byte gUnknown_02024D1E -_0801EAE8: .4byte gUnknown_02024A60 -_0801EAEC: .4byte gUnknown_02024ACC -_0801EAF0: .4byte gUnknown_02024C6C -_0801EAF4: .4byte 0xffffdfff -_0801EAF8: - strb r0, [r5, 0x5] -_0801EAFA: - ldr r0, _0801EB2C @ =gUnknown_02024D1E - ldrb r2, [r0, 0x3] - adds r7, r0, 0 - cmp r2, 0x2 - beq _0801EB14 - cmp r2, 0x6 - beq _0801EB14 - cmp r2, 0x5 - beq _0801EB14 - cmp r2, 0x3 - beq _0801EB14 - bl _0801F5FA -_0801EB14: - ldr r0, _0801EB30 @ =0x02000000 - ldrb r1, [r7, 0x3] - ldr r2, _0801EB34 @ =0x000160ca - adds r0, r2 - strb r1, [r0] - ldr r2, _0801EB38 @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 7 - bl _0801F4F2 - .align 2, 0 -_0801EB2C: .4byte gUnknown_02024D1E -_0801EB30: .4byte 0x02000000 -_0801EB34: .4byte 0x000160ca -_0801EB38: .4byte gUnknown_02024C6C -_0801EB3C: - mov r3, r10 - cmp r3, 0 - beq _0801EB46 - bl _0801F5FA -_0801EB46: - bl _0801F5DC -_0801EB4A: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - mov r0, r9 - adds r0, 0x50 - adds r1, r0 - ldr r2, _0801EB84 @ =gUnknown_081FAB5C - ldrb r3, [r7, 0x3] - lsls r0, r3, 2 - adds r0, r2 - ldr r1, [r1] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801EB6E - bl _0801F5DC -_0801EB6E: - subs r0, r3, 0x7 - cmp r0, 0x34 - bls _0801EB78 - bl _0801F5FA -_0801EB78: - lsls r0, 2 - ldr r1, _0801EB88 @ =_0801EB8C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801EB84: .4byte gUnknown_081FAB5C -_0801EB88: .4byte _0801EB8C - .align 2, 0 -_0801EB8C: - .4byte _0801EC60 - .4byte _0801ECD4 - .4byte _0801EE4C - .4byte _0801ED60 - .4byte _0801EDDC - .4byte _0801EE84 - .4byte _0801EECC - .4byte _0801EFA8 - .4byte _0801EFEC - .4byte _0801EFEC - .4byte _0801EFEC - .4byte _0801EFEC - .4byte _0801EFEC - .4byte _0801EFEC - .4byte _0801EFEC - .4byte _0801F040 - .4byte _0801F040 - .4byte _0801F040 - .4byte _0801F040 - .4byte _0801F040 - .4byte _0801F040 - .4byte _0801F040 - .4byte _0801F13C - .4byte _0801F184 - .4byte _0801F1A4 - .4byte _0801F364 - .4byte _0801F3A0 - .4byte _0801F3BC - .4byte _0801F3D4 - .4byte _0801F3EC - .4byte _0801F44C - .4byte _0801F464 - .4byte _0801F094 - .4byte _0801F094 - .4byte _0801F094 - .4byte _0801F094 - .4byte _0801F094 - .4byte _0801F094 - .4byte _0801F094 - .4byte _0801F0E8 - .4byte _0801F0E8 - .4byte _0801F0E8 - .4byte _0801F0E8 - .4byte _0801F0E8 - .4byte _0801F0E8 - .4byte _0801F0E8 - .4byte _0801F4A8 - .4byte _0801F500 - .4byte _0801F5FA - .4byte _0801F5FA - .4byte _0801F5FA - .4byte _0801F5FA - .4byte _0801F5EC -_0801EC60: - mov r1, r8 - ldrb r0, [r1] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - mov r2, r9 - adds r0, r1, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0801EC7A - bl _0801F5DC -_0801EC7A: - mov r4, r9 - adds r4, 0x50 - adds r0, r1, r4 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0801EC8E - bl _0801F5DC -_0801EC8E: - bl Random - mov r3, r8 - ldrb r1, [r3] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - lsls r0, 16 - movs r1, 0xC0 - lsls r1, 10 - ands r1, r0 - lsrs r1, 16 - adds r1, 0x2 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, _0801ECC8 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, _0801ECCC @ =gUnknown_081FAC4C - ldr r0, _0801ECD0 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _0801F5F8 - .align 2, 0 -_0801ECC8: .4byte gUnknown_02024C10 -_0801ECCC: .4byte gUnknown_081FAC4C -_0801ECD0: .4byte gUnknown_02024D1E -_0801ECD4: - mov r0, r8 - ldrb r2, [r0] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - add r0, r9 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x27 - bne _0801ED18 - cmp r4, 0x1 - beq _0801ECF4 - cmp r5, 0x80 - beq _0801ECF4 - bl _0801F5DC -_0801ECF4: - ldr r0, _0801ED0C @ =byte_2024C06 - strb r1, [r0] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x27 - bl sub_81074C4 - ldr r1, _0801ED10 @ =gUnknown_02024C10 - ldr r0, _0801ED14 @ =gUnknown_081D98D7 - str r0, [r1] - bl _0801F5FA - .align 2, 0 -_0801ED0C: .4byte byte_2024C06 -_0801ED10: .4byte gUnknown_02024C10 -_0801ED14: .4byte gUnknown_081D98D7 -_0801ED18: - adds r0, r2, 0 - bl sub_801E3B4 - ldr r1, _0801ED54 @ =gUnknown_02024A7E - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bhi _0801ED2E - bl _0801F5DC -_0801ED2E: - mov r2, r8 - ldrb r0, [r2] - adds r2, r0, 0 - muls r2, r6 - mov r0, r9 - adds r0, 0x50 - adds r2, r0 - ldr r1, _0801ED58 @ =gUnknown_081FAB5C - ldr r0, _0801ED5C @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] - bl _0801F5DC - .align 2, 0 -_0801ED54: .4byte gUnknown_02024A7E -_0801ED58: .4byte gUnknown_081FAB5C -_0801ED5C: .4byte gUnknown_02024D1E -_0801ED60: - mov r3, r8 - ldrb r0, [r3] - movs r5, 0x58 - muls r0, r5 - mov r4, r9 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, 0x70 - ands r0, r1 - cmp r0, 0 - beq _0801ED7C - bl _0801F5DC -_0801ED7C: - movs r0, 0x80 - lsls r0, 5 - orrs r1, r0 - str r1, [r2] - ldr r1, _0801EDC8 @ =gUnknown_02024C54 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, _0801EDCC @ =gUnknown_02024BE6 - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r2, r8 - ldrb r1, [r2] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x2 - lsls r1, 4 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r4, _0801EDD0 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, _0801EDD4 @ =gUnknown_081FAC4C - ldr r0, _0801EDD8 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _0801F5F8 - .align 2, 0 -_0801EDC8: .4byte gUnknown_02024C54 -_0801EDCC: .4byte gUnknown_02024BE6 -_0801EDD0: .4byte gUnknown_02024C10 -_0801EDD4: .4byte gUnknown_081FAC4C -_0801EDD8: .4byte gUnknown_02024D1E -_0801EDDC: - ldr r5, _0801EE30 @ =gUnknown_02024C07 - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0801EE14 - ldr r4, _0801EE34 @ =gUnknown_02024D1A - ldrh r3, [r4] - ldr r2, _0801EE38 @ =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - adds r0, r3, r0 - strh r0, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r3, r0 - bls _0801EE14 - ldr r3, _0801EE3C @ =0x0000ffff - adds r0, r3, 0 - strh r0, [r4] -_0801EE14: - ldr r4, _0801EE40 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, _0801EE44 @ =gUnknown_081FAC4C - ldr r0, _0801EE48 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _0801F5F8 - .align 2, 0 -_0801EE30: .4byte gUnknown_02024C07 -_0801EE34: .4byte gUnknown_02024D1A -_0801EE38: .4byte gBattleMons -_0801EE3C: .4byte 0x0000ffff -_0801EE40: .4byte gUnknown_02024C10 -_0801EE44: .4byte gUnknown_081FAC4C -_0801EE48: .4byte gUnknown_02024D1E -_0801EE4C: - mov r4, r8 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - mov r1, r9 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _0801EE62 - b _0801F5DC -_0801EE62: - bl Random - ldr r4, _0801EE80 @ =gUnknown_02024D1E - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x3 - strb r0, [r4, 0x3] - movs r0, 0 - movs r1, 0 - bl sub_801E3EC - b _0801F5FA - .align 2, 0 -_0801EE80: .4byte gUnknown_02024D1E -_0801EE84: - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r9 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - ldr r1, _0801EEC0 @ =gUnknown_02024C54 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldr r1, _0801EEC4 @ =gUnknown_02024BE6 - ldrh r1, [r1] - strh r1, [r0] - ldr r0, _0801EEC8 @ =gUnknown_02024D28 - ldrb r1, [r2] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1, 0x1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x1] - b _0801F5DC - .align 2, 0 -_0801EEC0: .4byte gUnknown_02024C54 -_0801EEC4: .4byte gUnknown_02024BE6 -_0801EEC8: .4byte gUnknown_02024D28 -_0801EECC: - mov r3, r8 - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - mov r4, r9 - adds r4, 0x50 - adds r0, r4 - ldr r5, [r0] - movs r0, 0xE0 - lsls r0, 8 - ands r5, r0 - cmp r5, 0 - beq _0801EEE8 - b _0801F5DC -_0801EEE8: - bl Random - mov r2, r8 - ldrb r1, [r2] - adds r2, r1, 0 - muls r2, r6 - adds r2, r4 - movs r1, 0x3 - ands r1, r0 - adds r1, 0x3 - lsls r1, 13 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r2, _0801EF80 @ =0x02000000 - mov r3, r8 - ldrb r0, [r3] - lsls r0, 1 - ldr r4, _0801EF84 @ =0x00016004 - adds r0, r4 - adds r0, r2 - ldr r6, _0801EF88 @ =gUnknown_02024BE6 - ldrh r1, [r6] - strb r1, [r0] - ldrb r0, [r3] - lsls r0, 1 - ldr r1, _0801EF8C @ =0x00016005 - adds r0, r1 - adds r0, r2 - ldrh r1, [r6] - lsrs r1, 8 - strb r1, [r0] - ldrb r0, [r3] - ldr r3, _0801EF90 @ =0x00016020 - adds r0, r3 - adds r0, r2 - ldr r1, _0801EF94 @ =gUnknown_02024C07 - ldrb r1, [r1] - strb r1, [r0] - ldr r4, _0801EF98 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, _0801EF9C @ =gUnknown_081FAC4C - ldr r2, _0801EFA0 @ =gUnknown_02024D1E - ldrb r0, [r2, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r4] - strb r5, [r2, 0x5] - ldr r1, _0801EFA4 @ =gUnknown_0840164C - ldrh r0, [r1] - ldrh r4, [r6] - cmp r0, r4 - bne _0801EF5C - b _0801F5FA -_0801EF5C: - adds r3, r1, 0 - adds r1, r6, 0 -_0801EF60: - ldrb r0, [r2, 0x5] - adds r0, 0x1 - strb r0, [r2, 0x5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bls _0801EF70 - b _0801F5FA -_0801EF70: - ldrb r0, [r2, 0x5] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - ldrh r4, [r1] - cmp r0, r4 - bne _0801EF60 - b _0801F5FA - .align 2, 0 -_0801EF80: .4byte 0x02000000 -_0801EF84: .4byte 0x00016004 -_0801EF88: .4byte gUnknown_02024BE6 -_0801EF8C: .4byte 0x00016005 -_0801EF90: .4byte 0x00016020 -_0801EF94: .4byte gUnknown_02024C07 -_0801EF98: .4byte gUnknown_02024C10 -_0801EF9C: .4byte gUnknown_081FAC4C -_0801EFA0: .4byte gUnknown_02024D1E -_0801EFA4: .4byte gUnknown_0840164C -_0801EFA8: - ldr r1, _0801EFD8 @ =gUnknown_02024BEC - ldr r0, _0801EFDC @ =gUnknown_02024BF0 - ldr r0, [r0] - cmp r0, 0 - bge _0801EFB4 - adds r0, 0x3 -_0801EFB4: - asrs r0, 2 - str r0, [r1] - cmp r0, 0 - bne _0801EFC0 - movs r0, 0x1 - str r0, [r1] -_0801EFC0: - ldr r4, _0801EFE0 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, _0801EFE4 @ =gUnknown_081FAC4C - ldr r0, _0801EFE8 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _0801F5F8 - .align 2, 0 -_0801EFD8: .4byte gUnknown_02024BEC -_0801EFDC: .4byte gUnknown_02024BF0 -_0801EFE0: .4byte gUnknown_02024C10 -_0801EFE4: .4byte gUnknown_081FAC4C -_0801EFE8: .4byte gUnknown_02024D1E -_0801EFEC: - ldrb r1, [r7, 0x3] - adds r1, 0xF2 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x10 - adds r2, r6, 0 - movs r3, 0 - bl sub_8025E20 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0801F008 - b _0801F5DC -_0801F008: - ldr r2, _0801F02C @ =0x02000000 - ldrb r1, [r7, 0x3] - movs r0, 0x3F - ands r0, r1 - ldr r4, _0801F030 @ =0x000160a4 - adds r1, r2, r4 - strb r0, [r1] - ldr r0, _0801F034 @ =0x000160a5 - adds r2, r0 - strb r3, [r2] - ldr r4, _0801F038 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F03C @ =gUnknown_081D71E5 - b _0801F5F8 - .align 2, 0 -_0801F02C: .4byte 0x02000000 -_0801F030: .4byte 0x000160a4 -_0801F034: .4byte 0x000160a5 -_0801F038: .4byte gUnknown_02024C10 -_0801F03C: .4byte gUnknown_081D71E5 -_0801F040: - movs r0, 0x70 - negs r0, r0 - ldrb r1, [r7, 0x3] - adds r1, 0xEB - lsls r1, 24 - lsrs r1, 24 - adds r2, r6, 0 - movs r3, 0 - bl sub_8025E20 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0801F05E - b _0801F5DC -_0801F05E: - ldr r2, _0801F080 @ =0x02000000 - ldrb r1, [r7, 0x3] - movs r0, 0x3F - ands r0, r1 - ldr r4, _0801F084 @ =0x000160a4 - adds r1, r2, r4 - strb r0, [r1] - ldr r0, _0801F088 @ =0x000160a5 - adds r2, r0 - strb r3, [r2] - ldr r4, _0801F08C @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F090 @ =gUnknown_081D7276 - b _0801F5F8 - .align 2, 0 -_0801F080: .4byte 0x02000000 -_0801F084: .4byte 0x000160a4 -_0801F088: .4byte 0x000160a5 -_0801F08C: .4byte gUnknown_02024C10 -_0801F090: .4byte gUnknown_081D7276 -_0801F094: - ldrb r1, [r7, 0x3] - adds r1, 0xDA - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x20 - adds r2, r6, 0 - movs r3, 0 - bl sub_8025E20 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0801F0B0 - b _0801F5DC -_0801F0B0: - ldr r2, _0801F0D4 @ =0x02000000 - ldrb r1, [r7, 0x3] - movs r0, 0x3F - ands r0, r1 - ldr r4, _0801F0D8 @ =0x000160a4 - adds r1, r2, r4 - strb r0, [r1] - ldr r0, _0801F0DC @ =0x000160a5 - adds r2, r0 - strb r3, [r2] - ldr r4, _0801F0E0 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F0E4 @ =gUnknown_081D71E5 - b _0801F5F8 - .align 2, 0 -_0801F0D4: .4byte 0x02000000 -_0801F0D8: .4byte 0x000160a4 -_0801F0DC: .4byte 0x000160a5 -_0801F0E0: .4byte gUnknown_02024C10 -_0801F0E4: .4byte gUnknown_081D71E5 -_0801F0E8: - movs r0, 0x60 - negs r0, r0 - ldrb r1, [r7, 0x3] - adds r1, 0xD3 - lsls r1, 24 - lsrs r1, 24 - adds r2, r6, 0 - movs r3, 0 - bl sub_8025E20 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - beq _0801F106 - b _0801F5DC -_0801F106: - ldr r2, _0801F128 @ =0x02000000 - ldrb r1, [r7, 0x3] - movs r0, 0x3F - ands r0, r1 - ldr r4, _0801F12C @ =0x000160a4 - adds r1, r2, r4 - strb r0, [r1] - ldr r0, _0801F130 @ =0x000160a5 - adds r2, r0 - strb r3, [r2] - ldr r4, _0801F134 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F138 @ =gUnknown_081D7276 - b _0801F5F8 - .align 2, 0 -_0801F128: .4byte 0x02000000 -_0801F12C: .4byte 0x000160a4 -_0801F130: .4byte 0x000160a5 -_0801F134: .4byte gUnknown_02024C10 -_0801F138: .4byte gUnknown_081D7276 -_0801F13C: - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r9 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r2] - ldr r2, _0801F178 @ =gUnknown_02024CA8 - mov r3, r8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2 - strb r1, [r0, 0x19] - ldr r1, _0801F17C @ =gUnknown_02024C54 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, _0801F180 @ =gUnknown_02024BE6 - ldrh r1, [r1] - strh r1, [r0] - b _0801F5DC - .align 2, 0 -_0801F178: .4byte gUnknown_02024CA8 -_0801F17C: .4byte gUnknown_02024C54 -_0801F180: .4byte gUnknown_02024BE6 -_0801F184: - ldr r0, _0801F1A0 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r9 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 16 -_0801F19A: - orrs r0, r1 - str r0, [r2] - b _0801F5DC - .align 2, 0 -_0801F1A0: .4byte gUnknown_02024C07 -_0801F1A4: - ldr r4, _0801F254 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0801F1D8 - ldr r0, _0801F258 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0801F25C @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0801F214 - ldr r0, _0801F260 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0801F1D8 - b _0801F5DC -_0801F1D8: - ldr r0, _0801F258 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0801F25C @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0801F214 - ldr r0, _0801F260 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0801F214 - ldr r0, _0801F264 @ =gUnknown_02024DBC - adds r0, 0x29 - adds r0, r6, r0 - ldrb r1, [r0] - ldr r3, _0801F268 @ =gBitTable - ldr r2, _0801F26C @ =gUnknown_02024A6A - ldr r0, _0801F254 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801F214 - b _0801F5DC -_0801F214: - ldr r2, _0801F270 @ =gBattleMons - ldr r1, _0801F274 @ =gUnknown_02024C08 - ldrb r0, [r1] - movs r3, 0x58 - muls r0, r3 - adds r4, r0, r2 - ldrh r0, [r4, 0x2E] - adds r7, r1, 0 - mov r9, r2 - cmp r0, 0 - beq _0801F284 - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3C - bne _0801F284 - ldr r1, _0801F278 @ =gUnknown_02024C10 - ldr r0, _0801F27C @ =gUnknown_081D9913 - str r0, [r1] - ldr r1, _0801F280 @ =byte_2024C06 - ldrb r0, [r7] - muls r0, r3 - add r0, r9 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl sub_81074C4 - b _0801F5FA - .align 2, 0 -_0801F254: .4byte gUnknown_02024C07 -_0801F258: .4byte gUnknown_020239F8 -_0801F25C: .4byte 0x00000902 -_0801F260: .4byte gTrainerBattleOpponent -_0801F264: .4byte gUnknown_02024DBC -_0801F268: .4byte gBitTable -_0801F26C: .4byte gUnknown_02024A6A -_0801F270: .4byte gBattleMons -_0801F274: .4byte gUnknown_02024C08 -_0801F278: .4byte gUnknown_02024C10 -_0801F27C: .4byte gUnknown_081D9913 -_0801F280: .4byte byte_2024C06 -_0801F284: - ldr r4, _0801F340 @ =gUnknown_02024C07 - mov r10, r4 - ldrb r1, [r4] - movs r0, 0x58 - mov r8, r0 - mov r0, r8 - muls r0, r1 - add r0, r9 - ldrh r3, [r0, 0x2E] - cmp r3, 0 - beq _0801F29C - b _0801F5DC -_0801F29C: - ldrb r0, [r7] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - ldrh r2, [r0, 0x2E] - adds r0, r2, 0 - cmp r0, 0xAF - bne _0801F2B0 - b _0801F5DC -_0801F2B0: - cmp r0, 0 - bne _0801F2B6 - b _0801F5DC -_0801F2B6: - lsls r0, r1, 1 - ldr r5, _0801F344 @ =0x020160f0 - adds r0, r5 - ldr r1, _0801F348 @ =gUnknown_02024C04 - strh r2, [r0] - strh r2, [r1] - ldrb r0, [r7] - mov r4, r8 - muls r4, r0 - adds r0, r4, 0 - add r0, r9 - movs r6, 0 - strh r3, [r0, 0x2E] - ldr r4, _0801F34C @ =gUnknown_02024A60 - mov r2, r10 - ldrb r0, [r2] - strb r0, [r4] - str r1, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - mov r3, r10 - ldrb r0, [r3] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - strb r0, [r4] - ldrb r0, [r7] - mov r4, r8 - muls r4, r0 - adds r0, r4, 0 - mov r1, r9 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, _0801F350 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F354 @ =gUnknown_081D96F6 - str r0, [r4] - ldr r0, _0801F358 @ =0xfffe9f10 - adds r5, r0 - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _0801F35C @ =0x000160e8 - adds r0, r1 - adds r0, r5 - strb r6, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r2, _0801F360 @ =0x000160e9 - adds r0, r2 - adds r0, r5 - strb r6, [r0] - b _0801F5FA - .align 2, 0 -_0801F340: .4byte gUnknown_02024C07 -_0801F344: .4byte 0x020160f0 -_0801F348: .4byte gUnknown_02024C04 -_0801F34C: .4byte gUnknown_02024A60 -_0801F350: .4byte gUnknown_02024C10 -_0801F354: .4byte gUnknown_081D96F6 -_0801F358: .4byte 0xfffe9f10 -_0801F35C: .4byte 0x000160e8 -_0801F360: .4byte 0x000160e9 -_0801F364: - ldr r3, _0801F394 @ =gUnknown_02024C08 - ldrb r1, [r3] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r9 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 19 - orrs r0, r1 - str r0, [r2] - ldr r2, _0801F398 @ =gUnknown_02024CA8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0801F39C @ =gUnknown_02024C07 - ldrb r1, [r1] - strb r1, [r0, 0x14] - b _0801F5DC - .align 2, 0 -_0801F394: .4byte gUnknown_02024C08 -_0801F398: .4byte gUnknown_02024CA8 -_0801F39C: .4byte gUnknown_02024C07 -_0801F3A0: - ldr r0, _0801F3B8 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - mov r0, r9 - adds r0, 0x50 - adds r2, r0 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 20 - b _0801F19A - .align 2, 0 -_0801F3B8: .4byte gUnknown_02024C08 -_0801F3BC: - ldr r4, _0801F3CC @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F3D0 @ =gUnknown_081D9224 - b _0801F5F8 - .align 2, 0 -_0801F3CC: .4byte gUnknown_02024C10 -_0801F3D0: .4byte gUnknown_081D9224 -_0801F3D4: - ldr r4, _0801F3E4 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F3E8 @ =gUnknown_081D92C0 - b _0801F5F8 - .align 2, 0 -_0801F3E4: .4byte gUnknown_02024C10 -_0801F3E8: .4byte gUnknown_081D92C0 -_0801F3EC: - ldr r6, _0801F43C @ =gUnknown_02024C08 - ldrb r0, [r6] - movs r2, 0x58 - muls r0, r2 - mov r1, r9 - adds r1, 0x4C - adds r5, r0, r1 - ldr r4, [r5] - movs r0, 0x40 - ands r0, r4 - cmp r0, 0 - bne _0801F406 - b _0801F5DC -_0801F406: - movs r0, 0x41 - negs r0, r0 - ands r4, r0 - str r4, [r5] - ldr r4, _0801F440 @ =gUnknown_02024A60 - ldrb r0, [r6] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r4, _0801F444 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F448 @ =gUnknown_081D9635 - b _0801F5F8 - .align 2, 0 -_0801F43C: .4byte gUnknown_02024C08 -_0801F440: .4byte gUnknown_02024A60 -_0801F444: .4byte gUnknown_02024C10 -_0801F448: .4byte gUnknown_081D9635 -_0801F44C: - ldr r4, _0801F45C @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F460 @ =gUnknown_081D93FA - b _0801F5F8 - .align 2, 0 -_0801F45C: .4byte gUnknown_02024C10 -_0801F460: .4byte gUnknown_081D93FA -_0801F464: - ldr r4, _0801F494 @ =gUnknown_02024BEC - ldr r0, _0801F498 @ =gUnknown_02024BF0 - ldr r0, [r0] - movs r1, 0x3 - bl __divsi3 - str r0, [r4] - cmp r0, 0 - bne _0801F47A - movs r0, 0x1 - str r0, [r4] -_0801F47A: - ldr r4, _0801F49C @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r1, _0801F4A0 @ =gUnknown_081FAC4C - ldr r0, _0801F4A4 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - b _0801F5F8 - .align 2, 0 -_0801F494: .4byte gUnknown_02024BEC -_0801F498: .4byte gUnknown_02024BF0 -_0801F49C: .4byte gUnknown_02024C10 -_0801F4A0: .4byte gUnknown_081FAC4C -_0801F4A4: .4byte gUnknown_02024D1E -_0801F4A8: - mov r3, r8 - ldrb r0, [r3] - movs r5, 0x58 - muls r0, r5 - mov r4, r9 - adds r4, 0x50 - adds r2, r0, r4 - ldr r1, [r2] - movs r0, 0xC0 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _0801F4C4 - b _0801F5DC -_0801F4C4: - movs r0, 0x80 - lsls r0, 5 - orrs r1, r0 - str r1, [r2] - ldr r1, _0801F4F8 @ =gUnknown_02024C54 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, _0801F4FC @ =gUnknown_02024BE6 - ldrh r1, [r1] - strh r1, [r0] - bl Random - mov r2, r8 - ldrb r1, [r2] - adds r2, r1, 0 - muls r2, r5 - adds r2, r4 - movs r1, 0x1 - ands r1, r0 - adds r1, 0x2 - lsls r1, 10 - ldr r0, [r2] -_0801F4F2: - orrs r0, r1 - str r0, [r2] - b _0801F5FA - .align 2, 0 -_0801F4F8: .4byte gUnknown_02024C54 -_0801F4FC: .4byte gUnknown_02024BE6 -_0801F500: - mov r5, r8 - ldrb r3, [r5] - movs r4, 0x58 - adds r0, r3, 0 - muls r0, r4 - mov r2, r9 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x3C - bne _0801F540 - ldrh r0, [r1, 0x2E] - cmp r0, 0 - beq _0801F5DC - ldr r0, _0801F534 @ =byte_2024C06 - strb r2, [r0] - ldr r1, _0801F538 @ =gUnknown_02024C10 - ldr r0, _0801F53C @ =gUnknown_081D9913 - str r0, [r1] - ldrb r0, [r5] - movs r1, 0x3C - bl sub_81074C4 - b _0801F5FA - .align 2, 0 -_0801F534: .4byte byte_2024C06 -_0801F538: .4byte gUnknown_02024C10 -_0801F53C: .4byte gUnknown_081D9913 -_0801F540: - ldrh r0, [r1, 0x2E] - cmp r0, 0 - beq _0801F5DC - adds r0, r3, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0801F5B8 @ =gUnknown_02024C04 - mov r3, r8 - ldrb r0, [r3] - muls r0, r4 - add r0, r9 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - ldrb r0, [r3] - muls r0, r4 - add r0, r9 - movs r5, 0 - movs r1, 0 - strh r1, [r0, 0x2E] - ldr r2, _0801F5BC @ =gUnknown_02024DBC - adds r2, 0x29 - adds r2, r6, r2 - ldr r3, _0801F5C0 @ =gBitTable - ldr r1, _0801F5C4 @ =gUnknown_02024A6A - mov r4, r8 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r4, _0801F5C8 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F5CC @ =gUnknown_081D944B - str r0, [r4] - ldr r1, _0801F5D0 @ =0x02000000 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - ldr r3, _0801F5D4 @ =0x000160e8 - adds r0, r3 - adds r0, r1 - strb r5, [r0] - ldrb r0, [r2] - lsls r0, 1 - ldr r4, _0801F5D8 @ =0x000160e9 - adds r0, r4 - adds r0, r1 - strb r5, [r0] - b _0801F5FA - .align 2, 0 -_0801F5B8: .4byte gUnknown_02024C04 -_0801F5BC: .4byte gUnknown_02024DBC -_0801F5C0: .4byte gBitTable -_0801F5C4: .4byte gUnknown_02024A6A -_0801F5C8: .4byte gUnknown_02024C10 -_0801F5CC: .4byte gUnknown_081D944B -_0801F5D0: .4byte 0x02000000 -_0801F5D4: .4byte 0x000160e8 -_0801F5D8: .4byte 0x000160e9 -_0801F5DC: - ldr r1, _0801F5E8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _0801F5FA - .align 2, 0 -_0801F5E8: .4byte gUnknown_02024C10 -_0801F5EC: - ldr r4, _0801F60C @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _0801F610 @ =gUnknown_081D94B0 -_0801F5F8: - str r0, [r4] -_0801F5FA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801F60C: .4byte gUnknown_02024C10 -_0801F610: .4byte gUnknown_081D94B0 - thumb_func_end sub_801E3EC - - thumb_func_start atk15_seteffectwithchancetarget -atk15_seteffectwithchancetarget: @ 801F614 - push {r4,lr} - ldr r2, _0801F640 @ =gBattleMons - ldr r0, _0801F644 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x20 - bne _0801F650 - ldr r2, _0801F648 @ =gBattleMoves - ldr r0, _0801F64C @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x5] - lsls r4, r0, 1 - b _0801F660 - .align 2, 0 -_0801F640: .4byte gBattleMons -_0801F644: .4byte gUnknown_02024C07 -_0801F648: .4byte gBattleMoves -_0801F64C: .4byte gUnknown_02024BE6 -_0801F650: - ldr r2, _0801F680 @ =gBattleMoves - ldr r0, _0801F684 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r4, [r0, 0x5] -_0801F660: - ldr r3, _0801F688 @ =gUnknown_02024D1E - ldrb r2, [r3, 0x3] - movs r0, 0x80 - ands r0, r2 - cmp r0, 0 - beq _0801F690 - ldr r0, _0801F68C @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801F690 - movs r0, 0x7F - ands r0, r2 - strb r0, [r3, 0x3] - b _0801F6BE - .align 2, 0 -_0801F680: .4byte gBattleMoves -_0801F684: .4byte gUnknown_02024BE6 -_0801F688: .4byte gUnknown_02024D1E -_0801F68C: .4byte gUnknown_02024C68 -_0801F690: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bhi _0801F6DA - ldr r0, _0801F6C8 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _0801F6DA - ldr r0, _0801F6CC @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0801F6DA - cmp r4, 0x63 - bls _0801F6D0 -_0801F6BE: - movs r0, 0 - movs r1, 0x80 - bl sub_801E3EC - b _0801F6E2 - .align 2, 0 -_0801F6C8: .4byte gUnknown_02024D1E -_0801F6CC: .4byte gUnknown_02024C68 -_0801F6D0: - movs r0, 0 - movs r1, 0 - bl sub_801E3EC - b _0801F6E2 -_0801F6DA: - ldr r1, _0801F6F8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0801F6E2: - ldr r0, _0801F6FC @ =gUnknown_02024D1E - movs r1, 0 - strb r1, [r0, 0x3] - ldr r0, _0801F700 @ =0x02000000 - ldr r2, _0801F704 @ =0x00016112 - adds r0, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801F6F8: .4byte gUnknown_02024C10 -_0801F6FC: .4byte gUnknown_02024D1E -_0801F700: .4byte 0x02000000 -_0801F704: .4byte 0x00016112 - thumb_func_end atk15_seteffectwithchancetarget - - thumb_func_start sub_801F708 -sub_801F708: @ 801F708 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl sub_801E3EC - pop {r0} - bx r0 - thumb_func_end sub_801F708 - - thumb_func_start sub_801F718 -sub_801F718: @ 801F718 - push {lr} - movs r0, 0 - movs r1, 0 - bl sub_801E3EC - pop {r0} - bx r0 - thumb_func_end sub_801F718 - - thumb_func_start sub_801F728 -sub_801F728: @ 801F728 - push {lr} - ldr r0, _0801F74C @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r2, _0801F750 @ =gUnknown_02024A60 - strb r0, [r2] - ldr r3, _0801F754 @ =gUnknown_02024D1E - ldrb r0, [r3, 0x3] - cmp r0, 0x6 - bhi _0801F75C - ldr r1, _0801F758 @ =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x4C - b _0801F766 - .align 2, 0 -_0801F74C: .4byte gUnknown_02024C10 -_0801F750: .4byte gUnknown_02024A60 -_0801F754: .4byte gUnknown_02024D1E -_0801F758: .4byte gBattleMons -_0801F75C: - ldr r1, _0801F794 @ =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 -_0801F766: - adds r2, r1 - ldr r1, _0801F798 @ =gUnknown_081FAB5C - ldrb r0, [r3, 0x3] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r0, _0801F79C @ =gUnknown_02024D1E - movs r2, 0 - strb r2, [r0, 0x3] - ldr r1, _0801F7A0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - ldr r0, _0801F7A4 @ =0x02000000 - ldr r1, _0801F7A8 @ =0x00016112 - adds r0, r1 - strb r2, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0801F794: .4byte gBattleMons -_0801F798: .4byte gUnknown_081FAB5C -_0801F79C: .4byte gUnknown_02024D1E -_0801F7A0: .4byte gUnknown_02024C10 -_0801F7A4: .4byte 0x02000000 -_0801F7A8: .4byte 0x00016112 - thumb_func_end sub_801F728 - - thumb_func_start sub_801F7AC -sub_801F7AC: @ 801F7AC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _0801F81C @ =gUnknown_02024C10 - ldr r2, [r0] - ldrb r1, [r2, 0x2] - adds r6, r0, 0 - cmp r1, 0 - beq _0801F834 - ldrb r0, [r2, 0x1] - bl sub_8015150 - ldr r5, _0801F820 @ =gUnknown_02024A60 - strb r0, [r5] - ldr r2, _0801F824 @ =gUnknown_02024C6C - ldr r1, _0801F828 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _0801F7E6 - b _0801FB1C -_0801F7E6: - ldr r1, [r6] - ldrb r4, [r1, 0x3] - ldrb r0, [r1, 0x4] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x5] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x6] - lsls r0, 24 - orrs r4, r0 - bl b_movescr_stack_pop_cursor - str r4, [r6] - ldrb r0, [r5] - bl battle_side_get_owner - ldr r1, _0801F82C @ =gUnknown_02024C7A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r2, [r0] - ldr r1, _0801F830 @ =0x0000fdff - ands r1, r2 - strh r1, [r0] - b _0801FB22 - .align 2, 0 -_0801F81C: .4byte gUnknown_02024C10 -_0801F820: .4byte gUnknown_02024A60 -_0801F824: .4byte gUnknown_02024C6C -_0801F828: .4byte gBitTable -_0801F82C: .4byte gUnknown_02024C7A -_0801F830: .4byte 0x0000fdff -_0801F834: - ldrb r0, [r2, 0x1] - cmp r0, 0x1 - bne _0801F85C - ldr r1, _0801F84C @ =gUnknown_02024A60 - ldr r0, _0801F850 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0801F854 @ =gUnknown_02024C08 - ldrb r7, [r0] - ldr r4, _0801F858 @ =gUnknown_081D8C58 - b _0801F86A - .align 2, 0 -_0801F84C: .4byte gUnknown_02024A60 -_0801F850: .4byte gUnknown_02024C07 -_0801F854: .4byte gUnknown_02024C08 -_0801F858: .4byte gUnknown_081D8C58 -_0801F85C: - ldr r1, _0801F954 @ =gUnknown_02024A60 - ldr r0, _0801F958 @ =gUnknown_02024C08 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _0801F95C @ =gUnknown_02024C07 - ldrb r7, [r0] - ldr r4, _0801F960 @ =gUnknown_081D8C65 -_0801F86A: - ldr r0, _0801F964 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r0, _0801F968 @ =gBitTable - mov r12, r0 - ldr r2, _0801F954 @ =gUnknown_02024A60 - mov r8, r2 - ldrb r2, [r2] - lsls r0, r2, 2 - add r0, r12 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0801F886 - b _0801FB1C -_0801F886: - ldr r3, _0801F96C @ =gBattleMons - mov r10, r3 - movs r5, 0x58 - mov r9, r5 - mov r0, r9 - muls r0, r2 - add r0, r10 - ldrh r3, [r0, 0x28] - cmp r3, 0 - beq _0801F89C - b _0801FB1C -_0801F89C: - ldr r2, _0801F970 @ =0x02000000 - lsls r1, r7, 1 - ldr r5, _0801F974 @ =0x000160ac - adds r0, r1, r5 - adds r0, r2 - strb r3, [r0] - ldr r0, _0801F978 @ =0x000160ad - adds r1, r0 - adds r1, r2 - strb r3, [r1] - lsls r1, r7, 2 - adds r5, 0x54 - adds r0, r1, r5 - adds r0, r2 - strb r3, [r0] - adds r5, 0x1 - adds r0, r1, r5 - adds r0, r2 - strb r3, [r0] - adds r5, 0x1 - adds r0, r1, r5 - adds r0, r2 - strb r3, [r0] - ldr r0, _0801F97C @ =0x00016103 - adds r1, r0 - adds r1, r2 - strb r3, [r1] - ldr r5, _0801F980 @ =gUnknown_02024C6C - mov r1, r8 - ldrb r0, [r1] - lsls r0, 2 - add r0, r12 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - ldr r0, [r6] - adds r0, 0x7 - bl b_movescr_stack_push - str r4, [r6] - mov r2, r8 - ldrb r0, [r2] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0801F9B0 - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 15 - orrs r0, r1 - str r0, [r5] - ldr r1, _0801F984 @ =gUnknown_030042E0 - ldrb r0, [r1] - cmp r0, 0xFE - bhi _0801F914 - adds r0, 0x1 - strb r0, [r1] -_0801F914: - mov r0, r9 - muls r0, r7 - add r0, r10 - adds r3, r0, 0 - adds r3, 0x2A - mov r4, r8 - ldrb r2, [r4] - mov r0, r9 - muls r0, r2 - add r0, r10 - adds r1, r0, 0 - adds r1, 0x2A - ldrb r0, [r3] - ldrb r5, [r1] - cmp r0, r5 - bls _0801F9CC - ldrb r1, [r1] - subs r0, r1 - cmp r0, 0x1D - ble _0801F990 - ldr r1, _0801F988 @ =gUnknown_02024A6A - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0801F98C @ =gPlayerParty - adds r0, r1 - movs r1, 0x8 - bl AdjustFriendship - b _0801F9CC - .align 2, 0 -_0801F954: .4byte gUnknown_02024A60 -_0801F958: .4byte gUnknown_02024C08 -_0801F95C: .4byte gUnknown_02024C07 -_0801F960: .4byte gUnknown_081D8C65 -_0801F964: .4byte gUnknown_02024C0C -_0801F968: .4byte gBitTable -_0801F96C: .4byte gBattleMons -_0801F970: .4byte 0x02000000 -_0801F974: .4byte 0x000160ac -_0801F978: .4byte 0x000160ad -_0801F97C: .4byte 0x00016103 -_0801F980: .4byte gUnknown_02024C6C -_0801F984: .4byte gUnknown_030042E0 -_0801F988: .4byte gUnknown_02024A6A -_0801F98C: .4byte gPlayerParty -_0801F990: - ldr r1, _0801F9A8 @ =gUnknown_02024A6A - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0801F9AC @ =gPlayerParty - adds r0, r1 - movs r1, 0x6 - bl AdjustFriendship - b _0801F9CC - .align 2, 0 -_0801F9A8: .4byte gUnknown_02024A6A -_0801F9AC: .4byte gPlayerParty -_0801F9B0: - ldr r1, _0801FAE0 @ =gUnknown_030042E0 - ldrb r0, [r1, 0x1] - cmp r0, 0xFE - bhi _0801F9BC - adds r0, 0x1 - strb r0, [r1, 0x1] -_0801F9BC: - ldr r2, _0801FAE4 @ =gUnknown_02024A60 - ldrb r0, [r2] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - add r0, r10 - ldrh r0, [r0] - strh r0, [r1, 0x20] -_0801F9CC: - ldr r0, _0801FAE8 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801FA02 - ldr r6, _0801FAEC @ =gBattleMons - ldr r0, _0801FAF0 @ =gUnknown_02024C07 - ldrb r0, [r0] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801FA02 - ldr r4, _0801FAF4 @ =gUnknown_02024C10 - ldr r0, [r4] - bl b_movescr_stack_push - ldr r1, _0801FAF8 @ =gUnknown_02024BEC - adds r0, r7, 0 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x28] - str r0, [r1] - ldr r0, _0801FAFC @ =gUnknown_081D9156 - str r0, [r4] -_0801FA02: - ldr r1, _0801FB00 @ =gUnknown_02024C98 - ldr r6, _0801FB04 @ =gUnknown_02024C08 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 7 - ands r0, r1 - cmp r0, 0 - bne _0801FA1A - b _0801FB22 -_0801FA1A: - ldr r0, _0801FAE8 @ =gUnknown_02024C6C - ldr r5, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r5, r0 - cmp r5, 0 - bne _0801FB22 - ldr r4, _0801FAF0 @ =gUnknown_02024C07 - mov r8, r4 - ldrb r0, [r4] - bl battle_side_get_owner - adds r4, r0, 0 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _0801FB22 - ldr r0, _0801FAEC @ =gBattleMons - mov r9, r0 - mov r1, r8 - ldrb r2, [r1] - movs r7, 0x58 - adds r3, r2, 0 - muls r3, r7 - adds r0, r3, r0 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801FB22 - ldr r0, _0801FB08 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xA5 - beq _0801FB22 - ldr r1, _0801FB0C @ =0x02000000 - ldr r4, _0801FB10 @ =0x0001608c - adds r0, r2, r4 - adds r0, r1 - ldrb r4, [r0] - adds r0, r4, r3 - mov r6, r9 - adds r6, 0x24 - adds r0, r6 - strb r5, [r0] - ldr r5, _0801FAF4 @ =gUnknown_02024C10 - ldr r0, [r5] - bl b_movescr_stack_push - ldr r0, _0801FB14 @ =gUnknown_081D9468 - str r0, [r5] - ldr r5, _0801FAE4 @ =gUnknown_02024A60 - mov r1, r8 - ldrb r0, [r1] - strb r0, [r5] - adds r1, r4, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r5] - muls r0, r7 - adds r0, r6 - adds r0, r4 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0801FB18 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - lsls r4, 1 - mov r2, r8 - ldrb r0, [r2] - muls r0, r7 - adds r0, r4, r0 - mov r2, r9 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - mov r3, r8 - ldrb r0, [r3] - muls r0, r7 - adds r4, r0 - adds r4, r2 - ldrh r0, [r4] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - b _0801FB22 - .align 2, 0 -_0801FAE0: .4byte gUnknown_030042E0 -_0801FAE4: .4byte gUnknown_02024A60 -_0801FAE8: .4byte gUnknown_02024C6C -_0801FAEC: .4byte gBattleMons -_0801FAF0: .4byte gUnknown_02024C07 -_0801FAF4: .4byte gUnknown_02024C10 -_0801FAF8: .4byte gUnknown_02024BEC -_0801FAFC: .4byte gUnknown_081D9156 -_0801FB00: .4byte gUnknown_02024C98 -_0801FB04: .4byte gUnknown_02024C08 -_0801FB08: .4byte gUnknown_02024BE6 -_0801FB0C: .4byte 0x02000000 -_0801FB10: .4byte 0x0001608c -_0801FB14: .4byte gUnknown_081D9468 -_0801FB18: .4byte gUnknown_030041C0 -_0801FB1C: - ldr r0, [r6] - adds r0, 0x7 - str r0, [r6] -_0801FB22: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_801F7AC - - thumb_func_start sub_801FB34 -sub_801FB34: @ 801FB34 - push {r4,r5,lr} - ldr r0, _0801FB64 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0801FB5E - ldr r5, _0801FB68 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _0801FB6C @ =gUnknown_02024A60 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x0A_A_A_A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_0801FB5E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801FB64: .4byte gUnknown_02024A64 -_0801FB68: .4byte gUnknown_02024C10 -_0801FB6C: .4byte gUnknown_02024A60 - thumb_func_end sub_801FB34 - - thumb_func_start atkE2_cmde2 -atkE2_cmde2: @ 801FB70 - push {r4-r6,lr} - sub sp, 0x4 - ldr r0, _0801FBC4 @ =gUnknown_02024A64 - ldr r6, [r0] - cmp r6, 0 - bne _0801FBBC - ldr r5, _0801FBC8 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _0801FBCC @ =gUnknown_02024A60 - strb r0, [r4] - ldr r1, _0801FBD0 @ =gBattleMons - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - str r6, [r0] - ldrb r0, [r4] - muls r0, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl sub_8010F48 - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_0801FBBC: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801FBC4: .4byte gUnknown_02024A64 -_0801FBC8: .4byte gUnknown_02024C10 -_0801FBCC: .4byte gUnknown_02024A60 -_0801FBD0: .4byte gBattleMons - thumb_func_end atkE2_cmde2 - - thumb_func_start atk1C_jumpifstatus -atk1C_jumpifstatus: @ 801FBD4 - push {r4,r5,lr} - ldr r5, _0801FC30 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - ldrb r4, [r2, 0x2] - ldrb r1, [r2, 0x3] - lsls r1, 8 - adds r4, r1 - ldrb r1, [r2, 0x4] - lsls r1, 16 - adds r4, r1 - ldrb r1, [r2, 0x5] - lsls r1, 24 - adds r4, r1 - ldrb r3, [r2, 0x6] - ldrb r1, [r2, 0x7] - lsls r1, 8 - adds r3, r1 - ldrb r1, [r2, 0x8] - lsls r1, 16 - adds r3, r1 - ldrb r1, [r2, 0x9] - lsls r1, 24 - adds r3, r1 - ldr r2, _0801FC34 @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _0801FC38 - adds r0, r1, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801FC38 - str r3, [r5] - b _0801FC40 - .align 2, 0 -_0801FC30: .4byte gUnknown_02024C10 -_0801FC34: .4byte gBattleMons -_0801FC38: - ldr r1, _0801FC48 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_0801FC40: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801FC48: .4byte gUnknown_02024C10 - thumb_func_end atk1C_jumpifstatus - - thumb_func_start atk1D_jumpifsecondarystatus -atk1D_jumpifsecondarystatus: @ 801FC4C - push {r4,r5,lr} - ldr r5, _0801FCA8 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - lsls r0, 24 - lsrs r0, 24 - ldr r2, [r5] - ldrb r4, [r2, 0x2] - ldrb r1, [r2, 0x3] - lsls r1, 8 - adds r4, r1 - ldrb r1, [r2, 0x4] - lsls r1, 16 - adds r4, r1 - ldrb r1, [r2, 0x5] - lsls r1, 24 - adds r4, r1 - ldrb r3, [r2, 0x6] - ldrb r1, [r2, 0x7] - lsls r1, 8 - adds r3, r1 - ldrb r1, [r2, 0x8] - lsls r1, 16 - adds r3, r1 - ldrb r1, [r2, 0x9] - lsls r1, 24 - adds r3, r1 - ldr r2, _0801FCAC @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r1, r0 - ldr r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _0801FCB0 - adds r0, r1, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0801FCB0 - str r3, [r5] - b _0801FCB8 - .align 2, 0 -_0801FCA8: .4byte gUnknown_02024C10 -_0801FCAC: .4byte gBattleMons -_0801FCB0: - ldr r1, _0801FCC0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] -_0801FCB8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801FCC0: .4byte gUnknown_02024C10 - thumb_func_end atk1D_jumpifsecondarystatus - - thumb_func_start atk1E_jumpifability -atk1E_jumpifability: @ 801FCC4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r6, _0801FD18 @ =gUnknown_02024C10 - ldr r2, [r6] - ldrb r5, [r2, 0x2] - mov r8, r5 - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - adds r7, r1, r0 - ldrb r0, [r2, 0x1] - cmp r0, 0x8 - bne _0801FD24 - ldr r0, _0801FD1C @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xD - adds r2, r5, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0801FDA0 - ldr r1, _0801FD20 @ =byte_2024C06 - strb r5, [r1] - str r7, [r6] - subs r4, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - ldrb r1, [r1] - b _0801FD80 - .align 2, 0 -_0801FD18: .4byte gUnknown_02024C10 -_0801FD1C: .4byte gUnknown_02024C07 -_0801FD20: .4byte byte_2024C06 -_0801FD24: - cmp r0, 0x9 - bne _0801FD5C - ldr r0, _0801FD54 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xC - adds r2, r5, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0801FDA0 - ldr r1, _0801FD58 @ =byte_2024C06 - strb r5, [r1] - str r7, [r6] - subs r4, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - ldrb r1, [r1] - b _0801FD80 - .align 2, 0 -_0801FD54: .4byte gUnknown_02024C07 -_0801FD58: .4byte byte_2024C06 -_0801FD5C: - ldrb r0, [r2, 0x1] - bl sub_8015150 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, _0801FD90 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, r8 - bne _0801FDA0 - ldr r0, _0801FD94 @ =byte_2024C06 - strb r1, [r0] - str r7, [r6] - ldrb r1, [r0] - adds r0, r4, 0 -_0801FD80: - bl sub_81074C4 - ldr r0, _0801FD98 @ =0x02000000 - ldr r1, _0801FD9C @ =0x000160f8 - adds r0, r1 - strb r4, [r0] - b _0801FDA6 - .align 2, 0 -_0801FD90: .4byte gBattleMons -_0801FD94: .4byte byte_2024C06 -_0801FD98: .4byte 0x02000000 -_0801FD9C: .4byte 0x000160f8 -_0801FDA0: - ldr r0, [r6] - adds r0, 0x7 - str r0, [r6] -_0801FDA6: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk1E_jumpifability - - thumb_func_start sub_801FDB4 -sub_801FDB4: @ 801FDB4 - push {r4-r6,lr} - ldr r0, _0801FDCC @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r4, [r0, 0x1] - cmp r4, 0x1 - bne _0801FDD4 - ldr r0, _0801FDD0 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_get_per_side_status - b _0801FDDE - .align 2, 0 -_0801FDCC: .4byte gUnknown_02024C10 -_0801FDD0: .4byte gUnknown_02024C07 -_0801FDD4: - ldr r0, _0801FE14 @ =gUnknown_02024C08 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r4, 0x1 -_0801FDDE: - ands r4, r0 - ldr r6, _0801FE18 @ =gUnknown_02024C10 - ldr r3, [r6] - ldrb r2, [r3, 0x2] - ldrb r0, [r3, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r1, [r3, 0x4] - ldrb r0, [r3, 0x5] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 24 - adds r5, r1, r0 - ldr r1, _0801FE1C @ =gUnknown_02024C7A - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _0801FE20 - str r5, [r6] - b _0801FE26 - .align 2, 0 -_0801FE14: .4byte gUnknown_02024C08 -_0801FE18: .4byte gUnknown_02024C10 -_0801FE1C: .4byte gUnknown_02024C7A -_0801FE20: - adds r0, r3, 0 - adds r0, 0x8 - str r0, [r6] -_0801FE26: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_801FDB4 - - thumb_func_start sub_801FE2C -sub_801FE2C: @ 801FE2C - push {r4,r5,lr} - movs r5, 0 - ldr r4, _0801FE60 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0801FE64 @ =gBattleMons - ldr r3, [r4] - movs r1, 0x58 - muls r0, r1 - ldrb r1, [r3, 0x3] - adds r0, r1 - adds r2, 0x18 - adds r0, r2 - ldrb r2, [r0] - ldrb r0, [r3, 0x2] - cmp r0, 0x5 - bhi _0801FEEA - lsls r0, 2 - ldr r1, _0801FE68 @ =_0801FE6C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801FE60: .4byte gUnknown_02024C10 -_0801FE64: .4byte gBattleMons -_0801FE68: .4byte _0801FE6C - .align 2, 0 -_0801FE6C: - .4byte _0801FE84 - .4byte _0801FE94 - .4byte _0801FEA4 - .4byte _0801FEB4 - .4byte _0801FEC4 - .4byte _0801FED8 -_0801FE84: - ldr r0, _0801FE90 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bne _0801FEEA - b _0801FEE4 - .align 2, 0 -_0801FE90: .4byte gUnknown_02024C10 -_0801FE94: - ldr r0, _0801FEA0 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - beq _0801FEEA - b _0801FEE4 - .align 2, 0 -_0801FEA0: .4byte gUnknown_02024C10 -_0801FEA4: - ldr r0, _0801FEB0 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bls _0801FEEA - b _0801FEE4 - .align 2, 0 -_0801FEB0: .4byte gUnknown_02024C10 -_0801FEB4: - ldr r0, _0801FEC0 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - cmp r2, r0 - bcs _0801FEEA - b _0801FEE4 - .align 2, 0 -_0801FEC0: .4byte gUnknown_02024C10 -_0801FEC4: - ldr r0, _0801FED4 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - ands r2, r0 - cmp r2, 0 - beq _0801FEEA - b _0801FEE4 - .align 2, 0 -_0801FED4: .4byte gUnknown_02024C10 -_0801FED8: - ldr r0, _0801FF0C @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x4] - ands r2, r0 - cmp r2, 0 - bne _0801FEEA -_0801FEE4: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0801FEEA: - cmp r5, 0 - beq _0801FF10 - ldr r3, _0801FF0C @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - b _0801FF18 - .align 2, 0 -_0801FF0C: .4byte gUnknown_02024C10 -_0801FF10: - ldr r1, _0801FF20 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] -_0801FF18: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801FF20: .4byte gUnknown_02024C10 - thumb_func_end sub_801FE2C - - thumb_func_start atk21_jumpifspecialstatusflag -atk21_jumpifspecialstatusflag: @ 801FF24 - push {r4-r6,lr} - ldr r4, _0801FF78 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r5, _0801FF7C @ =gUnknown_02024A60 - strb r0, [r5] - ldr r2, [r4] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - adds r6, r1, r0 - ldrb r1, [r2, 0x7] - ldrb r0, [r2, 0x8] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0xA] - lsls r0, 24 - adds r3, r1, r0 - ldrb r0, [r2, 0x6] - cmp r0, 0 - beq _0801FF84 - ldr r0, _0801FF80 @ =gUnknown_02024C98 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, 0 - bne _0801FF9C - b _0801FF94 - .align 2, 0 -_0801FF78: .4byte gUnknown_02024C10 -_0801FF7C: .4byte gUnknown_02024A60 -_0801FF80: .4byte gUnknown_02024C98 -_0801FF84: - ldr r0, _0801FF98 @ =gUnknown_02024C98 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - ands r0, r6 - cmp r0, 0 - beq _0801FF9C -_0801FF94: - str r3, [r4] - b _0801FFA2 - .align 2, 0 -_0801FF98: .4byte gUnknown_02024C98 -_0801FF9C: - adds r0, r2, 0 - adds r0, 0xB - str r0, [r4] -_0801FFA2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk21_jumpifspecialstatusflag - - thumb_func_start sub_801FFA8 -sub_801FFA8: @ 801FFA8 - push {r4-r6,lr} - ldr r4, _0801FFF0 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r4] - ldrb r5, [r3, 0x2] - ldrb r2, [r3, 0x3] - ldrb r1, [r3, 0x4] - lsls r1, 8 - adds r2, r1 - ldrb r1, [r3, 0x5] - lsls r1, 16 - adds r2, r1 - ldrb r1, [r3, 0x6] - lsls r1, 24 - adds r6, r2, r1 - ldr r2, _0801FFF4 @ =gBattleMons - movs r1, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r5 - beq _0801FFEC - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r5 - bne _0801FFF8 -_0801FFEC: - str r6, [r4] - b _0801FFFC - .align 2, 0 -_0801FFF0: .4byte gUnknown_02024C10 -_0801FFF4: .4byte gBattleMons -_0801FFF8: - adds r0, r3, 0x7 - str r0, [r4] -_0801FFFC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_801FFA8 - - thumb_func_start sub_8020004 -sub_8020004: @ 8020004 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - ldr r0, _0802004C @ =0x0201605c - mov r10, r0 - ldr r0, _08020050 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r1, _08020054 @ =gUnknown_02024C09 - strb r0, [r1] - ldr r2, _08020058 @ =gUnknown_02024DEA - movs r1, 0x2 - ands r1, r0 - lsls r1, 24 - lsrs r1, 25 - adds r1, r2 - ldrb r1, [r1] - mov r8, r1 - mov r0, r10 - subs r0, 0x4D - ldrb r0, [r0] - cmp r0, 0x6 - bls _08020040 - bl _08020996 -_08020040: - lsls r0, 2 - ldr r1, _0802005C @ =_08020060 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802004C: .4byte 0x0201605c -_08020050: .4byte gUnknown_02024C10 -_08020054: .4byte gUnknown_02024C09 -_08020058: .4byte gUnknown_02024DEA -_0802005C: .4byte _08020060 - .align 2, 0 -_08020060: - .4byte _0802007C - .4byte _080200FC - .4byte _08020216 - .4byte _0802055C - .4byte _08020648 - .4byte _08020910 - .4byte _0802096C -_0802007C: - ldr r4, _080200A8 @ =gUnknown_02024C09 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08020098 - ldr r0, _080200AC @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _080200B0 @ =0x00000982 - ands r0, r1 - cmp r0, 0 - beq _080200BC -_08020098: - ldr r0, _080200B4 @ =0x02000000 - ldr r1, _080200B8 @ =0x0001600f - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - bl _08020996 - .align 2, 0 -_080200A8: .4byte gUnknown_02024C09 -_080200AC: .4byte gUnknown_020239F8 -_080200B0: .4byte 0x00000982 -_080200B4: .4byte 0x02000000 -_080200B8: .4byte 0x0001600f -_080200BC: - ldr r2, _080200E8 @ =0x02000000 - ldr r3, _080200EC @ =0x0001600f - adds r1, r2, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, _080200F0 @ =0x00016113 - adds r2, r0 - ldr r3, _080200F4 @ =gBitTable - ldr r1, _080200F8 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - bl _08020996 - .align 2, 0 -_080200E8: .4byte 0x02000000 -_080200EC: .4byte 0x0001600f -_080200F0: .4byte 0x00016113 -_080200F4: .4byte gBitTable -_080200F8: .4byte gUnknown_02024A6A -_080200FC: - movs r5, 0 - movs r7, 0 - ldr r1, _08020150 @ =gSaveBlock1 + 0x3688 - mov r9, r1 -_08020104: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _08020154 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0802016A - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0802016A - ldr r0, _08020158 @ =gBitTable - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - mov r2, r8 - ands r0, r2 - cmp r0, 0 - beq _08020138 - adds r5, 0x1 -_08020138: - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0802015C - mov r3, r9 - ldrb r4, [r3] - b _08020164 - .align 2, 0 -_08020150: .4byte gSaveBlock1 + 0x3688 -_08020154: .4byte gPlayerParty -_08020158: .4byte gBitTable -_0802015C: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 -_08020164: - cmp r4, 0x19 - bne _0802016A - adds r6, 0x1 -_0802016A: - adds r7, 0x1 - cmp r7, 0x5 - ble _08020104 - ldr r3, _080201D0 @ =gBaseStats - ldr r2, _080201D4 @ =gBattleMons - ldr r0, _080201D8 @ =gUnknown_02024C09 - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r2, [r0, 0x9] - adds r1, 0x2A - ldrb r0, [r1] - muls r0, r2 - movs r1, 0x7 - bl __divsi3 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r6, 0 - beq _080201E0 - lsrs r4, r0, 17 - adds r0, r4, 0 - adds r1, r5, 0 - bl __divsi3 - mov r1, r10 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bne _080201B6 - movs r0, 0x1 - strh r0, [r1] -_080201B6: - ldr r5, _080201DC @ =gUnknown_02024DEE - adds r0, r4, 0 - adds r1, r6, 0 - bl __divsi3 - strh r0, [r5] - lsls r0, 16 - cmp r0, 0 - bne _080201FA - movs r0, 0x1 - strh r0, [r5] - b _080201FA - .align 2, 0 -_080201D0: .4byte gBaseStats -_080201D4: .4byte gBattleMons -_080201D8: .4byte gUnknown_02024C09 -_080201DC: .4byte gUnknown_02024DEE -_080201E0: - adds r0, r1, 0 - adds r1, r5, 0 - bl __divsi3 - mov r2, r10 - strh r0, [r2] - lsls r0, 16 - cmp r0, 0 - bne _080201F6 - movs r0, 0x1 - strh r0, [r2] -_080201F6: - ldr r0, _08020248 @ =gUnknown_02024DEE - strh r6, [r0] -_080201FA: - ldr r1, _0802024C @ =0x02000000 - ldr r3, _08020250 @ =0x0001600f - adds r2, r1, r3 - ldrb r0, [r2] - adds r0, 0x1 - movs r3, 0 - strb r0, [r2] - ldr r2, _08020254 @ =0x00016018 - adds r0, r1, r2 - strb r3, [r0] - ldr r3, _08020258 @ =0x0001605f - adds r1, r3 - mov r0, r8 - strb r0, [r1] -_08020216: - ldr r0, _0802025C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _08020220 - b _08020996 -_08020220: - ldr r0, _0802024C @ =0x02000000 - ldr r1, _08020254 @ =0x00016018 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08020260 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xAF - bne _0802026C - ldr r0, _08020264 @ =gSaveBlock1 - ldr r2, _08020268 @ =0x00003688 - adds r0, r2 - ldrb r4, [r0] - b _08020274 - .align 2, 0 -_08020248: .4byte gUnknown_02024DEE -_0802024C: .4byte 0x02000000 -_08020250: .4byte 0x0001600f -_08020254: .4byte 0x00016018 -_08020258: .4byte 0x0001605f -_0802025C: .4byte gUnknown_02024A64 -_08020260: .4byte gPlayerParty -_08020264: .4byte gSaveBlock1 -_08020268: .4byte 0x00003688 -_0802026C: - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 -_08020274: - ldr r5, _08020294 @ =0x02000000 - cmp r4, 0x19 - beq _080202A0 - ldr r3, _08020298 @ =0x0001605f - adds r1, r5, r3 - ldrb r0, [r1] - movs r2, 0x1 - ands r2, r0 - cmp r2, 0 - bne _080202A0 - lsrs r0, 1 - strb r0, [r1] - ldr r0, _0802029C @ =0x0001600f - adds r1, r5, r0 - b _080202C8 - .align 2, 0 -_08020294: .4byte 0x02000000 -_08020298: .4byte 0x0001605f -_0802029C: .4byte 0x0001600f -_080202A0: - ldr r1, _080202D4 @ =0x00016018 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080202D8 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - bne _080202E8 - ldr r2, _080202DC @ =0x0001605f - adds r1, r5, r2 - ldrb r0, [r1] - lsrs r0, 1 - movs r2, 0 - strb r0, [r1] - ldr r3, _080202E0 @ =0x0001600f - adds r1, r5, r3 -_080202C8: - movs r0, 0x5 - strb r0, [r1] - ldr r0, _080202E4 @ =gUnknown_02024BEC - str r2, [r0] - b _08020996 - .align 2, 0 -_080202D4: .4byte 0x00016018 -_080202D8: .4byte gPlayerParty -_080202DC: .4byte 0x0001605f -_080202E0: .4byte 0x0001600f -_080202E4: .4byte gUnknown_02024BEC -_080202E8: - ldr r0, _0802034C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08020316 - ldr r0, _08020350 @ =gBattleMons - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08020316 - ldr r0, _08020354 @ =0x0001601b - adds r5, r0 - ldrb r0, [r5] - cmp r0, 0 - bne _08020316 - bl sub_80325B8 - ldr r0, _08020358 @ =0x00000161 - bl PlayBGM - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_08020316: - ldr r5, _0802035C @ =0x02000000 - ldr r1, _08020360 @ =0x00016018 - adds r0, r5, r1 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08020364 @ =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _08020332 - b _0802051E -_08020332: - ldr r2, _08020368 @ =0x0001605f - adds r0, r5, r2 - ldrb r0, [r0] - movs r3, 0x1 - ands r3, r0 - cmp r3, 0 - beq _08020370 - ldr r1, _0802036C @ =gUnknown_02024BEC - mov r3, r10 - ldrh r0, [r3] - str r0, [r1] - mov r8, r1 - b _08020376 - .align 2, 0 -_0802034C: .4byte gUnknown_020239F8 -_08020350: .4byte gBattleMons -_08020354: .4byte 0x0001601b -_08020358: .4byte 0x00000161 -_0802035C: .4byte 0x02000000 -_08020360: .4byte 0x00016018 -_08020364: .4byte gPlayerParty -_08020368: .4byte 0x0001605f -_0802036C: .4byte gUnknown_02024BEC -_08020370: - ldr r0, _080203EC @ =gUnknown_02024BEC - str r3, [r0] - mov r8, r0 -_08020376: - cmp r4, 0x19 - bne _08020386 - ldr r0, _080203F0 @ =gUnknown_02024DEE - ldrh r1, [r0] - mov r2, r8 - ldr r0, [r2] - adds r0, r1 - str r0, [r2] -_08020386: - cmp r4, 0x28 - bne _0802039C - mov r3, r8 - ldr r1, [r3] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - mov r1, r8 - str r0, [r1] -_0802039C: - ldr r0, _080203F4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080203B8 - ldr r4, _080203EC @ =gUnknown_02024BEC - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] -_080203B8: - ldr r0, _080203F8 @ =0x02000000 - ldr r2, _080203FC @ =0x00016018 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08020400 @ =gPlayerParty - adds r0, r1 - bl sub_8040AA4 - lsls r0, 24 - cmp r0, 0 - beq _08020404 - ldr r4, _080203EC @ =gUnknown_02024BEC - ldr r1, [r4] - movs r0, 0x96 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - movs r7, 0xA5 - lsls r7, 1 - mov r8, r4 - b _0802040A - .align 2, 0 -_080203EC: .4byte gUnknown_02024BEC -_080203F0: .4byte gUnknown_02024DEE -_080203F4: .4byte gUnknown_020239F8 -_080203F8: .4byte 0x02000000 -_080203FC: .4byte 0x00016018 -_08020400: .4byte gPlayerParty -_08020404: - ldr r7, _0802043C @ =0x00000149 - ldr r3, _08020440 @ =gUnknown_02024BEC - mov r8, r3 -_0802040A: - ldr r0, _08020444 @ =gUnknown_020239F8 - ldrh r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08020488 - ldr r1, _08020448 @ =gUnknown_02024A6A - ldr r0, _0802044C @ =0x02000000 - ldr r3, _08020450 @ =0x00016018 - adds r2, r0, r3 - ldrh r1, [r1, 0x4] - adds r5, r0, 0 - ldr r4, _08020454 @ =gBitTable - ldr r3, _08020458 @ =gUnknown_02024C0C - ldrb r2, [r2] - cmp r1, r2 - bne _08020460 - ldrb r1, [r3] - ldr r0, [r4, 0x8] - ands r1, r0 - cmp r1, 0 - bne _08020460 - ldr r0, _0802045C @ =0x000160a2 - adds r1, r5, r0 - b _0802047C - .align 2, 0 -_0802043C: .4byte 0x00000149 -_08020440: .4byte gUnknown_02024BEC -_08020444: .4byte gUnknown_020239F8 -_08020448: .4byte gUnknown_02024A6A -_0802044C: .4byte 0x02000000 -_08020450: .4byte 0x00016018 -_08020454: .4byte gBitTable -_08020458: .4byte gUnknown_02024C0C -_0802045C: .4byte 0x000160a2 -_08020460: - ldrb r2, [r3] - ldr r0, [r4] - ands r2, r0 - cmp r2, 0 - bne _08020478 - ldr r1, _08020474 @ =0x000160a2 - adds r0, r5, r1 - strb r2, [r0] - b _08020490 - .align 2, 0 -_08020474: .4byte 0x000160a2 -_08020478: - ldr r2, _08020484 @ =0x000160a2 - adds r1, r5, r2 -_0802047C: - movs r0, 0x2 - strb r0, [r1] - b _08020490 - .align 2, 0 -_08020484: .4byte 0x000160a2 -_08020488: - ldr r0, _08020530 @ =0x02000000 - ldr r3, _08020534 @ =0x000160a2 - adds r0, r3 - strb r1, [r0] -_08020490: - ldr r1, _08020538 @ =gUnknown_030041C0 - movs r3, 0 - movs r2, 0xFD - strb r2, [r1] - movs r5, 0x4 - strb r5, [r1, 0x1] - ldr r4, _08020530 @ =0x02000000 - ldr r0, _08020534 @ =0x000160a2 - adds r6, r4, r0 - ldrb r0, [r6] - strb r0, [r1, 0x2] - ldr r0, _0802053C @ =0x00016018 - adds r4, r0 - ldrb r0, [r4] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08020540 @ =gUnknown_03004290 - strb r2, [r1] - strb r3, [r1, 0x1] - strb r7, [r1, 0x2] - movs r3, 0xFF - lsls r3, 8 - ands r7, r3 - asrs r0, r7, 8 - strb r0, [r1, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x4] - ldr r1, _08020544 @ =gUnknown_030042B0 - strb r2, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - strb r5, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - mov r0, r8 - ldr r2, [r0] - strb r2, [r1, 0x4] - adds r0, r2, 0 - ands r0, r3 - asrs r0, 8 - strb r0, [r1, 0x5] - movs r0, 0xFF - lsls r0, 16 - ands r0, r2 - asrs r0, 16 - strb r0, [r1, 0x6] - lsrs r2, 24 - strb r2, [r1, 0x7] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x8] - ldrb r1, [r6] - movs r0, 0xD - bl b_std_message - ldrb r1, [r4] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08020548 @ =gPlayerParty - adds r0, r1 - ldr r3, _0802054C @ =gBattleMons - ldr r1, _08020550 @ =gUnknown_02024C09 - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r1, [r1] - bl MonGainEVs -_0802051E: - ldr r1, _08020530 @ =0x02000000 - ldr r3, _08020554 @ =0x0001605f - adds r2, r1, r3 - ldrb r0, [r2] - lsrs r0, 1 - strb r0, [r2] - ldr r0, _08020558 @ =0x0001600f - adds r1, r0 - b _08020618 - .align 2, 0 -_08020530: .4byte 0x02000000 -_08020534: .4byte 0x000160a2 -_08020538: .4byte gUnknown_030041C0 -_0802053C: .4byte 0x00016018 -_08020540: .4byte gUnknown_03004290 -_08020544: .4byte gUnknown_030042B0 -_08020548: .4byte gPlayerParty -_0802054C: .4byte gBattleMons -_08020550: .4byte gUnknown_02024C09 -_08020554: .4byte 0x0001605f -_08020558: .4byte 0x0001600f -_0802055C: - ldr r0, _08020620 @ =gUnknown_02024A64 - ldr r2, [r0] - cmp r2, 0 - beq _08020566 - b _08020996 -_08020566: - ldr r1, _08020624 @ =gUnknown_02024260 - ldr r4, _08020628 @ =0x02000000 - ldr r3, _0802062C @ =0x000160a2 - adds r3, r4 - mov r8, r3 - ldrb r0, [r3] - lsls r0, 9 - adds r0, r1 - strb r2, [r0] - ldr r0, _08020630 @ =0x00016018 - adds r7, r4, r0 - ldrb r0, [r7] - movs r6, 0x64 - muls r0, r6 - ldr r5, _08020634 @ =gPlayerParty - adds r0, r5 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08020612 - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x64 - beq _08020612 - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x3A - bl GetMonData - ldr r1, _08020638 @ =0x00017180 - adds r4, r1 - strh r0, [r4] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x3B - bl GetMonData - strh r0, [r4, 0x2] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x3C - bl GetMonData - strh r0, [r4, 0x4] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x3D - bl GetMonData - strh r0, [r4, 0x6] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x3E - bl GetMonData - strh r0, [r4, 0x8] - ldrb r0, [r7] - muls r0, r6 - adds r0, r5 - movs r1, 0x3F - bl GetMonData - strh r0, [r4, 0xA] - ldr r4, _0802063C @ =gUnknown_02024A60 - mov r2, r8 - ldrb r0, [r2] - strb r0, [r4] - ldrb r1, [r7] - ldr r0, _08020640 @ =gUnknown_02024BEC - ldrh r2, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x19_a_bb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08020612: - ldr r1, _08020628 @ =0x02000000 - ldr r3, _08020644 @ =0x0001600f - adds r1, r3 -_08020618: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08020996 - .align 2, 0 -_08020620: .4byte gUnknown_02024A64 -_08020624: .4byte gUnknown_02024260 -_08020628: .4byte 0x02000000 -_0802062C: .4byte 0x000160a2 -_08020630: .4byte 0x00016018 -_08020634: .4byte gPlayerParty -_08020638: .4byte 0x00017180 -_0802063C: .4byte gUnknown_02024A60 -_08020640: .4byte gUnknown_02024BEC -_08020644: .4byte 0x0001600f -_08020648: - ldr r0, _080208AC @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _08020652 - b _08020996 -_08020652: - ldr r1, _080208B0 @ =gUnknown_02024A60 - ldr r4, _080208B4 @ =0x02000000 - ldr r2, _080208B8 @ =0x000160a2 - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r2, _080208BC @ =gUnknown_02024260 - ldrb r3, [r1] - lsls r1, r3, 9 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x21 - beq _0802066E - b _080208F0 -_0802066E: - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0xB - beq _0802067A - b _080208F0 -_0802067A: - ldr r0, _080208C0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080206A8 - ldr r1, _080208C4 @ =gUnknown_02024A6A - lsls r0, r3, 1 - adds r2, r0, r1 - ldr r0, _080208C8 @ =0x00016018 - adds r1, r4, r0 - ldrh r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bne _080206A8 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _080208CC @ =gPlayerParty - adds r0, r1 - adds r1, r3, 0 - bl sub_80324F8 -_080206A8: - ldr r1, _080208D0 @ =gUnknown_030041C0 - movs r2, 0xFD - strb r2, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r5, _080208B0 @ =gUnknown_02024A60 - ldrb r0, [r5] - strb r0, [r1, 0x2] - ldr r0, _080208B4 @ =0x02000000 - ldr r3, _080208C8 @ =0x00016018 - adds r6, r0, r3 - ldrb r0, [r6] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r4, _080208D4 @ =gUnknown_03004290 - strb r2, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - movs r0, 0x3 - strb r0, [r4, 0x3] - ldrb r0, [r6] - movs r1, 0x64 - mov r8, r1 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldr r7, _080208CC @ =gPlayerParty - adds r0, r7 - movs r1, 0x38 - bl GetMonData - strb r0, [r4, 0x4] - movs r0, 0x1 - negs r0, r0 - strb r0, [r4, 0x5] - bl b_movescr_stack_push_cursor - ldr r2, _080208D8 @ =gUnknown_03004324 - ldr r1, _080208DC @ =gBitTable - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r1, _080208E0 @ =gUnknown_02024C10 - ldr r0, _080208E4 @ =gUnknown_081D8EF3 - str r0, [r1] - ldr r4, _080208E8 @ =gUnknown_02024BEC - ldr r2, _080208BC @ =gUnknown_02024260 - ldrb r1, [r5] - lsls r1, 9 - adds r0, r2, 0x2 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x3 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - str r3, [r4] - ldrb r0, [r6] - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7 - movs r1, 0 - bl AdjustFriendship - ldr r0, _080208C4 @ =gUnknown_02024A6A - ldrb r1, [r6] - ldrh r0, [r0] - cmp r0, r1 - bne _080207EC - ldr r4, _080208EC @ =gBattleMons - ldrh r0, [r4, 0x28] - cmp r0, 0 - beq _080207EC - mov r0, r8 - muls r0, r1 - adds r0, r7 - movs r1, 0x38 - bl GetMonData - adds r1, r4, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0x39 - bl GetMonData - strh r0, [r4, 0x28] - ldrb r0, [r6] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3A - bl GetMonData - strh r0, [r4, 0x2C] - ldrb r0, [r6] - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7 - movs r1, 0x3B - bl GetMonData - strh r0, [r4, 0x2] - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0x3C - bl GetMonData - strh r0, [r4, 0x4] - ldrb r0, [r6] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3D - bl GetMonData - strh r0, [r4, 0x6] - ldrb r0, [r6] - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7 - movs r1, 0x3D - bl GetMonData - strh r0, [r4, 0x6] - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - movs r1, 0x3E - bl GetMonData - strh r0, [r4, 0x8] - ldrb r0, [r6] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - movs r1, 0x3F - bl GetMonData - strh r0, [r4, 0xA] -_080207EC: - ldr r0, _080208C4 @ =gUnknown_02024A6A - ldr r1, _080208B4 @ =0x02000000 - ldr r3, _080208C8 @ =0x00016018 - adds r7, r1, r3 - ldrb r2, [r7] - ldrh r0, [r0, 0x4] - cmp r0, r2 - bne _080208F6 - ldr r6, _080208EC @ =gBattleMons - movs r0, 0xD8 - adds r0, r6 - mov r8, r0 - ldrh r0, [r0] - cmp r0, 0 - beq _080208F6 - ldr r0, _080208C0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080208F6 - movs r5, 0x64 - adds r0, r2, 0 - muls r0, r5 - ldr r4, _080208CC @ =gPlayerParty - adds r0, r4 - movs r1, 0x38 - bl GetMonData - adds r1, r6, 0 - adds r1, 0xDA - strb r0, [r1] - ldrb r0, [r7] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - mov r1, r8 - strh r0, [r1] - ldrb r0, [r7] - muls r0, r5 - adds r0, r4 - movs r1, 0x3A - bl GetMonData - adds r1, r6, 0 - adds r1, 0xDC - strh r0, [r1] - ldrb r0, [r7] - muls r0, r5 - adds r0, r4 - movs r1, 0x3B - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB2 - strh r0, [r1] - ldrb r0, [r7] - muls r0, r5 - adds r0, r4 - movs r1, 0x3C - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB4 - strh r0, [r1] - ldrb r0, [r7] - muls r0, r5 - adds r0, r4 - movs r1, 0x3D - bl GetMonData - movs r2, 0xB6 - adds r2, r6 - mov r8, r2 - strh r0, [r2] - ldrb r0, [r7] - muls r0, r5 - adds r0, r4 - movs r1, 0x3D - bl GetMonData - mov r3, r8 - strh r0, [r3] - ldrb r0, [r7] - muls r0, r5 - adds r0, r4 - movs r1, 0x3E - bl GetMonData - adds r1, r6, 0 - adds r1, 0xB8 - strh r0, [r1] - b _080208F6 - .align 2, 0 -_080208AC: .4byte gUnknown_02024A64 -_080208B0: .4byte gUnknown_02024A60 -_080208B4: .4byte 0x02000000 -_080208B8: .4byte 0x000160a2 -_080208BC: .4byte gUnknown_02024260 -_080208C0: .4byte gUnknown_020239F8 -_080208C4: .4byte gUnknown_02024A6A -_080208C8: .4byte 0x00016018 -_080208CC: .4byte gPlayerParty -_080208D0: .4byte gUnknown_030041C0 -_080208D4: .4byte gUnknown_03004290 -_080208D8: .4byte gUnknown_03004324 -_080208DC: .4byte gBitTable -_080208E0: .4byte gUnknown_02024C10 -_080208E4: .4byte gUnknown_081D8EF3 -_080208E8: .4byte gUnknown_02024BEC -_080208EC: .4byte gBattleMons -_080208F0: - ldr r1, _08020904 @ =gUnknown_02024BEC - movs r0, 0 - str r0, [r1] -_080208F6: - ldr r0, _08020908 @ =0x02000000 - ldr r1, _0802090C @ =0x0001600f - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - b _08020996 - .align 2, 0 -_08020904: .4byte gUnknown_02024BEC -_08020908: .4byte 0x02000000 -_0802090C: .4byte 0x0001600f -_08020910: - ldr r0, _08020924 @ =gUnknown_02024BEC - ldr r0, [r0] - cmp r0, 0 - beq _08020930 - ldr r0, _08020928 @ =0x02000000 - ldr r2, _0802092C @ =0x0001600f - adds r0, r2 - movs r1, 0x3 - strb r1, [r0] - b _08020996 - .align 2, 0 -_08020924: .4byte gUnknown_02024BEC -_08020928: .4byte 0x02000000 -_0802092C: .4byte 0x0001600f -_08020930: - ldr r2, _08020950 @ =0x02000000 - ldr r3, _08020954 @ =0x00016018 - adds r1, r2, r3 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bhi _0802095C - ldr r0, _08020958 @ =0x0001600f - adds r1, r2, r0 - movs r0, 0x2 - strb r0, [r1] - b _08020996 - .align 2, 0 -_08020950: .4byte 0x02000000 -_08020954: .4byte 0x00016018 -_08020958: .4byte 0x0001600f -_0802095C: - ldr r3, _08020968 @ =0x0001600f - adds r1, r2, r3 - movs r0, 0x6 - strb r0, [r1] - b _08020996 - .align 2, 0 -_08020968: .4byte 0x0001600f -_0802096C: - ldr r0, _080209A4 @ =gUnknown_02024A64 - ldr r5, [r0] - cmp r5, 0 - bne _08020996 - ldr r4, _080209A8 @ =gBattleMons - ldr r2, _080209AC @ =gUnknown_02024C09 - ldrb r0, [r2] - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - movs r3, 0 - strh r5, [r0, 0x2E] - ldrb r0, [r2] - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - strb r3, [r0] - ldr r1, _080209B0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08020996: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080209A4: .4byte gUnknown_02024A64 -_080209A8: .4byte gBattleMons -_080209AC: .4byte gUnknown_02024C09 -_080209B0: .4byte gUnknown_02024C10 - thumb_func_end sub_8020004 - - thumb_func_start sub_80209B4 -sub_80209B4: @ 80209B4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - ldr r0, _08020AF0 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _080209C6 - b _08020B46 -_080209C6: - movs r5, 0 -_080209C8: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08020AF4 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080209F8 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080209F8 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_080209F8: - adds r5, 0x1 - cmp r5, 0x5 - ble _080209C8 - cmp r6, 0 - bne _08020A0C - ldr r0, _08020AF8 @ =gUnknown_02024D26 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_08020A0C: - movs r6, 0 - movs r5, 0 -_08020A10: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08020AFC @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08020A40 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08020A40 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - adds r0, r6, r0 - lsls r0, 16 - lsrs r6, r0, 16 -_08020A40: - adds r5, 0x1 - cmp r5, 0x5 - ble _08020A10 - ldr r2, _08020AF8 @ =gUnknown_02024D26 - cmp r6, 0 - bne _08020A54 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_08020A54: - ldrb r0, [r2] - cmp r0, 0 - bne _08020B3E - ldr r2, _08020B00 @ =gUnknown_020239F8 - ldrh r1, [r2] - movs r0, 0x2 - ands r0, r1 - mov r8, r2 - cmp r0, 0 - beq _08020B3E - movs r2, 0 - movs r5, 0 - ldr r0, _08020B04 @ =gUnknown_02024A68 - ldrb r3, [r0] - mov r12, r0 - ldr r7, _08020B08 @ =gUnknown_02024C10 - cmp r2, r3 - bge _08020AA0 - ldr r0, _08020B0C @ =gUnknown_02024C6C - movs r1, 0x80 - lsls r1, 21 - ldr r6, [r0] - adds r4, r3, 0 - ldr r3, _08020B10 @ =gUnknown_02024D68 -_08020A84: - adds r0, r1, 0 - lsls r0, r5 - ands r0, r6 - cmp r0, 0 - beq _08020A98 - ldrb r0, [r3] - lsls r0, 25 - cmp r0, 0 - blt _08020A98 - adds r2, 0x1 -_08020A98: - adds r3, 0x28 - adds r5, 0x2 - cmp r5, r4 - blt _08020A84 -_08020AA0: - movs r4, 0 - movs r5, 0x1 - mov r0, r12 - ldrb r3, [r0] - cmp r5, r3 - bge _08020ADA - ldr r0, _08020B0C @ =gUnknown_02024C6C - movs r1, 0x80 - lsls r1, 21 - mov r12, r1 - ldr r1, [r0] - ldr r0, _08020B10 @ =gUnknown_02024D68 - adds r6, r3, 0 - adds r3, r0, 0 - adds r3, 0x14 -_08020ABE: - mov r0, r12 - lsls r0, r5 - ands r0, r1 - cmp r0, 0 - beq _08020AD2 - ldrb r0, [r3] - lsls r0, 25 - cmp r0, 0 - blt _08020AD2 - adds r4, 0x1 -_08020AD2: - adds r3, 0x28 - adds r5, 0x2 - cmp r5, r6 - blt _08020ABE -_08020ADA: - mov r0, r8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08020B14 - adds r0, r4, r2 - cmp r0, 0x1 - bgt _08020B1C - b _08020B36 - .align 2, 0 -_08020AF0: .4byte gUnknown_02024A64 -_08020AF4: .4byte gPlayerParty -_08020AF8: .4byte gUnknown_02024D26 -_08020AFC: .4byte gEnemyParty -_08020B00: .4byte gUnknown_020239F8 -_08020B04: .4byte gUnknown_02024A68 -_08020B08: .4byte gUnknown_02024C10 -_08020B0C: .4byte gUnknown_02024C6C -_08020B10: .4byte gUnknown_02024D68 -_08020B14: - cmp r4, 0 - beq _08020B36 - cmp r2, 0 - beq _08020B36 -_08020B1C: - ldr r2, [r7] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r7] - b _08020B46 -_08020B36: - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - b _08020B46 -_08020B3E: - ldr r1, _08020B50 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08020B46: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08020B50: .4byte gUnknown_02024C10 - thumb_func_end sub_80209B4 - - thumb_func_start sub_8020B54 -sub_8020B54: @ 8020B54 - ldr r1, _08020B80 @ =gUnknown_02024C68 - movs r0, 0 - strb r0, [r1] - ldr r0, _08020B84 @ =0x02000000 - ldr r1, _08020B88 @ =0x0001601f - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08020B8C @ =gCritMultiplier - strb r1, [r0] - ldr r0, _08020B90 @ =gUnknown_02024D1E - strb r2, [r0, 0x3] - strb r2, [r0, 0x6] - ldr r2, _08020B94 @ =gUnknown_02024C6C - ldr r0, [r2] - subs r1, 0x42 - ands r0, r1 - ldr r1, _08020B98 @ =0xffffbfff - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08020B80: .4byte gUnknown_02024C68 -_08020B84: .4byte 0x02000000 -_08020B88: .4byte 0x0001601f -_08020B8C: .4byte gCritMultiplier -_08020B90: .4byte gUnknown_02024D1E -_08020B94: .4byte gUnknown_02024C6C -_08020B98: .4byte 0xffffbfff - thumb_func_end sub_8020B54 - - thumb_func_start atk25_resetflags -atk25_resetflags: @ 8020B9C - push {lr} - bl sub_8020B54 - ldr r1, _08020BB0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08020BB0: .4byte gUnknown_02024C10 - thumb_func_end atk25_resetflags - - thumb_func_start sub_8020BB4 -sub_8020BB4: @ 8020BB4 - ldr r3, _08020BC4 @ =gUnknown_02024C0E - ldr r2, _08020BC8 @ =gUnknown_02024C10 - ldr r0, [r2] - ldrb r1, [r0, 0x1] - strb r1, [r3] - adds r0, 0x2 - str r0, [r2] - bx lr - .align 2, 0 -_08020BC4: .4byte gUnknown_02024C0E -_08020BC8: .4byte gUnknown_02024C10 - thumb_func_end sub_8020BB4 - - thumb_func_start atk27_cmd27 -atk27_cmd27: @ 8020BCC - push {lr} - ldr r1, _08020BE8 @ =gUnknown_02024C0E - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - lsls r0, 24 - cmp r0, 0 - bne _08020BF0 - ldr r1, _08020BEC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08020C0A - .align 2, 0 -_08020BE8: .4byte gUnknown_02024C0E -_08020BEC: .4byte gUnknown_02024C10 -_08020BF0: - ldr r3, _08020C10 @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r3] -_08020C0A: - pop {r0} - bx r0 - .align 2, 0 -_08020C10: .4byte gUnknown_02024C10 - thumb_func_end atk27_cmd27 - - thumb_func_start sub_8020C14 -sub_8020C14: @ 8020C14 - ldr r3, _08020C30 @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - str r1, [r3] - bx lr - .align 2, 0 -_08020C30: .4byte gUnknown_02024C10 - thumb_func_end sub_8020C14 - - thumb_func_start atk29_jumpifbyte -atk29_jumpifbyte: @ 8020C34 - push {r4-r6,lr} - ldr r3, _08020C78 @ =gUnknown_02024C10 - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r2, [r1, 0x7] - ldrb r0, [r1, 0x8] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x9] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xA] - lsls r0, 24 - adds r2, r0 - adds r1, 0xB - str r1, [r3] - cmp r6, 0x5 - bhi _08020CCC - lsls r0, r6, 2 - ldr r1, _08020C7C @ =_08020C80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08020C78: .4byte gUnknown_02024C10 -_08020C7C: .4byte _08020C80 - .align 2, 0 -_08020C80: - .4byte _08020C98 - .4byte _08020CA0 - .4byte _08020CA8 - .4byte _08020CB0 - .4byte _08020CB8 - .4byte _08020CC2 -_08020C98: - ldrb r0, [r5] - cmp r0, r4 - bne _08020CCC - b _08020CCA -_08020CA0: - ldrb r0, [r5] - cmp r0, r4 - beq _08020CCC - b _08020CCA -_08020CA8: - ldrb r0, [r5] - cmp r0, r4 - bls _08020CCC - b _08020CCA -_08020CB0: - ldrb r0, [r5] - cmp r0, r4 - bcs _08020CCC - b _08020CCA -_08020CB8: - ldrb r0, [r5] - ands r4, r0 - cmp r4, 0 - beq _08020CCC - b _08020CCA -_08020CC2: - ldrb r0, [r5] - ands r4, r0 - cmp r4, 0 - bne _08020CCC -_08020CCA: - str r2, [r3] -_08020CCC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk29_jumpifbyte - - thumb_func_start sub_8020CD4 -sub_8020CD4: @ 8020CD4 - push {r4-r6,lr} - ldr r3, _08020D20 @ =gUnknown_02024C10 - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r0, [r1, 0x7] - lsls r0, 8 - orrs r4, r0 - ldrb r2, [r1, 0x8] - ldrb r0, [r1, 0x9] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xA] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xB] - lsls r0, 24 - adds r2, r0 - adds r1, 0xC - str r1, [r3] - cmp r6, 0x5 - bhi _08020D74 - lsls r0, r6, 2 - ldr r1, _08020D24 @ =_08020D28 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08020D20: .4byte gUnknown_02024C10 -_08020D24: .4byte _08020D28 - .align 2, 0 -_08020D28: - .4byte _08020D40 - .4byte _08020D48 - .4byte _08020D50 - .4byte _08020D58 - .4byte _08020D60 - .4byte _08020D6A -_08020D40: - ldrh r0, [r5] - cmp r0, r4 - bne _08020D74 - b _08020D72 -_08020D48: - ldrh r0, [r5] - cmp r0, r4 - beq _08020D74 - b _08020D72 -_08020D50: - ldrh r0, [r5] - cmp r0, r4 - bls _08020D74 - b _08020D72 -_08020D58: - ldrh r0, [r5] - cmp r0, r4 - bcs _08020D74 - b _08020D72 -_08020D60: - ldrh r0, [r5] - ands r4, r0 - cmp r4, 0 - beq _08020D74 - b _08020D72 -_08020D6A: - ldrh r0, [r5] - ands r4, r0 - cmp r4, 0 - bne _08020D74 -_08020D72: - str r2, [r3] -_08020D74: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8020CD4 - - thumb_func_start sub_8020D7C -sub_8020D7C: @ 8020D7C - push {r4-r6,lr} - ldr r3, _08020DD4 @ =gUnknown_02024C10 - ldr r1, [r3] - ldrb r6, [r1, 0x1] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x6] - ldrb r0, [r1, 0x7] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x8] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x9] - lsls r0, 24 - orrs r4, r0 - ldrb r2, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - adds r2, r0 - adds r1, 0xE - str r1, [r3] - cmp r6, 0x5 - bhi _08020E28 - lsls r0, r6, 2 - ldr r1, _08020DD8 @ =_08020DDC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08020DD4: .4byte gUnknown_02024C10 -_08020DD8: .4byte _08020DDC - .align 2, 0 -_08020DDC: - .4byte _08020DF4 - .4byte _08020DFC - .4byte _08020E04 - .4byte _08020E0C - .4byte _08020E14 - .4byte _08020E1E -_08020DF4: - ldr r0, [r5] - cmp r0, r4 - bne _08020E28 - b _08020E26 -_08020DFC: - ldr r0, [r5] - cmp r0, r4 - beq _08020E28 - b _08020E26 -_08020E04: - ldr r0, [r5] - cmp r0, r4 - bls _08020E28 - b _08020E26 -_08020E0C: - ldr r0, [r5] - cmp r0, r4 - bcs _08020E28 - b _08020E26 -_08020E14: - ldr r0, [r5] - ands r0, r4 - cmp r0, 0 - beq _08020E28 - b _08020E26 -_08020E1E: - ldr r0, [r5] - ands r0, r4 - cmp r0, 0 - bne _08020E28 -_08020E26: - str r2, [r3] -_08020E28: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8020D7C - - thumb_func_start sub_8020E30 -sub_8020E30: @ 8020E30 - push {r4-r7,lr} - ldr r2, _08020E88 @ =gUnknown_02024C10 - ldr r3, [r2] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r5, r1, r0 - ldrb r1, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x8] - lsls r0, 24 - adds r4, r1, r0 - ldrb r6, [r3, 0x9] - ldrb r1, [r3, 0xA] - ldrb r0, [r3, 0xB] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0xC] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0xD] - lsls r0, 24 - adds r1, r0 - mov r12, r1 - movs r1, 0 - cmp r1, r6 - bcs _08020EA8 - ldrb r0, [r5] - ldrb r7, [r4] - cmp r0, r7 - beq _08020E8C - adds r0, r3, 0 - b _08020EA4 - .align 2, 0 -_08020E88: .4byte gUnknown_02024C10 -_08020E8C: - adds r5, 0x1 - adds r4, 0x1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcs _08020EA8 - ldrb r0, [r5] - ldrb r3, [r4] - cmp r0, r3 - beq _08020E8C - ldr r0, [r2] -_08020EA4: - adds r0, 0xE - str r0, [r2] -_08020EA8: - cmp r1, r6 - bne _08020EB0 - mov r7, r12 - str r7, [r2] -_08020EB0: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8020E30 - - thumb_func_start sub_8020EB8 -sub_8020EB8: @ 8020EB8 - push {r4-r7,lr} - movs r7, 0 - ldr r3, _08020F2C @ =gUnknown_02024C10 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r5, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r4, r2, r0 - ldrb r6, [r1, 0x9] - ldrb r2, [r1, 0xA] - ldrb r0, [r1, 0xB] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xD] - lsls r0, 24 - adds r2, r0 - mov r12, r2 - movs r1, 0 - cmp r7, r6 - bcs _08020F22 -_08020F06: - ldrb r0, [r5] - ldrb r2, [r4] - cmp r0, r2 - bne _08020F14 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_08020F14: - adds r5, 0x1 - adds r4, 0x1 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r6 - bcc _08020F06 -_08020F22: - cmp r7, r6 - beq _08020F30 - mov r0, r12 - b _08020F34 - .align 2, 0 -_08020F2C: .4byte gUnknown_02024C10 -_08020F30: - ldr r0, [r3] - adds r0, 0xE -_08020F34: - str r0, [r3] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8020EB8 - - thumb_func_start sub_8020F3C -sub_8020F3C: @ 8020F3C - ldr r3, _08020F60 @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r2, 0x5] - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .align 2, 0 -_08020F60: .4byte gUnknown_02024C10 - thumb_func_end sub_8020F3C - - thumb_func_start sub_8020F64 -sub_8020F64: @ 8020F64 - ldr r3, _08020F8C @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r2, 0x5] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .align 2, 0 -_08020F8C: .4byte gUnknown_02024C10 - thumb_func_end sub_8020F64 - - thumb_func_start sub_8020F90 -sub_8020F90: @ 8020F90 - ldr r3, _08020FB8 @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, 0x5] - subs r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .align 2, 0 -_08020FB8: .4byte gUnknown_02024C10 - thumb_func_end sub_8020F90 - - thumb_func_start atk31_copyarray -atk31_copyarray: @ 8020FBC - push {r4-r6,lr} - ldr r3, _0802100C @ =gUnknown_02024C10 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r6, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0x9] - movs r2, 0 - cmp r2, r4 - bge _08021000 -_08020FF2: - adds r0, r6, r2 - adds r1, r5, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - blt _08020FF2 -_08021000: - ldr r0, [r3] - adds r0, 0xA - str r0, [r3] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802100C: .4byte gUnknown_02024C10 - thumb_func_end atk31_copyarray - - thumb_func_start atk32_memcpy_with_offset -atk32_memcpy_with_offset: @ 8021010 - push {r4-r7,lr} - ldr r3, _08021078 @ =gUnknown_02024C10 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - adds r7, r2, r0 - ldrb r2, [r1, 0x5] - ldrb r0, [r1, 0x6] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0x7] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0x8] - lsls r0, 24 - adds r6, r2, r0 - ldrb r2, [r1, 0x9] - ldrb r0, [r1, 0xA] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r1, 0xB] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r1, 0xC] - lsls r0, 24 - adds r5, r2, r0 - ldrb r4, [r1, 0xD] - movs r2, 0 - cmp r2, r4 - bge _0802106C -_0802105A: - adds r0, r7, r2 - ldrb r1, [r5] - adds r1, r2, r1 - adds r1, r6, r1 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, r4 - blt _0802105A -_0802106C: - ldr r0, [r3] - adds r0, 0xE - str r0, [r3] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08021078: .4byte gUnknown_02024C10 - thumb_func_end atk32_memcpy_with_offset - - thumb_func_start sub_802107C -sub_802107C: @ 802107C - ldr r3, _080210A4 @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r0, [r1] - ldrb r2, [r2, 0x5] - orrs r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .align 2, 0 -_080210A4: .4byte gUnknown_02024C10 - thumb_func_end sub_802107C - - thumb_func_start atk34_orhalfword -atk34_orhalfword: @ 80210A8 - push {r4,lr} - ldr r4, _080210DC @ =gUnknown_02024C10 - ldr r3, [r4] - ldrb r2, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r2, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r2, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r2, r0 - ldrb r1, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - orrs r1, r0 - ldrh r0, [r2] - orrs r1, r0 - strh r1, [r2] - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080210DC: .4byte gUnknown_02024C10 - thumb_func_end atk34_orhalfword - - thumb_func_start atk35_orword -atk35_orword: @ 80210E0 - push {r4,lr} - ldr r4, _08021120 @ =gUnknown_02024C10 - ldr r2, [r4] - ldrb r3, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r3, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r3, r0 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, 0x9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08021120: .4byte gUnknown_02024C10 - thumb_func_end atk35_orword - - thumb_func_start sub_8021124 -sub_8021124: @ 8021124 - ldr r3, _0802114C @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r2, [r2, 0x5] - ldrb r0, [r1] - bics r0, r2 - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x6 - str r0, [r3] - bx lr - .align 2, 0 -_0802114C: .4byte gUnknown_02024C10 - thumb_func_end sub_8021124 - - thumb_func_start atk37_bichalfword -atk37_bichalfword: @ 8021150 - push {r4,lr} - ldr r4, _08021184 @ =gUnknown_02024C10 - ldr r3, [r4] - ldrb r1, [r3, 0x1] - ldrb r0, [r3, 0x2] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r3, 0x3] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r3, 0x4] - lsls r0, 24 - adds r1, r0 - ldrb r2, [r3, 0x5] - ldrb r0, [r3, 0x6] - lsls r0, 8 - orrs r2, r0 - ldrh r0, [r1] - bics r0, r2 - strh r0, [r1] - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08021184: .4byte gUnknown_02024C10 - thumb_func_end atk37_bichalfword - - thumb_func_start atk38_bicword -atk38_bicword: @ 8021188 - push {r4,lr} - ldr r4, _080211C8 @ =gUnknown_02024C10 - ldr r2, [r4] - ldrb r3, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - adds r3, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - adds r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - adds r3, r0 - ldrb r1, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - adds r1, r0 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - ldr r0, [r4] - adds r0, 0x9 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080211C8: .4byte gUnknown_02024C10 - thumb_func_end atk38_bicword - - thumb_func_start atk39_pause -atk39_pause: @ 80211CC - push {r4,r5,lr} - ldr r0, _08021200 @ =gUnknown_02024A64 - ldr r4, [r0] - cmp r4, 0 - bne _080211F8 - ldr r5, _08021204 @ =gUnknown_02024C10 - ldr r2, [r5] - ldrb r1, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r3, _08021208 @ =gUnknown_02024D18 - ldrh r0, [r3] - adds r0, 0x1 - strh r0, [r3] - lsls r0, 16 - lsrs r0, 16 - cmp r0, r1 - bcc _080211F8 - strh r4, [r3] - adds r0, r2, 0x3 - str r0, [r5] -_080211F8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08021200: .4byte gUnknown_02024A64 -_08021204: .4byte gUnknown_02024C10 -_08021208: .4byte gUnknown_02024D18 - thumb_func_end atk39_pause - - thumb_func_start sub_802120C -sub_802120C: @ 802120C - push {lr} - ldr r0, _08021224 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0802121E - ldr r1, _08021228 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0802121E: - pop {r0} - bx r0 - .align 2, 0 -_08021224: .4byte gUnknown_02024A64 -_08021228: .4byte gUnknown_02024C10 - thumb_func_end sub_802120C - - thumb_func_start atk3B_8022C68 -atk3B_8022C68: @ 802122C - push {lr} - ldr r0, _08021240 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _0802124C - ldr r0, _08021244 @ =gUnknown_02024A60 - ldr r1, _08021248 @ =gUnknown_02024C08 - b _08021250 - .align 2, 0 -_08021240: .4byte gUnknown_02024C10 -_08021244: .4byte gUnknown_02024A60 -_08021248: .4byte gUnknown_02024C08 -_0802124C: - ldr r0, _08021274 @ =gUnknown_02024A60 - ldr r1, _08021278 @ =gUnknown_02024C07 -_08021250: - ldrb r1, [r1] - strb r1, [r0] - ldr r0, _0802127C @ =gUnknown_02024BEC - ldrh r1, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldr r0, _08021274 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08021280 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08021274: .4byte gUnknown_02024A60 -_08021278: .4byte gUnknown_02024C07 -_0802127C: .4byte gUnknown_02024BEC -_08021280: .4byte gUnknown_02024C10 - thumb_func_end atk3B_8022C68 - - thumb_func_start atk3C_return -atk3C_return: @ 8021284 - push {lr} - bl b_movescr_stack_pop_cursor - pop {r0} - bx r0 - thumb_func_end atk3C_return - - thumb_func_start sub_8021290 -sub_8021290: @ 8021290 - ldr r0, _080212A4 @ =gUnknown_02024C68 - movs r1, 0 - strb r1, [r0] - ldr r0, _080212A8 @ =gUnknown_02024A60 - strb r1, [r0] - ldr r1, _080212AC @ =gUnknown_02024A7F - movs r0, 0xB - strb r0, [r1] - bx lr - .align 2, 0 -_080212A4: .4byte gUnknown_02024C68 -_080212A8: .4byte gUnknown_02024A60 -_080212AC: .4byte gUnknown_02024A7F - thumb_func_end sub_8021290 - - thumb_func_start sub_80212B0 -sub_80212B0: @ 80212B0 - ldr r1, _080212C0 @ =gUnknown_02024A60 - movs r0, 0 - strb r0, [r1] - ldr r1, _080212C4 @ =gUnknown_02024A7F - movs r0, 0xB - strb r0, [r1] - bx lr - .align 2, 0 -_080212C0: .4byte gUnknown_02024A60 -_080212C4: .4byte gUnknown_02024A7F - thumb_func_end sub_80212B0 - - thumb_func_start atk3F_end3 -atk3F_end3: @ 80212C8 - push {lr} - bl b_movescr_stack_pop_cursor - ldr r2, _080212F0 @ =0x02017140 - adds r1, r2, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _080212DE - subs r0, 0x1 - strb r0, [r1] -_080212DE: - ldr r0, _080212F4 @ =gUnknown_030042D4 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_080212F0: .4byte 0x02017140 -_080212F4: .4byte gUnknown_030042D4 - thumb_func_end atk3F_end3 - - thumb_func_start atk41_call -atk41_call: @ 80212F8 - push {r4,lr} - ldr r4, _08021324 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x5 - bl b_movescr_stack_push - 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 -_08021324: .4byte gUnknown_02024C10 - thumb_func_end atk41_call - - thumb_func_start atk42_jumpiftype2 -atk42_jumpiftype2: @ 8021328 - push {r4,lr} - ldr r4, _08021370 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - lsls r0, 24 - lsrs r0, 24 - ldr r3, [r4] - ldr r2, _08021374 @ =gBattleMons - movs r1, 0x58 - muls r0, r1 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r2, [r3, 0x2] - ldrb r1, [r1] - cmp r2, r1 - beq _08021356 - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _08021378 -_08021356: - ldrb r1, [r3, 0x3] - ldrb r0, [r3, 0x4] - lsls r0, 8 - orrs r1, r0 - ldrb r0, [r3, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r3, 0x6] - lsls r0, 24 - orrs r1, r0 - str r1, [r4] - b _0802137C - .align 2, 0 -_08021370: .4byte gUnknown_02024C10 -_08021374: .4byte gBattleMons -_08021378: - adds r0, r3, 0x7 - str r0, [r4] -_0802137C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk42_jumpiftype2 - - thumb_func_start sub_8021384 -sub_8021384: @ 8021384 - push {r4,lr} - sub sp, 0x4 - ldr r4, _080213BC @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r2, [r0, 0x1] - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _080213C0 - ldr r2, [r4] - 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, [r4] - b _080213C6 - .align 2, 0 -_080213BC: .4byte gUnknown_02024C10 -_080213C0: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_080213C6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8021384 - - thumb_func_start sub_80213D0 -sub_80213D0: @ 80213D0 - ldr r1, _080213E4 @ =0x02000000 - ldr r0, _080213E8 @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r2, _080213EC @ =0x00016060 - adds r0, r2 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - bx lr - .align 2, 0 -_080213E4: .4byte 0x02000000 -_080213E8: .4byte gUnknown_02024C07 -_080213EC: .4byte 0x00016060 - thumb_func_end sub_80213D0 - - thumb_func_start atk46_cmd46 -atk46_cmd46: @ 80213F0 - push {r4-r6,lr} - ldr r5, _08021444 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r6, _08021448 @ =gUnknown_02024A60 - strb r0, [r6] - ldr r2, [r5] - ldrb r1, [r2, 0x3] - ldrb r0, [r2, 0x4] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x6] - lsls r0, 24 - adds r3, r1, r0 - ldrb r4, [r2, 0x2] - adds r0, r4, 0 - cmp r0, 0x1 - beq _08021426 - cmp r0, 0x11 - beq _08021426 - cmp r0, 0x2 - bne _0802144C -_08021426: - ldr r4, _08021444 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r1, [r0, 0x2] - ldrh r2, [r3] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, _08021448 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - b _080214AE - .align 2, 0 -_08021444: .4byte gUnknown_02024C10 -_08021448: .4byte gUnknown_02024A60 -_0802144C: - ldr r0, _08021464 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0802146C - adds r0, r2, 0x7 - bl b_movescr_stack_push - ldr r0, _08021468 @ =gUnknown_081D8EEF - b _080214AC - .align 2, 0 -_08021464: .4byte gUnknown_02024C6C -_08021468: .4byte gUnknown_081D8EEF -_0802146C: - adds r0, r4, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08021498 - ldr r1, _08021490 @ =gUnknown_02024C98 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08021494 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _08021498 - adds r0, r2, 0x7 - b _080214AC - .align 2, 0 -_08021490: .4byte gUnknown_02024C98 -_08021494: .4byte 0x000400c0 -_08021498: - ldrb r1, [r2, 0x2] - ldrh r2, [r3] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x7 -_080214AC: - str r0, [r5] -_080214AE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end atk46_cmd46 - - thumb_func_start sub_80214B4 -sub_80214B4: @ 80214B4 - push {r4-r7,lr} - ldr r6, _0802151C @ =gUnknown_02024C10 - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r7, _08021520 @ =gUnknown_02024A60 - strb r0, [r7] - ldr r2, [r6] - ldrb r1, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - adds r3, r1, r0 - ldrb r1, [r2, 0x6] - ldrb r0, [r2, 0x7] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x8] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x9] - lsls r0, 24 - adds r4, r1, r0 - ldrb r5, [r3] - adds r0, r5, 0 - cmp r0, 0x1 - beq _080214FE - cmp r0, 0x11 - beq _080214FE - cmp r0, 0x2 - bne _08021524 -_080214FE: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, _08021520 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802151C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] - b _0802157A - .align 2, 0 -_0802151C: .4byte gUnknown_02024C10 -_08021520: .4byte gUnknown_02024A60 -_08021524: - ldr r0, _08021534 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08021538 - adds r0, r2, 0 - b _08021576 - .align 2, 0 -_08021534: .4byte gUnknown_02024C6C -_08021538: - adds r0, r5, 0 - subs r0, 0xA - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08021564 - ldr r1, _0802155C @ =gUnknown_02024C98 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08021560 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _08021564 - adds r0, r2, 0 - b _08021576 - .align 2, 0 -_0802155C: .4byte gUnknown_02024C98 -_08021560: .4byte 0x000400c0 -_08021564: - ldrb r1, [r3] - ldrh r2, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] -_08021576: - adds r0, 0xA - str r0, [r6] -_0802157A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80214B4 - - thumb_func_start atk47 -atk47: @ 8021580 - push {r4,lr} - movs r3, 0 - ldr r0, _080215A0 @ =0x02000000 - ldr r2, _080215A4 @ =0x0001601e - adds r1, r0, r2 - ldrb r1, [r1] - movs r2, 0xF0 - ands r2, r1 - adds r4, r0, 0 - cmp r2, 0x20 - beq _080215B6 - cmp r2, 0x20 - bgt _080215A8 - cmp r2, 0x10 - beq _080215B2 - b _080215C0 - .align 2, 0 -_080215A0: .4byte 0x02000000 -_080215A4: .4byte 0x0001601e -_080215A8: - cmp r2, 0x90 - beq _080215BA - cmp r2, 0xA0 - beq _080215BE - b _080215C0 -_080215B2: - movs r3, 0xF - b _080215C0 -_080215B6: - movs r3, 0x27 - b _080215C0 -_080215BA: - movs r3, 0x16 - b _080215C0 -_080215BE: - movs r3, 0x2E -_080215C0: - ldr r1, _080215EC @ =0x0001601e - adds r0, r4, r1 - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - adds r0, r3, r0 - subs r0, 0x1 - ldr r2, _080215F0 @ =0x000160a4 - adds r1, r4, r2 - movs r2, 0 - strb r0, [r1] - ldr r1, _080215F4 @ =0x000160a5 - adds r0, r4, r1 - strb r2, [r0] - ldr r1, _080215F8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080215EC: .4byte 0x0001601e -_080215F0: .4byte 0x000160a4 -_080215F4: .4byte 0x000160a5 -_080215F8: .4byte gUnknown_02024C10 - thumb_func_end atk47 - - thumb_func_start atk48_playstatchangeanimation -atk48_playstatchangeanimation: @ 80215FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r7, 0 - movs r0, 0 - mov r8, r0 - movs r3, 0 - ldr r5, _08021670 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - str r3, [sp] - bl sub_8015150 - ldr r2, _08021674 @ =gUnknown_02024A60 - strb r0, [r2] - ldr r0, [r5] - ldrb r4, [r0, 0x2] - ldrb r1, [r0, 0x3] - movs r0, 0x1 - ands r0, r1 - ldr r3, [sp] - cmp r0, 0 - beq _08021710 - movs r0, 0x2 - ands r0, r1 - movs r1, 0x15 - cmp r0, 0 - beq _0802163C - movs r1, 0x2D -_0802163C: - cmp r4, 0 - beq _080216E4 - movs r0, 0x1 - mov r10, r0 - ldr r0, _08021678 @ =gUnknown_02024A98 - mov r9, r0 - lsls r5, r1, 16 -_0802164A: - adds r0, r4, 0 - mov r1, r10 - ands r0, r1 - cmp r0, 0 - beq _080216D6 - ldr r0, _08021670 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0802167C - ldr r0, _08021674 @ =gUnknown_02024A60 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r7, r0 - b _080216C4 - .align 2, 0 -_08021670: .4byte gUnknown_02024C10 -_08021674: .4byte gUnknown_02024A60 -_08021678: .4byte gUnknown_02024A98 -_0802167C: - ldr r6, _08021700 @ =gUnknown_02024A60 - ldrb r0, [r6] - str r3, [sp] - bl battle_get_per_side_status - mov r1, r10 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08021704 @ =gUnknown_02024C80 - adds r0, r1 - ldrb r0, [r0, 0x2] - ldr r3, [sp] - cmp r0, 0 - bne _080216D6 - ldr r0, _08021708 @ =gBattleMons - ldrb r2, [r6] - movs r1, 0x58 - muls r2, r1 - adds r0, r2, r0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1D - beq _080216D6 - cmp r0, 0x49 - beq _080216D6 - cmp r0, 0x33 - bne _080216BA - cmp r7, 0x6 - beq _080216D6 -_080216BA: - cmp r0, 0x34 - bne _080216C2 - cmp r7, 0x1 - beq _080216D6 -_080216C2: - adds r0, r7, r2 -_080216C4: - add r0, r9 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - ble _080216D6 - lsrs r0, r5, 16 - mov r8, r0 - adds r3, 0x1 -_080216D6: - lsrs r4, 1 - movs r1, 0x80 - lsls r1, 9 - adds r5, r1 - adds r7, 0x1 - cmp r4, 0 - bne _0802164A -_080216E4: - ldr r0, _0802170C @ =gUnknown_02024C10 - mov r9, r0 - cmp r3, 0x1 - ble _08021772 - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x2 - ands r0, r1 - movs r1, 0x39 - mov r8, r1 - cmp r0, 0 - beq _08021772 - movs r0, 0x3A - b _08021770 - .align 2, 0 -_08021700: .4byte gUnknown_02024A60 -_08021704: .4byte gUnknown_02024C80 -_08021708: .4byte gBattleMons -_0802170C: .4byte gUnknown_02024C10 -_08021710: - movs r0, 0x2 - ands r0, r1 - movs r1, 0xE - cmp r0, 0 - beq _0802171C - movs r1, 0x26 -_0802171C: - mov r9, r5 - cmp r4, 0 - beq _08021758 - ldr r6, _0802178C @ =gUnknown_02024A98 - adds r5, r2, 0 - lsls r2, r1, 16 -_08021728: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0802174A - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r0, r7, r0 - adds r0, r6 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xB - bgt _0802174A - lsrs r1, r2, 16 - mov r8, r1 - adds r3, 0x1 -_0802174A: - lsrs r4, 1 - movs r0, 0x80 - lsls r0, 9 - adds r2, r0 - adds r7, 0x1 - cmp r4, 0 - bne _08021728 -_08021758: - cmp r3, 0x1 - ble _08021772 - mov r1, r9 - ldr r0, [r1] - ldrb r1, [r0, 0x3] - movs r0, 0x2 - ands r0, r1 - movs r1, 0x37 - mov r8, r1 - cmp r0, 0 - beq _08021772 - movs r0, 0x38 -_08021770: - mov r8, r0 -_08021772: - mov r1, r9 - ldr r2, [r1] - ldrb r1, [r2, 0x3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08021790 - cmp r3, 0x1 - bgt _08021790 - adds r0, r2, 0x4 - mov r1, r9 - b _080217E6 - .align 2, 0 -_0802178C: .4byte gUnknown_02024A98 -_08021790: - cmp r3, 0 - beq _080217E0 - ldr r0, _080217D0 @ =0x02000000 - ldr r1, _080217D4 @ =0x000160dc - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - bne _080217E0 - movs r0, 0 - movs r1, 0x1 - mov r2, r8 - str r3, [sp] - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldr r0, _080217D8 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _080217DC @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r1, [r0, 0x3] - movs r0, 0x4 - ands r0, r1 - ldr r3, [sp] - cmp r0, 0 - beq _080217CC - cmp r3, 0x1 - ble _080217CC - movs r0, 0x1 - strb r0, [r4] -_080217CC: - ldr r1, _080217DC @ =gUnknown_02024C10 - b _080217E2 - .align 2, 0 -_080217D0: .4byte 0x02000000 -_080217D4: .4byte 0x000160dc -_080217D8: .4byte gUnknown_02024A60 -_080217DC: .4byte gUnknown_02024C10 -_080217E0: - mov r1, r9 -_080217E2: - ldr r0, [r1] - adds r0, 0x4 -_080217E6: - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk48_playstatchangeanimation - - thumb_func_start sub_80217F8 -sub_80217F8: @ 80217F8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - movs r0, 0 - mov r10, r0 - ldr r0, _08021834 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r1, [r0, 0x1] - str r1, [sp, 0x10] - ldrb r0, [r0, 0x2] - str r0, [sp, 0x14] - ldr r1, _08021838 @ =gBattleMons - ldr r0, _0802183C @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08021844 - ldr r1, _08021840 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x7] - b _0802184E - .align 2, 0 -_08021834: .4byte gUnknown_02024C10 -_08021838: .4byte gBattleMons -_0802183C: .4byte gUnknown_02024C07 -_08021840: .4byte gEnigmaBerries -_08021844: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r0, 24 -_0802184E: - str r0, [sp, 0x8] - ldr r0, _0802186C @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 1 - ldr r0, _08021870 @ =0x020160e8 - adds r1, r0 - str r1, [sp, 0xC] - subs r0, 0xCC - ldrb r0, [r0] - cmp r0, 0 - beq _080218C0 - movs r2, 0x3F - ands r2, r0 - str r2, [sp, 0x4] - b _080218D2 - .align 2, 0 -_0802186C: .4byte gUnknown_02024C07 -_08021870: .4byte 0x020160e8 -_08021874: - strb r2, [r7] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r0, _080218AC @ =0x02000000 - ldr r3, _080218B0 @ =0x0001600c - adds r0, r3 - strb r4, [r0] - bl sub_8020B54 - ldr r2, _080218B4 @ =gUnknown_081D6BBC - mov r4, r8 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - bl b_movescr_stack_push - ldr r1, _080218B8 @ =gUnknown_02024C10 - ldr r0, _080218BC @ =gUnknown_081D9B2D - bl _0802229C - .align 2, 0 -_080218AC: .4byte 0x02000000 -_080218B0: .4byte 0x0001600c -_080218B4: .4byte gUnknown_081D6BBC -_080218B8: .4byte gUnknown_02024C10 -_080218BC: .4byte gUnknown_081D9B2D -_080218C0: - ldr r2, _080218D8 @ =gBattleMoves - ldr r0, _080218DC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - str r0, [sp, 0x4] -_080218D2: - ldr r5, _080218E0 @ =0x02000000 - mov r12, r5 - b _080218EE - .align 2, 0 -_080218D8: .4byte gBattleMoves -_080218DC: .4byte gUnknown_02024BE6 -_080218E0: .4byte 0x02000000 -_080218E4: - mov r0, r10 - cmp r0, 0 - beq _080218EE - bl _08022286 -_080218EE: - ldr r0, _08021908 @ =0x0001600c - add r0, r12 - ldrb r0, [r0] - cmp r0, 0x11 - bls _080218FC - bl _0802224E -_080218FC: - lsls r0, 2 - ldr r1, _0802190C @ =_08021910 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08021908: .4byte 0x0001600c -_0802190C: .4byte _08021910 - .align 2, 0 -_08021910: - .4byte _08021958 - .4byte _08021A34 - .4byte _08021AF0 - .4byte _08021B20 - .4byte _08021B44 - .4byte _08021B78 - .4byte _08021B9C - .4byte _08021C40 - .4byte _08021C78 - .4byte _08021CA8 - .4byte _08021CCC - .4byte _08021D18 - .4byte _08021DAC - .4byte _08021E30 - .4byte _08021E70 - .4byte _08022068 - .4byte _080221C0 - .4byte _0802224E -_08021958: - ldr r5, _08021A08 @ =gBattleMons - ldr r2, _08021A0C @ =gUnknown_02024C08 - ldrb r4, [r2] - movs r6, 0x58 - adds r3, r4, 0 - muls r3, r6 - adds r0, r5, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 16 - ands r1, r0 - cmp r1, 0 - beq _080219FE - adds r0, r3, r5 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080219FE - ldr r0, _08021A10 @ =gUnknown_02024C07 - ldrb r1, [r0] - cmp r1, r4 - beq _080219FE - adds r0, r1, 0 - bl battle_side_get_owner - adds r4, r0, 0 - ldr r1, _08021A0C @ =gUnknown_02024C08 - ldrb r0, [r1] - bl battle_side_get_owner - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080219FE - ldr r0, _08021A14 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _080219FE - ldr r2, _08021A18 @ =gUnknown_02024D28 - ldr r4, _08021A0C @ =gUnknown_02024C08 - ldrb r3, [r4] - lsls r1, r3, 4 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _080219C8 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _080219FE -_080219C8: - ldr r2, _08021A1C @ =gBattleMoves - ldr r0, _08021A20 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080219FE - adds r0, r3, 0 - muls r0, r6 - adds r1, r0, r5 - ldrb r2, [r1, 0x19] - movs r0, 0x19 - ldrsb r0, [r1, r0] - cmp r0, 0xB - bgt _080219FE - adds r0, r2, 0x1 - strb r0, [r1, 0x19] - bl b_movescr_stack_push_cursor - ldr r1, _08021A24 @ =gUnknown_02024C10 - ldr r0, _08021A28 @ =gUnknown_081D9132 - str r0, [r1] - movs r5, 0x1 - mov r10, r5 -_080219FE: - ldr r2, _08021A2C @ =0x02000000 - ldr r0, _08021A30 @ =0x0001600c - adds r1, r2, r0 - b _08021E00 - .align 2, 0 -_08021A08: .4byte gBattleMons -_08021A0C: .4byte gUnknown_02024C08 -_08021A10: .4byte gUnknown_02024C07 -_08021A14: .4byte gUnknown_02024C68 -_08021A18: .4byte gUnknown_02024D28 -_08021A1C: .4byte gBattleMoves -_08021A20: .4byte gUnknown_02024BE6 -_08021A24: .4byte gUnknown_02024C10 -_08021A28: .4byte gUnknown_081D9132 -_08021A2C: .4byte 0x02000000 -_08021A30: .4byte 0x0001600c -_08021A34: - ldr r2, _08021AD0 @ =gBattleMons - ldr r1, _08021AD4 @ =gUnknown_02024C08 - ldrb r4, [r1] - movs r3, 0x58 - mov r12, r3 - mov r3, r12 - muls r3, r4 - adds r7, r2, 0 - adds r7, 0x4C - adds r6, r3, r7 - ldr r5, [r6] - movs r0, 0x20 - ands r0, r5 - cmp r0, 0 - bne _08021A54 - b _08021DFA -_08021A54: - adds r0, r3, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08021A5E - b _08021DFA -_08021A5E: - ldr r0, _08021AD8 @ =gUnknown_02024C07 - ldrb r0, [r0] - cmp r0, r4 - bne _08021A68 - b _08021DFA -_08021A68: - ldr r0, _08021ADC @ =gUnknown_02024D68 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r0, 0xC - adds r1, r0 - ldr r0, [r1] - cmp r0, 0 - bne _08021A7C - b _08021DFA -_08021A7C: - ldr r0, _08021AE0 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08021A8A - b _08021DFA -_08021A8A: - ldr r4, [sp, 0x4] - cmp r4, 0xA - beq _08021A92 - b _08021DFA -_08021A92: - movs r0, 0x21 - negs r0, r0 - ands r5, r0 - str r5, [r6] - ldr r4, _08021AE4 @ =gUnknown_02024A60 - ldr r5, _08021AD4 @ =gUnknown_02024C08 - ldrb r0, [r5] - strb r0, [r4] - ldrb r0, [r5] - mov r1, r12 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - bl b_movescr_stack_push_cursor - ldr r1, _08021AE8 @ =gUnknown_02024C10 - ldr r0, _08021AEC @ =gUnknown_081D955D - str r0, [r1] - movs r2, 0x1 - mov r10, r2 - b _08021DFA - .align 2, 0 -_08021AD0: .4byte gBattleMons -_08021AD4: .4byte gUnknown_02024C08 -_08021AD8: .4byte gUnknown_02024C07 -_08021ADC: .4byte gUnknown_02024D68 -_08021AE0: .4byte gUnknown_02024C68 -_08021AE4: .4byte gUnknown_02024A60 -_08021AE8: .4byte gUnknown_02024C10 -_08021AEC: .4byte gUnknown_081D955D -_08021AF0: - ldr r0, _08021B14 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08021B0C - movs r4, 0x1 - mov r10, r4 -_08021B0C: - ldr r2, _08021B18 @ =0x02000000 - ldr r5, _08021B1C @ =0x0001600c - adds r1, r2, r5 - b _08021E00 - .align 2, 0 -_08021B14: .4byte gUnknown_02024C08 -_08021B18: .4byte 0x02000000 -_08021B1C: .4byte 0x0001600c -_08021B20: - ldr r0, _08021B40 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x4 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _08021B3A - b _08021DFA -_08021B3A: - movs r0, 0x1 - mov r10, r0 - b _08021DFA - .align 2, 0 -_08021B40: .4byte gUnknown_02024C08 -_08021B44: - movs r0, 0 - str r0, [sp] - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08021B68 - movs r4, 0x1 - mov r10, r4 - ldr r5, _08021B64 @ =0x02000000 - mov r12, r5 - b _0802224E - .align 2, 0 -_08021B64: .4byte 0x02000000 -_08021B68: - ldr r2, _08021B70 @ =0x02000000 - ldr r0, _08021B74 @ =0x0001600c - adds r1, r2, r0 - b _08021E00 - .align 2, 0 -_08021B70: .4byte 0x02000000 -_08021B74: .4byte 0x0001600c -_08021B78: - ldr r0, _08021B98 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _08021B92 - b _08021DFA -_08021B92: - movs r1, 0x1 - mov r10, r1 - b _08021DFA - .align 2, 0 -_08021B98: .4byte gUnknown_02024C07 -_08021B9C: - ldr r0, _08021C28 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _08021BE0 - ldr r4, [sp, 0x8] - cmp r4, 0x1D - bne _08021BE0 - ldr r0, _08021C2C @ =gUnknown_02024BE8 - ldrh r2, [r0] - adds r7, r0, 0 - cmp r2, 0xA5 - beq _08021BE0 - ldr r5, [sp, 0xC] - ldrh r1, [r5] - cmp r1, 0 - beq _08021BC8 - ldr r0, _08021C30 @ =0x0000ffff - cmp r1, r0 - bne _08021BE0 -_08021BC8: - cmp r2, 0xE2 - bne _08021BDA - ldr r0, _08021C34 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08021BDA - b _08022244 -_08021BDA: - ldrh r0, [r7] - ldr r1, [sp, 0xC] - strh r0, [r1] -_08021BE0: - movs r4, 0 - ldr r2, _08021C38 @ =gBattleMons - ldr r3, _08021C3C @ =gUnknown_02024C07 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r2, 0xC - adds r0, r2 - ldrh r0, [r0] - ldr r5, [sp, 0xC] - ldrh r1, [r5] - mov r9, r3 - cmp r0, r1 - beq _08021C18 - mov r6, r9 - movs r3, 0x58 - adds r5, r1, 0 -_08021C02: - adds r4, 0x1 - cmp r4, 0x3 - bgt _08021C18 - lsls r0, r4, 1 - ldrb r1, [r6] - muls r1, r3 - adds r0, r1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r5 - bne _08021C02 -_08021C18: - cmp r4, 0x4 - beq _08021C1E - b _08022244 -_08021C1E: - movs r0, 0 - ldr r1, [sp, 0xC] -_08021C22: - strh r0, [r1] - b _08022244 - .align 2, 0 -_08021C28: .4byte gUnknown_02024C6C -_08021C2C: .4byte gUnknown_02024BE8 -_08021C30: .4byte 0x0000ffff -_08021C34: .4byte gUnknown_02024C68 -_08021C38: .4byte gBattleMons -_08021C3C: .4byte gUnknown_02024C07 -_08021C40: - movs r4, 0 - ldr r0, _08021C6C @ =gUnknown_02024A68 - ldrb r2, [r0] - cmp r4, r2 - blt _08021C4C - b _08022244 -_08021C4C: - movs r5, 0 - ldr r2, _08021C70 @ =0x020160f0 - ldr r3, _08021C74 @ =gBattleMons -_08021C52: - ldrh r1, [r2] - cmp r1, 0 - beq _08021C5C - strh r1, [r3, 0x2E] - strh r5, [r2] -_08021C5C: - adds r2, 0x2 - adds r3, 0x58 - adds r4, 0x1 - ldrb r1, [r0] - cmp r4, r1 - blt _08021C52 - b _08022244 - .align 2, 0 -_08021C6C: .4byte gUnknown_02024A68 -_08021C70: .4byte 0x020160f0 -_08021C74: .4byte gBattleMons -_08021C78: - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl sub_801A02C - lsls r0, 24 - cmp r0, 0 - beq _08021C98 - movs r2, 0x1 - mov r10, r2 - ldr r3, _08021C94 @ =0x02000000 - mov r12, r3 - b _0802224E - .align 2, 0 -_08021C94: .4byte 0x02000000 -_08021C98: - ldr r2, _08021CA0 @ =0x02000000 - ldr r4, _08021CA4 @ =0x0001600c - adds r1, r2, r4 - b _08021E00 - .align 2, 0 -_08021CA0: .4byte 0x02000000 -_08021CA4: .4byte 0x0001600c -_08021CA8: - movs r0, 0x4 - movs r1, 0 - movs r2, 0 - bl sub_801A02C - lsls r0, 24 - cmp r0, 0 - beq _08021CBC - movs r5, 0x1 - mov r10, r5 -_08021CBC: - ldr r2, _08021CC4 @ =0x02000000 - ldr r0, _08021CC8 @ =0x0001600c - adds r1, r2, r0 - b _08021E00 - .align 2, 0 -_08021CC4: .4byte 0x02000000 -_08021CC8: .4byte 0x0001600c -_08021CCC: - ldr r1, _08021D04 @ =gUnknown_02024C98 - ldr r0, _08021D08 @ =gUnknown_02024C07 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08021D0C @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _08021CE2 - b _08021DFA -_08021CE2: - ldr r0, _08021D10 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08021CF0 - b _08021DFA -_08021CF0: - ldr r4, _08021D14 @ =gUnknown_02024A60 - strb r2, [r4] - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08021DFA - .align 2, 0 -_08021D04: .4byte gUnknown_02024C98 -_08021D08: .4byte gUnknown_02024C07 -_08021D0C: .4byte 0x000400c0 -_08021D10: .4byte gUnknown_02024C6C -_08021D14: .4byte gUnknown_02024A60 -_08021D18: - ldr r0, _08021D88 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08021D44 - ldr r1, _08021D8C @ =gUnknown_02024C98 - ldr r0, _08021D90 @ =gUnknown_02024C07 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08021D94 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _08021D44 - adds r0, r2, 0 - bl sub_8015660 - lsls r0, 24 - cmp r0, 0 - beq _08021D7E -_08021D44: - ldr r4, _08021D98 @ =gUnknown_02024A60 - ldr r5, _08021D90 @ =gUnknown_02024C07 - ldrb r0, [r5] - strb r0, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _08021D8C @ =gUnknown_02024C98 - ldrb r2, [r5] - lsls r2, 2 - adds r2, r0 - ldr r0, [r2] - ldr r1, _08021D9C @ =0xfffbff3f - ands r0, r1 - str r0, [r2] - ldr r2, _08021DA0 @ =gUnknown_02024D68 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08021D7E: - ldr r2, _08021DA4 @ =0x02000000 - ldr r4, _08021DA8 @ =0x0001600c - adds r1, r2, r4 - b _08021E00 - .align 2, 0 -_08021D88: .4byte gUnknown_02024C68 -_08021D8C: .4byte gUnknown_02024C98 -_08021D90: .4byte gUnknown_02024C07 -_08021D94: .4byte 0x000400c0 -_08021D98: .4byte gUnknown_02024A60 -_08021D9C: .4byte 0xfffbff3f -_08021DA0: .4byte gUnknown_02024D68 -_08021DA4: .4byte 0x02000000 -_08021DA8: .4byte 0x0001600c -_08021DAC: - ldr r2, _08021E0C @ =gUnknown_02024D68 - ldr r1, _08021E10 @ =gUnknown_02024C08 - ldrb r3, [r1] - lsls r4, r3, 2 - adds r0, r4, r3 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08021DFA - ldr r0, _08021E14 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r3, r0 - bcs _08021DFA - ldr r5, _08021E18 @ =gUnknown_02024C98 - adds r0, r4, r5 - ldr r0, [r0] - ldr r1, _08021E1C @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _08021DFA - ldr r4, _08021E20 @ =gUnknown_02024A60 - strb r3, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _08021E10 @ =gUnknown_02024C08 - ldrb r2, [r0] - lsls r2, 2 - adds r2, r5 - ldr r0, [r2] - ldr r1, _08021E24 @ =0xfffbff3f - ands r0, r1 - str r0, [r2] -_08021DFA: - ldr r2, _08021E28 @ =0x02000000 - ldr r3, _08021E2C @ =0x0001600c - adds r1, r2, r3 -_08021E00: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - mov r12, r2 - b _0802224E - .align 2, 0 -_08021E0C: .4byte gUnknown_02024D68 -_08021E10: .4byte gUnknown_02024C08 -_08021E14: .4byte gUnknown_02024A68 -_08021E18: .4byte gUnknown_02024C98 -_08021E1C: .4byte 0x000400c0 -_08021E20: .4byte gUnknown_02024A60 -_08021E24: .4byte 0xfffbff3f -_08021E28: .4byte 0x02000000 -_08021E2C: .4byte 0x0001600c -_08021E30: - movs r4, 0 - ldr r0, _08021E60 @ =gUnknown_02024A68 - ldrb r5, [r0] - cmp r4, r5 - blt _08021E3C - b _08022244 -_08021E3C: - ldr r2, _08021E64 @ =gUnknown_02024CA8 - ldr r5, _08021E68 @ =0xfeffffff - adds r3, r0, 0 - ldr r1, _08021E6C @ =gUnknown_02024AD0 -_08021E44: - ldrb r0, [r2, 0xA] - cmp r0, 0 - bne _08021E50 - ldr r0, [r1] - ands r0, r5 - str r0, [r1] -_08021E50: - adds r2, 0x1C - adds r1, 0x58 - adds r4, 0x1 - ldrb r0, [r3] - cmp r4, r0 - blt _08021E44 - b _08022244 - .align 2, 0 -_08021E60: .4byte gUnknown_02024A68 -_08021E64: .4byte gUnknown_02024CA8 -_08021E68: .4byte 0xfeffffff -_08021E6C: .4byte gUnknown_02024AD0 -_08021E70: - ldr r1, _08021F2C @ =gUnknown_02024C6C - ldr r3, [r1] - movs r0, 0x80 - lsls r0, 5 - ands r0, r3 - ldr r2, _08021F30 @ =gUnknown_02024C07 - mov r9, r2 - adds r5, r1, 0 - cmp r0, 0 - beq _08021E9A - ldr r0, _08021F34 @ =gUnknown_02024A60 - ldrb r2, [r2] - strb r2, [r0] - ldr r1, _08021F38 @ =gUnknown_02024C08 - ldrb r0, [r1] - mov r4, r9 - strb r0, [r4] - strb r2, [r1] - ldr r0, _08021F3C @ =0xffffefff - ands r3, r0 - str r3, [r5] -_08021E9A: - ldr r1, _08021F40 @ =gBattleMoves - ldr r2, _08021F44 @ =gUnknown_02024BE8 - ldrh r3, [r2] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - mov r8, r1 - adds r7, r2, 0 - cmp r0, 0x7F - bne _08021EBE - ldr r0, _08021F48 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08021ECA -_08021EBE: - ldr r1, _08021F4C @ =gUnknown_02024C2C - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - strh r3, [r0] -_08021ECA: - ldr r0, _08021F50 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08021F54 @ =gBitTable - mov r3, r9 - ldrb r4, [r3] - lsls r0, r4, 2 - adds r0, r2 - ldr r3, [r0] - ands r1, r3 - adds r6, r2, 0 - cmp r1, 0 - beq _08021EE4 - b _08022244 -_08021EE4: - ldr r0, _08021F58 @ =0x000160a6 - add r0, r12 - ldrb r0, [r0] - ands r0, r3 - cmp r0, 0 - beq _08021EF2 - b _08022244 -_08021EF2: - ldrh r2, [r7] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0] - cmp r0, 0x7F - bne _08021F04 - b _08022244 -_08021F04: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _08021F68 - ldr r1, _08021F5C @ =gUnknown_02024C34 - lsls r0, r4, 1 - adds r0, r1 - strh r2, [r0] - ldr r0, _08021F60 @ =gUnknown_02024C4C - mov r4, r9 - ldrb r1, [r4] - lsls r1, 1 - adds r1, r0 - ldr r0, _08021F64 @ =gUnknown_02024BE6 - ldrh r0, [r0] - strh r0, [r1] - b _08021F82 - .align 2, 0 -_08021F2C: .4byte gUnknown_02024C6C -_08021F30: .4byte gUnknown_02024C07 -_08021F34: .4byte gUnknown_02024A60 -_08021F38: .4byte gUnknown_02024C08 -_08021F3C: .4byte 0xffffefff -_08021F40: .4byte gBattleMoves -_08021F44: .4byte gUnknown_02024BE8 -_08021F48: .4byte gUnknown_02024C68 -_08021F4C: .4byte gUnknown_02024C2C -_08021F50: .4byte gUnknown_02024C0C -_08021F54: .4byte gBitTable -_08021F58: .4byte 0x000160a6 -_08021F5C: .4byte gUnknown_02024C34 -_08021F60: .4byte gUnknown_02024C4C -_08021F64: .4byte gUnknown_02024BE6 -_08021F68: - ldr r1, _08021FD0 @ =gUnknown_02024C34 - lsls r0, r4, 1 - adds r0, r1 - ldr r1, _08021FD4 @ =0x0000ffff - strh r1, [r0] - ldr r1, _08021FD8 @ =gUnknown_02024C4C - mov r2, r9 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strh r1, [r0] -_08021F82: - ldr r2, _08021FDC @ =gUnknown_02024C08 - ldrb r3, [r2] - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - lsls r0, 28 - ldr r1, [r5] - ands r1, r0 - cmp r1, 0 - bne _08021FA0 - ldr r0, _08021FE0 @ =gUnknown_02024C5C - adds r0, r3, r0 - mov r3, r9 - ldrb r1, [r3] - strb r1, [r0] -_08021FA0: - ldr r0, [r5] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0802204C - ldr r0, _08021FE4 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0802204C - ldrh r2, [r7] - ldr r0, _08021FD4 @ =0x0000ffff - cmp r2, r0 - bne _08021FEC - ldr r1, _08021FE8 @ =gUnknown_02024C3C - ldr r4, _08021FDC @ =gUnknown_02024C08 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - strh r2, [r0] - b _08022244 - .align 2, 0 -_08021FD0: .4byte gUnknown_02024C34 -_08021FD4: .4byte 0x0000ffff -_08021FD8: .4byte gUnknown_02024C4C -_08021FDC: .4byte gUnknown_02024C08 -_08021FE0: .4byte gUnknown_02024C5C -_08021FE4: .4byte gUnknown_02024C68 -_08021FE8: .4byte gUnknown_02024C3C -_08021FEC: - ldr r0, _08022014 @ =gUnknown_02024C3C - ldr r5, _08022018 @ =gUnknown_02024C08 - ldrb r1, [r5] - lsls r1, 1 - adds r1, r0 - ldr r4, _0802201C @ =gUnknown_02024BE6 - ldrh r0, [r4] - strh r0, [r1] - ldr r0, _08022020 @ =0x0001601c - add r0, r12 - ldrb r3, [r0] - cmp r3, 0 - beq _08022028 - ldr r0, _08022024 @ =gUnknown_02024C44 - ldrb r1, [r5] - lsls r1, 1 - adds r1, r0 - movs r0, 0x3F - ands r0, r3 - b _08021C22 - .align 2, 0 -_08022014: .4byte gUnknown_02024C3C -_08022018: .4byte gUnknown_02024C08 -_0802201C: .4byte gUnknown_02024BE6 -_08022020: .4byte 0x0001601c -_08022024: .4byte gUnknown_02024C44 -_08022028: - ldr r0, _08022044 @ =gUnknown_02024C44 - ldr r1, _08022048 @ =gUnknown_02024C08 - ldrb r2, [r1] - lsls r2, 1 - adds r2, r0 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x2] - strh r0, [r2] - b _08022244 - .align 2, 0 -_08022044: .4byte gUnknown_02024C44 -_08022048: .4byte gUnknown_02024C08 -_0802204C: - ldr r0, _0802205C @ =gUnknown_02024C3C - ldr r2, _08022060 @ =gUnknown_02024C08 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldr r0, _08022064 @ =0x0000ffff - b _08021C22 - .align 2, 0 -_0802205C: .4byte gUnknown_02024C3C -_08022060: .4byte gUnknown_02024C08 -_08022064: .4byte 0x0000ffff -_08022068: - ldr r0, _0802212C @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r6, _08022130 @ =gBitTable - ldr r2, _08022134 @ =gUnknown_02024C07 - ldrb r5, [r2] - lsls r0, r5, 2 - adds r0, r6 - ldr r4, [r0] - ands r1, r4 - mov r9, r2 - cmp r1, 0 - beq _08022082 - b _08022244 -_08022082: - ldr r0, _08022138 @ =0x000160a6 - add r0, r12 - ldrb r0, [r0] - ands r0, r4 - cmp r0, 0 - beq _08022090 - b _08022244 -_08022090: - ldr r1, _0802213C @ =gBattleMoves - ldr r4, _08022140 @ =gUnknown_02024BE8 - ldrh r3, [r4] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x8] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0802215C - ldr r0, _08022144 @ =gUnknown_02024C6C - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 18 - ands r0, r1 - cmp r0, 0 - beq _0802215C - ldr r2, _08022148 @ =gUnknown_02024C08 - ldrb r0, [r2] - cmp r5, r0 - bne _080220C0 - b _08022244 -_080220C0: - adds r2, r0, 0 - lsls r0, r2, 2 - adds r0, r6 - ldr r0, [r0] - lsls r0, 28 - ands r1, r0 - cmp r1, 0 - bne _0802215C - ldr r0, _0802214C @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _0802215C - lsls r0, r2, 1 - ldr r5, _08022150 @ =0x000160ac - adds r0, r5 - add r0, r12 - strb r3, [r0] - ldr r0, _08022148 @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r1, 1 - ldr r2, _08022154 @ =0x000160ad - adds r1, r2 - add r1, r12 - ldrh r0, [r4] - lsrs r0, 8 - strb r0, [r1] - ldr r3, _08022148 @ =gUnknown_02024C08 - ldrb r2, [r3] - lsls r2, 2 - mov r5, r9 - ldrb r0, [r5] - lsrs r0, 1 - lsls r0, 1 - ldr r1, _08022158 @ =0x00016100 - adds r0, r1 - adds r2, r0 - add r2, r12 - ldrh r0, [r4] - strb r0, [r2] - ldrb r2, [r3] - lsls r2, 2 - ldrb r0, [r5] - lsrs r0, 1 - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - adds r2, r0 - add r2, r12 - ldrh r0, [r4] - lsrs r0, 8 - strb r0, [r2] - b _08022244 - .align 2, 0 -_0802212C: .4byte gUnknown_02024C0C -_08022130: .4byte gBitTable -_08022134: .4byte gUnknown_02024C07 -_08022138: .4byte 0x000160a6 -_0802213C: .4byte gBattleMoves -_08022140: .4byte gUnknown_02024BE8 -_08022144: .4byte gUnknown_02024C6C -_08022148: .4byte gUnknown_02024C08 -_0802214C: .4byte gUnknown_02024C68 -_08022150: .4byte 0x000160ac -_08022154: .4byte 0x000160ad -_08022158: .4byte 0x00016100 -_0802215C: - mov r1, r9 - ldrb r0, [r1] - ldr r2, _080221B4 @ =gUnknown_02024C08 - ldrb r2, [r2] - cmp r0, r2 - beq _08022244 - ldr r3, _080221B4 @ =gUnknown_02024C08 - ldrb r0, [r3] - lsls r0, 1 - ldr r4, _080221B8 @ =0x000160ac - adds r0, r4 - add r0, r12 - movs r3, 0 - strb r3, [r0] - ldr r5, _080221B4 @ =gUnknown_02024C08 - ldrb r0, [r5] - lsls r0, 1 - ldr r1, _080221BC @ =0x000160ad - adds r0, r1 - add r0, r12 - strb r3, [r0] - ldrb r2, [r5] - lsls r2, 2 - mov r4, r9 - ldrb r0, [r4] - lsrs r0, 1 - lsls r0, 1 - adds r1, 0x53 - adds r0, r1 - adds r2, r0 - add r2, r12 - strb r3, [r2] - ldrb r2, [r5] - lsls r2, 2 - ldrb r0, [r4] - lsrs r0, 1 - lsls r0, 1 - adds r1, 0x1 - adds r0, r1 - adds r2, r0 - add r2, r12 - strb r3, [r2] - b _08022244 - .align 2, 0 -_080221B4: .4byte gUnknown_02024C08 -_080221B8: .4byte 0x000160ac -_080221BC: .4byte 0x000160ad -_080221C0: - ldr r5, _080222B0 @ =gUnknown_02024C6C - ldr r2, [r5] - movs r0, 0x80 - lsls r0, 12 - ands r0, r2 - cmp r0, 0 - bne _08022244 - ldr r0, _080222B4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08022244 - ldr r1, _080222B8 @ =gUnknown_02024D28 - ldr r0, _080222BC @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 29 - cmp r0, 0 - blt _08022244 - ldr r0, _080222C0 @ =gBattleMoves - mov r9, r0 - ldr r1, _080222C4 @ =gUnknown_02024BE6 - mov r8, r1 - ldrh r0, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r0, [r1, 0x6] - cmp r0, 0x8 - bne _08022244 - movs r6, 0x80 - lsls r6, 2 - adds r4, r6, 0 - ands r4, r2 - cmp r4, 0 - bne _08022244 - ldr r7, _080222C8 @ =gUnknown_02024C08 - ldrb r0, [r7] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _080222CC @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _0802223A - bl _08021874 -_0802223A: - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - ldr r2, _080222D0 @ =0x02000000 - mov r12, r2 -_08022244: - ldr r1, _080222D4 @ =0x0001600c - add r1, r12 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0802224E: - ldr r3, [sp, 0x10] - cmp r3, 0x1 - bne _08022262 - mov r4, r10 - cmp r4, 0 - bne _08022262 - ldr r1, _080222D4 @ =0x0001600c - add r1, r12 - movs r0, 0x11 - strb r0, [r1] -_08022262: - ldr r5, [sp, 0x10] - cmp r5, 0x2 - bne _08022278 - ldr r1, _080222D4 @ =0x0001600c - add r1, r12 - ldr r0, [sp, 0x14] - ldrb r2, [r1] - cmp r0, r2 - bne _08022278 - movs r0, 0x11 - strb r0, [r1] -_08022278: - ldr r0, _080222D4 @ =0x0001600c - add r0, r12 - ldrb r0, [r0] - cmp r0, 0x11 - beq _08022286 - bl _080218E4 -_08022286: - ldr r0, _080222D4 @ =0x0001600c - add r0, r12 - ldrb r0, [r0] - cmp r0, 0x11 - bne _0802229E - mov r3, r10 - cmp r3, 0 - bne _0802229E - ldr r1, _080222D8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x3 -_0802229C: - str r0, [r1] -_0802229E: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080222B0: .4byte gUnknown_02024C6C -_080222B4: .4byte gUnknown_020239F8 -_080222B8: .4byte gUnknown_02024D28 -_080222BC: .4byte gUnknown_02024C07 -_080222C0: .4byte gBattleMoves -_080222C4: .4byte gUnknown_02024BE6 -_080222C8: .4byte gUnknown_02024C08 -_080222CC: .4byte gBattleMons -_080222D0: .4byte 0x02000000 -_080222D4: .4byte 0x0001600c -_080222D8: .4byte gUnknown_02024C10 - thumb_func_end sub_80217F8 - - thumb_func_start atk4A_damageflags -atk4A_damageflags: @ 80222DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - movs r5, 0 - ldr r2, _08022340 @ =gBattleMoves - ldr r0, _08022344 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - mov r8, r0 - ldr r2, _08022348 @ =gBattleMons - ldr r3, _0802234C @ =gUnknown_02024C08 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r12, r2 - adds r7, r3, 0 - cmp r0, 0x1A - bne _08022370 - mov r1, r8 - cmp r1, 0x4 - bne _08022370 - ldr r3, _08022350 @ =byte_2024C06 - strb r0, [r3] - ldr r2, _08022354 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x9 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08022358 @ =gUnknown_02024C3C - ldrb r0, [r7] - lsls r0, 1 - adds r0, r1 - strh r4, [r0] - ldr r0, _0802235C @ =gUnknown_02024D1E - mov r2, r8 - strb r2, [r0, 0x6] - ldrb r0, [r7] - ldrb r1, [r3] - bl sub_81074C4 - b _08022452 - .align 2, 0 -_08022340: .4byte gBattleMoves -_08022344: .4byte gUnknown_02024BE6 -_08022348: .4byte gBattleMons -_0802234C: .4byte gUnknown_02024C08 -_08022350: .4byte byte_2024C06 -_08022354: .4byte gUnknown_02024C68 -_08022358: .4byte gUnknown_02024C3C -_0802235C: .4byte gUnknown_02024D1E -_08022360: - ldr r0, _0802236C @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - b _08022452 - .align 2, 0 -_0802236C: .4byte gUnknown_02024C68 -_08022370: - ldr r1, _0802237C @ =gTypeEffectiveness - adds r0, r5, r1 - ldrb r0, [r0] - adds r6, r1, 0 - b _08022432 - .align 2, 0 -_0802237C: .4byte gTypeEffectiveness -_08022380: - adds r0, r5, r6 - ldrb r0, [r0] - cmp r0, r8 - bne _0802242C - adds r2, r5, 0x1 - adds r3, r2, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r0, 0x21 - ldrb r1, [r3] - adds r3, r2, 0 - ldrb r0, [r0] - cmp r1, r0 - bne _080223BE - adds r0, r5, 0x2 - adds r0, r6 - ldrb r1, [r0] - cmp r1, 0 - beq _08022360 - cmp r1, 0x5 - bne _080223B2 - movs r0, 0x4 - orrs r4, r0 -_080223B2: - cmp r1, 0x14 - bne _080223BE - movs r0, 0x2 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_080223BE: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0802242C - adds r0, 0x21 - ldrb r1, [r0] - cmp r1, r2 - beq _080223E6 - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0 - beq _08022360 -_080223E6: - cmp r1, r2 - beq _080223FC - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x5 - bne _080223FC - movs r0, 0x4 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_080223FC: - adds r2, r3, r6 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x22 - ldrb r2, [r2] - ldrb r1, [r1] - cmp r2, r1 - bne _0802242C - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, r2 - beq _0802242C - adds r0, r5, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x14 - bne _0802242C - movs r0, 0x2 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r4, r0, 24 -_0802242C: - adds r5, 0x3 - adds r0, r5, r6 - ldrb r0, [r0] -_08022432: - cmp r0, 0xFF - beq _08022452 - cmp r0, 0xFE - bne _08022380 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - mov r1, r12 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 22 - ands r0, r1 - cmp r0, 0 - beq _0802242C -_08022452: - ldr r2, _08022500 @ =gBattleMons - ldr r0, _08022504 @ =gUnknown_02024C08 - mov r8, r0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r6, [r0] - cmp r6, 0x19 - bne _080224CE - movs r5, 0x29 - ands r5, r4 - cmp r5, 0 - bne _080224CE - ldr r0, _08022508 @ =gUnknown_02024C07 - ldrb r0, [r0] - ldr r7, _0802250C @ =gUnknown_02024BE6 - ldrh r1, [r7] - bl move_weather_interaction - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _080224CE - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08022494 - movs r0, 0x6 - ands r4, r0 - cmp r4, 0x6 - bne _080224CE -_08022494: - ldr r2, _08022510 @ =gBattleMoves - ldrh r1, [r7] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _080224CE - ldr r3, _08022514 @ =byte_2024C06 - strb r6, [r3] - ldr r2, _08022518 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0802251C @ =gUnknown_02024C3C - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - strh r5, [r0] - ldr r1, _08022520 @ =gUnknown_02024D1E - movs r0, 0x3 - strb r0, [r1, 0x6] - ldrb r0, [r2] - ldrb r1, [r3] - bl sub_81074C4 -_080224CE: - ldr r0, _08022518 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080224EC - ldr r2, _08022524 @ =gUnknown_02024D28 - ldr r0, _08022508 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 4 - adds r1, r2 - ldrb r0, [r1, 0x1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1, 0x1] -_080224EC: - ldr r1, _08022528 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08022500: .4byte gBattleMons -_08022504: .4byte gUnknown_02024C08 -_08022508: .4byte gUnknown_02024C07 -_0802250C: .4byte gUnknown_02024BE6 -_08022510: .4byte gBattleMoves -_08022514: .4byte byte_2024C06 -_08022518: .4byte gUnknown_02024C68 -_0802251C: .4byte gUnknown_02024C3C -_08022520: .4byte gUnknown_02024D1E -_08022524: .4byte gUnknown_02024D28 -_08022528: .4byte gUnknown_02024C10 - thumb_func_end atk4A_damageflags - - thumb_func_start atk4B_cmd4b -atk4B_cmd4b: @ 802252C - push {r4,lr} - ldr r4, _08022568 @ =gUnknown_02024A60 - ldr r0, _0802256C @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r4] - ldr r2, _08022570 @ =gUnknown_02024C6C - ldr r1, _08022574 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _0802255A - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0802255A: - ldr r1, _08022578 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08022568: .4byte gUnknown_02024A60 -_0802256C: .4byte gUnknown_02024C07 -_08022570: .4byte gUnknown_02024C6C -_08022574: .4byte gBitTable -_08022578: .4byte gUnknown_02024C10 - thumb_func_end atk4B_cmd4b - - thumb_func_start atk4C_switch1 -atk4C_switch1: @ 802257C - push {r4-r6,lr} - ldr r0, _080225D4 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _080225CC - ldr r5, _080225D8 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _080225DC @ =gUnknown_02024A60 - strb r0, [r4] - ldr r3, _080225E0 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r3 - ldr r2, _080225E4 @ =0x02000000 - ldr r6, _080225E8 @ =0x00016068 - adds r0, r6 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1] - ldr r1, _080225EC @ =gBitTable - ldrb r0, [r4] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldrb r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_080225CC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080225D4: .4byte gUnknown_02024A64 -_080225D8: .4byte gUnknown_02024C10 -_080225DC: .4byte gUnknown_02024A60 -_080225E0: .4byte gUnknown_02024A6A -_080225E4: .4byte 0x02000000 -_080225E8: .4byte 0x00016068 -_080225EC: .4byte gBitTable - thumb_func_end atk4C_switch1 - - thumb_func_start sub_80225F0 -sub_80225F0: @ 80225F0 - push {r4-r7,lr} - sub sp, 0x58 - ldr r0, _0802274C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _080225FE - b _08022744 -_080225FE: - ldr r0, _08022750 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _08022754 @ =gUnknown_02024A60 - strb r0, [r4] - ldr r6, _08022758 @ =gBattleMons - ldrb r0, [r4] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - mov r0, sp - movs r2, 0x58 - bl memcpy - ldrb r0, [r4] - muls r0, r5 - adds r3, r0, r6 - movs r2, 0 - ldr r5, _0802275C @ =gUnknown_02024260 - adds r7, r4, 0 -_0802262C: - adds r0, r3, r2 - ldrb r1, [r4] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r5 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x57 - bls _0802262C - ldr r4, _08022758 @ =gBattleMons - ldrb r0, [r7] - movs r6, 0x58 - adds r2, r0, 0 - muls r2, r6 - adds r2, r4 - ldr r3, _08022760 @ =gBaseStats - ldrh r1, [r2] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x6] - adds r2, 0x21 - strb r0, [r2] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - adds r1, r4 - ldrh r2, [r1] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x7] - adds r1, 0x22 - strb r0, [r1] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - adds r1, r4 - ldrh r0, [r1] - ldrb r1, [r1, 0x17] - lsrs r1, 7 - bl GetAbilityBySpecies - ldrb r1, [r7] - muls r1, r6 - adds r1, r4 - adds r1, 0x20 - strb r0, [r1] - ldrb r0, [r7] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08022764 @ =gUnknown_02024DBC - adds r0, 0x29 - adds r0, r2, r0 - ldrb r1, [r0] - ldr r3, _08022768 @ =gBitTable - ldr r2, _0802276C @ =gUnknown_02024A6A - ldrb r5, [r7] - lsls r0, r5, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - mov r12, r4 - cmp r1, 0 - beq _080226CA - adds r0, r5, 0 - muls r0, r6 - add r0, r12 - movs r1, 0 - strh r1, [r0, 0x2E] -_080226CA: - ldr r2, _08022770 @ =gBattleMoves - ldr r0, _08022774 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x7F - bne _08022710 - movs r2, 0 - adds r4, r7, 0 - movs r6, 0x58 - mov r5, r12 - adds r5, 0x18 - add r3, sp, 0x18 -_080226EA: - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r6 - adds r1, r2, r1 - adds r1, r5 - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _080226EA - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - mov r1, r12 - adds r1, 0x50 - adds r0, r1 - ldr r1, [sp, 0x50] - str r1, [r0] -_08022710: - bl sub_8010B88 - ldr r0, _08022778 @ =0x02000000 - ldr r3, _08022754 @ =gUnknown_02024A60 - ldrb r2, [r3] - ldr r1, _0802277C @ =0x00016003 - adds r0, r1 - strb r2, [r0] - ldr r1, _08022780 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, _0802276C @ =gUnknown_02024A6A - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08022750 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08022744: - add sp, 0x58 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802274C: .4byte gUnknown_02024A64 -_08022750: .4byte gUnknown_02024C10 -_08022754: .4byte gUnknown_02024A60 -_08022758: .4byte gBattleMons -_0802275C: .4byte gUnknown_02024260 -_08022760: .4byte gBaseStats -_08022764: .4byte gUnknown_02024DBC -_08022768: .4byte gBitTable -_0802276C: .4byte gUnknown_02024A6A -_08022770: .4byte gBattleMoves -_08022774: .4byte gUnknown_02024BE6 -_08022778: .4byte 0x02000000 -_0802277C: .4byte 0x00016003 -_08022780: .4byte gUnknown_030041C0 - thumb_func_end sub_80225F0 - - thumb_func_start sub_8022784 -sub_8022784: @ 8022784 - push {r4,r5,lr} - ldr r0, _0802280C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08022806 - ldr r0, _08022810 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _08022814 @ =gUnknown_02024A60 - strb r0, [r4] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080227D0 - ldr r0, _08022818 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0802281C @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _080227D0 - ldr r2, _08022820 @ =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x2 - bl sub_8090D90 -_080227D0: - ldr r2, _08022824 @ =gUnknown_02024C0C - ldr r1, _08022828 @ =gBitTable - ldr r5, _08022814 @ =gUnknown_02024A60 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - ldr r1, _0802282C @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrb r1, [r0] - ldr r4, _08022810 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r2, [r0, 0x2] - movs r0, 0 - bl sub_800C704 - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] -_08022806: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802280C: .4byte gUnknown_02024A64 -_08022810: .4byte gUnknown_02024C10 -_08022814: .4byte gUnknown_02024A60 -_08022818: .4byte gUnknown_020239F8 -_0802281C: .4byte 0x00000902 -_08022820: .4byte gBattleMons -_08022824: .4byte gUnknown_02024C0C -_08022828: .4byte gBitTable -_0802282C: .4byte gUnknown_02024A6A - thumb_func_end sub_8022784 - - thumb_func_start sub_8022830 -sub_8022830: @ 8022830 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _08022894 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - movs r0, 0x7F - ands r0, r1 - bl sub_8015150 - ldr r3, _08022898 @ =gUnknown_02024A60 - strb r0, [r3] - ldr r2, [r4] - ldrb r1, [r2, 0x1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080228A8 - ldr r1, _0802289C @ =gBattleMons - ldrb r3, [r3] - movs r0, 0x58 - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080228A0 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _0802287C - ldr r1, _080228A4 @ =gUnknown_02024C98 - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 3 - ands r0, r1 - cmp r0, 0 - beq _080228A8 -_0802287C: - 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, [r4] - b _08022A2C - .align 2, 0 -_08022894: .4byte gUnknown_02024C10 -_08022898: .4byte gUnknown_02024A60 -_0802289C: .4byte gBattleMons -_080228A0: .4byte 0x0400e000 -_080228A4: .4byte gUnknown_02024C98 -_080228A8: - ldr r5, _08022934 @ =gUnknown_020239F8 - ldrh r1, [r5] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08022948 - ldr r4, _08022938 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0802293C @ =gPlayerParty - mov r8, r1 - cmp r0, 0x1 - bne _080228CC - ldr r0, _08022940 @ =gEnemyParty - mov r8, r0 -_080228CC: - movs r5, 0 - ldrb r0, [r4] - bl sub_803FC34 - lsls r0, 24 - lsrs r0, 24 - bl sub_803FBFC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _080228E6 - movs r5, 0x3 -_080228E6: - adds r6, r5, 0x3 - cmp r5, r6 - bge _0802292E - ldr r7, _08022944 @ =gUnknown_02024A6A -_080228EE: - movs r0, 0x64 - muls r0, r5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _08022928 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _08022928 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08022928 - ldr r0, _08022938 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r5 - bne _0802292E -_08022928: - adds r5, 0x1 - cmp r5, r6 - blt _080228EE -_0802292E: - cmp r5, r6 - beq _080229FC - b _08022A24 - .align 2, 0 -_08022934: .4byte gUnknown_020239F8 -_08022938: .4byte gUnknown_02024A60 -_0802293C: .4byte gPlayerParty -_08022940: .4byte gEnemyParty -_08022944: .4byte gUnknown_02024A6A -_08022948: - ldr r0, _08022978 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _08022988 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r1, [r5] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0802297C - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - b _0802297E - .align 2, 0 -_08022978: .4byte gUnknown_02024A60 -_0802297C: - adds r6, r7, 0 -_0802297E: - ldr r0, _08022984 @ =gEnemyParty - mov r8, r0 - b _080229AE - .align 2, 0 -_08022984: .4byte gEnemyParty -_08022988: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080229A8 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - b _080229AA -_080229A8: - adds r6, r7, 0 -_080229AA: - ldr r1, _08022A18 @ =gPlayerParty - mov r8, r1 -_080229AE: - movs r5, 0 -_080229B0: - 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 _080229F2 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080229F2 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080229F2 - ldr r1, _08022A1C @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080229F2 - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - bne _080229F8 -_080229F2: - adds r5, 0x1 - cmp r5, 0x5 - ble _080229B0 -_080229F8: - cmp r5, 0x6 - bne _08022A24 -_080229FC: - ldr r3, _08022A20 @ =gUnknown_02024C10 - ldr r2, [r3] - 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 _08022A2C - .align 2, 0 -_08022A18: .4byte gPlayerParty -_08022A1C: .4byte gUnknown_02024A6A -_08022A20: .4byte gUnknown_02024C10 -_08022A24: - ldr r1, _08022A38 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] -_08022A2C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08022A38: .4byte gUnknown_02024C10 - thumb_func_end sub_8022830 - - thumb_func_start sub_8022A3C -sub_8022A3C: @ 8022A3C - push {r4,r5,lr} - sub sp, 0x4 - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - ldr r4, _08022A84 @ =0x02000000 - ldr r5, _08022A88 @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r3, _08022A8C @ =0x00016064 - adds r1, r0, r3 - adds r1, r4 - ldr r3, _08022A90 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _08022A94 @ =0x0001606c - adds r4, r1 - adds r0, r4 - str r0, [sp] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08022A84: .4byte 0x02000000 -_08022A88: .4byte gUnknown_02024A60 -_08022A8C: .4byte 0x00016064 -_08022A90: .4byte gUnknown_02024A6A -_08022A94: .4byte 0x0001606c - thumb_func_end sub_8022A3C - - thumb_func_start atk50_openpartyscreen -atk50_openpartyscreen: @ 8022A98 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r6, _08022B44 @ =gUnknown_02024C10 - ldr r1, [r6] - ldrb r2, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - orrs r2, r0 - mov r8, r2 - ldrb r2, [r1, 0x1] - adds r0, r2, 0 - mov r12, r6 - cmp r0, 0x5 - beq _08022ACE - b _08022F74 -_08022ACE: - ldr r0, _08022B48 @ =gUnknown_020239F8 - ldrh r0, [r0] - movs r1, 0x41 - ands r1, r0 - cmp r1, 0x1 - beq _08022BBC - ldr r1, _08022B4C @ =gUnknown_02024A60 - strb r7, [r1] - ldr r0, _08022B50 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r7, r0 - bcc _08022AE8 - b _08022F62 -_08022AE8: - ldr r7, _08022B54 @ =gUnknown_02024C6C - ldr r6, _08022B58 @ =gBitTable - adds r4, r1, 0 - ldr r0, _08022B5C @ =gUnknown_02024C0C - mov r8, r0 -_08022AF2: - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - ands r0, r1 - cmp r0, 0 - beq _08022B94 - adds r0, r2, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _08022B60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - mov r2, r8 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08022BA2 - .align 2, 0 -_08022B44: .4byte gUnknown_02024C10 -_08022B48: .4byte gUnknown_020239F8 -_08022B4C: .4byte gUnknown_02024A60 -_08022B50: .4byte gUnknown_02024A68 -_08022B54: .4byte gUnknown_02024C6C -_08022B58: .4byte gBitTable -_08022B5C: .4byte gUnknown_02024C0C -_08022B60: - ldr r5, _08022B90 @ =gUnknown_02024D68 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _08022BA2 - movs r0, 0x6 - bl sub_8022A3C - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08022BA2 - .align 2, 0 -_08022B90: .4byte gUnknown_02024D68 -_08022B94: - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08022BA2: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08022BB8 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08022AF2 - b _08022F62 - .align 2, 0 -_08022BB8: .4byte gUnknown_02024A68 -_08022BBC: - ands r1, r0 - cmp r1, 0 - bne _08022BC4 - b _08022F62 -_08022BC4: - ldr r0, _08022C1C @ =gUnknown_02024C6C - mov r8, r0 - ldr r0, [r0] - lsrs r5, r0, 28 - ldr r6, _08022C20 @ =gBitTable - ldr r0, [r6] - ands r0, r5 - cmp r0, 0 - beq _08022C7E - ldr r4, _08022C24 @ =gUnknown_02024A60 - strb r7, [r4] - movs r0, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _08022C2C - ldr r2, _08022C28 @ =gUnknown_02024C0C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - mov r2, r8 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08022C7E - .align 2, 0 -_08022C1C: .4byte gUnknown_02024C6C -_08022C20: .4byte gBitTable -_08022C24: .4byte gUnknown_02024A60 -_08022C28: .4byte gUnknown_02024C0C -_08022C2C: - ldr r6, _08022C60 @ =gUnknown_02024D68 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _08022C6C - ldr r0, _08022C64 @ =0x02000000 - ldr r1, _08022C68 @ =0x0001606a - adds r0, r1 - ldrb r0, [r0] - bl sub_8022A3C - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08022C7E - .align 2, 0 -_08022C60: .4byte gUnknown_02024D68 -_08022C64: .4byte 0x02000000 -_08022C68: .4byte 0x0001606a -_08022C6C: - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - movs r2, 0x1 - mov r9, r2 -_08022C7E: - ldr r6, _08022CD8 @ =gBitTable - ldr r0, [r6, 0x8] - ands r0, r5 - cmp r0, 0 - beq _08022D40 - ldr r0, [r6] - ands r0, r5 - cmp r0, 0 - bne _08022D40 - ldr r4, _08022CDC @ =gUnknown_02024A60 - movs r0, 0x2 - strb r0, [r4] - movs r0, 0x2 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _08022CE8 - ldr r2, _08022CE0 @ =gUnknown_02024C0C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _08022CE4 @ =gUnknown_02024C6C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08022D40 - .align 2, 0 -_08022CD8: .4byte gBitTable -_08022CDC: .4byte gUnknown_02024A60 -_08022CE0: .4byte gUnknown_02024C0C -_08022CE4: .4byte gUnknown_02024C6C -_08022CE8: - ldr r6, _08022D1C @ =gUnknown_02024D68 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _08022D28 - ldr r0, _08022D20 @ =0x02000000 - ldr r1, _08022D24 @ =0x00016068 - adds r0, r1 - ldrb r0, [r0] - bl sub_8022A3C - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08022D40 - .align 2, 0 -_08022D1C: .4byte gUnknown_02024D68 -_08022D20: .4byte 0x02000000 -_08022D24: .4byte 0x00016068 -_08022D28: - movs r0, 0x1 - mov r2, r9 - ands r0, r2 - cmp r0, 0 - bne _08022D40 - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08022D40: - ldr r6, _08022D90 @ =gBitTable - ldr r0, [r6, 0x4] - ands r0, r5 - cmp r0, 0 - beq _08022DF6 - ldr r4, _08022D94 @ =gUnknown_02024A60 - movs r0, 0x1 - strb r0, [r4] - movs r0, 0x1 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _08022DA0 - ldr r2, _08022D98 @ =gUnknown_02024C0C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _08022D9C @ =gUnknown_02024C6C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08022DF6 - .align 2, 0 -_08022D90: .4byte gBitTable -_08022D94: .4byte gUnknown_02024A60 -_08022D98: .4byte gUnknown_02024C0C -_08022D9C: .4byte gUnknown_02024C6C -_08022DA0: - ldr r6, _08022DD4 @ =gUnknown_02024D68 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _08022DE0 - ldr r0, _08022DD8 @ =0x02000000 - ldr r1, _08022DDC @ =0x0001606b - adds r0, r1 - ldrb r0, [r0] - bl sub_8022A3C - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08022DF6 - .align 2, 0 -_08022DD4: .4byte gUnknown_02024D68 -_08022DD8: .4byte 0x02000000 -_08022DDC: .4byte 0x0001606b -_08022DE0: - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - movs r0, 0x2 - mov r2, r9 - orrs r2, r0 - mov r9, r2 -_08022DF6: - ldr r6, _08022E50 @ =gBitTable - ldr r0, [r6, 0xC] - ands r0, r5 - cmp r0, 0 - beq _08022EB8 - ldr r0, [r6, 0x4] - ands r0, r5 - cmp r0, 0 - bne _08022EB8 - ldr r4, _08022E54 @ =gUnknown_02024A60 - movs r0, 0x3 - strb r0, [r4] - movs r0, 0x3 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _08022E60 - ldr r2, _08022E58 @ =gUnknown_02024C0C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _08022E5C @ =gUnknown_02024C6C - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _08022EB8 - .align 2, 0 -_08022E50: .4byte gBitTable -_08022E54: .4byte gUnknown_02024A60 -_08022E58: .4byte gUnknown_02024C0C -_08022E5C: .4byte gUnknown_02024C6C -_08022E60: - ldr r6, _08022E94 @ =gUnknown_02024D68 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _08022EA0 - ldr r0, _08022E98 @ =0x02000000 - ldr r1, _08022E9C @ =0x00016069 - adds r0, r1 - ldrb r0, [r0] - bl sub_8022A3C - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08022EB8 - .align 2, 0 -_08022E94: .4byte gUnknown_02024D68 -_08022E98: .4byte 0x02000000 -_08022E9C: .4byte 0x00016069 -_08022EA0: - movs r0, 0x2 - mov r2, r9 - ands r2, r0 - cmp r2, 0 - bne _08022EB8 - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08022EB8: - ldr r1, _08022EE8 @ =gUnknown_02024D68 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _08022F0C - adds r0, r1, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _08022F0C - cmp r5, 0 - beq _08022F0C - ldr r0, _08022EEC @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r0, _08022EF0 @ =gBitTable - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08022EF8 - ldr r1, _08022EF4 @ =gUnknown_02024A60 - movs r0, 0x2 - strb r0, [r1] - b _08022EFC - .align 2, 0 -_08022EE8: .4byte gUnknown_02024D68 -_08022EEC: .4byte gUnknown_02024C0C -_08022EF0: .4byte gBitTable -_08022EF4: .4byte gUnknown_02024A60 -_08022EF8: - ldr r0, _08022F3C @ =gUnknown_02024A60 - strb r1, [r0] -_08022EFC: - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldr r0, _08022F3C @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_08022F0C: - ldr r1, _08022F40 @ =gUnknown_02024D68 - ldrb r0, [r1, 0x14] - lsls r0, 25 - cmp r0, 0 - blt _08022F62 - adds r0, r1, 0 - adds r0, 0x3C - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - blt _08022F62 - cmp r5, 0 - beq _08022F62 - ldr r0, _08022F44 @ =gUnknown_02024C0C - ldrb r0, [r0] - ldr r1, _08022F48 @ =gBitTable - ldr r1, [r1, 0x4] - ands r0, r1 - cmp r0, 0 - beq _08022F4C - ldr r1, _08022F3C @ =gUnknown_02024A60 - movs r0, 0x3 - b _08022F50 - .align 2, 0 -_08022F3C: .4byte gUnknown_02024A60 -_08022F40: .4byte gUnknown_02024D68 -_08022F44: .4byte gUnknown_02024C0C -_08022F48: .4byte gBitTable -_08022F4C: - ldr r1, _08022F6C @ =gUnknown_02024A60 - movs r0, 0x1 -_08022F50: - strb r0, [r1] - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldr r0, _08022F6C @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution -_08022F62: - ldr r1, _08022F70 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - b _08023302 - .align 2, 0 -_08022F6C: .4byte gUnknown_02024A60 -_08022F70: .4byte gUnknown_02024C10 -_08022F74: - cmp r0, 0x6 - beq _08022F7A - b _08023170 -_08022F7A: - ldr r0, _08022FF0 @ =gUnknown_020239F8 - ldrh r2, [r0] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _08022F88 - b _0802310C -_08022F88: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _08022F92 - b _0802310C -_08022F92: - ldr r7, _08022FF4 @ =gUnknown_02024C6C - ldr r0, [r7] - lsrs r5, r0, 28 - ldr r4, _08022FF8 @ =gBitTable - ldr r0, [r4, 0x8] - ands r0, r5 - cmp r0, 0 - beq _0802303A - ldr r0, [r4] - ands r0, r5 - cmp r0, 0 - beq _0802303A - ldr r6, _08022FFC @ =gUnknown_02024A60 - movs r0, 0x2 - strb r0, [r6] - ldr r0, _08023000 @ =gUnknown_02024260 - ldrb r1, [r0, 0x1] - movs r0, 0x2 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _08023008 - ldr r2, _08023004 @ =gUnknown_02024C0C - ldrb r0, [r6] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r6] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r7] - bics r0, r1 - str r0, [r7] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - b _0802303A - .align 2, 0 -_08022FF0: .4byte gUnknown_020239F8 -_08022FF4: .4byte gUnknown_02024C6C -_08022FF8: .4byte gBitTable -_08022FFC: .4byte gUnknown_02024A60 -_08023000: .4byte gUnknown_02024260 -_08023004: .4byte gUnknown_02024C0C -_08023008: - ldr r4, _08023098 @ =gUnknown_02024D68 - ldrb r0, [r6] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _0802303A - ldr r0, _0802309C @ =0x02000000 - ldr r1, _080230A0 @ =0x00016068 - adds r0, r1 - ldrb r0, [r0] - bl sub_8022A3C - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_0802303A: - ldr r4, _080230A4 @ =gBitTable - ldr r0, [r4, 0xC] - ands r0, r5 - cmp r0, 0 - beq _080230EE - ldr r0, [r4, 0x4] - ands r5, r0 - cmp r5, 0 - beq _080230EE - ldr r5, _080230A8 @ =gUnknown_02024A60 - movs r0, 0x3 - strb r0, [r5] - ldr r0, _080230AC @ =gUnknown_02024260 - ldr r2, _080230B0 @ =0x00000201 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x3 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _080230BC - ldr r2, _080230B4 @ =gUnknown_02024C0C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldr r2, _080230B8 @ =gUnknown_02024C6C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x2A_2A_2A_2A - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - b _080230EE - .align 2, 0 -_08023098: .4byte gUnknown_02024D68 -_0802309C: .4byte 0x02000000 -_080230A0: .4byte 0x00016068 -_080230A4: .4byte gBitTable -_080230A8: .4byte gUnknown_02024A60 -_080230AC: .4byte gUnknown_02024260 -_080230B0: .4byte 0x00000201 -_080230B4: .4byte gUnknown_02024C0C -_080230B8: .4byte gUnknown_02024C6C -_080230BC: - ldr r4, _080230FC @ =gUnknown_02024D68 - ldrb r0, [r5] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 25 - cmp r0, 0 - blt _080230EE - ldr r0, _08023100 @ =0x02000000 - ldr r1, _08023104 @ =0x00016069 - adds r0, r1 - ldrb r0, [r0] - bl sub_8022A3C - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] -_080230EE: - ldr r1, _08023108 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] - mov r12, r1 - b _08023110 - .align 2, 0 -_080230FC: .4byte gUnknown_02024D68 -_08023100: .4byte 0x02000000 -_08023104: .4byte 0x00016069 -_08023108: .4byte gUnknown_02024C10 -_0802310C: - adds r0, r1, 0x6 - str r0, [r6] -_08023110: - ldr r0, _08023160 @ =gUnknown_02024C6C - ldr r0, [r0] - lsrs r5, r0, 28 - ldr r1, _08023164 @ =gUnknown_02024C09 - movs r0, 0 - strb r0, [r1] - ldr r4, _08023168 @ =gBitTable - ldr r2, [r4] - ands r2, r5 - ldr r6, _0802316C @ =gUnknown_02024A68 - cmp r2, 0 - bne _0802314C - adds r7, r6, 0 - ldrb r0, [r6] - cmp r2, r0 - bcs _0802314C - adds r3, r1, 0 -_08023132: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldrb r2, [r3] - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r5 - cmp r0, 0 - bne _0802314C - ldrb r0, [r7] - cmp r2, r0 - bcc _08023132 -_0802314C: - ldrb r0, [r1] - ldrb r6, [r6] - cmp r0, r6 - beq _08023156 - b _08023302 -_08023156: - mov r1, r8 - mov r2, r12 - str r1, [r2] - b _08023302 - .align 2, 0 -_08023160: .4byte gUnknown_02024C6C -_08023164: .4byte gUnknown_02024C09 -_08023168: .4byte gBitTable -_0802316C: .4byte gUnknown_02024A68 -_08023170: - movs r0, 0x80 - ands r0, r2 - movs r5, 0x1 - cmp r0, 0 - beq _0802317C - movs r5, 0 -_0802317C: - movs r0, 0x7F - ands r0, r2 - bl sub_8015150 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _080231A4 @ =gUnknown_02024D68 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - bge _080231A8 - ldr r0, [r6] - adds r0, 0x6 - str r0, [r6] - b _08023302 - .align 2, 0 -_080231A4: .4byte gUnknown_02024D68 -_080231A8: - adds r0, r7, 0 - movs r1, 0x6 - movs r2, 0x6 - bl sub_8018018 - lsls r0, 24 - cmp r0, 0 - beq _080231F8 - ldr r2, _080231E8 @ =gUnknown_02024A60 - strb r7, [r2] - ldr r3, _080231EC @ =gUnknown_02024C0C - ldr r4, _080231F0 @ =gBitTable - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r0, [r0] - ldrb r1, [r3] - orrs r0, r1 - strb r0, [r3] - ldr r3, _080231F4 @ =gUnknown_02024C6C - ldrb r0, [r2] - lsls r0, 2 - adds r0, r4 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - mov r0, r8 - str r0, [r6] - b _08023302 - .align 2, 0 -_080231E8: .4byte gUnknown_02024A60 -_080231EC: .4byte gUnknown_02024C0C -_080231F0: .4byte gBitTable -_080231F4: .4byte gUnknown_02024C6C -_080231F8: - ldr r4, _080232A0 @ =gUnknown_02024A60 - strb r7, [r4] - ldr r3, _080232A4 @ =0x02000000 - ldrb r0, [r4] - ldr r2, _080232A8 @ =0x00016064 - adds r1, r0, r2 - adds r1, r3 - ldr r2, _080232AC @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - ldr r1, _080232B0 @ =0x00016068 - adds r0, r1 - adds r0, r3 - ldrb r2, [r0] - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _080232B4 @ =0x0001606c - adds r3, r1 - adds r0, r3 - str r0, [sp] - movs r0, 0 - adds r1, r5, 0 - movs r3, 0 - bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] - adds r0, 0x6 - str r0, [r6] - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - cmp r0, 0 - bne _0802325A - ldr r1, _080232B8 @ =gUnknown_030042E0 - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _0802325A - adds r0, 0x1 - strb r0, [r1, 0x2] -_0802325A: - ldr r0, _080232BC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080232C4 - ldr r1, _080232A0 @ =gUnknown_02024A60 - movs r0, 0 - strb r0, [r1] - ldr r0, _080232C0 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r0, 0 - beq _08023302 - adds r4, r1, 0 -_08023276: - ldrb r0, [r4] - cmp r0, r7 - beq _0802328A - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0802328A: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _080232C0 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08023276 - b _08023302 - .align 2, 0 -_080232A0: .4byte gUnknown_02024A60 -_080232A4: .4byte 0x02000000 -_080232A8: .4byte 0x00016064 -_080232AC: .4byte gUnknown_02024A6A -_080232B0: .4byte 0x00016068 -_080232B4: .4byte 0x0001606c -_080232B8: .4byte gUnknown_030042E0 -_080232BC: .4byte gUnknown_020239F8 -_080232C0: .4byte gUnknown_02024A68 -_080232C4: - adds r0, r7, 0 - bl battle_get_per_side_status - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r4, _08023310 @ =gUnknown_02024A60 - strb r0, [r4] - ldr r0, _08023314 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08023318 @ =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080232F4 - movs r0, 0x2 - eors r3, r0 - strb r3, [r4] -_080232F4: - movs r0, 0 - movs r1, 0x2 - bl sub_800D1D8 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08023302: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08023310: .4byte gUnknown_02024A60 -_08023314: .4byte gUnknown_02024C0C -_08023318: .4byte gBitTable - thumb_func_end atk50_openpartyscreen - - thumb_func_start sub_802331C -sub_802331C: @ 802331C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0802334C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _0802332C - b _080234FE -_0802332C: - ldr r4, _08023350 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r7, _08023354 @ =gUnknown_02024A60 - strb r0, [r7] - ldr r0, [r4] - ldrb r0, [r0, 0x2] - cmp r0, 0x1 - beq _080233A0 - cmp r0, 0x1 - bgt _08023358 - cmp r0, 0 - beq _0802335E - b _080234F6 - .align 2, 0 -_0802334C: .4byte gUnknown_02024A64 -_08023350: .4byte gUnknown_02024C10 -_08023354: .4byte gUnknown_02024A60 -_08023358: - cmp r0, 0x2 - beq _080233BC - b _080234F6 -_0802335E: - movs r3, 0 - ldr r2, _08023390 @ =gUnknown_02024A68 - ldrb r0, [r2] - cmp r3, r0 - blt _0802336A - b _080234F6 -_0802336A: - ldr r0, _08023394 @ =0x02000000 - ldr r1, _08023398 @ =gUnknown_02024260 - movs r5, 0x80 - lsls r5, 2 - adds r4, r2, 0 - ldr r6, _0802339C @ =0x00016068 - adds r2, r0, r6 -_08023378: - ldrb r0, [r1] - cmp r0, 0x22 - bne _08023382 - ldrb r0, [r1, 0x1] - strb r0, [r2] -_08023382: - adds r1, r5 - adds r2, 0x1 - adds r3, 0x1 - ldrb r0, [r4] - cmp r3, r0 - blt _08023378 - b _080234F6 - .align 2, 0 -_08023390: .4byte gUnknown_02024A68 -_08023394: .4byte 0x02000000 -_08023398: .4byte gUnknown_02024260 -_0802339C: .4byte 0x00016068 -_080233A0: - ldr r0, _080233B8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080233AE - b _080234F6 -_080233AE: - ldrb r0, [r7] - bl sub_8012258 - b _080234F6 - .align 2, 0 -_080233B8: .4byte gUnknown_020239F8 -_080233BC: - ldr r1, _08023484 @ =gUnknown_02024D1E - ldr r4, _08023488 @ =gUnknown_02024260 - ldrb r0, [r7] - lsls r0, 9 - adds r2, r4, 0x1 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r6, _0802348C @ =0x02000000 - ldrb r0, [r7] - ldr r3, _08023490 @ =0x00016068 - adds r1, r0, r3 - adds r1, r6 - lsls r0, 9 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08023494 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080234A4 - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r5, _08023498 @ =0x0001606c - adds r1, r5 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - adds r1, r6 - lsls r0, 9 - adds r2, r4, 0x2 - mov r12, r2 - add r0, r12 - ldrb r2, [r0] - movs r3, 0xF0 - adds r0, r3, 0 - ands r0, r2 - ldrb r2, [r1] - orrs r0, r2 - strb r0, [r1] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r2, _0802349C @ =0x0001606d - adds r1, r2 - adds r1, r6 - lsls r0, 9 - adds r4, 0x3 - mov r8, r4 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r4, 0x2 - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - adds r1, r6 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - adds r1, r6 - ldrb r0, [r7] - lsls r0, 9 - add r0, r12 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, 4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - lsls r1, r4, 1 - adds r1, r4 - ldr r3, _080234A0 @ =0x0001606e - adds r1, r3 - adds r1, r6 - ldrb r0, [r7] - lsls r0, 9 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] - b _080234AA - .align 2, 0 -_08023484: .4byte gUnknown_02024D1E -_08023488: .4byte gUnknown_02024260 -_0802348C: .4byte 0x02000000 -_08023490: .4byte 0x00016068 -_08023494: .4byte gUnknown_020239F8 -_08023498: .4byte 0x0001606c -_0802349C: .4byte 0x0001606d -_080234A0: .4byte 0x0001606e -_080234A4: - ldrb r0, [r7] - bl sub_8012258 -_080234AA: - ldr r1, _08023508 @ =gUnknown_030041C0 - movs r5, 0xFD - strb r5, [r1] - movs r0, 0x6 - strb r0, [r1, 0x1] - ldr r4, _0802350C @ =gBattleMons - ldr r3, _08023510 @ =gUnknown_02024C07 - ldrb r0, [r3] - movs r2, 0x58 - muls r0, r2 - adds r0, r4 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - muls r0, r2 - adds r0, r4 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r2, _08023514 @ =gUnknown_03004290 - strb r5, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldr r3, _08023518 @ =gUnknown_02024A60 - ldrb r0, [r3] - strb r0, [r2, 0x2] - ldr r1, _0802351C @ =gUnknown_02024260 - ldrb r0, [r3] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r2, 0x4] -_080234F6: - ldr r1, _08023520 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] -_080234FE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08023508: .4byte gUnknown_030041C0 -_0802350C: .4byte gBattleMons -_08023510: .4byte gUnknown_02024C07 -_08023514: .4byte gUnknown_03004290 -_08023518: .4byte gUnknown_02024A60 -_0802351C: .4byte gUnknown_02024260 -_08023520: .4byte gUnknown_02024C10 - thumb_func_end sub_802331C - - thumb_func_start sub_8023524 -sub_8023524: @ 8023524 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r6, _08023630 @ =gUnknown_02024C10 - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _08023634 @ =gUnknown_02024A60 - strb r0, [r4] - ldrb r0, [r4] - bl sub_80157C4 - ldr r2, _08023638 @ =gUnknown_02024C6C - ldr r1, _0802363C @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - ldr r2, _08023640 @ =gUnknown_02024D68 - ldrb r0, [r4] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r4] - bl battle_side_get_owner - ldr r5, _08023644 @ =gUnknown_02024C7A - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 2 - mov r8, r0 - ands r0, r1 - cmp r0, 0 - bne _0802367C - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0802367C - ldr r1, _08023648 @ =gBattleMons - mov r9, r1 - ldrb r2, [r4] - movs r7, 0x58 - adds r0, r2, 0 - muls r0, r7 - adds r1, r0, r1 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0802367C - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0802367C - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - beq _0802367C - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - adds r0, r5 - ldrh r2, [r0] - mov r1, r8 - orrs r1, r2 - strh r1, [r0] - ldrb r0, [r4] - bl battle_side_get_owner - ldr r2, _0802364C @ =gUnknown_02024C80 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x6] - movs r1, 0x5 - subs r1, r0 - lsls r1, 25 - lsrs r1, 24 - ldr r5, _08023650 @ =gUnknown_02024BEC - ldrb r0, [r4] - muls r0, r7 - add r0, r9 - ldrh r0, [r0, 0x2C] - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _08023614 - movs r0, 0x1 - str r0, [r5] -_08023614: - ldr r0, _08023654 @ =0x02000000 - ldrb r1, [r4] - ldr r2, _08023658 @ =0x00016003 - adds r0, r2 - strb r1, [r0] - bl b_movescr_stack_push_cursor - ldr r0, [r6] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08023660 - ldr r0, _0802365C @ =gUnknown_081D919F - str r0, [r6] - b _080237B6 - .align 2, 0 -_08023630: .4byte gUnknown_02024C10 -_08023634: .4byte gUnknown_02024A60 -_08023638: .4byte gUnknown_02024C6C -_0802363C: .4byte gBitTable -_08023640: .4byte gUnknown_02024D68 -_08023644: .4byte gUnknown_02024C7A -_08023648: .4byte gBattleMons -_0802364C: .4byte gUnknown_02024C80 -_08023650: .4byte gUnknown_02024BEC -_08023654: .4byte 0x02000000 -_08023658: .4byte 0x00016003 -_0802365C: .4byte gUnknown_081D919F -_08023660: - cmp r0, 0x1 - bne _08023670 - ldr r0, _0802366C @ =gUnknown_081D9171 - str r0, [r6] - b _080237B6 - .align 2, 0 -_0802366C: .4byte gUnknown_081D9171 -_08023670: - ldr r0, _08023678 @ =gUnknown_081D91CD - str r0, [r6] - b _080237B6 - .align 2, 0 -_08023678: .4byte gUnknown_081D91CD -_0802367C: - ldr r1, _08023754 @ =gBattleMons - ldr r5, _08023758 @ =gUnknown_02024A60 - ldrb r2, [r5] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x36 - bne _080236A2 - ldr r1, _0802375C @ =gUnknown_02024CA8 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0, 0x18] -_080236A2: - ldrb r1, [r5] - movs r0, 0 - str r0, [sp] - movs r2, 0 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _080236B8 - b _080237B6 -_080236B8: - ldrb r1, [r5] - movs r0, 0 - movs r2, 0 - bl sub_801A02C - lsls r0, 24 - cmp r0, 0 - bne _080237B6 - ldrb r0, [r5] - bl battle_side_get_owner - ldr r1, _08023760 @ =gUnknown_02024C7A - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r2, [r0] - ldr r1, _08023764 @ =0x0000fdff - ands r1, r2 - strh r1, [r0] - movs r4, 0 - ldr r0, _08023768 @ =gUnknown_02024A68 - ldrb r3, [r0] - cmp r4, r3 - bge _08023706 - ldr r6, _0802376C @ =gUnknown_02024A7A - ldr r3, _08023770 @ =gUnknown_02024A76 - movs r2, 0xC - adds r1, r0, 0 -_080236F0: - adds r0, r4, r6 - ldrb r0, [r0] - ldrb r7, [r5] - cmp r0, r7 - bne _080236FE - adds r0, r4, r3 - strb r2, [r0] -_080236FE: - adds r4, 0x1 - ldrb r0, [r1] - cmp r4, r0 - blt _080236F0 -_08023706: - movs r4, 0 - ldr r0, _08023768 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - bge _08023736 - ldr r5, _08023754 @ =gBattleMons -_08023712: - lsls r0, r4, 24 - lsrs r0, 24 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - ldr r1, _08023774 @ =0x020160bc - adds r0, r1 - movs r1, 0x58 - muls r1, r4 - adds r1, r5 - ldrh r1, [r1, 0x28] - strh r1, [r0] - adds r4, 0x1 - ldr r0, _08023768 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _08023712 -_08023736: - ldr r0, _08023778 @ =gUnknown_02024C10 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r5, r0, 0 - cmp r1, 0x5 - bne _080237B0 - ldr r0, _0802377C @ =gUnknown_02024C6C - ldr r0, [r0] - lsrs r4, r0, 28 - ldr r1, _08023780 @ =gUnknown_02024C09 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, _08023784 @ =gBitTable - b _08023796 - .align 2, 0 -_08023754: .4byte gBattleMons -_08023758: .4byte gUnknown_02024A60 -_0802375C: .4byte gUnknown_02024CA8 -_08023760: .4byte gUnknown_02024C7A -_08023764: .4byte 0x0000fdff -_08023768: .4byte gUnknown_02024A68 -_0802376C: .4byte gUnknown_02024A7A -_08023770: .4byte gUnknown_02024A76 -_08023774: .4byte 0x020160bc -_08023778: .4byte gUnknown_02024C10 -_0802377C: .4byte gUnknown_02024C6C -_08023780: .4byte gUnknown_02024C09 -_08023784: .4byte gBitTable -_08023788: - ldr r0, _080237C4 @ =gUnknown_02024A68 - ldrb r3, [r1] - ldrb r0, [r0] - cmp r3, r0 - bcs _080237B0 - adds r0, r3, 0x1 - strb r0, [r1] -_08023796: - ldrb r0, [r1] - lsls r0, 2 - adds r0, r2 - ldr r3, [r0] - adds r0, r4, 0 - ands r0, r3 - cmp r0, 0 - beq _08023788 - ldr r0, _080237C8 @ =gUnknown_02024C0C - ldrb r0, [r0] - ands r0, r3 - cmp r0, 0 - bne _08023788 -_080237B0: - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] -_080237B6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080237C4: .4byte gUnknown_02024A68 -_080237C8: .4byte gUnknown_02024C0C - thumb_func_end sub_8023524 - - thumb_func_start sub_80237CC -sub_80237CC: @ 80237CC - push {lr} - ldr r0, _080237DC @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080237E0 - movs r0, 0 - b _080237E2 - .align 2, 0 -_080237DC: .4byte gUnknown_02024C10 -_080237E0: - movs r0, 0x1 -_080237E2: - bl battle_get_side_with_given_state - ldr r1, _08023804 @ =gUnknown_02024A60 - strb r0, [r1] - movs r0, 0 - bl dp01_build_cmdbuf_x08_8_8_8 - ldr r0, _08023804 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08023808 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08023804: .4byte gUnknown_02024A60 -_08023808: .4byte gUnknown_02024C10 - thumb_func_end sub_80237CC - - thumb_func_start atk54_802511C -atk54_802511C: @ 802380C - push {r4,r5,lr} - ldr r5, _0802383C @ =gUnknown_02024A60 - ldr r0, _08023840 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r5] - ldr r4, _08023844 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - bl dp01_build_cmdbuf_x2B_aa_0 - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802383C: .4byte gUnknown_02024A60 -_08023840: .4byte gUnknown_02024C07 -_08023844: .4byte gUnknown_02024C10 - thumb_func_end atk54_802511C - - thumb_func_start sub_8023848 -sub_8023848: @ 8023848 - push {r4,r5,lr} - ldr r5, _08023878 @ =gUnknown_02024A60 - ldr r0, _0802387C @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r5] - ldr r4, _08023880 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0 - bl sub_800D074 - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r4] - adds r0, 0x3 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08023878: .4byte gUnknown_02024A60 -_0802387C: .4byte gUnknown_02024C07 -_08023880: .4byte gUnknown_02024C10 - thumb_func_end sub_8023848 - - thumb_func_start atk56_8025194 -atk56_8025194: @ 8023884 - push {r4,r5,lr} - ldr r5, _080238AC @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _080238B0 @ =gUnknown_02024A60 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x2D_2D_2D_2D - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080238AC: .4byte gUnknown_02024C10 -_080238B0: .4byte gUnknown_02024A60 - thumb_func_end atk56_8025194 - - thumb_func_start atk57_80251C4_flee -atk57_80251C4_flee: @ 80238B4 - push {r4,lr} - movs r0, 0 - bl battle_get_side_with_given_state - ldr r4, _080238E0 @ =gUnknown_02024A60 - strb r0, [r4] - ldr r0, _080238E4 @ =gUnknown_02024D26 - ldrb r1, [r0] - movs r0, 0 - bl dp01_build_cmdbuf_x37_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080238E8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080238E0: .4byte gUnknown_02024A60 -_080238E4: .4byte gUnknown_02024D26 -_080238E8: .4byte gUnknown_02024C10 - thumb_func_end atk57_80251C4_flee - - thumb_func_start atk58_cmd58 -atk58_cmd58: @ 80238EC - push {r4,r5,lr} - ldr r5, _08023918 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _0802391C @ =gUnknown_02024A60 - strb r0, [r4] - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x06_a - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08023918: .4byte gUnknown_02024C10 -_0802391C: .4byte gUnknown_02024A60 - thumb_func_end atk58_cmd58 - - thumb_func_start atk59_8025230 -atk59_8025230: @ 8023920 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0802399C @ =gUnknown_02024C10 - ldr r2, [r0] - ldrb r6, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r6, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r6, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r6, r0 - ldrb r4, [r2, 0x5] - ldrb r0, [r2, 0x6] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r2, 0x7] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r2, 0x8] - lsls r0, 24 - orrs r4, r0 - ldr r0, _080239A0 @ =0x02000000 - ldr r1, _080239A4 @ =0x00016018 - adds r7, r0, r1 - ldrb r1, [r7] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080239A8 @ =gPlayerParty - adds r0, r1 - ldrb r1, [r2, 0x9] - bl sub_803B7C8 - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080239AC @ =0x0000fffe - cmp r5, r0 - bne _08023992 - mov r9, r7 - mov r8, r5 - movs r7, 0x64 -_0802397A: - mov r3, r9 - ldrb r0, [r3] - muls r0, r7 - ldr r1, _080239A8 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - bl sub_803B7C8 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, r8 - beq _0802397A -_08023992: - cmp r5, 0 - bne _080239B0 - ldr r0, _0802399C @ =gUnknown_02024C10 - str r4, [r0] - b _08023A58 - .align 2, 0 -_0802399C: .4byte gUnknown_02024C10 -_080239A0: .4byte 0x02000000 -_080239A4: .4byte 0x00016018 -_080239A8: .4byte gPlayerParty -_080239AC: .4byte 0x0000fffe -_080239B0: - ldr r0, _080239C0 @ =0x0000ffff - cmp r5, r0 - bne _080239C8 - ldr r1, _080239C4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0xA - str r0, [r1] - b _08023A58 - .align 2, 0 -_080239C0: .4byte 0x0000ffff -_080239C4: .4byte gUnknown_02024C10 -_080239C8: - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08023A64 @ =gUnknown_02024A60 - strb r0, [r1] - ldr r0, _08023A68 @ =gUnknown_02024A6A - ldrb r2, [r1] - lsls r1, r2, 1 - adds r1, r0 - ldr r0, _08023A6C @ =0x02000000 - ldr r3, _08023A70 @ =0x00016018 - adds r0, r3 - ldrh r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08023A08 - ldr r3, _08023A74 @ =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08023A08 - adds r0, r2, r3 - adds r1, r5, 0 - bl GiveMoveToBattleMon -_08023A08: - ldr r0, _08023A78 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023A54 - movs r0, 0x2 - bl battle_get_side_with_given_state - ldr r1, _08023A64 @ =gUnknown_02024A60 - strb r0, [r1] - ldr r0, _08023A68 @ =gUnknown_02024A6A - ldrb r2, [r1] - lsls r1, r2, 1 - adds r1, r0 - ldr r0, _08023A6C @ =0x02000000 - ldr r3, _08023A70 @ =0x00016018 - adds r0, r3 - ldrh r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bne _08023A54 - ldr r3, _08023A74 @ =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08023A54 - adds r0, r2, r3 - adds r1, r5, 0 - bl GiveMoveToBattleMon -_08023A54: - ldr r0, _08023A7C @ =gUnknown_02024C10 - str r6, [r0] -_08023A58: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08023A64: .4byte gUnknown_02024A60 -_08023A68: .4byte gUnknown_02024A6A -_08023A6C: .4byte 0x02000000 -_08023A70: .4byte 0x00016018 -_08023A74: .4byte gBattleMons -_08023A78: .4byte gUnknown_020239F8 -_08023A7C: .4byte gUnknown_02024C10 - thumb_func_end atk59_8025230 - - thumb_func_start sub_8023A80 -sub_8023A80: @ 8023A80 - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_802BBD4 - ldr r4, _08023AC8 @ =gUnknown_03004210 - ldr r1, _08023ACC @ =gUnknown_08400D7A - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x9 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x19 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _08023AD0 @ =0x0000ffff - ldr r3, _08023AD4 @ =0x00002d9f - movs r0, 0x20 - str r0, [sp] - movs r0, 0 - movs r2, 0xC - bl sub_814A5C0 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08023AC8: .4byte gUnknown_03004210 -_08023ACC: .4byte gUnknown_08400D7A -_08023AD0: .4byte 0x0000ffff -_08023AD4: .4byte 0x00002d9f - thumb_func_end sub_8023A80 - - thumb_func_start sub_8023AD8 -sub_8023AD8: @ 8023AD8 - push {lr} - sub sp, 0x4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0x18 - movs r1, 0x8 - movs r2, 0x1D - movs r3, 0xD - bl sub_802BBD4 - bl sub_814A7FC - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8023AD8 - - thumb_func_start sub_8023AF8 -sub_8023AF8: @ 8023AF8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - ldr r1, _08023B24 @ =gUnknown_02024A60 - movs r0, 0 - strb r0, [r1] - ldr r1, _08023B28 @ =0x02000000 - ldr r2, _08023B2C @ =0x0001601a - adds r0, r1, r2 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x5 - bls _08023B18 - b _08023E5C -_08023B18: - lsls r0, 2 - ldr r1, _08023B30 @ =_08023B34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08023B24: .4byte gUnknown_02024A60 -_08023B28: .4byte 0x02000000 -_08023B2C: .4byte 0x0001601a -_08023B30: .4byte _08023B34 - .align 2, 0 -_08023B34: - .4byte _08023B4C - .4byte _08023B74 - .4byte _08023C30 - .4byte _08023C84 - .4byte _08023E38 - .4byte _08023E4C -_08023B4C: - bl sub_8023A80 - ldr r1, _08023B68 @ =0x02000000 - ldr r0, _08023B6C @ =0x0001601a - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, _08023B70 @ =gUnknown_02024D1E - strb r2, [r0, 0x1] - bl sub_802BC6C - b _08023E5C - .align 2, 0 -_08023B68: .4byte 0x02000000 -_08023B6C: .4byte 0x0001601a -_08023B70: .4byte gUnknown_02024D1E -_08023B74: - ldr r0, _08023BFC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08023B9A - ldr r4, _08023C00 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08023B9A - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_802BC6C -_08023B9A: - ldr r0, _08023BFC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08023BC0 - ldr r4, _08023C00 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08023BC0 - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_802BC6C -_08023BC0: - ldr r0, _08023BFC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023C0C - movs r0, 0x5 - bl PlaySE - ldr r0, _08023C00 @ =gUnknown_02024D1E - ldrb r4, [r0, 0x1] - cmp r4, 0 - bne _08023C1C - bl sub_8023AD8 - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08023C04 @ =0x02000000 - ldr r2, _08023C08 @ =0x0001601a - adds r1, r2 - ldrb r0, [r1] - adds r0, 0x1 - b _08023E5A - .align 2, 0 -_08023BFC: .4byte gMain -_08023C00: .4byte gUnknown_02024D1E -_08023C04: .4byte 0x02000000 -_08023C08: .4byte 0x0001601a -_08023C0C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08023C16 - b _08023E5C -_08023C16: - movs r0, 0x5 - bl PlaySE -_08023C1C: - ldr r0, _08023C28 @ =0x02000000 - ldr r1, _08023C2C @ =0x0001601a - adds r0, r1 - movs r1, 0x4 - strb r1, [r0] - b _08023E5C - .align 2, 0 -_08023C28: .4byte 0x02000000 -_08023C2C: .4byte 0x0001601a -_08023C30: - ldr r0, _08023C68 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08023C3E - b _08023E5C -_08023C3E: - ldr r0, _08023C6C @ =gPlayerParty - ldr r2, _08023C70 @ =0x00016018 - adds r1, r5, r2 - ldrb r1, [r1] - ldr r2, _08023C74 @ =gPlayerPartyCount - ldrb r2, [r2] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, _08023C78 @ =sub_807AD58 - ldr r4, _08023C7C @ =word_2024E82 - ldrh r4, [r4] - str r4, [sp] - bl sub_809D9F0 - ldr r0, _08023C80 @ =0x0001601a - adds r1, r5, r0 - ldrb r0, [r1] - adds r0, 0x1 - b _08023E5A - .align 2, 0 -_08023C68: .4byte gPaletteFade -_08023C6C: .4byte gPlayerParty -_08023C70: .4byte 0x00016018 -_08023C74: .4byte gPlayerPartyCount -_08023C78: .4byte sub_807AD58 -_08023C7C: .4byte word_2024E82 -_08023C80: .4byte 0x0001601a -_08023C84: - ldr r0, _08023CB4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08023C92 - b _08023E5C -_08023C92: - ldr r0, _08023CB8 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08023CBC @ =sub_800F808 - cmp r1, r0 - beq _08023C9E - b _08023E5C -_08023C9E: - bl sub_809FA30 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bne _08023CC8 - ldr r0, _08023CC0 @ =0x02000000 - ldr r1, _08023CC4 @ =0x0001601a - adds r0, r1 - strb r5, [r0] - b _08023E5C - .align 2, 0 -_08023CB4: .4byte gPaletteFade -_08023CB8: .4byte gMain -_08023CBC: .4byte sub_800F808 -_08023CC0: .4byte 0x02000000 -_08023CC4: .4byte 0x0001601a -_08023CC8: - ldr r2, _08023D08 @ =0x02000000 - mov r9, r2 - ldr r6, _08023D0C @ =0x00016018 - add r6, r9 - ldrb r0, [r6] - movs r1, 0x64 - mov r8, r1 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - ldr r7, _08023D10 @ =gPlayerParty - adds r0, r7 - adds r1, r5, 0 - adds r1, 0xD - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_8040A00 - cmp r0, 0 - beq _08023D20 - ldr r0, _08023D14 @ =0x0000013f - ldr r1, _08023D18 @ =gUnknown_02024A60 - ldrb r1, [r1] - bl b_std_message - ldr r1, _08023D1C @ =0x0001601a - add r1, r9 - movs r0, 0x5 - b _08023E5A - .align 2, 0 -_08023D08: .4byte 0x02000000 -_08023D0C: .4byte 0x00016018 -_08023D10: .4byte gPlayerParty -_08023D14: .4byte 0x0000013f -_08023D18: .4byte gUnknown_02024A60 -_08023D1C: .4byte 0x0001601a -_08023D20: - ldr r3, _08023E10 @ =gUnknown_02024C10 - 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] - ldr r1, _08023E14 @ =gUnknown_03004290 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - strb r4, [r1, 0x2] - lsrs r0, r4, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r0, [r6] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - adds r1, r5, 0 - bl RemoveMonPPBonus - ldrb r0, [r6] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - ldr r7, _08023E18 @ =word_2024E82 - ldrh r1, [r7] - adds r2, r5, 0 - bl SetMonMoveSlot - ldr r0, _08023E1C @ =gUnknown_02024A6A - ldrh r0, [r0] - ldrb r6, [r6] - cmp r0, r6 - bne _08023DB0 - ldr r4, _08023E20 @ =gBattleMons - ldr r0, [r4, 0x50] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08023DB0 - ldr r0, _08023E24 @ =gUnknown_02024CA8 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _08023E28 @ =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08023DB0 - adds r0, r4, 0 - adds r1, r5, 0 - bl RemoveBattleMonPPBonus - ldrh r1, [r7] - adds r0, r4, 0 - adds r2, r5, 0 - bl SetBattleMonMoveSlot -_08023DB0: - ldr r0, _08023E2C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023E5C - ldr r0, _08023E1C @ =gUnknown_02024A6A - ldr r1, _08023E30 @ =0x02000000 - ldr r2, _08023E34 @ =0x00016018 - adds r1, r2 - ldrh r0, [r0, 0x4] - ldrb r1, [r1] - cmp r0, r1 - bne _08023E5C - ldr r4, _08023E20 @ =gBattleMons - movs r1, 0x80 - lsls r1, 1 - adds r0, r4, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08023E5C - ldr r0, _08023E24 @ =gUnknown_02024CA8 - adds r0, 0x50 - ldrb r1, [r0] - lsrs r1, 4 - ldr r2, _08023E28 @ =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08023E5C - adds r4, 0xB0 - adds r0, r4, 0 - adds r1, r5, 0 - bl RemoveBattleMonPPBonus - ldr r0, _08023E18 @ =word_2024E82 - ldrh r1, [r0] - adds r0, r4, 0 - adds r2, r5, 0 - bl SetBattleMonMoveSlot - b _08023E5C - .align 2, 0 -_08023E10: .4byte gUnknown_02024C10 -_08023E14: .4byte gUnknown_03004290 -_08023E18: .4byte word_2024E82 -_08023E1C: .4byte gUnknown_02024A6A -_08023E20: .4byte gBattleMons -_08023E24: .4byte gUnknown_02024CA8 -_08023E28: .4byte gBitTable -_08023E2C: .4byte gUnknown_020239F8 -_08023E30: .4byte 0x02000000 -_08023E34: .4byte 0x00016018 -_08023E38: - bl sub_8023AD8 - ldr r1, _08023E48 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08023E5C - .align 2, 0 -_08023E48: .4byte gUnknown_02024C10 -_08023E4C: - ldr r0, _08023E6C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08023E5C - ldr r2, _08023E70 @ =0x0001601a - adds r1, r5, r2 - movs r0, 0x2 -_08023E5A: - strb r0, [r1] -_08023E5C: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08023E6C: .4byte gUnknown_02024A64 -_08023E70: .4byte 0x0001601a - thumb_func_end sub_8023AF8 - - thumb_func_start atk5B_80256E0 -atk5B_80256E0: @ 8023E74 - push {r4,r5,lr} - ldr r0, _08023E88 @ =0x02000000 - ldr r1, _08023E8C @ =0x0001601a - adds r5, r0, r1 - ldrb r4, [r5] - cmp r4, 0 - beq _08023E90 - cmp r4, 0x1 - beq _08023EA8 - b _08023F78 - .align 2, 0 -_08023E88: .4byte 0x02000000 -_08023E8C: .4byte 0x0001601a -_08023E90: - bl sub_8023A80 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldr r0, _08023EA4 @ =gUnknown_02024D1E - strb r4, [r0, 0x1] - bl sub_802BC6C - b _08023F78 - .align 2, 0 -_08023EA4: .4byte gUnknown_02024D1E -_08023EA8: - ldr r0, _08023F2C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08023ECE - ldr r4, _08023F30 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _08023ECE - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_802BC6C -_08023ECE: - ldr r0, _08023F2C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08023EF4 - ldr r4, _08023F30 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08023EF4 - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_802BC6C -_08023EF4: - ldr r0, _08023F2C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023F4C - movs r0, 0x5 - bl PlaySE - ldr r0, _08023F30 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x1] - cmp r0, 0 - beq _08023F38 - ldr r3, _08023F34 @ =gUnknown_02024C10 - 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 _08023F40 - .align 2, 0 -_08023F2C: .4byte gMain -_08023F30: .4byte gUnknown_02024D1E -_08023F34: .4byte gUnknown_02024C10 -_08023F38: - ldr r1, _08023F48 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08023F40: - bl sub_8023AD8 - b _08023F78 - .align 2, 0 -_08023F48: .4byte gUnknown_02024C10 -_08023F4C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08023F78 - movs r0, 0x5 - bl PlaySE - ldr r3, _08023F80 @ =gUnknown_02024C10 - 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] - bl sub_8023AD8 -_08023F78: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08023F80: .4byte gUnknown_02024C10 - thumb_func_end atk5B_80256E0 - - thumb_func_start atk5C_cmd5c -atk5C_cmd5c: @ 8023F84 - push {r4,lr} - ldr r4, _08023FF0 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r2, _08023FF4 @ =gUnknown_02024A60 - strb r0, [r2] - ldr r0, _08023FF8 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - bne _08024008 - ldr r0, _08023FFC @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - cmp r0, 0 - beq _08023FD6 - ldr r1, _08024000 @ =gBattleMons - ldrb r2, [r2] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _08023FD6 - ldr r0, _08024004 @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _08024008 -_08023FD6: - movs r0, 0 - bl dp01_build_cmdbuf_x29_29_29_29 - ldr r0, _08023FF4 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08023FF0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - b _0802400E - .align 2, 0 -_08023FF0: .4byte gUnknown_02024C10 -_08023FF4: .4byte gUnknown_02024A60 -_08023FF8: .4byte gUnknown_02024C68 -_08023FFC: .4byte gUnknown_02024C6C -_08024000: .4byte gBattleMons -_08024004: .4byte gUnknown_02024CA8 -_08024008: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] -_0802400E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atk5C_cmd5c - - thumb_func_start sub_8024014 -sub_8024014: @ 8024014 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0 - movs r5, 0 - ldr r0, _08024048 @ =gTrainerBattleOpponent - ldrh r2, [r0] - movs r1, 0x80 - lsls r1, 3 - cmp r2, r1 - bne _08024058 - ldr r0, _0802404C @ =0x02017000 - adds r1, r0, 0 - adds r1, 0x94 - ldrb r2, [r1] - ldr r1, _08024050 @ =0xfffff056 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r4, r2, 0 - muls r4, r0 - ldr r0, _08024054 @ =gSaveBlock1 + 0x490 - mov r8, r0 - b _08024140 - .align 2, 0 -_08024048: .4byte gTrainerBattleOpponent -_0802404C: .4byte 0x02017000 -_08024050: .4byte 0xfffff056 -_08024054: .4byte gSaveBlock1 + 0x490 -_08024058: - ldr r2, _08024074 @ =gTrainers - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r3, r0, 3 - adds r4, r3, r2 - ldrb r1, [r4] - cmp r1, 0x1 - beq _080240AE - cmp r1, 0x1 - bgt _08024078 - cmp r1, 0 - beq _08024082 - b _080240C4 - .align 2, 0 -_08024074: .4byte gTrainers -_08024078: - cmp r1, 0x2 - beq _08024098 - cmp r1, 0x3 - beq _080240AE - b _080240C4 -_08024082: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r3, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - subs r0, 0x8 - b _080240C2 -_08024098: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r3, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r1 - subs r0, 0x8 - b _080240C2 -_080240AE: - adds r0, r2, 0 - adds r0, 0x24 - adds r0, r3, r0 - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0x20 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - subs r0, 0x10 -_080240C2: - ldrb r5, [r0, 0x2] -_080240C4: - ldr r0, _08024120 @ =gTrainerMoney - lsls r1, r6, 2 - adds r3, r1, r0 - ldrb r1, [r3] - mov r12, r0 - lsls r4, r5, 2 - ldr r5, _08024124 @ =0x02000000 - ldr r7, _08024128 @ =gUnknown_020239F8 - ldr r0, _0802412C @ =gSaveBlock1 + 0x490 - mov r8, r0 - cmp r1, 0xFF - beq _080240FE - ldr r2, _08024130 @ =gTrainers - ldr r0, _08024134 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r2, [r0, 0x1] - adds r1, r3, 0 -_080240EE: - ldrb r0, [r1] - cmp r0, r2 - beq _080240FE - adds r1, 0x4 - adds r6, 0x1 - ldrb r0, [r1] - cmp r0, 0xFF - bne _080240EE -_080240FE: - ldr r1, _08024138 @ =0x00016056 - adds r0, r5, r1 - ldrb r0, [r0] - adds r3, r4, 0 - muls r3, r0 - lsls r0, r6, 2 - add r0, r12 - ldrb r2, [r0, 0x1] - ldrh r1, [r7] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802413C - lsls r0, r2, 1 - adds r4, r3, 0 - muls r4, r0 - b _08024140 - .align 2, 0 -_08024120: .4byte gTrainerMoney -_08024124: .4byte 0x02000000 -_08024128: .4byte gUnknown_020239F8 -_0802412C: .4byte gSaveBlock1 + 0x490 -_08024130: .4byte gTrainers -_08024134: .4byte gTrainerBattleOpponent -_08024138: .4byte 0x00016056 -_0802413C: - adds r4, r3, 0 - muls r4, r2 -_08024140: - mov r0, r8 - adds r1, r4, 0 - bl sub_80B79B8 - ldr r1, _0802418C @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x4 - strb r0, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - strb r4, [r1, 0x4] - movs r0, 0xFF - lsls r0, 8 - ands r0, r4 - lsrs r0, 8 - strb r0, [r1, 0x5] - movs r0, 0xFF - lsls r0, 16 - ands r0, r4 - lsrs r0, 16 - strb r0, [r1, 0x6] - lsrs r0, r4, 24 - strb r0, [r1, 0x7] - movs r0, 0xFF - strb r0, [r1, 0x8] - ldr r1, _08024190 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802418C: .4byte gUnknown_030041C0 -_08024190: .4byte gUnknown_02024C10 - thumb_func_end sub_8024014 - - thumb_func_start atk5E_8025A70 -atk5E_8025A70: @ 8024194 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _080241B8 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r6, _080241BC @ =gUnknown_02024A60 - strb r0, [r6] - ldr r5, _080241C0 @ =gUnknown_02024D1E - ldrb r0, [r5] - mov r8, r4 - cmp r0, 0 - beq _080241C4 - cmp r0, 0x1 - beq _080241DC - b _08024230 - .align 2, 0 -_080241B8: .4byte gUnknown_02024C10 -_080241BC: .4byte gUnknown_02024A60 -_080241C0: .4byte gUnknown_02024D1E -_080241C4: - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x00_a_b_0 - ldrb r0, [r6] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _08024230 -_080241DC: - ldr r0, _0802423C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08024230 - ldrb r0, [r6] - lsls r0, 9 - ldr r1, _08024240 @ =gUnknown_02024264 - adds r0, r1 - mov r12, r0 - movs r2, 0 - adds r4, r6, 0 - movs r5, 0x58 - ldr r6, _08024244 @ =gUnknown_02024AA4 - adds r7, r6, 0 - subs r7, 0x18 - mov r3, r12 - adds r3, 0xC -_080241FE: - lsls r1, r2, 1 - ldrb r0, [r4] - muls r0, r5 - adds r1, r0 - adds r1, r7 - ldrh r0, [r3] - strh r0, [r1] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r2, r1 - adds r1, r6 - mov r0, r12 - adds r0, 0x24 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r3, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _080241FE - mov r1, r8 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08024230: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802423C: .4byte gUnknown_02024A64 -_08024240: .4byte gUnknown_02024264 -_08024244: .4byte gUnknown_02024AA4 - thumb_func_end atk5E_8025A70 - - thumb_func_start atk5F_8025B24 -atk5F_8025B24: @ 8024248 - push {lr} - ldr r0, _08024270 @ =gUnknown_02024A60 - ldr r2, _08024274 @ =gUnknown_02024C07 - ldrb r3, [r2] - strb r3, [r0] - ldr r1, _08024278 @ =gUnknown_02024C08 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - ldr r2, _0802427C @ =gUnknown_02024C6C - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 5 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _08024284 - ldr r0, _08024280 @ =0xffffefff - ands r1, r0 - b _08024286 - .align 2, 0 -_08024270: .4byte gUnknown_02024A60 -_08024274: .4byte gUnknown_02024C07 -_08024278: .4byte gUnknown_02024C08 -_0802427C: .4byte gUnknown_02024C6C -_08024280: .4byte 0xffffefff -_08024284: - orrs r1, r3 -_08024286: - str r1, [r2] - ldr r1, _08024294 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08024294: .4byte gUnknown_02024C10 - thumb_func_end atk5F_8025B24 - - thumb_func_start atk60_cmd60 -atk60_cmd60: @ 8024298 - push {lr} - ldr r0, _080242C0 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080242B2 - ldr r0, _080242C4 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sav12_xor_increment -_080242B2: - ldr r1, _080242C4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080242C0: .4byte gUnknown_02024C07 -_080242C4: .4byte gUnknown_02024C10 - thumb_func_end atk60_cmd60 - - thumb_func_start atk61_8025BA4 -atk61_8025BA4: @ 80242C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x30 - ldr r0, _0802432C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0802437C - ldr r0, _08024330 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r1, _08024334 @ =gUnknown_02024A60 - strb r0, [r1] - ldrb r0, [r1] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _08024338 @ =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _080242FA - ldr r0, _0802433C @ =gPlayerParty - mov r8, r0 -_080242FA: - movs r7, 0 - add r6, sp, 0x4 - mov r5, sp -_08024300: - movs r0, 0x64 - muls r0, r7 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08024324 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - bne _08024344 -_08024324: - ldr r0, _08024340 @ =0x0000ffff - strh r0, [r5] - movs r0, 0 - b _08024356 - .align 2, 0 -_0802432C: .4byte gUnknown_02024A64 -_08024330: .4byte gUnknown_02024C10 -_08024334: .4byte gUnknown_02024A60 -_08024338: .4byte gEnemyParty -_0802433C: .4byte gPlayerParty -_08024340: .4byte 0x0000ffff -_08024344: - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - strh r0, [r5] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData -_08024356: - str r0, [r6] - adds r6, 0x8 - adds r5, 0x8 - adds r7, 0x1 - cmp r7, 0x5 - ble _08024300 - movs r0, 0 - mov r1, sp - movs r2, 0x1 - bl dp01_build_cmdbuf_x30_TODO - ldr r0, _08024388 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802438C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0802437C: - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08024388: .4byte gUnknown_02024A60 -_0802438C: .4byte gUnknown_02024C10 - thumb_func_end atk61_8025BA4 - - thumb_func_start atk62_08025C6C -atk62_08025C6C: @ 8024390 - push {r4,r5,lr} - ldr r5, _080243B8 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _080243BC @ =gUnknown_02024A60 - strb r0, [r4] - movs r0, 0 - bl dp01_build_cmdbuf_x31_31_31_31 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080243B8: .4byte gUnknown_02024C10 -_080243BC: .4byte gUnknown_02024A60 - thumb_func_end atk62_08025C6C - - thumb_func_start atk63_jumptoattack -atk63_jumptoattack: @ 80243C0 - push {r4,lr} - ldr r0, _080243D8 @ =gUnknown_02024C10 - ldr r1, [r0] - ldrb r1, [r1, 0x1] - adds r4, r0, 0 - cmp r1, 0 - beq _080243E4 - ldr r0, _080243DC @ =gUnknown_02024BE6 - ldr r1, _080243E0 @ =gUnknown_02024BEA - ldrh r1, [r1] - strh r1, [r0] - b _080243F2 - .align 2, 0 -_080243D8: .4byte gUnknown_02024C10 -_080243DC: .4byte gUnknown_02024BE6 -_080243E0: .4byte gUnknown_02024BEA -_080243E4: - ldr r2, _08024410 @ =gUnknown_02024BE8 - ldr r1, _08024414 @ =gUnknown_02024BE6 - ldr r0, _08024418 @ =gUnknown_02024BEA - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r2] - adds r0, r1, 0 -_080243F2: - ldr r3, _0802441C @ =gUnknown_081D6BBC - ldr r2, _08024420 @ =gBattleMoves - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08024410: .4byte gUnknown_02024BE8 -_08024414: .4byte gUnknown_02024BE6 -_08024418: .4byte gUnknown_02024BEA -_0802441C: .4byte gUnknown_081D6BBC -_08024420: .4byte gBattleMoves - thumb_func_end atk63_jumptoattack - - thumb_func_start atk64_statusanimation -atk64_statusanimation: @ 8024424 - push {r4,lr} - ldr r0, _08024494 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _0802448C - ldr r0, _08024498 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _0802449C @ =gUnknown_02024A60 - strb r0, [r4] - ldr r1, _080244A0 @ =gUnknown_02024C98 - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080244A4 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _08024484 - ldr r0, _080244A8 @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _08024484 - ldr r0, _080244AC @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08024484 - ldr r1, _080244B0 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - ldr r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_08024484: - ldr r1, _08024498 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_0802448C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08024494: .4byte gUnknown_02024A64 -_08024498: .4byte gUnknown_02024C10 -_0802449C: .4byte gUnknown_02024A60 -_080244A0: .4byte gUnknown_02024C98 -_080244A4: .4byte 0x000400c0 -_080244A8: .4byte gUnknown_02024CA8 -_080244AC: .4byte gUnknown_02024C6C -_080244B0: .4byte gBattleMons - thumb_func_end atk64_statusanimation - - thumb_func_start atk65_8025D90 -atk65_8025D90: @ 80244B4 - push {r4,r5,lr} - ldr r0, _0802453C @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08024534 - ldr r4, _08024540 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r5, _08024544 @ =gUnknown_02024A60 - strb r0, [r5] - ldr r1, [r4] - ldrb r3, [r1, 0x2] - ldrb r0, [r1, 0x3] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r1, 0x4] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r1, 0x5] - lsls r0, 24 - orrs r3, r0 - ldr r1, _08024548 @ =gUnknown_02024C98 - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0802454C @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _0802452C - ldr r0, _08024550 @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _0802452C - ldr r0, _08024554 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802452C - ldr r1, _08024558 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r2, [r0] - ands r2, r3 - movs r0, 0 - movs r1, 0x1 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution -_0802452C: - ldr r1, _08024540 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x6 - str r0, [r1] -_08024534: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802453C: .4byte gUnknown_02024A64 -_08024540: .4byte gUnknown_02024C10 -_08024544: .4byte gUnknown_02024A60 -_08024548: .4byte gUnknown_02024C98 -_0802454C: .4byte 0x000400c0 -_08024550: .4byte gUnknown_02024CA8 -_08024554: .4byte gUnknown_02024C6C -_08024558: .4byte gBattleMons - thumb_func_end atk65_8025D90 - - thumb_func_start atk66_8025E38 -atk66_8025E38: @ 802455C - push {r4,r5,lr} - ldr r0, _080245D4 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _080245CE - ldr r4, _080245D8 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r5, _080245DC @ =gUnknown_02024A60 - strb r0, [r5] - ldr r4, [r4] - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x4] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r4, 0x5] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r4, 0x6] - lsls r0, 24 - orrs r2, r0 - ldr r1, _080245E0 @ =gUnknown_02024C98 - ldrb r3, [r5] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080245E4 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _080245C6 - ldr r0, _080245E8 @ =gUnknown_02024CA8 - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xA] - cmp r0, 0 - bne _080245C6 - ldr r0, _080245EC @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080245C6 - ldrb r1, [r4, 0x2] - movs r0, 0 - bl dp01_build_cmdbuf_x1B_aaaa_b - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution -_080245C6: - ldr r1, _080245D8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x7 - str r0, [r1] -_080245CE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080245D4: .4byte gUnknown_02024A64 -_080245D8: .4byte gUnknown_02024C10 -_080245DC: .4byte gUnknown_02024A60 -_080245E0: .4byte gUnknown_02024C98 -_080245E4: .4byte 0x000400c0 -_080245E8: .4byte gUnknown_02024CA8 -_080245EC: .4byte gUnknown_02024C6C - thumb_func_end atk66_8025E38 - - thumb_func_start atk67_8025ECC -atk67_8025ECC: @ 80245F0 - push {r4,r5,lr} - ldr r5, _08024600 @ =gUnknown_02024D1E - ldrb r4, [r5] - cmp r4, 0 - beq _08024604 - cmp r4, 0x1 - beq _08024616 - b _08024696 - .align 2, 0 -_08024600: .4byte gUnknown_02024D1E -_08024604: - bl sub_8023A80 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - strb r4, [r5, 0x1] - bl sub_802BC6C - b _08024696 -_08024616: - ldr r0, _08024674 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0802463A - ldrb r0, [r5, 0x1] - cmp r0, 0 - beq _0802463A - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0 - strb r0, [r5, 0x1] - bl sub_802BC6C -_0802463A: - ldr r0, _08024674 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08024660 - ldr r4, _08024678 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08024660 - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_802BC6C -_08024660: - ldr r0, _08024674 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802467C - ldr r1, _08024678 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x1] - b _08024684 - .align 2, 0 -_08024674: .4byte gMain -_08024678: .4byte gUnknown_02024D1E -_0802467C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08024696 -_08024684: - movs r0, 0x5 - bl PlaySE - bl sub_8023AD8 - ldr r1, _0802469C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08024696: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802469C: .4byte gUnknown_02024C10 - thumb_func_end atk67_8025ECC - - thumb_func_start sub_80246A0 -sub_80246A0: @ 80246A0 - push {r4,r5,lr} - movs r1, 0 - ldr r2, _080246CC @ =gUnknown_02024A68 - ldr r5, _080246D0 @ =gUnknown_02024C10 - ldrb r0, [r2] - cmp r1, r0 - bge _080246BE - ldr r4, _080246D4 @ =gUnknown_02024A76 - movs r3, 0xC -_080246B2: - adds r0, r1, r4 - strb r3, [r0] - adds r1, 0x1 - ldrb r0, [r2] - cmp r1, r0 - blt _080246B2 -_080246BE: - ldr r0, [r5] - adds r0, 0x1 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080246CC: .4byte gUnknown_02024A68 -_080246D0: .4byte gUnknown_02024C10 -_080246D4: .4byte gUnknown_02024A76 - thumb_func_end sub_80246A0 - - thumb_func_start atk69_8025FE0 -atk69_8025FE0: @ 80246D8 - push {r4-r7,lr} - ldr r7, _08024700 @ =gBattleMons - ldr r6, _08024704 @ =gUnknown_02024C08 - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _0802470C - ldr r1, _08024708 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08024726 - .align 2, 0 -_08024700: .4byte gBattleMons -_08024704: .4byte gUnknown_02024C08 -_08024708: .4byte gEnigmaBerries -_0802470C: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_08024726: - ldr r1, _080247E8 @ =gUnknown_02024C0B - ldr r5, _080247EC @ =gUnknown_02024C08 - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _08024764 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _08024764 - ldrb r0, [r5] - movs r1, 0x27 - bl sub_81074F8 - ldr r2, _080247F0 @ =gUnknown_02024D68 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08024764: - ldr r2, _080247F4 @ =gBattleMons - ldr r3, _080247EC @ =gUnknown_02024C08 - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, r2, 0 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - adds r5, r2, 0 - cmp r1, 0 - bne _08024834 - ldr r2, _080247F8 @ =gBattleMoves - ldr r0, _080247FC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x65 - beq _080247B6 - ldr r0, _08024800 @ =gUnknown_02024D28 - lsls r1, r4, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - blt _080247B6 - ldr r0, _080247F0 @ =gUnknown_02024D68 - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08024834 -_080247B6: - ldrb r0, [r3] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - ldrh r1, [r0, 0x28] - ldr r2, _08024804 @ =gUnknown_02024BEC - ldr r0, [r2] - cmp r1, r0 - bgt _08024834 - subs r0, r1, 0x1 - str r0, [r2] - ldr r1, _08024800 @ =gUnknown_02024D28 - ldrb r3, [r3] - lsls r0, r3, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bge _0802480C - ldr r0, _08024808 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - b _08024834 - .align 2, 0 -_080247E8: .4byte gUnknown_02024C0B -_080247EC: .4byte gUnknown_02024C08 -_080247F0: .4byte gUnknown_02024D68 -_080247F4: .4byte gBattleMons -_080247F8: .4byte gBattleMoves -_080247FC: .4byte gUnknown_02024BE6 -_08024800: .4byte gUnknown_02024D28 -_08024804: .4byte gUnknown_02024BEC -_08024808: .4byte gUnknown_02024C68 -_0802480C: - ldr r0, _08024844 @ =gUnknown_02024D68 - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08024834 - ldr r2, _08024848 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0802484C @ =gUnknown_02024C04 - adds r0, r3, 0 - muls r0, r4 - adds r0, r5 - ldrh r0, [r0, 0x2E] - strh r0, [r1] -_08024834: - ldr r1, _08024850 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08024844: .4byte gUnknown_02024D68 -_08024848: .4byte gUnknown_02024C68 -_0802484C: .4byte gUnknown_02024C04 -_08024850: .4byte gUnknown_02024C10 - thumb_func_end atk69_8025FE0 - - thumb_func_start atk6A_stash_item_for_side -atk6A_stash_item_for_side: @ 8024854 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _080248B0 @ =gUnknown_02024C10 - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r5, _080248B4 @ =gUnknown_02024A60 - strb r0, [r5] - ldrb r4, [r5] - lsls r1, r4, 1 - ldr r0, _080248B8 @ =0x020160cc - adds r1, r0 - ldr r2, _080248BC @ =gBattleMons - movs r3, 0x58 - adds r0, r4, 0 - muls r0, r3 - adds r0, r2 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - ldrb r0, [r5] - muls r0, r3 - adds r0, r2 - movs r1, 0 - strh r1, [r0, 0x2E] - ldrb r0, [r5] - muls r0, r3 - adds r2, 0x2E - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080248B0: .4byte gUnknown_02024C10 -_080248B4: .4byte gUnknown_02024A60 -_080248B8: .4byte 0x020160cc -_080248BC: .4byte gBattleMons - thumb_func_end atk6A_stash_item_for_side - - thumb_func_start sub_80248C0 -sub_80248C0: @ 80248C0 - ldr r1, _080248EC @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, _080248F0 @ =gUnknown_02024C07 - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _080248F4 @ =gUnknown_02024A6A - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _080248F8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_080248EC: .4byte gUnknown_030041C0 -_080248F0: .4byte gUnknown_02024C07 -_080248F4: .4byte gUnknown_02024A6A -_080248F8: .4byte gUnknown_02024C10 - thumb_func_end sub_80248C0 - - thumb_func_start sub_80248FC -sub_80248FC: @ 80248FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r1, 0 - movs r7, 0 - ldr r0, _08024928 @ =0x02000000 - mov r10, r0 - ldr r4, _0802492C @ =0x0001609c - add r4, r10 - ldrb r0, [r4] - cmp r0, 0x1 - bne _0802491C - b _08024AF4 -_0802491C: - cmp r0, 0x1 - bgt _08024930 - cmp r0, 0 - beq _0802493E - b _08024C38 - .align 2, 0 -_08024928: .4byte 0x02000000 -_0802492C: .4byte 0x0001609c -_08024930: - cmp r0, 0x2 - bne _08024936 - b _08024C04 -_08024936: - cmp r0, 0x3 - bne _0802493C - b _08024C30 -_0802493C: - b _08024C38 -_0802493E: - str r1, [sp] - movs r0, 0xB - movs r1, 0 - movs r2, 0x1D - movs r3, 0x7 - bl sub_802BBD4 - ldr r0, _0802499C @ =gStringVar4 - ldr r1, _080249A0 @ =gUnknown_08400D9F - bl StringCopy - adds r5, r0, 0 - movs r1, 0 - mov r8, r1 -_0802495A: - movs r2, 0 - mov r9, r2 - ldr r0, _080249A4 @ =gUnknown_0840165C - mov r1, r8 - lsls r4, r1, 2 - adds r0, r4, r0 - ldr r1, [r0] - adds r0, r5, 0 - bl StringAppend - adds r5, r0, 0 - ldr r0, _080249A8 @ =0x02000000 - ldr r2, _080249AC @ =0x00016018 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080249B0 @ =gPlayerParty - adds r0, r1 - ldr r1, _080249B4 @ =gLevelUpStatBoxStats - add r1, r8 - ldrb r1, [r1] - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - mov r0, r8 - cmp r0, 0x5 - bhi _08024A1A - ldr r0, _080249B8 @ =_080249BC - adds r0, r4, r0 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802499C: .4byte gStringVar4 -_080249A0: .4byte gUnknown_08400D9F -_080249A4: .4byte gUnknown_0840165C -_080249A8: .4byte 0x02000000 -_080249AC: .4byte 0x00016018 -_080249B0: .4byte gPlayerParty -_080249B4: .4byte gLevelUpStatBoxStats -_080249B8: .4byte _080249BC - .align 2, 0 -_080249BC: - .4byte _080249D4 - .4byte _080249E0 - .4byte _080249EC - .4byte _080249F8 - .4byte _08024A04 - .4byte _08024A10 -_080249D4: - ldr r0, _080249DC @ =0x02017180 - ldrh r0, [r0] - b _08024A14 - .align 2, 0 -_080249DC: .4byte 0x02017180 -_080249E0: - ldr r0, _080249E8 @ =0x02017180 - ldrh r0, [r0, 0x8] - b _08024A14 - .align 2, 0 -_080249E8: .4byte 0x02017180 -_080249EC: - ldr r0, _080249F4 @ =0x02017180 - ldrh r0, [r0, 0x2] - b _08024A14 - .align 2, 0 -_080249F4: .4byte 0x02017180 -_080249F8: - ldr r0, _08024A00 @ =0x02017180 - ldrh r0, [r0, 0xA] - b _08024A14 - .align 2, 0 -_08024A00: .4byte 0x02017180 -_08024A04: - ldr r0, _08024A0C @ =0x02017180 - ldrh r0, [r0, 0x4] - b _08024A14 - .align 2, 0 -_08024A0C: .4byte 0x02017180 -_08024A10: - ldr r0, _08024A54 @ =0x02017180 - ldrh r0, [r0, 0x6] -_08024A14: - subs r0, r1, r0 - lsls r0, 16 - lsrs r7, r0, 16 -_08024A1A: - lsls r0, r7, 16 - asrs r0, 16 - cmp r0, 0 - bge _08024A2C - negs r0, r0 - lsls r0, 16 - lsrs r7, r0, 16 - movs r1, 0x1 - add r9, r1 -_08024A2C: - movs r0, 0xFC - strb r0, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r1, 0x1 - mov r2, r8 - ands r1, r2 - lsls r0, r1, 3 - adds r0, r1 - adds r0, 0x5 - lsls r0, 3 - adds r0, 0x6 - strb r0, [r5, 0x2] - adds r5, 0x3 - mov r0, r9 - cmp r0, 0 - beq _08024A5C - ldr r1, _08024A58 @ =gUnknown_08400DAC - b _08024A5E - .align 2, 0 -_08024A54: .4byte 0x02017180 -_08024A58: .4byte gUnknown_08400DAC -_08024A5C: - ldr r1, _08024AA4 @ =gUnknown_08400DAA -_08024A5E: - adds r0, r5, 0 - bl StringCopy - adds r5, r0, 0 - movs r6, 0xFC - strb r6, [r5] - movs r4, 0x14 - strb r4, [r5, 0x1] - movs r0, 0x6 - strb r0, [r5, 0x2] - adds r5, 0x3 - lsls r1, r7, 16 - asrs r1, 16 - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - strb r6, [r5] - strb r4, [r5, 0x1] - movs r0, 0 - strb r0, [r5, 0x2] - adds r5, 0x3 - movs r0, 0x1 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _08024AA8 - movs r0, 0xFE - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - adds r5, 0x1 - b _08024AB8 - .align 2, 0 -_08024AA4: .4byte gUnknown_08400DAA -_08024AA8: - strb r6, [r5] - movs r0, 0x11 - strb r0, [r5, 0x1] - movs r0, 0x8 - strb r0, [r5, 0x2] - adds r5, 0x3 - movs r0, 0xFF - strb r0, [r5] -_08024AB8: - movs r2, 0x1 - add r8, r2 - mov r0, r8 - cmp r0, 0x5 - bgt _08024AC4 - b _0802495A -_08024AC4: - ldr r4, _08024AE4 @ =gUnknown_03004210 - ldr r1, _08024AE8 @ =gStringVar4 - adds r2, 0xFF - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0xC - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _08024AEC @ =0x02000000 - ldr r2, _08024AF0 @ =0x0001609c - adds r1, r2 - b _08024BEA - .align 2, 0 -_08024AE4: .4byte gUnknown_03004210 -_08024AE8: .4byte gStringVar4 -_08024AEC: .4byte 0x02000000 -_08024AF0: .4byte 0x0001609c -_08024AF4: - ldr r0, _08024B94 @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - bne _08024AFE - b _08024C38 -_08024AFE: - movs r0, 0x5 - bl PlaySE - ldr r0, _08024B98 @ =gStringVar4 - ldr r1, _08024B9C @ =gUnknown_08400D9F - bl StringCopy - adds r5, r0, 0 - movs r0, 0 - mov r8, r0 - mov r9, r0 - movs r6, 0xFC - movs r7, 0x14 - ldr r1, _08024BA0 @ =0x00016018 - add r10, r1 -_08024B1C: - ldr r1, _08024BA4 @ =gUnknown_0840165C - mov r2, r8 - lsls r0, r2, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r5, 0 - bl StringAppend - adds r5, r0, 0 - mov r0, r10 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08024BA8 @ =gPlayerParty - adds r0, r1 - ldr r1, _08024BAC @ =gLevelUpStatBoxStats - add r1, r8 - ldrb r1, [r1] - bl GetMonData - adds r1, r0, 0 - strb r6, [r5] - movs r0, 0x13 - strb r0, [r5, 0x1] - movs r4, 0x1 - mov r2, r8 - ands r4, r2 - lsls r0, r4, 3 - adds r0, r4 - adds r0, 0x5 - lsls r0, 3 - adds r0, 0x6 - strb r0, [r5, 0x2] - adds r5, 0x3 - strb r6, [r5] - strb r7, [r5, 0x1] - movs r0, 0x6 - strb r0, [r5, 0x2] - adds r5, 0x3 - lsls r1, 16 - asrs r1, 16 - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - strb r6, [r5] - strb r7, [r5, 0x1] - mov r0, r9 - strb r0, [r5, 0x2] - adds r5, 0x3 - cmp r4, 0 - beq _08024BB0 - movs r0, 0xFE - strb r0, [r5] - movs r0, 0xFF - strb r0, [r5, 0x1] - adds r5, 0x1 - b _08024BC0 - .align 2, 0 -_08024B94: .4byte gMain -_08024B98: .4byte gStringVar4 -_08024B9C: .4byte gUnknown_08400D9F -_08024BA0: .4byte 0x00016018 -_08024BA4: .4byte gUnknown_0840165C -_08024BA8: .4byte gPlayerParty -_08024BAC: .4byte gLevelUpStatBoxStats -_08024BB0: - strb r6, [r5] - movs r0, 0x11 - strb r0, [r5, 0x1] - movs r0, 0x8 - strb r0, [r5, 0x2] - adds r5, 0x3 - movs r0, 0xFF - strb r0, [r5] -_08024BC0: - movs r1, 0x1 - add r8, r1 - mov r2, r8 - cmp r2, 0x5 - ble _08024B1C - ldr r4, _08024BF4 @ =gUnknown_03004210 - ldr r1, _08024BF8 @ =gStringVar4 - movs r2, 0x80 - lsls r2, 1 - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0xC - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _08024BFC @ =0x02000000 - ldr r0, _08024C00 @ =0x0001609c - adds r1, r0 -_08024BEA: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08024C38 - .align 2, 0 -_08024BF4: .4byte gUnknown_03004210 -_08024BF8: .4byte gStringVar4 -_08024BFC: .4byte 0x02000000 -_08024C00: .4byte 0x0001609c -_08024C04: - ldr r0, _08024C2C @ =gMain - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _08024C38 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - str r0, [sp] - movs r0, 0xB - movs r1, 0 - movs r2, 0x1D - movs r3, 0x7 - bl sub_802BBD4 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08024C38 - .align 2, 0 -_08024C2C: .4byte gMain -_08024C30: - ldr r1, _08024C48 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08024C38: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08024C48: .4byte gUnknown_02024C10 - thumb_func_end sub_80248FC - - thumb_func_start sub_8024C4C -sub_8024C4C: @ 8024C4C - push {lr} - bl sub_80156DC - ldr r1, _08024C60 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08024C60: .4byte gUnknown_02024C10 - thumb_func_end sub_8024C4C - - thumb_func_start atk6E_state0_side_becomes_attacker -atk6E_state0_side_becomes_attacker: @ 8024C64 - push {lr} - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _08024C7C @ =gUnknown_02024C07 - strb r0, [r1] - ldr r1, _08024C80 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08024C7C: .4byte gUnknown_02024C07 -_08024C80: .4byte gUnknown_02024C10 - thumb_func_end atk6E_state0_side_becomes_attacker - - thumb_func_start atk6F_8026810 -atk6F_8026810: @ 8024C84 - push {r4,r5,lr} - ldr r5, _08024CB0 @ =gUnknown_02024C10 - ldr r0, [r5] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r4, _08024CB4 @ =gUnknown_02024A60 - strb r0, [r4] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x33_a_33_33 - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08024CB0: .4byte gUnknown_02024C10 -_08024CB4: .4byte gUnknown_02024A60 - thumb_func_end atk6F_8026810 - - thumb_func_start atk70_record_ability_usage_of_side -atk70_record_ability_usage_of_side: @ 8024CB8 - push {r4,lr} - ldr r4, _08024CE0 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r1, _08024CE4 @ =gUnknown_02024A60 - strb r0, [r1] - ldrb r0, [r1] - ldr r1, _08024CE8 @ =byte_2024C06 - ldrb r1, [r1] - bl sub_81074C4 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08024CE0: .4byte gUnknown_02024C10 -_08024CE4: .4byte gUnknown_02024A60 -_08024CE8: .4byte byte_2024C06 - thumb_func_end atk70_record_ability_usage_of_side - - thumb_func_start sub_8024CEC -sub_8024CEC: @ 8024CEC - ldr r2, _08024D0C @ =gUnknown_03004290 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x2 - strb r0, [r2, 0x1] - ldr r0, _08024D10 @ =word_2024E82 - ldrh r1, [r0] - strb r1, [r2, 0x2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - bx lr - .align 2, 0 -_08024D0C: .4byte gUnknown_03004290 -_08024D10: .4byte word_2024E82 - thumb_func_end sub_8024CEC - - thumb_func_start atk71_80268A0 -atk71_80268A0: @ 8024D14 - push {lr} - bl sub_8024CEC - ldr r1, _08024D28 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08024D28: .4byte gUnknown_02024C10 - thumb_func_end atk71_80268A0 - - thumb_func_start atk72_flee -atk72_flee: @ 8024D2C - push {lr} - ldr r0, _08024D58 @ =gUnknown_02024C09 - ldrb r0, [r0] - bl sub_8014AB8 - lsls r0, 24 - cmp r0, 0 - beq _08024D60 - ldr r3, _08024D5C @ =gUnknown_02024C10 - 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 _08024D68 - .align 2, 0 -_08024D58: .4byte gUnknown_02024C09 -_08024D5C: .4byte gUnknown_02024C10 -_08024D60: - ldr r1, _08024D6C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08024D68: - pop {r0} - bx r0 - .align 2, 0 -_08024D6C: .4byte gUnknown_02024C10 - thumb_func_end atk72_flee - - thumb_func_start atk73_cmd73 -atk73_cmd73: @ 8024D70 - push {r4,r5,lr} - ldr r0, _08024DC0 @ =gUnknown_020239F8 - ldrh r0, [r0] - movs r5, 0x1 - ands r5, r0 - cmp r5, 0 - bne _08024E12 - ldr r0, _08024DC4 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r1, _08024DC8 @ =gUnknown_02024A60 - strb r0, [r1] - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08024DCC @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r4, [r1, 0x28] - movs r0, 0x64 - muls r0, r4 - ldrh r1, [r1, 0x2C] - bl __divsi3 - cmp r0, 0 - bne _08024DAE - movs r0, 0x1 -_08024DAE: - cmp r0, 0x45 - bgt _08024DB6 - cmp r4, 0 - bne _08024DD8 -_08024DB6: - ldr r0, _08024DD0 @ =0x02000000 - ldr r1, _08024DD4 @ =0x000160c1 - adds r0, r1 - strb r5, [r0] - b _08024E12 - .align 2, 0 -_08024DC0: .4byte gUnknown_020239F8 -_08024DC4: .4byte gUnknown_02024C10 -_08024DC8: .4byte gUnknown_02024A60 -_08024DCC: .4byte gBattleMons -_08024DD0: .4byte 0x02000000 -_08024DD4: .4byte 0x000160c1 -_08024DD8: - cmp r0, 0x27 - ble _08024DF0 - ldr r0, _08024DE8 @ =0x02000000 - ldr r1, _08024DEC @ =0x000160c1 - adds r0, r1 - movs r1, 0x1 - b _08024E10 - .align 2, 0 -_08024DE8: .4byte 0x02000000 -_08024DEC: .4byte 0x000160c1 -_08024DF0: - cmp r0, 0x9 - ble _08024E08 - ldr r0, _08024E00 @ =0x02000000 - ldr r1, _08024E04 @ =0x000160c1 - adds r0, r1 - movs r1, 0x2 - b _08024E10 - .align 2, 0 -_08024E00: .4byte 0x02000000 -_08024E04: .4byte 0x000160c1 -_08024E08: - ldr r0, _08024E20 @ =0x02000000 - ldr r1, _08024E24 @ =0x000160c1 - adds r0, r1 - movs r1, 0x3 -_08024E10: - strb r1, [r0] -_08024E12: - ldr r1, _08024E28 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08024E20: .4byte 0x02000000 -_08024E24: .4byte 0x000160c1 -_08024E28: .4byte gUnknown_02024C10 - thumb_func_end atk73_cmd73 - - thumb_func_start atk74_hp_tresholds_2 -atk74_hp_tresholds_2: @ 8024E2C - push {r4-r7,lr} - ldr r0, _08024E8C @ =gUnknown_020239F8 - ldrh r0, [r0] - movs r7, 0x1 - ands r7, r0 - cmp r7, 0 - bne _08024ED0 - ldr r0, _08024E90 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r0, [r0, 0x1] - bl sub_8015150 - adds r4, r0, 0 - ldr r0, _08024E94 @ =gUnknown_02024A60 - strb r4, [r0] - movs r0, 0x1 - eors r4, r0 - lsls r4, 24 - lsrs r4, 24 - ldr r6, _08024E98 @ =0x02000000 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - ldr r1, _08024E9C @ =0x000160bc - adds r0, r1 - adds r0, r6 - ldrb r5, [r0] - ldr r1, _08024EA0 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r4, [r0, 0x28] - subs r1, r5, r4 - movs r0, 0x64 - muls r0, r1 - adds r1, r5, 0 - bl __divsi3 - adds r1, r0, 0 - cmp r4, r5 - bcc _08024EA8 - ldr r1, _08024EA4 @ =0x000160c1 - adds r0, r6, r1 - strb r7, [r0] - b _08024ED0 - .align 2, 0 -_08024E8C: .4byte gUnknown_020239F8 -_08024E90: .4byte gUnknown_02024C10 -_08024E94: .4byte gUnknown_02024A60 -_08024E98: .4byte 0x02000000 -_08024E9C: .4byte 0x000160bc -_08024EA0: .4byte gBattleMons -_08024EA4: .4byte 0x000160c1 -_08024EA8: - cmp r0, 0x1D - bgt _08024EB8 - ldr r0, _08024EB4 @ =0x000160c1 - adds r1, r6, r0 - movs r0, 0x1 - b _08024ECE - .align 2, 0 -_08024EB4: .4byte 0x000160c1 -_08024EB8: - cmp r1, 0x45 - bgt _08024EC8 - ldr r0, _08024EC4 @ =0x000160c1 - adds r1, r6, r0 - movs r0, 0x2 - b _08024ECE - .align 2, 0 -_08024EC4: .4byte 0x000160c1 -_08024EC8: - ldr r0, _08024EE0 @ =0x000160c1 - adds r1, r6, r0 - movs r0, 0x3 -_08024ECE: - strb r0, [r1] -_08024ED0: - ldr r1, _08024EE4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08024EE0: .4byte 0x000160c1 -_08024EE4: .4byte gUnknown_02024C10 - thumb_func_end atk74_hp_tresholds_2 - - thumb_func_start atk75_8026A58 -atk75_8026A58: @ 8024EE8 - push {lr} - sub sp, 0x4 - ldr r2, _08024F28 @ =gUnknown_02024E6C - ldr r1, _08024F2C @ =gUnknown_02024C07 - ldrb r0, [r1] - strb r0, [r2] - ldr r2, _08024F30 @ =gUnknown_02024A6A - ldrb r0, [r1] - lsls r0, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r1, _08024F34 @ =gEnemyParty - adds r0, r1 - ldr r1, _08024F38 @ =gUnknown_02024C04 - ldrh r1, [r1] - lsls r2, 24 - lsrs r2, 24 - movs r3, 0x1 - str r3, [sp] - movs r3, 0 - bl sub_803E1B0 - ldr r1, _08024F3C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08024F28: .4byte gUnknown_02024E6C -_08024F2C: .4byte gUnknown_02024C07 -_08024F30: .4byte gUnknown_02024A6A -_08024F34: .4byte gEnemyParty -_08024F38: .4byte gUnknown_02024C04 -_08024F3C: .4byte gUnknown_02024C10 - thumb_func_end atk75_8026A58 - - thumb_func_start sub_8024F40 -sub_8024F40: @ 8024F40 - push {r4-r6,lr} - ldr r4, _08024F64 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r1, _08024F68 @ =gUnknown_02024A60 - strb r0, [r1] - ldr r0, [r4] - ldrb r0, [r0, 0x2] - cmp r0, 0x6 - bls _08024F5A - b _08025112 -_08024F5A: - lsls r0, 2 - ldr r1, _08024F6C @ =_08024F70 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08024F64: .4byte gUnknown_02024C10 -_08024F68: .4byte gUnknown_02024A60 -_08024F6C: .4byte _08024F70 - .align 2, 0 -_08024F70: - .4byte _08024F8C - .4byte _08024F9C - .4byte _08024FFC - .4byte _0802500C - .4byte _08025024 - .4byte _08025060 - .4byte _08025098 -_08024F8C: - ldr r0, _08024F98 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe - b _08025112 - .align 2, 0 -_08024F98: .4byte gUnknown_02024A60 -_08024F9C: - ldr r1, _08024FD8 @ =gUnknown_02024C07 - ldr r4, _08024FDC @ =gUnknown_02024C08 - ldrb r0, [r4] - strb r0, [r1] - ldrb r0, [r1] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08024FE0 @ =gUnknown_02024C80 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r2, r1, r2 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _08024FE8 - ldr r1, _08024FE4 @ =gBattleMons - ldrb r2, [r2, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08024FE8 - strb r2, [r4] - b _08025112 - .align 2, 0 -_08024FD8: .4byte gUnknown_02024C07 -_08024FDC: .4byte gUnknown_02024C08 -_08024FE0: .4byte gUnknown_02024C80 -_08024FE4: .4byte gBattleMons -_08024FE8: - ldr r0, _08024FF4 @ =gUnknown_02024C08 - ldr r1, _08024FF8 @ =gUnknown_02024A60 - ldrb r1, [r1] - strb r1, [r0] - b _08025112 - .align 2, 0 -_08024FF4: .4byte gUnknown_02024C08 -_08024FF8: .4byte gUnknown_02024A60 -_08024FFC: - bl sub_8012028 - ldr r1, _08025008 @ =gUnknown_02024D1E - strb r0, [r1] - b _08025112 - .align 2, 0 -_08025008: .4byte gUnknown_02024D1E -_0802500C: - ldr r0, _0802501C @ =gUnknown_02024BE6 - ldrh r0, [r0] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _08025020 @ =gUnknown_02024C08 - strb r0, [r1] - b _08025112 - .align 2, 0 -_0802501C: .4byte gUnknown_02024BE6 -_08025020: .4byte gUnknown_02024C08 -_08025024: - ldr r2, _08025044 @ =gUnknown_02024C6C - ldr r1, _08025048 @ =gBitTable - ldr r0, _0802504C @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 28 - ldr r2, [r2] - ands r2, r0 - cmp r2, 0 - beq _08025054 - ldr r1, _08025050 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1] - b _08025112 - .align 2, 0 -_08025044: .4byte gUnknown_02024C6C -_08025048: .4byte gBitTable -_0802504C: .4byte gUnknown_02024A60 -_08025050: .4byte gUnknown_02024D1E -_08025054: - ldr r0, _0802505C @ =gUnknown_02024D1E - strb r2, [r0] - b _08025112 - .align 2, 0 -_0802505C: .4byte gUnknown_02024D1E -_08025060: - ldr r4, _08025090 @ =gUnknown_02024D68 - ldr r3, _08025094 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _08025112 - .align 2, 0 -_08025090: .4byte gUnknown_02024D68 -_08025094: .4byte gUnknown_02024A60 -_08025098: - ldr r3, _080250B8 @ =gUnknown_02024A6A - ldr r0, _080250BC @ =0x02000000 - ldr r1, _080250C0 @ =0x00016018 - adds r0, r1 - ldrh r2, [r3] - ldrb r1, [r0] - cmp r2, r1 - beq _080250B2 - ldrh r0, [r3, 0x4] - cmp r0, r1 - bne _08025112 - cmp r2, r0 - bne _080250C8 -_080250B2: - ldr r1, _080250C4 @ =gUnknown_02024A60 - movs r0, 0 - b _080250CC - .align 2, 0 -_080250B8: .4byte gUnknown_02024A6A -_080250BC: .4byte 0x02000000 -_080250C0: .4byte 0x00016018 -_080250C4: .4byte gUnknown_02024A60 -_080250C8: - ldr r1, _08025120 @ =gUnknown_02024A60 - movs r0, 0x2 -_080250CC: - strb r0, [r1] - adds r5, r1, 0 - ldrb r2, [r5] - lsls r1, r2, 1 - ldr r0, _08025124 @ =0x020160e8 - adds r4, r1, r0 - movs r3, 0 - ldr r1, _08025128 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - ldrh r2, [r4] - cmp r0, r2 - beq _0802510A - adds r6, r5, 0 - movs r5, 0x58 - adds r2, r1, 0 -_080250F2: - adds r3, 0x1 - cmp r3, 0x3 - bgt _0802510A - lsls r1, r3, 1 - ldrb r0, [r6] - muls r0, r5 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - ldrh r1, [r4] - cmp r0, r1 - bne _080250F2 -_0802510A: - cmp r3, 0x4 - bne _08025112 - movs r0, 0 - strh r0, [r4] -_08025112: - ldr r1, _0802512C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x3 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08025120: .4byte gUnknown_02024A60 -_08025124: .4byte 0x020160e8 -_08025128: .4byte gBattleMons -_0802512C: .4byte gUnknown_02024C10 - thumb_func_end sub_8024F40 - - thumb_func_start atk77_setprotect -atk77_setprotect: @ 8025130 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r6, 0x1 - ldr r2, _080251FC @ =gUnknown_02024C4C - ldr r1, _08025200 @ =gUnknown_02024C07 - ldrb r3, [r1] - lsls r0, r3, 1 - adds r0, r2 - ldrh r0, [r0] - mov r8, r1 - ldr r7, _08025204 @ =gUnknown_02024CA8 - cmp r0, 0xB6 - beq _08025160 - cmp r0, 0xC5 - beq _08025160 - cmp r0, 0xCB - beq _08025160 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r7 - movs r1, 0 - strb r1, [r0, 0x8] -_08025160: - ldr r0, _08025208 @ =gUnknown_02024A7E - ldrb r1, [r0] - ldr r0, _0802520C @ =gUnknown_02024A68 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _08025170 - movs r6, 0 -_08025170: - ldr r2, _08025210 @ =gProtectSuccessRates - mov r5, r8 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r4, [r0, 0x8] - lsls r4, 1 - adds r4, r2 - bl Random - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bls _08025224 - cmp r6, 0 - beq _08025224 - ldr r4, _08025214 @ =gBattleMoves - ldr r3, _08025218 @ =gUnknown_02024BE6 - ldrh r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - cmp r0, 0x6F - bne _080251C0 - ldr r0, _0802521C @ =gUnknown_02024D28 - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strb r0, [r1] - ldr r1, _08025220 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] -_080251C0: - ldrh r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - cmp r0, 0x74 - bne _080251E6 - ldr r0, _0802521C @ =gUnknown_02024D28 - ldrb r1, [r5] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - ldr r1, _08025220 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] -_080251E6: - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r7 - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] - b _08025246 - .align 2, 0 -_080251FC: .4byte gUnknown_02024C4C -_08025200: .4byte gUnknown_02024C07 -_08025204: .4byte gUnknown_02024CA8 -_08025208: .4byte gUnknown_02024A7E -_0802520C: .4byte gUnknown_02024A68 -_08025210: .4byte gProtectSuccessRates -_08025214: .4byte gBattleMoves -_08025218: .4byte gUnknown_02024BE6 -_0802521C: .4byte gUnknown_02024D28 -_08025220: .4byte gUnknown_02024D1E -_08025224: - ldr r2, _08025258 @ =gUnknown_02024CA8 - ldr r0, _0802525C @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x8] - ldr r1, _08025260 @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - ldr r2, _08025264 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_08025246: - ldr r1, _08025268 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08025258: .4byte gUnknown_02024CA8 -_0802525C: .4byte gUnknown_02024C07 -_08025260: .4byte gUnknown_02024D1E -_08025264: .4byte gUnknown_02024C68 -_08025268: .4byte gUnknown_02024C10 - thumb_func_end atk77_setprotect - - thumb_func_start atk78_faintifabilitynotdamp -atk78_faintifabilitynotdamp: @ 802526C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08025328 @ =gUnknown_02024A64 - ldr r2, [r0] - cmp r2, 0 - bne _08025370 - ldr r1, _0802532C @ =gUnknown_02024C08 - strb r2, [r1] - ldr r0, _08025330 @ =gUnknown_02024A68 - ldrb r3, [r0] - adds r5, r1, 0 - mov r8, r0 - ldr r6, _08025334 @ =gBattleMons - cmp r2, r3 - bcs _080252B8 - adds r0, r6, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080252B8 - adds r2, r3, 0 - adds r4, r6, 0 - movs r3, 0x58 -_0802529C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r2 - bcs _080252B8 - ldrb r0, [r5] - muls r0, r3 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x6 - bne _0802529C -_080252B8: - ldrb r0, [r5] - mov r1, r8 - ldrb r1, [r1] - cmp r0, r1 - bne _08025354 - ldr r4, _08025338 @ =gUnknown_02024A60 - ldr r7, _0802533C @ =gUnknown_02024C07 - ldrb r0, [r7] - strb r0, [r4] - ldr r2, _08025340 @ =gUnknown_02024BEC - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r6 - ldrh r0, [r0, 0x28] - str r0, [r2] - ldr r1, _08025344 @ =0x00007fff - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08025348 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - movs r0, 0 - strb r0, [r5] - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0 - beq _08025370 - adds r3, r5, 0 - ldrb r5, [r7] - ldr r7, _0802534C @ =gBitTable - adds r4, r0, 0 - ldr r6, _08025350 @ =gUnknown_02024C0C -_08025304: - ldrb r2, [r3] - cmp r2, r5 - beq _0802531A - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r7 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _08025370 -_0802531A: - adds r0, r2, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcc _08025304 - b _08025370 - .align 2, 0 -_08025328: .4byte gUnknown_02024A64 -_0802532C: .4byte gUnknown_02024C08 -_08025330: .4byte gUnknown_02024A68 -_08025334: .4byte gBattleMons -_08025338: .4byte gUnknown_02024A60 -_0802533C: .4byte gUnknown_02024C07 -_08025340: .4byte gUnknown_02024BEC -_08025344: .4byte 0x00007fff -_08025348: .4byte gUnknown_02024C10 -_0802534C: .4byte gBitTable -_08025350: .4byte gUnknown_02024C0C -_08025354: - ldr r1, _0802537C @ =byte_2024C06 - movs r0, 0x6 - strb r0, [r1] - ldrb r0, [r5] - movs r1, 0x58 - muls r1, r0 - adds r1, r6 - adds r1, 0x20 - ldrb r1, [r1] - bl sub_81074C4 - ldr r1, _08025380 @ =gUnknown_02024C10 - ldr r0, _08025384 @ =gUnknown_081D9834 - str r0, [r1] -_08025370: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802537C: .4byte byte_2024C06 -_08025380: .4byte gUnknown_02024C10 -_08025384: .4byte gUnknown_081D9834 - thumb_func_end atk78_faintifabilitynotdamp - - thumb_func_start atk79_setuserhptozero -atk79_setuserhptozero: @ 8025388 - push {r4,lr} - sub sp, 0x4 - ldr r0, _080253D4 @ =gUnknown_02024A64 - ldr r3, [r0] - cmp r3, 0 - bne _080253CC - ldr r4, _080253D8 @ =gUnknown_02024A60 - ldr r0, _080253DC @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _080253E0 @ =gBattleMons - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r0, r1 - strh r3, [r0, 0x28] - ldrb r0, [r4] - muls r0, r2 - adds r1, 0x28 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2A - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080253E4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080253CC: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080253D4: .4byte gUnknown_02024A64 -_080253D8: .4byte gUnknown_02024A60 -_080253DC: .4byte gUnknown_02024C07 -_080253E0: .4byte gBattleMons -_080253E4: .4byte gUnknown_02024C10 - thumb_func_end atk79_setuserhptozero - - thumb_func_start sub_80253E8 -sub_80253E8: @ 80253E8 - push {r4-r7,lr} - ldr r3, _08025460 @ =gUnknown_02024C10 - ldr r2, [r3] - ldrb r4, [r2, 0x1] - ldrb r0, [r2, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r2, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r2, 0x4] - lsls r0, 24 - orrs r4, r0 - ldr r0, _08025464 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - adds r7, r3, 0 - cmp r0, 0 - beq _08025480 - ldr r0, _08025468 @ =gUnknown_02024C08 - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r2, _0802546C @ =gUnknown_02024C07 - lsls r1, 24 - lsrs r1, 24 - adds r3, r0, 0 - ldr r6, _08025470 @ =gUnknown_02024C0C - ldr r5, _08025474 @ =gBitTable - ldr r0, _08025478 @ =gUnknown_02024A68 - mov r12, r0 - ldrb r0, [r2] - cmp r1, r0 - bne _0802543E -_0802542E: - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2] - cmp r0, r1 - beq _0802542E -_0802543E: - ldrb r0, [r6] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r5 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _0802542E - ldrb r0, [r3] - mov r2, r12 - ldrb r2, [r2] - cmp r0, r2 - bcc _0802547C - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - b _08025484 - .align 2, 0 -_08025460: .4byte gUnknown_02024C10 -_08025464: .4byte gUnknown_020239F8 -_08025468: .4byte gUnknown_02024C08 -_0802546C: .4byte gUnknown_02024C07 -_08025470: .4byte gUnknown_02024C0C -_08025474: .4byte gBitTable -_08025478: .4byte gUnknown_02024A68 -_0802547C: - str r4, [r7] - b _08025484 -_08025480: - adds r0, r2, 0x5 - str r0, [r3] -_08025484: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80253E8 - - thumb_func_start sub_802548C -sub_802548C: @ 802548C - push {r4-r6,lr} - ldr r4, _080254E8 @ =gUnknown_02024C10 - ldr r1, [r4] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldrb r0, [r1, 0x5] - ldr r3, _080254EC @ =gUnknown_02024C08 - cmp r0, 0x1 - bne _080254B4 - ldr r0, _080254F0 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r3] -_080254B4: - ldr r1, _080254F4 @ =gUnknown_02024BEC - ldr r6, _080254F8 @ =gBattleMons - ldrb r0, [r3] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _080254CE - movs r0, 0x1 - str r0, [r1] -_080254CE: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldrb r0, [r3] - muls r0, r5 - adds r0, r6 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - bne _080254FC - str r2, [r4] - b _08025502 - .align 2, 0 -_080254E8: .4byte gUnknown_02024C10 -_080254EC: .4byte gUnknown_02024C08 -_080254F0: .4byte gUnknown_02024C07 -_080254F4: .4byte gUnknown_02024BEC -_080254F8: .4byte gBattleMons -_080254FC: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_08025502: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_802548C - - thumb_func_start sub_8025508 -sub_8025508: @ 8025508 - push {r4-r7,lr} - ldr r3, _0802556C @ =0x02000000 - ldr r4, _08025570 @ =gUnknown_02024C07 - ldrb r2, [r4] - lsls r1, r2, 1 - ldr r5, _08025574 @ =0x000160ac - adds r0, r1, r5 - adds r0, r3 - ldrb r7, [r0] - ldr r0, _08025578 @ =0x000160ad - adds r1, r0 - adds r1, r3 - ldrb r0, [r1] - lsls r0, 8 - orrs r7, r0 - lsls r2, 2 - ldr r1, _0802557C @ =0x00016100 - adds r0, r2, r1 - adds r0, r3 - ldrb r6, [r0] - adds r5, 0x55 - adds r0, r2, r5 - adds r0, r3 - ldrb r0, [r0] - lsls r0, 8 - orrs r6, r0 - adds r1, 0x2 - adds r0, r2, r1 - adds r0, r3 - ldrb r5, [r0] - ldr r0, _08025580 @ =0x00016103 - adds r2, r0 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r5, r0 - cmp r7, 0 - beq _08025594 - ldr r0, _08025584 @ =0x0000ffff - cmp r7, r0 - beq _08025594 - ldr r2, _08025588 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0802558C @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, _08025590 @ =gUnknown_02024BE6 - strh r7, [r4] - b _0802565C - .align 2, 0 -_0802556C: .4byte 0x02000000 -_08025570: .4byte gUnknown_02024C07 -_08025574: .4byte 0x000160ac -_08025578: .4byte 0x000160ad -_0802557C: .4byte 0x00016100 -_08025580: .4byte 0x00016103 -_08025584: .4byte 0x0000ffff -_08025588: .4byte gUnknown_02024C6C -_0802558C: .4byte 0xfffffbff -_08025590: .4byte gUnknown_02024BE6 -_08025594: - cmp r6, 0 - beq _08025644 - cmp r5, 0 - beq _08025618 - ldr r0, _080255C4 @ =0x0000ffff - cmp r6, r0 - beq _08025618 - cmp r5, r0 - beq _08025618 - ldr r2, _080255C8 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _080255CC @ =0xfffffbff - ands r0, r1 - str r0, [r2] - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080255D4 - ldr r0, _080255D0 @ =gUnknown_02024BE6 - strh r6, [r0] - b _080255D8 - .align 2, 0 -_080255C4: .4byte 0x0000ffff -_080255C8: .4byte gUnknown_02024C6C -_080255CC: .4byte 0xfffffbff -_080255D0: .4byte gUnknown_02024BE6 -_080255D4: - ldr r0, _08025604 @ =gUnknown_02024BE6 - strh r5, [r0] -_080255D8: - adds r5, r0, 0 - ldrh r0, [r5] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _08025608 @ =gUnknown_02024C08 - strb r0, [r1] - ldr r4, _0802560C @ =gUnknown_02024C10 - ldr r3, _08025610 @ =gUnknown_081D6BBC - ldr r2, _08025614 @ =gBattleMoves - ldrh r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r4] - b _080256C0 - .align 2, 0 -_08025604: .4byte gUnknown_02024BE6 -_08025608: .4byte gUnknown_02024C08 -_0802560C: .4byte gUnknown_02024C10 -_08025610: .4byte gUnknown_081D6BBC -_08025614: .4byte gBattleMoves -_08025618: - cmp r6, 0 - beq _08025644 - ldr r0, _08025634 @ =0x0000ffff - cmp r6, r0 - beq _08025644 - ldr r2, _08025638 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0802563C @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, _08025640 @ =gUnknown_02024BE6 - strh r6, [r4] - b _0802565C - .align 2, 0 -_08025634: .4byte 0x0000ffff -_08025638: .4byte gUnknown_02024C6C -_0802563C: .4byte 0xfffffbff -_08025640: .4byte gUnknown_02024BE6 -_08025644: - cmp r5, 0 - beq _080256A4 - ldr r0, _08025684 @ =0x0000ffff - cmp r5, r0 - beq _080256A4 - ldr r2, _08025688 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0802568C @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, _08025690 @ =gUnknown_02024BE6 - strh r5, [r4] -_0802565C: - ldrh r0, [r4] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _08025694 @ =gUnknown_02024C08 - strb r0, [r1] - ldr r5, _08025698 @ =gUnknown_02024C10 - ldr r3, _0802569C @ =gUnknown_081D6BBC - ldr r2, _080256A0 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r5] - b _080256C0 - .align 2, 0 -_08025684: .4byte 0x0000ffff -_08025688: .4byte gUnknown_02024C6C -_0802568C: .4byte 0xfffffbff -_08025690: .4byte gUnknown_02024BE6 -_08025694: .4byte gUnknown_02024C08 -_08025698: .4byte gUnknown_02024C10 -_0802569C: .4byte gUnknown_081D6BBC -_080256A0: .4byte gBattleMoves -_080256A4: - ldr r2, _080256C8 @ =gUnknown_02024D68 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r1, _080256CC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_080256C0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080256C8: .4byte gUnknown_02024D68 -_080256CC: .4byte gUnknown_02024C10 - thumb_func_end sub_8025508 - - thumb_func_start sub_80256D0 -sub_80256D0: @ 80256D0 - push {lr} - ldr r2, _080256F0 @ =word_2024DB8 - ldrh r0, [r2] - movs r1, 0x7 - ands r1, r0 - cmp r1, 0 - beq _080256FC - ldr r2, _080256F4 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080256F8 @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - b _0802570C - .align 2, 0 -_080256F0: .4byte word_2024DB8 -_080256F4: .4byte gUnknown_02024C68 -_080256F8: .4byte gUnknown_02024D1E -_080256FC: - movs r0, 0x1 - strh r0, [r2] - ldr r0, _08025718 @ =gUnknown_02024D1E - strb r1, [r0, 0x5] - ldr r0, _0802571C @ =gUnknown_02024DBC - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_0802570C: - ldr r1, _08025720 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08025718: .4byte gUnknown_02024D1E -_0802571C: .4byte gUnknown_02024DBC -_08025720: .4byte gUnknown_02024C10 - thumb_func_end sub_80256D0 - - thumb_func_start atk7E_setreflect -atk7E_setreflect: @ 8025724 - push {r4-r6,lr} - ldr r5, _08025754 @ =gUnknown_02024C07 - ldrb r0, [r5] - bl battle_get_per_side_status - ldr r6, _08025758 @ =gUnknown_02024C7A - movs r4, 0x1 - adds r1, r4, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08025764 - ldr r2, _0802575C @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08025760 @ =gUnknown_02024D1E - movs r0, 0 - b _080257C4 - .align 2, 0 -_08025754: .4byte gUnknown_02024C07 -_08025758: .4byte gUnknown_02024C7A -_0802575C: .4byte gUnknown_02024C68 -_08025760: .4byte gUnknown_02024D1E -_08025764: - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r4, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r6 - ldrh r0, [r1] - movs r2, 0x1 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r5] - bl battle_get_per_side_status - ldr r2, _080257B4 @ =gUnknown_02024C80 - adds r1, r4, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strb r1, [r0] - ldr r0, _080257B8 @ =gUnknown_020239F8 - ldrh r1, [r0] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _080257C0 - movs r0, 0x1 - bl sub_803C348 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bne _080257C0 - ldr r0, _080257BC @ =gUnknown_02024D1E - strb r1, [r0, 0x5] - b _080257C6 - .align 2, 0 -_080257B4: .4byte gUnknown_02024C80 -_080257B8: .4byte gUnknown_020239F8 -_080257BC: .4byte gUnknown_02024D1E -_080257C0: - ldr r1, _080257D4 @ =gUnknown_02024D1E - movs r0, 0x1 -_080257C4: - strb r0, [r1, 0x5] -_080257C6: - ldr r1, _080257D8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080257D4: .4byte gUnknown_02024D1E -_080257D8: .4byte gUnknown_02024C10 - thumb_func_end atk7E_setreflect - - thumb_func_start sub_80257DC -sub_80257DC: @ 80257DC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r7, _0802581C @ =gUnknown_02024C68 - ldrb r5, [r7] - movs r0, 0x29 - ands r0, r5 - cmp r0, 0 - bne _0802580E - ldr r0, _08025820 @ =gUnknown_02024C98 - mov r9, r0 - ldr r1, _08025824 @ =gUnknown_02024C08 - mov r8, r1 - ldrb r4, [r1] - lsls r0, r4, 2 - mov r2, r9 - adds r6, r0, r2 - ldr r2, [r6] - movs r0, 0x4 - mov r12, r0 - adds r3, r2, 0 - ands r3, r0 - cmp r3, 0 - beq _0802582C -_0802580E: - movs r0, 0x1 - orrs r0, r5 - strb r0, [r7] - ldr r1, _08025828 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _0802587C - .align 2, 0 -_0802581C: .4byte gUnknown_02024C68 -_08025820: .4byte gUnknown_02024C98 -_08025824: .4byte gUnknown_02024C08 -_08025828: .4byte gUnknown_02024D1E -_0802582C: - ldr r1, _08025858 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xC - beq _08025848 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xC - bne _08025860 -_08025848: - movs r0, 0x1 - orrs r0, r5 - strb r0, [r7] - ldr r1, _0802585C @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - b _0802587C - .align 2, 0 -_08025858: .4byte gBattleMons -_0802585C: .4byte gUnknown_02024D1E -_08025860: - ldr r0, _08025890 @ =gUnknown_02024C07 - ldrb r0, [r0] - orrs r2, r0 - str r2, [r6] - mov r2, r8 - ldrb r1, [r2] - lsls r1, 2 - add r1, r9 - ldr r0, [r1] - mov r2, r12 - orrs r0, r2 - str r0, [r1] - ldr r0, _08025894 @ =gUnknown_02024D1E - strb r3, [r0, 0x5] -_0802587C: - ldr r1, _08025898 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08025890: .4byte gUnknown_02024C07 -_08025894: .4byte gUnknown_02024D1E -_08025898: .4byte gUnknown_02024C10 - thumb_func_end sub_80257DC - - thumb_func_start atk80_manipulatedamage -atk80_manipulatedamage: @ 802589C - push {r4,lr} - ldr r1, _080258B4 @ =gUnknown_02024C10 - ldr r0, [r1] - ldrb r2, [r0, 0x1] - adds r4, r1, 0 - cmp r2, 0x1 - beq _080258CC - cmp r2, 0x1 - bgt _080258B8 - cmp r2, 0 - beq _080258BE - b _0802590C - .align 2, 0 -_080258B4: .4byte gUnknown_02024C10 -_080258B8: - cmp r2, 0x2 - beq _08025904 - b _0802590C -_080258BE: - ldr r1, _080258C8 @ =gUnknown_02024BEC - ldr r0, [r1] - negs r0, r0 - b _0802590A - .align 2, 0 -_080258C8: .4byte gUnknown_02024BEC -_080258CC: - ldr r3, _080258F8 @ =gUnknown_02024BEC - ldr r0, [r3] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - str r0, [r3] - cmp r0, 0 - bne _080258DE - str r2, [r3] -_080258DE: - ldr r2, _080258FC @ =gBattleMons - ldr r0, _08025900 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r1, r0, 1 - ldr r0, [r3] - cmp r1, r0 - bge _0802590C - str r1, [r3] - b _0802590C - .align 2, 0 -_080258F8: .4byte gUnknown_02024BEC -_080258FC: .4byte gBattleMons -_08025900: .4byte gUnknown_02024C08 -_08025904: - ldr r1, _08025918 @ =gUnknown_02024BEC - ldr r0, [r1] - lsls r0, 1 -_0802590A: - str r0, [r1] -_0802590C: - ldr r0, [r4] - adds r0, 0x2 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08025918: .4byte gUnknown_02024BEC - thumb_func_end atk80_manipulatedamage - - thumb_func_start atk81_setrest -atk81_setrest: @ 802591C - push {r4-r7,lr} - sub sp, 0x4 - ldr r0, _08025974 @ =gUnknown_02024C10 - mov r12, r0 - ldr r1, [r0] - ldrb r6, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r6, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r6, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r6, r0 - ldr r5, _08025978 @ =gUnknown_02024A60 - ldr r2, _0802597C @ =gUnknown_02024C08 - ldr r0, _08025980 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r5] - ldr r4, _08025984 @ =gUnknown_02024BEC - ldr r1, _08025988 @ =gBattleMons - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - adds r0, r1 - ldrh r0, [r0, 0x2C] - negs r0, r0 - str r0, [r4] - ldrb r0, [r2] - adds r4, r0, 0 - muls r4, r3 - adds r0, r4, r1 - ldrh r3, [r0, 0x28] - adds r7, r5, 0 - adds r5, r2, 0 - adds r2, r1, 0 - ldrh r0, [r0, 0x2C] - cmp r3, r0 - bne _0802598C - mov r0, r12 - str r6, [r0] - b _080259DC - .align 2, 0 -_08025974: .4byte gUnknown_02024C10 -_08025978: .4byte gUnknown_02024A60 -_0802597C: .4byte gUnknown_02024C08 -_08025980: .4byte gUnknown_02024C07 -_08025984: .4byte gUnknown_02024BEC -_08025988: .4byte gBattleMons -_0802598C: - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0xF8 - ands r1, r0 - cmp r1, 0 - beq _080259A8 - ldr r1, _080259A4 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _080259AC - .align 2, 0 -_080259A4: .4byte gUnknown_02024D1E -_080259A8: - ldr r0, _080259E4 @ =gUnknown_02024D1E - strb r1, [r0, 0x5] -_080259AC: - ldrb r0, [r5] - movs r3, 0x58 - muls r0, r3 - adds r2, 0x4C - adds r0, r2 - movs r1, 0x3 - str r1, [r0] - ldrb r0, [r7] - muls r0, r3 - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080259E8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_080259DC: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080259E4: .4byte gUnknown_02024D1E -_080259E8: .4byte gUnknown_02024C10 - thumb_func_end atk81_setrest - - thumb_func_start atk82_jumpifnotfirstturn -atk82_jumpifnotfirstturn: @ 80259EC - push {r4,r5,lr} - ldr r5, _08025A20 @ =gUnknown_02024C10 - ldr r4, [r5] - ldrb r3, [r4, 0x1] - ldrb r0, [r4, 0x2] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r4, 0x3] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r4, 0x4] - lsls r0, 24 - orrs r3, r0 - ldr r2, _08025A24 @ =gUnknown_02024CA8 - ldr r0, _08025A28 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _08025A2C - adds r0, r4, 0x5 - str r0, [r5] - b _08025A2E - .align 2, 0 -_08025A20: .4byte gUnknown_02024C10 -_08025A24: .4byte gUnknown_02024CA8 -_08025A28: .4byte gUnknown_02024C07 -_08025A2C: - str r3, [r5] -_08025A2E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end atk82_jumpifnotfirstturn - - thumb_func_start sub_8025A34 -sub_8025A34: @ 8025A34 - ldr r1, _08025A40 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08025A40: .4byte gUnknown_02024C10 - thumb_func_end sub_8025A34 - - thumb_func_start sub_8025A44 -sub_8025A44: @ 8025A44 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r0, _08025A9C @ =gUnknown_02024A68 - ldrb r1, [r0] - mov r8, r0 - cmp r2, r1 - bge _08025AB8 - ldr r0, _08025AA0 @ =gBattleMons - mov r12, r0 - movs r0, 0x58 - muls r0, r3 - add r0, r12 - adds r5, r0, 0 - adds r5, 0x20 - ldr r6, _08025AA4 @ =0x02016003 - movs r3, 0 - ldr r7, _08025AA8 @ =gUnknown_02024D1E - adds r4, r1, 0 -_08025A70: - mov r0, r12 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x70 - ands r0, r1 - cmp r0, 0 - beq _08025AB0 - ldrb r0, [r5] - cmp r0, 0x2B - beq _08025AB0 - movs r3, 0 - strb r2, [r6] - ldr r1, _08025AAC @ =gUnknown_02024C08 - ldrb r0, [r1] - cmp r0, 0xFF - beq _08025AD0 - cmp r0, r2 - beq _08025AC4 - movs r0, 0x1 - strb r0, [r7, 0x5] - b _08025AB8 - .align 2, 0 -_08025A9C: .4byte gUnknown_02024A68 -_08025AA0: .4byte gBattleMons -_08025AA4: .4byte 0x02016003 -_08025AA8: .4byte gUnknown_02024D1E -_08025AAC: .4byte gUnknown_02024C08 -_08025AB0: - adds r3, 0x58 - adds r2, 0x1 - cmp r2, r4 - blt _08025A70 -_08025AB8: - mov r1, r8 - ldrb r1, [r1] - cmp r2, r1 - beq _08025AD4 - movs r0, 0x1 - b _08025AD6 -_08025AC4: - ldr r0, _08025ACC @ =gUnknown_02024D1E - strb r3, [r0, 0x5] - b _08025AB8 - .align 2, 0 -_08025ACC: .4byte gUnknown_02024D1E -_08025AD0: - strb r2, [r1] - b _08025AB8 -_08025AD4: - movs r0, 0 -_08025AD6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8025A44 - - thumb_func_start sub_8025AE0 -sub_8025AE0: @ 8025AE0 - push {r4-r6,lr} - ldr r5, _08025B0C @ =gUnknown_02024C10 - ldr r1, [r5] - ldrb r4, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r4, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r4, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r4, r0 - ldr r6, _08025B10 @ =gUnknown_02024C08 - ldrb r0, [r6] - bl sub_8025A44 - lsls r0, 24 - cmp r0, 0 - beq _08025B14 - str r4, [r5] - b _08025B56 - .align 2, 0 -_08025B0C: .4byte gUnknown_02024C10 -_08025B10: .4byte gUnknown_02024C08 -_08025B14: - ldr r1, _08025B44 @ =gBattleMons - ldrb r3, [r6] - movs r0, 0x58 - muls r0, r3 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - adds r1, r0, 0 - cmp r1, 0xF - beq _08025B2C - cmp r1, 0x48 - bne _08025B50 -_08025B2C: - ldr r2, _08025B48 @ =byte_2024C06 - strb r0, [r2] - ldr r1, _08025B4C @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - str r4, [r5] - ldrb r1, [r2] - adds r0, r3, 0 - bl sub_81074C4 - b _08025B56 - .align 2, 0 -_08025B44: .4byte gBattleMons -_08025B48: .4byte byte_2024C06 -_08025B4C: .4byte gUnknown_02024D1E -_08025B50: - ldr r0, [r5] - adds r0, 0x5 - str r0, [r5] -_08025B56: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8025AE0 - - thumb_func_start sub_8025B5C -sub_8025B5C: @ 8025B5C - push {r4,r5,lr} - ldr r5, _08025B84 @ =gUnknown_02024CA8 - ldr r4, _08025B88 @ =gUnknown_02024C07 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x9] - cmp r0, 0x3 - bne _08025B94 - ldr r2, _08025B8C @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08025B90 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08025BBE - .align 2, 0 -_08025B84: .4byte gUnknown_02024CA8 -_08025B88: .4byte gUnknown_02024C07 -_08025B8C: .4byte gUnknown_02024C68 -_08025B90: .4byte gUnknown_02024D1E -_08025B94: - adds r0, 0x1 - movs r3, 0 - strb r0, [r1, 0x9] - ldr r2, _08025BCC @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x1 - strb r0, [r2, 0x1] - strb r0, [r2, 0x2] - strb r0, [r2, 0x3] - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x9] - strb r0, [r2, 0x4] - movs r0, 0xFF - strb r0, [r2, 0x5] - ldr r0, _08025BD0 @ =gUnknown_02024D1E - strb r3, [r0, 0x5] -_08025BBE: - ldr r1, _08025BD4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08025BCC: .4byte gUnknown_030041C0 -_08025BD0: .4byte gUnknown_02024D1E -_08025BD4: .4byte gUnknown_02024C10 - thumb_func_end sub_8025B5C - - thumb_func_start atk86_stockpiletobasedamage -atk86_stockpiletobasedamage: @ 8025BD8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - ldr r3, _08025C10 @ =gUnknown_02024C10 - ldr r1, [r3] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldr r7, _08025C14 @ =gUnknown_02024CA8 - ldr r6, _08025C18 @ =gUnknown_02024C07 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x9] - cmp r0, 0 - bne _08025C1C - str r2, [r3] - b _08025CC2 - .align 2, 0 -_08025C10: .4byte gUnknown_02024C10 -_08025C14: .4byte gUnknown_02024CA8 -_08025C18: .4byte gUnknown_02024C07 -_08025C1C: - ldr r0, _08025CD0 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _08025CA8 - ldr r0, _08025CD4 @ =gUnknown_02024BEC - mov r8, r0 - ldr r4, _08025CD8 @ =gUnknown_02024C7A - ldr r5, _08025CDC @ =gUnknown_02024C08 - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldrb r0, [r6] - movs r4, 0x58 - muls r0, r4 - ldr r2, _08025CE0 @ =gBattleMons - adds r0, r2 - ldrb r1, [r5] - muls r1, r4 - adds r1, r2 - ldr r2, _08025CE4 @ =gUnknown_02024BE6 - ldrh r2, [r2] - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - ldrb r4, [r6] - str r4, [sp, 0x8] - ldrb r4, [r5] - str r4, [sp, 0xC] - bl CalculateBaseDamage - ldrb r2, [r6] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r7 - ldrb r1, [r1, 0x9] - adds r3, r0, 0 - muls r3, r1 - mov r1, r8 - str r3, [r1] - ldr r2, _08025CE8 @ =0x02000000 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r0, [r0, 0x9] - ldr r1, _08025CEC @ =0x00016002 - adds r2, r1 - strb r0, [r2] - ldr r1, _08025CF0 @ =gUnknown_02024D28 - ldrb r0, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _08025CA8 - lsls r0, r3, 4 - subs r0, r3 - movs r1, 0xA - bl __divsi3 - mov r1, r8 - str r0, [r1] -_08025CA8: - ldr r2, _08025CF4 @ =gUnknown_02024CA8 - ldr r0, _08025CF8 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x9] - ldr r1, _08025CFC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08025CC2: - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08025CD0: .4byte gUnknown_02024D1E -_08025CD4: .4byte gUnknown_02024BEC -_08025CD8: .4byte gUnknown_02024C7A -_08025CDC: .4byte gUnknown_02024C08 -_08025CE0: .4byte gBattleMons -_08025CE4: .4byte gUnknown_02024BE6 -_08025CE8: .4byte 0x02000000 -_08025CEC: .4byte 0x00016002 -_08025CF0: .4byte gUnknown_02024D28 -_08025CF4: .4byte gUnknown_02024CA8 -_08025CF8: .4byte gUnknown_02024C07 -_08025CFC: .4byte gUnknown_02024C10 - thumb_func_end atk86_stockpiletobasedamage - - thumb_func_start sub_8025D00 -sub_8025D00: @ 8025D00 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, _08025D40 @ =gUnknown_02024C10 - ldr r1, [r7] - ldrb r2, [r1, 0x1] - ldrb r0, [r1, 0x2] - lsls r0, 8 - orrs r2, r0 - ldrb r0, [r1, 0x3] - lsls r0, 16 - orrs r2, r0 - ldrb r0, [r1, 0x4] - lsls r0, 24 - orrs r2, r0 - ldr r0, _08025D44 @ =gUnknown_02024CA8 - mov r8, r0 - ldr r6, _08025D48 @ =gUnknown_02024C07 - ldrb r3, [r6] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - mov r1, r8 - adds r4, r0, r1 - ldrb r1, [r4, 0x9] - cmp r1, 0 - bne _08025D50 - str r2, [r7] - ldr r0, _08025D4C @ =gUnknown_02024D1E - strb r1, [r0, 0x5] - b _08025DD0 - .align 2, 0 -_08025D40: .4byte gUnknown_02024C10 -_08025D44: .4byte gUnknown_02024CA8 -_08025D48: .4byte gUnknown_02024C07 -_08025D4C: .4byte gUnknown_02024D1E -_08025D50: - ldr r1, _08025D74 @ =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, r0, r1 - ldrh r0, [r1, 0x2C] - ldrh r3, [r1, 0x28] - cmp r0, r3 - bne _08025D80 - movs r0, 0 - strb r0, [r4, 0x9] - str r2, [r7] - ldr r1, _08025D78 @ =gUnknown_02024C08 - ldrb r0, [r6] - strb r0, [r1] - ldr r1, _08025D7C @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08025DD0 - .align 2, 0 -_08025D74: .4byte gBattleMons -_08025D78: .4byte gUnknown_02024C08 -_08025D7C: .4byte gUnknown_02024D1E -_08025D80: - ldr r5, _08025DDC @ =gUnknown_02024BEC - ldrh r0, [r1, 0x2C] - ldrb r1, [r4, 0x9] - movs r2, 0x3 - subs r2, r1 - movs r4, 0x1 - adds r1, r4, 0 - lsls r1, r2 - bl __divsi3 - str r0, [r5] - cmp r0, 0 - bne _08025D9C - str r4, [r5] -_08025D9C: - ldr r0, [r5] - negs r0, r0 - str r0, [r5] - ldr r2, _08025DE0 @ =0x02000000 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0x9] - ldr r1, _08025DE4 @ =0x00016002 - adds r2, r1 - movs r3, 0 - strb r0, [r2] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - strb r3, [r0, 0x9] - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - ldr r1, _08025DE8 @ =gUnknown_02024C08 - ldrb r0, [r6] - strb r0, [r1] -_08025DD0: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08025DDC: .4byte gUnknown_02024BEC -_08025DE0: .4byte 0x02000000 -_08025DE4: .4byte 0x00016002 -_08025DE8: .4byte gUnknown_02024C08 - thumb_func_end sub_8025D00 - - thumb_func_start atk88_negativedamage -atk88_negativedamage: @ 8025DEC - push {lr} - ldr r2, _08025E14 @ =gUnknown_02024BEC - ldr r0, _08025E18 @ =gUnknown_02024BF0 - ldr r0, [r0] - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - negs r0, r0 - str r0, [r2] - cmp r0, 0 - bne _08025E08 - movs r0, 0x1 - negs r0, r0 - str r0, [r2] -_08025E08: - ldr r1, _08025E1C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08025E14: .4byte gUnknown_02024BEC -_08025E18: .4byte gUnknown_02024BF0 -_08025E1C: .4byte gUnknown_02024C10 - thumb_func_end atk88_negativedamage - - thumb_func_start sub_8025E20 -sub_8025E20: @ 8025E20 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r3 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - movs r0, 0 - mov r9, r0 - mov r10, r0 - movs r0, 0x40 - ands r0, r5 - cmp r0, 0 - beq _08025E54 - ldr r0, _08025E4C @ =gUnknown_02024A60 - ldr r1, _08025E50 @ =gUnknown_02024C07 - b _08025E58 - .align 2, 0 -_08025E4C: .4byte gUnknown_02024A60 -_08025E50: .4byte gUnknown_02024C07 -_08025E54: - ldr r0, _08025EF8 @ =gUnknown_02024A60 - ldr r1, _08025EFC @ =gUnknown_02024C08 -_08025E58: - ldrb r1, [r1] - strb r1, [r0] - movs r0, 0xBF - ands r5, r0 - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - beq _08025E72 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_08025E72: - movs r0, 0x7F - ands r5, r0 - movs r0, 0x20 - ands r0, r5 - cmp r0, 0 - beq _08025E88 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_08025E88: - movs r0, 0xDF - ands r5, r0 - ldr r1, _08025F00 @ =gUnknown_030041C0 - movs r4, 0 - movs r2, 0xFD - strb r2, [r1] - movs r0, 0x5 - strb r0, [r1, 0x1] - strb r7, [r1, 0x2] - movs r3, 0x1 - negs r3, r3 - mov r12, r3 - movs r0, 0xFF - strb r0, [r1, 0x3] - lsls r0, r6, 24 - cmp r0, 0 - blt _08025EAC - b _080261B0 -_08025EAC: - ldr r4, _08025F04 @ =gUnknown_02024C80 - ldr r1, _08025EF8 @ =gUnknown_02024A60 - ldrb r0, [r1] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _08025F54 - mov r2, r9 - cmp r2, 0 - bne _08025F54 - ldr r0, _08025F08 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xAE - beq _08025F84 - cmp r5, 0x1 - bne _08025F74 - ldr r4, _08025F0C @ =gUnknown_02024D68 - ldr r3, _08025EF8 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _08025F14 - ldr r0, _08025F10 @ =gUnknown_02024C10 - mov r4, r8 - str r4, [r0] - b _08025F74 - .align 2, 0 -_08025EF8: .4byte gUnknown_02024A60 -_08025EFC: .4byte gUnknown_02024C08 -_08025F00: .4byte gUnknown_030041C0 -_08025F04: .4byte gUnknown_02024C80 -_08025F08: .4byte gUnknown_02024BE6 -_08025F0C: .4byte gUnknown_02024D68 -_08025F10: .4byte gUnknown_02024C10 -_08025F14: - mov r0, r8 - bl b_movescr_stack_push - ldr r0, _08025F40 @ =0x02000000 - ldr r6, _08025F44 @ =gUnknown_02024A60 - ldrb r1, [r6] - ldr r2, _08025F48 @ =0x00016003 - adds r0, r2 - strb r1, [r0] - ldr r1, _08025F4C @ =gUnknown_02024C10 - ldr r0, _08025F50 @ =gUnknown_081D9128 - str r0, [r1] - ldrb r1, [r6] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08025F74 - .align 2, 0 -_08025F40: .4byte 0x02000000 -_08025F44: .4byte gUnknown_02024A60 -_08025F48: .4byte 0x00016003 -_08025F4C: .4byte gUnknown_02024C10 -_08025F50: .4byte gUnknown_081D9128 -_08025F54: - ldr r0, _08025F78 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xAE - beq _08025F84 - mov r3, r10 - cmp r3, 0x1 - beq _08025F84 - movs r0, 0 - bl sub_801C108 - lsls r0, 24 - cmp r0, 0 - beq _08025F84 - ldr r1, _08025F7C @ =gUnknown_02024C10 - ldr r0, _08025F80 @ =BattleScript_1D83D6 - str r0, [r1] -_08025F74: - movs r0, 0x1 - b _080262A4 - .align 2, 0 -_08025F78: .4byte gUnknown_02024BE6 -_08025F7C: .4byte gUnknown_02024C10 -_08025F80: .4byte BattleScript_1D83D6 -_08025F84: - ldr r2, _08025FCC @ =gBattleMons - ldr r1, _08025FD0 @ =gUnknown_02024A60 - ldrb r3, [r1] - movs r4, 0x58 - adds r0, r3, 0 - muls r0, r4 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - mov r10, r2 - cmp r0, 0x1D - beq _08025FA0 - cmp r0, 0x49 - bne _08026040 -_08025FA0: - mov r0, r9 - cmp r0, 0 - bne _08026040 - ldr r0, _08025FD4 @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xAE - beq _08026040 - cmp r5, 0x1 - bne _08025F74 - ldr r4, _08025FD8 @ =gUnknown_02024D68 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _08025FE0 - ldr r0, _08025FDC @ =gUnknown_02024C10 - mov r1, r8 - str r1, [r0] - b _08025F74 - .align 2, 0 -_08025FCC: .4byte gBattleMons -_08025FD0: .4byte gUnknown_02024A60 -_08025FD4: .4byte gUnknown_02024BE6 -_08025FD8: .4byte gUnknown_02024D68 -_08025FDC: .4byte gUnknown_02024C10 -_08025FE0: - mov r0, r8 - bl b_movescr_stack_push - ldr r0, _08026028 @ =0x02000000 - ldr r2, _0802602C @ =gUnknown_02024A60 - ldrb r1, [r2] - ldr r3, _08026030 @ =0x00016003 - adds r0, r3 - strb r1, [r0] - ldr r1, _08026034 @ =gUnknown_02024C10 - ldr r0, _08026038 @ =gUnknown_081D989B - str r0, [r1] - ldr r1, _0802603C @ =byte_2024C06 - ldrb r0, [r2] - movs r6, 0x58 - muls r0, r6 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - ldrb r1, [r1] - bl sub_81074C4 - ldr r0, _0802602C @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _08025F74 - .align 2, 0 -_08026028: .4byte 0x02000000 -_0802602C: .4byte gUnknown_02024A60 -_08026030: .4byte 0x00016003 -_08026034: .4byte gUnknown_02024C10 -_08026038: .4byte gUnknown_081D989B -_0802603C: .4byte byte_2024C06 -_08026040: - ldr r1, _08026090 @ =gUnknown_02024A60 - ldrb r0, [r1] - movs r4, 0x58 - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x33 - bne _080260A8 - mov r2, r9 - cmp r2, 0 - bne _080260A8 - cmp r7, 0x6 - bne _080260A8 - cmp r5, 0x1 - bne _08025F74 - mov r0, r8 - bl b_movescr_stack_push - ldr r0, _08026094 @ =0x02000000 - ldr r3, _08026090 @ =gUnknown_02024A60 - ldrb r1, [r3] - ldr r6, _08026098 @ =0x00016003 - adds r0, r6 - strb r1, [r0] - ldr r1, _0802609C @ =gUnknown_02024C10 - ldr r0, _080260A0 @ =gUnknown_081D9903 - str r0, [r1] - ldr r1, _080260A4 @ =byte_2024C06 - ldrb r0, [r3] - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r3] - ldrb r1, [r1] - bl sub_81074C4 - b _08025F74 - .align 2, 0 -_08026090: .4byte gUnknown_02024A60 -_08026094: .4byte 0x02000000 -_08026098: .4byte 0x00016003 -_0802609C: .4byte gUnknown_02024C10 -_080260A0: .4byte gUnknown_081D9903 -_080260A4: .4byte byte_2024C06 -_080260A8: - ldr r1, _080260FC @ =gUnknown_02024A60 - ldrb r0, [r1] - movs r4, 0x58 - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x34 - bne _08026114 - mov r2, r9 - cmp r2, 0 - bne _08026114 - cmp r7, 0x1 - bne _08026114 - cmp r5, 0x1 - beq _080260CA - b _08025F74 -_080260CA: - mov r0, r8 - bl b_movescr_stack_push - ldr r0, _08026100 @ =0x02000000 - ldr r3, _080260FC @ =gUnknown_02024A60 - ldrb r1, [r3] - ldr r6, _08026104 @ =0x00016003 - adds r0, r6 - strb r1, [r0] - ldr r1, _08026108 @ =gUnknown_02024C10 - ldr r0, _0802610C @ =gUnknown_081D9903 - str r0, [r1] - ldr r1, _08026110 @ =byte_2024C06 - ldrb r0, [r3] - muls r0, r4 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r3] - ldrb r1, [r1] - bl sub_81074C4 - b _08025F74 - .align 2, 0 -_080260FC: .4byte gUnknown_02024A60 -_08026100: .4byte 0x02000000 -_08026104: .4byte 0x00016003 -_08026108: .4byte gUnknown_02024C10 -_0802610C: .4byte gUnknown_081D9903 -_08026110: .4byte byte_2024C06 -_08026114: - ldr r0, _080261A0 @ =gUnknown_02024A60 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r10 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x13 - bne _0802612C - cmp r5, 0 - bne _0802612C - b _08025F74 -_0802612C: - lsls r0, r6, 24 - asrs r0, 28 - movs r1, 0x7 - ands r0, r1 - negs r0, r0 - lsls r0, 24 - ldr r3, _080261A4 @ =gUnknown_03004290 - movs r4, 0 - movs r1, 0xFD - strb r1, [r3] - movs r2, 0x1 - lsrs r6, r0, 24 - asrs r0, 24 - subs r1, 0xFF - cmp r0, r1 - bne _08026156 - strb r4, [r3, 0x1] - movs r0, 0xD3 - strb r0, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0x4 -_08026156: - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xD4 - strb r0, [r1] - adds r2, 0x1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _080261A0 @ =gUnknown_02024A60 - ldrb r2, [r1] - movs r0, 0x58 - muls r0, r2 - adds r0, r7, r0 - mov r1, r10 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08026206 - movs r1, 0 - ldr r0, _080261A8 @ =gUnknown_02024C08 - ldrb r0, [r0] - ldr r3, _080261AC @ =gUnknown_02024D1E - mov r8, r3 - cmp r0, r2 - bne _0802619A - movs r1, 0x1 -_0802619A: - mov r4, r8 - strb r1, [r4, 0x5] - b _08026234 - .align 2, 0 -_080261A0: .4byte gUnknown_02024A60 -_080261A4: .4byte gUnknown_03004290 -_080261A8: .4byte gUnknown_02024C08 -_080261AC: .4byte gUnknown_02024D1E -_080261B0: - asrs r6, r0, 28 - movs r0, 0x7 - ands r6, r0 - ldr r3, _08026210 @ =gUnknown_03004290 - strb r2, [r3] - movs r2, 0x1 - cmp r6, 0x2 - bne _080261CA - strb r4, [r3, 0x1] - movs r0, 0xD1 - strb r0, [r3, 0x2] - strb r4, [r3, 0x3] - movs r2, 0x4 -_080261CA: - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - movs r0, 0xD2 - strb r0, [r1] - adds r2, 0x1 - adds r0, r2, r3 - strb r4, [r0] - adds r2, 0x1 - adds r1, r2, r3 - ldrb r0, [r1] - mov r2, r12 - orrs r0, r2 - strb r0, [r1] - ldr r2, _08026214 @ =gBattleMons - ldr r4, _08026218 @ =gUnknown_02024A60 - ldrb r3, [r4] - movs r0, 0x58 - muls r0, r3 - adds r0, r7, r0 - adds r1, r2, 0 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - mov r10, r2 - cmp r0, 0xC - bne _08026220 -_08026206: - ldr r1, _0802621C @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - mov r8, r1 - b _08026234 - .align 2, 0 -_08026210: .4byte gUnknown_03004290 -_08026214: .4byte gBattleMons -_08026218: .4byte gUnknown_02024A60 -_0802621C: .4byte gUnknown_02024D1E -_08026220: - movs r1, 0 - ldr r0, _080262B4 @ =gUnknown_02024C08 - ldrb r0, [r0] - ldr r2, _080262B8 @ =gUnknown_02024D1E - mov r8, r2 - cmp r0, r3 - bne _08026230 - movs r1, 0x1 -_08026230: - mov r3, r8 - strb r1, [r3, 0x5] -_08026234: - ldr r2, _080262BC @ =gUnknown_02024A60 - ldrb r0, [r2] - movs r4, 0x58 - adds r1, r0, 0 - muls r1, r4 - adds r1, r7, r1 - mov r3, r10 - adds r3, 0x18 - adds r1, r3 - lsls r0, r6, 24 - asrs r0, 24 - ldrb r6, [r1] - adds r0, r6 - strb r0, [r1] - ldrb r0, [r2] - muls r0, r4 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0 - bge _08026264 - movs r0, 0 - strb r0, [r1] -_08026264: - ldr r1, _080262BC @ =gUnknown_02024A60 - ldrb r0, [r1] - muls r0, r4 - adds r0, r7, r0 - adds r1, r0, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - cmp r0, 0xC - ble _0802627A - movs r0, 0xC - strb r0, [r1] -_0802627A: - mov r2, r8 - ldrb r0, [r2, 0x5] - cmp r0, 0x2 - bne _080262A2 - movs r3, 0x1 - ands r3, r5 - cmp r3, 0 - beq _08026294 - ldr r0, _080262C0 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_08026294: - mov r4, r8 - ldrb r0, [r4, 0x5] - cmp r0, 0x2 - bne _080262A2 - cmp r3, 0 - bne _080262A2 - b _08025F74 -_080262A2: - movs r0, 0 -_080262A4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080262B4: .4byte gUnknown_02024C08 -_080262B8: .4byte gUnknown_02024D1E -_080262BC: .4byte gUnknown_02024A60 -_080262C0: .4byte gUnknown_02024C68 - thumb_func_end sub_8025E20 - - thumb_func_start atk89_statbuffchange -atk89_statbuffchange: @ 80262C4 - push {r4,r5,lr} - ldr r5, _0802630C @ =gUnknown_02024C10 - ldr r2, [r5] - ldrb r3, [r2, 0x2] - ldrb r0, [r2, 0x3] - lsls r0, 8 - orrs r3, r0 - ldrb r0, [r2, 0x4] - lsls r0, 16 - orrs r3, r0 - ldrb r0, [r2, 0x5] - lsls r0, 24 - orrs r3, r0 - ldr r0, _08026310 @ =0x02000000 - ldr r1, _08026314 @ =0x0001601e - adds r0, r1 - ldrb r4, [r0] - movs r0, 0xF0 - ands r0, r4 - lsls r0, 24 - asrs r0, 24 - movs r1, 0xF - ands r1, r4 - ldrb r2, [r2, 0x1] - bl sub_8025E20 - lsls r0, 24 - cmp r0, 0 - bne _08026304 - ldr r0, [r5] - adds r0, 0x6 - str r0, [r5] -_08026304: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802630C: .4byte gUnknown_02024C10 -_08026310: .4byte 0x02000000 -_08026314: .4byte 0x0001601e - thumb_func_end atk89_statbuffchange - - thumb_func_start atk8A_normalisebuffs -atk8A_normalisebuffs: @ 8026318 - push {r4-r7,lr} - movs r2, 0 - ldr r0, _08026360 @ =gUnknown_02024A68 - ldrb r1, [r0] - ldr r0, _08026364 @ =gUnknown_02024C10 - mov r12, r0 - cmp r2, r1 - bge _08026350 - ldr r0, _08026368 @ =gBattleMons - movs r4, 0x6 - adds r5, r1, 0 - movs r7, 0x58 - adds r6, r0, 0 - adds r6, 0x18 -_08026334: - adds r3, r2, 0x1 - movs r1, 0x7 - adds r0, r2, 0 - muls r0, r7 - adds r0, r6 - adds r0, 0x7 -_08026340: - strb r4, [r0] - subs r0, 0x1 - subs r1, 0x1 - cmp r1, 0 - bge _08026340 - adds r2, r3, 0 - cmp r2, r5 - blt _08026334 -_08026350: - mov r1, r12 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08026360: .4byte gUnknown_02024A68 -_08026364: .4byte gUnknown_02024C10 -_08026368: .4byte gBattleMons - thumb_func_end atk8A_normalisebuffs - - thumb_func_start atk8B_setbide -atk8B_setbide: @ 802636C - push {r4,r5,lr} - ldr r4, _080263C4 @ =gBattleMons - ldr r3, _080263C8 @ =gUnknown_02024C07 - ldrb r0, [r3] - movs r5, 0x58 - adds r2, r0, 0 - muls r2, r5 - adds r4, 0x50 - adds r2, r4 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 5 - orrs r0, r1 - str r0, [r2] - ldr r1, _080263CC @ =gUnknown_02024C54 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - ldr r1, _080263D0 @ =gUnknown_02024BE6 - ldrh r1, [r1] - movs r2, 0 - strh r1, [r0] - ldr r1, _080263D4 @ =gUnknown_02024BF4 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - str r2, [r0] - ldrb r0, [r3] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 2 - orrs r0, r2 - str r0, [r1] - ldr r1, _080263D8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080263C4: .4byte gBattleMons -_080263C8: .4byte gUnknown_02024C07 -_080263CC: .4byte gUnknown_02024C54 -_080263D0: .4byte gUnknown_02024BE6 -_080263D4: .4byte gUnknown_02024BF4 -_080263D8: .4byte gUnknown_02024C10 - thumb_func_end atk8B_setbide - - thumb_func_start atk8C_confuseifrepeatingattackends -atk8C_confuseifrepeatingattackends: @ 80263DC - push {lr} - ldr r1, _0802640C @ =gBattleMons - ldr r0, _08026410 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 4 - ands r0, r1 - cmp r0, 0 - bne _080263FE - ldr r1, _08026414 @ =gUnknown_02024D1E - movs r0, 0x75 - strb r0, [r1, 0x3] -_080263FE: - ldr r1, _08026418 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802640C: .4byte gBattleMons -_08026410: .4byte gUnknown_02024C07 -_08026414: .4byte gUnknown_02024D1E -_08026418: .4byte gUnknown_02024C10 - thumb_func_end atk8C_confuseifrepeatingattackends - - thumb_func_start atk8D_setloopcounter -atk8D_setloopcounter: @ 802641C - push {r4,r5,lr} - ldr r0, _08026430 @ =gUnknown_02024C10 - ldr r0, [r0] - ldrb r1, [r0, 0x1] - cmp r1, 0 - beq _08026438 - ldr r0, _08026434 @ =gUnknown_02024C0E - strb r1, [r0] - b _08026452 - .align 2, 0 -_08026430: .4byte gUnknown_02024C10 -_08026434: .4byte gUnknown_02024C0E -_08026438: - ldr r4, _08026460 @ =gUnknown_02024C0E - bl Random - movs r5, 0x3 - ands r0, r5 - strb r0, [r4] - cmp r0, 0x1 - bls _0802644E - bl Random - ands r0, r5 -_0802644E: - adds r0, 0x2 - strb r0, [r4] -_08026452: - ldr r1, _08026464 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08026460: .4byte gUnknown_02024C0E -_08026464: .4byte gUnknown_02024C10 - thumb_func_end atk8D_setloopcounter - - thumb_func_start sub_8026468 -sub_8026468: @ 8026468 - push {r4,lr} - ldr r1, _080264A8 @ =0x02000000 - ldr r0, _080264AC @ =0x000160e0 - adds r2, r1, r0 - movs r3, 0 - movs r0, 0xFD - strb r0, [r2] - ldr r2, _080264B0 @ =0x000160e1 - adds r0, r1, r2 - movs r2, 0x1 - strb r2, [r0] - ldr r4, _080264B4 @ =0x000160e2 - adds r0, r1, r4 - strb r2, [r0] - adds r4, 0x1 - adds r0, r1, r4 - strb r2, [r0] - ldr r2, _080264B8 @ =0x000160e4 - adds r0, r1, r2 - strb r3, [r0] - adds r4, 0x2 - adds r1, r4 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _080264BC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080264A8: .4byte 0x02000000 -_080264AC: .4byte 0x000160e0 -_080264B0: .4byte 0x000160e1 -_080264B4: .4byte 0x000160e2 -_080264B8: .4byte 0x000160e4 -_080264BC: .4byte gUnknown_02024C10 - thumb_func_end sub_8026468 - - thumb_func_start sub_80264C0 -sub_80264C0: @ 80264C0 - push {r4-r7,lr} - ldr r6, _080264F4 @ =gBattleMons - ldr r7, _080264F8 @ =gUnknown_02024C07 - ldrb r0, [r7] - movs r5, 0x58 - adds r1, r0, 0 - muls r1, r5 - adds r1, r6 - adds r1, 0x2A - ldr r4, _080264FC @ =gUnknown_02024C08 - ldrb r3, [r4] - adds r0, r3, 0 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcc _0802650C - ldr r0, _08026500 @ =0x02000000 - ldr r2, _08026504 @ =0x00016064 - adds r1, r3, r2 - adds r1, r0 - ldr r2, _08026508 @ =gUnknown_02024A6A - lsls r0, r3, 1 - b _08026568 - .align 2, 0 -_080264F4: .4byte gBattleMons -_080264F8: .4byte gUnknown_02024C07 -_080264FC: .4byte gUnknown_02024C08 -_08026500: .4byte 0x02000000 -_08026504: .4byte 0x00016064 -_08026508: .4byte gUnknown_02024A6A -_0802650C: - bl Random - movs r3, 0xFF - ands r3, r0 - ldrb r0, [r7] - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r2, [r0] - ldrb r4, [r4] - adds r0, r4, 0 - muls r0, r5 - adds r0, r6 - adds r0, 0x2A - ldrb r1, [r0] - adds r2, r1 - adds r0, r3, 0 - muls r0, r2 - asrs r0, 8 - adds r0, 0x1 - lsrs r1, 2 - cmp r0, r1 - bhi _0802655C - ldr r3, _08026558 @ =gUnknown_02024C10 - 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] - movs r0, 0 - b _08026576 - .align 2, 0 -_08026558: .4byte gUnknown_02024C10 -_0802655C: - ldr r0, _0802657C @ =0x02000000 - ldr r2, _08026580 @ =0x00016064 - adds r1, r4, r2 - adds r1, r0 - ldr r2, _08026584 @ =gUnknown_02024A6A - lsls r0, r4, 1 -_08026568: - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r1, _08026588 @ =gUnknown_02024C10 - ldr r0, _0802658C @ =gUnknown_081D90FC - str r0, [r1] - movs r0, 0x1 -_08026576: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802657C: .4byte 0x02000000 -_08026580: .4byte 0x00016064 -_08026584: .4byte gUnknown_02024A6A -_08026588: .4byte gUnknown_02024C10 -_0802658C: .4byte gUnknown_081D90FC - thumb_func_end sub_80264C0 - - thumb_func_start sub_8026590 -sub_8026590: @ 8026590 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, _08026628 @ =gUnknown_020239F8 - ldrh r1, [r4] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080265A4 - b _0802687C -_080265A4: - ldr r5, _0802662C @ =gUnknown_02024C08 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _08026630 @ =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _080265BA - ldr r2, _08026634 @ =gPlayerParty - mov r8, r2 -_080265BA: - ldrh r1, [r4] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08026638 - movs r7, 0 - movs r6, 0 - ldrb r0, [r5] - bl sub_803FC34 - lsls r0, 24 - lsrs r0, 24 - bl sub_803FBFC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _080265E0 - movs r6, 0x3 -_080265E0: - adds r5, r6, 0 - adds r0, r5, 0x3 - cmp r5, r0 - bge _08026678 -_080265E8: - movs r0, 0x64 - muls r0, r5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0802661A - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0802661A - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0802661A - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0802661A: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0x3 - cmp r5, r0 - blt _080265E8 - b _08026678 - .align 2, 0 -_08026628: .4byte gUnknown_020239F8 -_0802662C: .4byte gUnknown_02024C08 -_08026630: .4byte gEnemyParty -_08026634: .4byte gPlayerParty -_08026638: - movs r7, 0 - movs r5, 0 -_0802663C: - movs r0, 0x64 - muls r0, r5 - mov r2, r8 - adds r4, r2, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0802666E - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0802666E - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0802666E - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_0802666E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0802663C -_08026678: - cmp r7, 0x1 - bhi _08026688 - ldr r0, _080266BC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x41 - ands r0, r1 - cmp r0, 0x1 - bne _080266A0 -_08026688: - cmp r7, 0x2 - bhi _080266C4 - ldr r0, _080266BC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080266C4 - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080266C4 -_080266A0: - ldr r3, _080266C0 @ =gUnknown_02024C10 - 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 _08026880 - .align 2, 0 -_080266BC: .4byte gUnknown_020239F8 -_080266C0: .4byte gUnknown_02024C10 -_080266C4: - bl sub_80264C0 - lsls r0, 24 - cmp r0, 0 - bne _080266D0 - b _08026880 -_080266D0: - ldr r0, _08026710 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08026774 -_080266DC: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, _08026714 @ =gUnknown_02024C08 - ldrb r0, [r0] - bl sub_803FC34 - lsls r0, 24 - lsrs r0, 24 - bl sub_803FBFC - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bne _08026718 - adds r0, r6, 0x3 - lsls r0, 24 - lsrs r5, r0, 24 - b _0802671A - .align 2, 0 -_08026710: .4byte gUnknown_020239F8 -_08026714: .4byte gUnknown_02024C08 -_08026718: - adds r5, r6, 0 -_0802671A: - ldr r4, _0802676C @ =gUnknown_02024A6A - ldr r0, _08026770 @ =gUnknown_02024C08 - ldrb r2, [r0] - lsls r1, r2, 1 - adds r1, r4 - lsls r0, r5, 16 - lsrs r3, r0, 16 - ldrh r1, [r1] - cmp r3, r1 - beq _080266DC - movs r0, 0x2 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r4 - ldrh r0, [r0] - cmp r3, r0 - beq _080266DC - movs r0, 0x64 - muls r0, r5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080266DC - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _080266DC - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080266DC - b _08026832 - .align 2, 0 -_0802676C: .4byte gUnknown_02024A6A -_08026770: .4byte gUnknown_02024C08 -_08026774: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080267E4 - ldr r6, _080267DC @ =gUnknown_02024A6A -_0802677E: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _080267E0 @ =gUnknown_02024C08 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r6 - adds r2, r5, 0 - ldrh r0, [r0] - cmp r2, r0 - beq _0802677E - movs r0, 0x2 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r6 - ldrh r0, [r0] - cmp r2, r0 - beq _0802677E - movs r0, 0x64 - muls r0, r5 - mov r2, r8 - adds r4, r2, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _0802677E - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _0802677E - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0802677E - b _08026832 - .align 2, 0 -_080267DC: .4byte gUnknown_02024A6A -_080267E0: .4byte gUnknown_02024C08 -_080267E4: - ldr r6, _0802686C @ =gUnknown_02024A6A -_080267E6: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _08026870 @ =gUnknown_02024C08 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - cmp r5, r0 - beq _080267E6 - movs r0, 0x64 - muls r0, r5 - mov r1, r8 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080267E6 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0x1 - beq _080267E6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080267E6 -_08026832: - ldr r0, _08026874 @ =0x02000000 - ldr r4, _08026870 @ =gUnknown_02024C08 - ldrb r1, [r4] - ldr r2, _08026878 @ =0x00016068 - adds r1, r2 - adds r1, r0 - strb r5, [r1] - bl sub_806B528 - lsls r0, 24 - cmp r0, 0 - bne _08026850 - ldrb r0, [r4] - bl sub_8012258 -_08026850: - ldrb r0, [r4] - adds r1, r5, 0 - movs r2, 0 - bl sub_8094B6C - ldrb r1, [r4] - movs r0, 0x2 - eors r0, r1 - adds r1, r5, 0 - movs r2, 0x1 - bl sub_8094B6C - b _08026880 - .align 2, 0 -_0802686C: .4byte gUnknown_02024A6A -_08026870: .4byte gUnknown_02024C08 -_08026874: .4byte 0x02000000 -_08026878: .4byte 0x00016068 -_0802687C: - bl sub_80264C0 -_08026880: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8026590 - - thumb_func_start sub_802688C -sub_802688C: @ 802688C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - ldr r2, _08026920 @ =gBattleMons - ldr r3, _08026924 @ =gUnknown_02024C07 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r1, r2, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - mov r8, r2 - cmp r0, 0 - beq _080268CE - movs r5, 0x58 - adds r2, r1, 0 -_080268B4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3 - bhi _080268CE - lsls r1, r6, 1 - ldrb r0, [r3] - muls r0, r5 - adds r1, r0 - adds r1, r2 - ldrh r0, [r1] - cmp r0, 0 - bne _080268B4 -_080268CE: - movs r3, 0 - cmp r3, r6 - bcs _08026950 - ldr r0, _08026928 @ =gBattleMoves - mov r10, r0 - ldr r5, _08026920 @ =gBattleMons - mov r12, r5 - ldr r7, _08026924 @ =gUnknown_02024C07 - ldrb r0, [r7] - movs r4, 0x58 - adds r5, r0, 0 - muls r5, r4 - movs r0, 0xC - add r0, r12 - mov r9, r0 -_080268EC: - lsls r0, r3, 1 - adds r0, r5 - add r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r10 - ldrb r2, [r0, 0x2] - cmp r2, 0x9 - bne _0802692E - mov r0, r8 - adds r1, r5, r0 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _0802691A - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _0802692C -_0802691A: - movs r2, 0x7 - b _0802692E - .align 2, 0 -_08026920: .4byte gBattleMons -_08026924: .4byte gUnknown_02024C07 -_08026928: .4byte gBattleMoves -_0802692C: - movs r2, 0 -_0802692E: - ldrb r0, [r7] - muls r0, r4 - add r0, r12 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r2, r1 - beq _08026946 - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - bne _08026950 -_08026946: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bcc _080268EC -_08026950: - cmp r3, r6 - bne _08026974 - ldr r3, _08026970 @ =gUnknown_02024C10 - 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 _08026A18 - .align 2, 0 -_08026970: .4byte gUnknown_02024C10 -_08026974: - movs r7, 0x3 - ldr r5, _080269CC @ =gBattleMoves - mov r9, r5 -_0802697A: - bl Random - adds r3, r0, 0 - ands r3, r7 - cmp r3, r6 - bcs _0802697A - ldr r4, _080269D0 @ =gBattleMons - lsls r1, r3, 1 - ldr r3, _080269D4 @ =gUnknown_02024C07 - ldrb r2, [r3] - movs r0, 0x58 - adds r5, r2, 0 - muls r5, r0 - adds r1, r5 - adds r0, r4, 0 - adds r0, 0xC - adds r1, r0 - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - add r0, r9 - ldrb r2, [r0, 0x2] - mov r8, r4 - adds r4, r3, 0 - cmp r2, 0x9 - bne _080269DA - mov r0, r8 - adds r2, r5, r0 - adds r0, r2, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080269C8 - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x7 - bne _080269D8 -_080269C8: - movs r2, 0x7 - b _080269DA - .align 2, 0 -_080269CC: .4byte gBattleMoves -_080269D0: .4byte gBattleMons -_080269D4: .4byte gUnknown_02024C07 -_080269D8: - movs r2, 0 -_080269DA: - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - add r0, r8 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r5, [r1] - cmp r2, r5 - beq _0802697A - adds r0, 0x22 - ldrb r0, [r0] - cmp r2, r0 - beq _0802697A - strb r2, [r1] - ldrb r0, [r4] - muls r0, r3 - add r0, r8 - adds r0, 0x22 - strb r2, [r0] - ldr r1, _08026A28 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, _08026A2C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08026A18: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08026A28: .4byte gUnknown_030041C0 -_08026A2C: .4byte gUnknown_02024C10 - thumb_func_end sub_802688C - - thumb_func_start atk91_givemoney -atk91_givemoney: @ 8026A30 - push {r4,lr} - ldr r0, _08026A8C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08026AAC - ldr r4, _08026A90 @ =gUnknown_02024D1A - ldrh r0, [r4] - cmp r0, 0 - beq _08026AAC - ldr r0, _08026A94 @ =gSaveBlock1 + 0x490 - ldrh r2, [r4] - ldr r1, _08026A98 @ =0x02000000 - ldr r3, _08026A9C @ =0x00016056 - adds r1, r3 - ldrb r1, [r1] - muls r1, r2 - bl sub_80B79B8 - ldr r1, _08026AA0 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - movs r0, 0x2 - strb r0, [r1, 0x2] - movs r0, 0x5 - strb r0, [r1, 0x3] - ldrh r2, [r4] - strb r2, [r1, 0x4] - movs r0, 0xFF - lsls r0, 8 - ands r0, r2 - lsrs r0, 8 - strb r0, [r1, 0x5] - movs r0, 0xFF - strb r0, [r1, 0x6] - ldr r4, _08026AA4 @ =gUnknown_02024C10 - ldr r0, [r4] - adds r0, 0x1 - bl b_movescr_stack_push - ldr r0, _08026AA8 @ =gUnknown_081D95DB - str r0, [r4] - b _08026AB4 - .align 2, 0 -_08026A8C: .4byte gUnknown_020239F8 -_08026A90: .4byte gUnknown_02024D1A -_08026A94: .4byte gSaveBlock1 + 0x490 -_08026A98: .4byte 0x02000000 -_08026A9C: .4byte 0x00016056 -_08026AA0: .4byte gUnknown_030041C0 -_08026AA4: .4byte gUnknown_02024C10 -_08026AA8: .4byte gUnknown_081D95DB -_08026AAC: - ldr r1, _08026ABC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_08026AB4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08026ABC: .4byte gUnknown_02024C10 - thumb_func_end atk91_givemoney - - thumb_func_start atk92_setlightscreen -atk92_setlightscreen: @ 8026AC0 - push {r4-r6,lr} - ldr r4, _08026AF0 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_get_per_side_status - ldr r6, _08026AF4 @ =gUnknown_02024C7A - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08026B00 - ldr r2, _08026AF8 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08026AFC @ =gUnknown_02024D1E - movs r0, 0 - b _08026B60 - .align 2, 0 -_08026AF0: .4byte gUnknown_02024C07 -_08026AF4: .4byte gUnknown_02024C7A -_08026AF8: .4byte gUnknown_02024C68 -_08026AFC: .4byte gUnknown_02024D1E -_08026B00: - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r6 - ldrh r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, _08026B50 @ =gUnknown_02024C80 - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strb r1, [r0, 0x1] - ldr r0, _08026B54 @ =gUnknown_020239F8 - ldrh r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _08026B5C - movs r0, 0x1 - bl sub_803C348 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08026B5C - ldr r1, _08026B58 @ =gUnknown_02024D1E - movs r0, 0x4 - b _08026B60 - .align 2, 0 -_08026B50: .4byte gUnknown_02024C80 -_08026B54: .4byte gUnknown_020239F8 -_08026B58: .4byte gUnknown_02024D1E -_08026B5C: - ldr r1, _08026B70 @ =gUnknown_02024D1E - movs r0, 0x3 -_08026B60: - strb r0, [r1, 0x5] - ldr r1, _08026B74 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08026B70: .4byte gUnknown_02024D1E -_08026B74: .4byte gUnknown_02024C10 - thumb_func_end atk92_setlightscreen - - thumb_func_start sub_8026B78 -sub_8026B78: @ 8026B78 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, _08026BA8 @ =gBattleMons - ldr r6, _08026BAC @ =gUnknown_02024C08 - ldrb r2, [r6] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r0, r7 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08026BB4 - ldr r1, _08026BB0 @ =gEnigmaBerries - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r4, [r0, 0x7] - ldrb r6, [r0, 0x1A] - b _08026BCE - .align 2, 0 -_08026BA8: .4byte gBattleMons -_08026BAC: .4byte gUnknown_02024C08 -_08026BB0: .4byte gEnigmaBerries -_08026BB4: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7 - ldrh r0, [r0, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r6, r0, 24 -_08026BCE: - ldr r1, _08026C4C @ =gUnknown_02024C0B - ldr r5, _08026C50 @ =gUnknown_02024C08 - ldrb r0, [r5] - strb r0, [r1] - cmp r4, 0x27 - bne _08026C0C - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcs _08026C0C - ldrb r0, [r5] - movs r1, 0x27 - bl sub_81074F8 - ldr r2, _08026C54 @ =gUnknown_02024D68 - ldrb r1, [r5] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08026C0C: - ldr r0, _08026C58 @ =gBattleMons - mov r8, r0 - ldr r1, _08026C50 @ =gUnknown_02024C08 - ldrb r2, [r1] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - mov r3, r8 - adds r5, r0, r3 - adds r0, r5, 0 - adds r0, 0x20 - ldrb r3, [r0] - mov r10, r8 - cmp r3, 0x5 - bne _08026C6C - ldr r2, _08026C5C @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08026C60 @ =byte_2024C06 - strb r3, [r0] - ldr r1, _08026C64 @ =gUnknown_02024C10 - ldr r0, _08026C68 @ =gUnknown_081D9826 - str r0, [r1] - ldr r1, _08026C50 @ =gUnknown_02024C08 - ldrb r0, [r1] - movs r1, 0x5 - bl sub_81074C4 - b _08026E40 - .align 2, 0 -_08026C4C: .4byte gUnknown_02024C0B -_08026C50: .4byte gUnknown_02024C08 -_08026C54: .4byte gUnknown_02024D68 -_08026C58: .4byte gBattleMons -_08026C5C: .4byte gUnknown_02024C68 -_08026C60: .4byte byte_2024C06 -_08026C64: .4byte gUnknown_02024C10 -_08026C68: .4byte gUnknown_081D9826 -_08026C6C: - ldr r1, _08026CE0 @ =gUnknown_02024C98 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x18 - ands r0, r1 - cmp r0, 0 - bne _08026CF4 - ldr r1, _08026CE4 @ =gBattleMoves - ldr r0, _08026CE8 @ =gUnknown_02024BE6 - ldrh r0, [r0] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldr r7, _08026CEC @ =gUnknown_02024C07 - ldrb r0, [r7] - muls r0, r6 - add r0, r10 - adds r0, 0x2A - ldrb r0, [r0] - adds r1, r5, 0 - adds r1, 0x2A - ldrb r1, [r1] - subs r0, r1 - ldrb r2, [r2, 0x3] - adds r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - adds r0, 0x1 - cmp r0, r4 - bge _08026CDC - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - add r1, r10 - adds r1, 0x2A - ldr r2, _08026CF0 @ =gUnknown_02024C08 - ldrb r0, [r2] - muls r0, r6 - add r0, r10 - adds r0, 0x2A - ldrb r1, [r1] - movs r4, 0x1 - ldrb r0, [r0] - cmp r1, r0 - bcs _08026D20 -_08026CDC: - mov r10, r8 - b _08026DE0 - .align 2, 0 -_08026CE0: .4byte gUnknown_02024C98 -_08026CE4: .4byte gBattleMoves -_08026CE8: .4byte gUnknown_02024BE6 -_08026CEC: .4byte gUnknown_02024C07 -_08026CF0: .4byte gUnknown_02024C08 -_08026CF4: - ldr r0, _08026D4C @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldr r2, _08026D50 @ =gUnknown_02024C07 - ldrb r0, [r1, 0x15] - movs r4, 0 - ldrb r3, [r2] - cmp r0, r3 - bne _08026D20 - ldrb r0, [r2] - muls r0, r6 - add r0, r10 - adds r0, 0x2A - adds r1, r5, 0 - adds r1, 0x2A - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcc _08026D20 - movs r4, 0x1 -_08026D20: - cmp r4, 0 - beq _08026DE0 - ldr r0, _08026D54 @ =gUnknown_02024D28 - ldr r1, _08026D58 @ =gUnknown_02024C08 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 30 - cmp r0, 0 - bge _08026D64 - ldr r1, _08026D5C @ =gUnknown_02024BEC - movs r0, 0x58 - muls r0, r2 - add r0, r10 - ldrh r0, [r0, 0x28] - subs r0, 0x1 - str r0, [r1] - ldr r2, _08026D60 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x40 - b _08026DC6 - .align 2, 0 -_08026D4C: .4byte gUnknown_02024CA8 -_08026D50: .4byte gUnknown_02024C07 -_08026D54: .4byte gUnknown_02024D28 -_08026D58: .4byte gUnknown_02024C08 -_08026D5C: .4byte gUnknown_02024BEC -_08026D60: .4byte gUnknown_02024C68 -_08026D64: - ldr r0, _08026DA0 @ =gUnknown_02024D68 - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - beq _08026DB4 - ldr r1, _08026DA4 @ =gUnknown_02024BEC - movs r3, 0x58 - adds r0, r2, 0 - muls r0, r3 - add r0, r10 - ldrh r0, [r0, 0x28] - subs r0, 0x1 - str r0, [r1] - ldr r2, _08026DA8 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08026DAC @ =gUnknown_02024C04 - ldr r2, _08026DB0 @ =gUnknown_02024C08 - ldrb r0, [r2] - muls r0, r3 - add r0, r10 - ldrh r0, [r0, 0x2E] - strh r0, [r1] - b _08026DCA - .align 2, 0 -_08026DA0: .4byte gUnknown_02024D68 -_08026DA4: .4byte gUnknown_02024BEC -_08026DA8: .4byte gUnknown_02024C68 -_08026DAC: .4byte gUnknown_02024C04 -_08026DB0: .4byte gUnknown_02024C08 -_08026DB4: - ldr r1, _08026DD4 @ =gUnknown_02024BEC - movs r0, 0x58 - muls r0, r2 - add r0, r10 - ldrh r0, [r0, 0x28] - str r0, [r1] - ldr r2, _08026DD8 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x10 -_08026DC6: - orrs r0, r1 - strb r0, [r2] -_08026DCA: - ldr r1, _08026DDC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08026E40 - .align 2, 0 -_08026DD4: .4byte gUnknown_02024BEC -_08026DD8: .4byte gUnknown_02024C68 -_08026DDC: .4byte gUnknown_02024C10 -_08026DE0: - ldr r2, _08026E10 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08026E14 @ =gUnknown_02024C07 - ldrb r0, [r0] - movs r2, 0x58 - adds r1, r0, 0 - muls r1, r2 - add r1, r10 - adds r1, 0x2A - ldr r3, _08026E18 @ =gUnknown_02024C08 - ldrb r0, [r3] - muls r0, r2 - add r0, r10 - adds r0, 0x2A - ldrb r1, [r1] - ldrb r0, [r0] - cmp r1, r0 - bcc _08026E20 - ldr r1, _08026E1C @ =gUnknown_02024D1E - movs r0, 0 - b _08026E24 - .align 2, 0 -_08026E10: .4byte gUnknown_02024C68 -_08026E14: .4byte gUnknown_02024C07 -_08026E18: .4byte gUnknown_02024C08 -_08026E1C: .4byte gUnknown_02024D1E -_08026E20: - ldr r1, _08026E50 @ =gUnknown_02024D1E - movs r0, 0x1 -_08026E24: - strb r0, [r1, 0x5] - ldr r3, _08026E54 @ =gUnknown_02024C10 - 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] -_08026E40: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08026E50: .4byte gUnknown_02024D1E -_08026E54: .4byte gUnknown_02024C10 - thumb_func_end sub_8026B78 - - thumb_func_start atk94_gethalfcurrentenemyhp -atk94_gethalfcurrentenemyhp: @ 8026E58 - push {lr} - ldr r3, _08026E84 @ =gUnknown_02024BEC - ldr r2, _08026E88 @ =gBattleMons - ldr r0, _08026E8C @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - lsrs r0, 1 - str r0, [r3] - cmp r0, 0 - bne _08026E76 - movs r0, 0x1 - str r0, [r3] -_08026E76: - ldr r1, _08026E90 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08026E84: .4byte gUnknown_02024BEC -_08026E88: .4byte gBattleMons -_08026E8C: .4byte gUnknown_02024C08 -_08026E90: .4byte gUnknown_02024C10 - thumb_func_end atk94_gethalfcurrentenemyhp - - thumb_func_start sub_8026E94 -sub_8026E94: @ 8026E94 - push {lr} - ldr r2, _08026EB4 @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _08026EC0 - ldr r2, _08026EB8 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08026EBC @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08026ED2 - .align 2, 0 -_08026EB4: .4byte word_2024DB8 -_08026EB8: .4byte gUnknown_02024C68 -_08026EBC: .4byte gUnknown_02024D1E -_08026EC0: - movs r0, 0x8 - strh r0, [r2] - ldr r1, _08026EE0 @ =gUnknown_02024D1E - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r0, _08026EE4 @ =gUnknown_02024DBC - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_08026ED2: - ldr r1, _08026EE8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08026EE0: .4byte gUnknown_02024D1E -_08026EE4: .4byte gUnknown_02024DBC -_08026EE8: .4byte gUnknown_02024C10 - thumb_func_end sub_8026E94 - - thumb_func_start sub_8026EEC -sub_8026EEC: @ 8026EEC - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08026F0A - b _0802701C -_08026F0A: - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _08026F20 - b _0802701C -_08026F20: - ldr r2, _08026F94 @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x18 - ands r0, r1 - adds r4, r2, 0 - ldr r5, _08026F98 @ =gUnknown_02024C07 - cmp r0, 0 - beq _08026FAE - ldr r0, _08026F9C @ =gBattleMons - ldrb r2, [r5] - movs r1, 0x58 - muls r1, r2 - adds r3, r1, r0 - adds r0, r3, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x5 - beq _08026FA8 - cmp r0, 0x8 - beq _08026FA8 - cmp r0, 0x4 - beq _08026FA8 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x5 - beq _08026FA8 - cmp r0, 0x8 - beq _08026FA8 - cmp r0, 0x4 - beq _08026FA8 - adds r0, r3, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x8 - beq _08026FA8 - ldr r0, _08026FA0 @ =gUnknown_02024C98 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08026FA8 - movs r0, 0x80 - lsls r0, 11 - ands r1, r0 - cmp r1, 0 - bne _08026FA8 - ldr r1, _08026FA4 @ =gUnknown_02024BEC - ldrh r0, [r3, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08026FAE - movs r0, 0x1 - b _08026FAC - .align 2, 0 -_08026F94: .4byte word_2024DB8 -_08026F98: .4byte gUnknown_02024C07 -_08026F9C: .4byte gBattleMons -_08026FA0: .4byte gUnknown_02024C98 -_08026FA4: .4byte gUnknown_02024BEC -_08026FA8: - ldr r1, _08027004 @ =gUnknown_02024BEC - movs r0, 0 -_08026FAC: - str r0, [r1] -_08026FAE: - ldrh r1, [r4] - movs r4, 0x80 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _08027024 - ldr r1, _08027008 @ =gBattleMons - ldrb r3, [r5] - movs r0, 0x58 - muls r0, r3 - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0xF - beq _08027010 - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xF - beq _08027010 - ldr r0, _0802700C @ =gUnknown_02024C98 - lsls r1, r3, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r1, 0 - ands r0, r4 - cmp r0, 0 - bne _08027010 - movs r0, 0x80 - lsls r0, 11 - ands r1, r0 - cmp r1, 0 - bne _08027010 - ldr r1, _08027004 @ =gUnknown_02024BEC - ldrh r0, [r2, 0x2C] - lsrs r0, 4 - str r0, [r1] - cmp r0, 0 - bne _08027024 - movs r0, 0x1 - str r0, [r1] - b _08027024 - .align 2, 0 -_08027004: .4byte gUnknown_02024BEC -_08027008: .4byte gBattleMons -_0802700C: .4byte gUnknown_02024C98 -_08027010: - ldr r1, _08027018 @ =gUnknown_02024BEC - movs r0, 0 - str r0, [r1] - b _08027024 - .align 2, 0 -_08027018: .4byte gUnknown_02024BEC -_0802701C: - ldr r1, _08027050 @ =gUnknown_02024BEC - movs r0, 0 - str r0, [r1] - ldr r5, _08027054 @ =gUnknown_02024C07 -_08027024: - ldr r0, _08027058 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _0802705C @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0802703E - ldr r1, _08027050 @ =gUnknown_02024BEC - movs r0, 0 - str r0, [r1] -_0802703E: - ldr r1, _08027060 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08027050: .4byte gUnknown_02024BEC -_08027054: .4byte gUnknown_02024C07 -_08027058: .4byte gUnknown_02024C0C -_0802705C: .4byte gBitTable -_08027060: .4byte gUnknown_02024C10 - thumb_func_end sub_8026EEC - - thumb_func_start sub_8027064 -sub_8027064: @ 8027064 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08027090 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0802709C - ldr r1, _08027094 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08027098 @ =gPlayerParty - b _080270AC - .align 2, 0 -_08027090: .4byte gUnknown_02024C07 -_08027094: .4byte gUnknown_02024A6A -_08027098: .4byte gPlayerParty -_0802709C: - ldr r1, _080270D0 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080270D4 @ =gEnemyParty -_080270AC: - adds r5, r1, r0 - ldr r4, _080270D8 @ =gUnknown_02024C08 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080270E0 - ldr r1, _080270D0 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _080270DC @ =gPlayerParty - b _080270F0 - .align 2, 0 -_080270D0: .4byte gUnknown_02024A6A -_080270D4: .4byte gEnemyParty -_080270D8: .4byte gUnknown_02024C08 -_080270DC: .4byte gPlayerParty -_080270E0: - ldr r1, _0802714C @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08027150 @ =gEnemyParty -_080270F0: - adds r4, r1, r0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - adds r0, r5, 0 - movs r1, 0 - bl GetMonData - mov r9, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - adds r7, r0, 0 - ldr r5, _08027154 @ =gUnknown_02024C08 - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - ldr r1, _08027158 @ =gBattleMons - adds r0, r1 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0xC - bne _08027168 - ldr r1, _0802715C @ =gUnknown_02024C10 - ldr r0, _08027160 @ =gUnknown_081D98C9 - str r0, [r1] - ldr r0, _08027164 @ =byte_2024C06 - strb r2, [r0] - ldrb r0, [r5] - movs r1, 0xC - bl sub_81074C4 - b _0802721C - .align 2, 0 -_0802714C: .4byte gUnknown_02024A6A -_08027150: .4byte gEnemyParty -_08027154: .4byte gUnknown_02024C08 -_08027158: .4byte gBattleMons -_0802715C: .4byte gUnknown_02024C10 -_08027160: .4byte gUnknown_081D98C9 -_08027164: .4byte byte_2024C06 -_08027168: - mov r0, r10 - mov r1, r9 - bl GetGenderFromSpeciesAndPersonality - adds r4, r0, 0 - mov r0, r8 - adds r1, r7, 0 - bl GetGenderFromSpeciesAndPersonality - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080271CA - ldr r1, _080271E8 @ =gUnknown_02024C98 - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080271EC @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - bne _080271CA - adds r0, r2, 0 - muls r0, r6 - ldr r4, _080271F0 @ =gBattleMons - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r1, 0xF0 - lsls r1, 12 - ands r0, r1 - cmp r0, 0 - bne _080271CA - mov r0, r10 - mov r1, r9 - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _080271CA - mov r0, r8 - adds r1, r7, 0 - bl GetGenderFromSpeciesAndPersonality - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080271F8 -_080271CA: - ldr r3, _080271F4 @ =gUnknown_02024C10 - 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 _0802721C - .align 2, 0 -_080271E8: .4byte gUnknown_02024C98 -_080271EC: .4byte 0x000400c0 -_080271F0: .4byte gBattleMons -_080271F4: .4byte gUnknown_02024C10 -_080271F8: - ldrb r0, [r5] - adds r2, r0, 0 - muls r2, r6 - adds r2, r4 - ldr r1, _0802722C @ =gBitTable - ldr r0, _08027230 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 16 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r1, _08027234 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802721C: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802722C: .4byte gBitTable -_08027230: .4byte gUnknown_02024C07 -_08027234: .4byte gUnknown_02024C10 - thumb_func_end sub_8027064 - - thumb_func_start sub_8027238 -sub_8027238: @ 8027238 - push {r4-r7,lr} - ldr r0, _08027280 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - bne _08027324 - ldr r5, _08027284 @ =gUnknown_02024C10 - ldr r1, [r5] - ldrb r0, [r1, 0x1] - cmp r0, 0x4 - beq _08027290 - bl sub_8015150 - ldr r4, _08027288 @ =gUnknown_02024A60 - strb r0, [r4] - ldr r3, _0802728C @ =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, [r5] - adds r0, 0x2 - str r0, [r5] - b _08027324 - .align 2, 0 -_08027280: .4byte gUnknown_02024A64 -_08027284: .4byte gUnknown_02024C10 -_08027288: .4byte gUnknown_02024A60 -_0802728C: .4byte gBattleMons -_08027290: - ldr r4, _0802732C @ =gUnknown_02024A60 - ldr r5, _08027330 @ =gUnknown_02024C07 - ldrb r0, [r5] - strb r0, [r4] - ldr r6, _08027334 @ =gUnknown_02024C0C - ldrb r1, [r6] - ldr r7, _08027338 @ =gBitTable - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080272CC - ldr r3, _0802733C @ =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080272CC: - ldr r0, _08027340 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802731C - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - strb r0, [r4] - ldrb r1, [r6] - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802731C - ldr r3, _0802733C @ =gBattleMons - movs r0, 0x58 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r1, [r0] - adds r3, 0x50 - adds r2, r3 - ldr r2, [r2] - movs r0, 0 - bl dp01_build_cmdbuf_x1A_aaaa_bbbb - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_0802731C: - ldr r1, _08027344 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x2 - str r0, [r1] -_08027324: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802732C: .4byte gUnknown_02024A60 -_08027330: .4byte gUnknown_02024C07 -_08027334: .4byte gUnknown_02024C0C -_08027338: .4byte gBitTable -_0802733C: .4byte gBattleMons -_08027340: .4byte gUnknown_020239F8 -_08027344: .4byte gUnknown_02024C10 - thumb_func_end sub_8027238 - - thumb_func_start sub_8027348 -sub_8027348: @ 8027348 - push {r4-r6,lr} - ldr r6, _08027378 @ =gUnknown_02024C80 - ldr r4, _0802737C @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_get_per_side_status - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _08027388 - ldr r2, _08027380 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r0, _08027384 @ =gUnknown_02024D1E - strb r5, [r0, 0x5] - b _080273C0 - .align 2, 0 -_08027378: .4byte gUnknown_02024C80 -_0802737C: .4byte gUnknown_02024C07 -_08027380: .4byte gUnknown_02024C68 -_08027384: .4byte gUnknown_02024D1E -_08027388: - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5 - strb r1, [r0, 0x2] - ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, _080273D0 @ =gUnknown_02024C7A - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r3, 0x80 - lsls r3, 1 - adds r0, r3, 0 - movs r3, 0 - orrs r0, r2 - strh r0, [r1] - ldr r0, _080273D4 @ =gUnknown_02024D1E - strb r3, [r0, 0x5] -_080273C0: - ldr r1, _080273D8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080273D0: .4byte gUnknown_02024C7A -_080273D4: .4byte gUnknown_02024D1E -_080273D8: .4byte gUnknown_02024C10 - thumb_func_end sub_8027348 - - thumb_func_start atk9A_setincreasedcriticalchance -atk9A_setincreasedcriticalchance: @ 80273DC - push {lr} - ldr r1, _0802740C @ =gBattleMons - ldr r0, _08027410 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r3, 0x80 - lsls r3, 13 - adds r2, r1, 0 - ands r2, r3 - cmp r2, 0 - beq _0802741C - ldr r2, _08027414 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08027418 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _08027424 - .align 2, 0 -_0802740C: .4byte gBattleMons -_08027410: .4byte gUnknown_02024C07 -_08027414: .4byte gUnknown_02024C68 -_08027418: .4byte gUnknown_02024D1E -_0802741C: - orrs r1, r3 - str r1, [r0] - ldr r0, _08027430 @ =gUnknown_02024D1E - strb r2, [r0, 0x5] -_08027424: - ldr r1, _08027434 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08027430: .4byte gUnknown_02024D1E -_08027434: .4byte gUnknown_02024C10 - thumb_func_end atk9A_setincreasedcriticalchance - - thumb_func_start atk9B_transformdataexecution -atk9B_transformdataexecution: @ 8027438 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r1, _08027490 @ =gUnknown_02024BE8 - ldr r2, _08027494 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _08027498 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r7, _0802749C @ =gBattleMons - ldr r0, _080274A0 @ =gUnknown_02024C08 - mov r12, r0 - ldrb r1, [r0] - movs r6, 0x58 - adds r0, r1, 0 - muls r0, r6 - adds r5, r7, 0 - adds r5, 0x50 - adds r0, r5 - ldr r0, [r0] - movs r4, 0x80 - lsls r4, 14 - ands r0, r4 - cmp r0, 0 - bne _0802747E - ldr r0, _080274A4 @ =gUnknown_02024C98 - lsls r1, 2 - adds r1, r0 - ldr r2, [r1] - ldr r0, _080274A8 @ =0x000400c0 - ands r2, r0 - cmp r2, 0 - beq _080274B4 -_0802747E: - ldr r2, _080274AC @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080274B0 @ =gUnknown_02024D1E - movs r0, 0x1 - b _080275C8 - .align 2, 0 -_08027490: .4byte gUnknown_02024BE8 -_08027494: .4byte 0x0000ffff -_08027498: .4byte gUnknown_02024C10 -_0802749C: .4byte gBattleMons -_080274A0: .4byte gUnknown_02024C08 -_080274A4: .4byte gUnknown_02024C98 -_080274A8: .4byte 0x000400c0 -_080274AC: .4byte gUnknown_02024C68 -_080274B0: .4byte gUnknown_02024D1E -_080274B4: - ldr r3, _08027588 @ =gUnknown_02024C07 - ldrb r0, [r3] - adds r1, r0, 0 - muls r1, r6 - adds r1, r5 - ldr r0, [r1] - orrs r0, r4 - str r0, [r1] - ldr r4, _0802758C @ =gUnknown_02024CA8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - strh r2, [r0, 0x4] - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xB] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - mov r2, r12 - ldrb r1, [r2] - muls r1, r6 - adds r2, r7, 0 - adds r2, 0x48 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x18] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x18] - ldr r1, _08027590 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x6 - strb r0, [r1, 0x1] - mov r2, r12 - ldrb r0, [r2] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r2] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r0, [r3] - muls r0, r6 - adds r5, r0, r7 - ldrb r0, [r2] - muls r0, r6 - adds r2, r0, r7 - movs r4, 0 - adds r6, r3, 0 - ldr r0, _08027594 @ =gUnknown_02024A60 - mov r8, r0 -_0802754C: - adds r0, r5, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x23 - bls _0802754C - movs r4, 0 - ldr r7, _08027598 @ =gBattleMoves - ldr r3, _0802759C @ =gUnknown_02024A8C - adds r5, r3, 0 - adds r5, 0x18 -_08027564: - lsls r1, r4, 1 - ldrb r2, [r6] - movs r0, 0x58 - muls r2, r0 - adds r1, r2 - adds r1, r3 - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldrb r1, [r0, 0x4] - cmp r1, 0x4 - bhi _080275A0 - adds r0, r4, r2 - adds r0, r5 - b _080275A6 - .align 2, 0 -_08027588: .4byte gUnknown_02024C07 -_0802758C: .4byte gUnknown_02024CA8 -_08027590: .4byte gUnknown_030041C0 -_08027594: .4byte gUnknown_02024A60 -_08027598: .4byte gBattleMoves -_0802759C: .4byte gUnknown_02024A8C -_080275A0: - adds r0, r4, r2 - adds r0, r5 - movs r1, 0x5 -_080275A6: - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x3 - ble _08027564 - ldrb r0, [r6] - mov r1, r8 - strb r0, [r1] - movs r0, 0 - movs r1, 0x2 - bl dp01_build_cmdbuf_x38_a - mov r2, r8 - ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _080275D4 @ =gUnknown_02024D1E - movs r0, 0 -_080275C8: - strb r0, [r1, 0x5] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080275D4: .4byte gUnknown_02024D1E - thumb_func_end atk9B_transformdataexecution - - thumb_func_start sub_80275D8 -sub_80275D8: @ 80275D8 - push {r4-r7,lr} - ldr r7, _08027608 @ =gBattleMons - ldr r6, _0802760C @ =gUnknown_02024C07 - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r3, r0, r7 - ldrh r0, [r3, 0x2C] - lsrs r1, r0, 2 - adds r2, r1, 0 - cmp r1, 0 - bne _080275F2 - movs r2, 0x1 -_080275F2: - ldrh r0, [r3, 0x28] - cmp r0, r2 - bhi _08027618 - ldr r1, _08027610 @ =gUnknown_02024BEC - movs r0, 0 - str r0, [r1] - ldr r1, _08027614 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _0802766C - .align 2, 0 -_08027608: .4byte gBattleMons -_0802760C: .4byte gUnknown_02024C07 -_08027610: .4byte gUnknown_02024BEC -_08027614: .4byte gUnknown_02024D1E -_08027618: - ldr r4, _0802767C @ =gUnknown_02024BEC - str r1, [r4] - cmp r1, 0 - bne _08027624 - movs r0, 0x1 - str r0, [r4] -_08027624: - ldrb r0, [r6] - adds r2, r0, 0 - muls r2, r5 - adds r3, r7, 0 - adds r3, 0x50 - adds r2, r3 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 17 - orrs r0, r1 - str r0, [r2] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r3 - ldr r0, [r1] - ldr r2, _08027680 @ =0xffff1fff - ands r0, r2 - str r0, [r1] - ldr r2, _08027684 @ =gUnknown_02024CA8 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, [r4] - movs r2, 0 - strb r1, [r0, 0xA] - ldr r0, _08027688 @ =gUnknown_02024D1E - strb r2, [r0, 0x5] - ldr r2, _0802768C @ =gUnknown_02024C6C - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 1 - orrs r0, r1 - str r0, [r2] -_0802766C: - ldr r1, _08027690 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802767C: .4byte gUnknown_02024BEC -_08027680: .4byte 0xffff1fff -_08027684: .4byte gUnknown_02024CA8 -_08027688: .4byte gUnknown_02024D1E -_0802768C: .4byte gUnknown_02024C6C -_08027690: .4byte gUnknown_02024C10 - thumb_func_end sub_80275D8 - - thumb_func_start sub_8027694 -sub_8027694: @ 8027694 - push {r4,r5,lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r3, 0 - ldr r0, _080276D4 @ =gUnknown_081FACFE - ldrh r1, [r0] - ldr r4, _080276D8 @ =0x0000fffe - adds r5, r0, 0 - cmp r1, r4 - beq _080276BC - cmp r1, r2 - beq _080276BC - adds r1, r5, 0 -_080276AE: - adds r1, 0x2 - adds r3, 0x1 - ldrh r0, [r1] - cmp r0, r4 - beq _080276BC - cmp r0, r2 - bne _080276AE -_080276BC: - lsls r0, r3, 1 - adds r0, r5 - ldrh r1, [r0] - ldr r0, _080276D8 @ =0x0000fffe - eors r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080276D4: .4byte gUnknown_081FACFE -_080276D8: .4byte 0x0000fffe - thumb_func_end sub_8027694 - - thumb_func_start atk9D_copyattack -atk9D_copyattack: @ 80276DC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08027754 @ =gUnknown_02024BE8 - ldr r1, _08027758 @ =0x0000ffff - adds r7, r1, 0 - strh r7, [r0] - ldr r5, _0802775C @ =gUnknown_02024C34 - ldr r6, _08027760 @ =gUnknown_02024C08 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - bl sub_8027694 - lsls r0, 24 - cmp r0, 0 - bne _08027736 - ldr r3, _08027764 @ =gBattleMons - ldr r2, _08027768 @ =gUnknown_02024C07 - ldrb r1, [r2] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - mov r12, r3 - mov r9, r2 - cmp r1, 0 - bne _08027736 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r5 - ldrh r1, [r0] - cmp r1, 0 - beq _08027736 - cmp r1, r7 - bne _08027770 -_08027736: - ldr r3, _0802776C @ =gUnknown_02024C10 - 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 _080278A8 - .align 2, 0 -_08027754: .4byte gUnknown_02024BE8 -_08027758: .4byte 0x0000ffff -_0802775C: .4byte gUnknown_02024C34 -_08027760: .4byte gUnknown_02024C08 -_08027764: .4byte gBattleMons -_08027768: .4byte gUnknown_02024C07 -_0802776C: .4byte gUnknown_02024C10 -_08027770: - movs r2, 0 - mov r3, r12 - adds r3, 0xC - adds r0, r4, r3 - ldrh r0, [r0] - ldr r4, _08027800 @ =gUnknown_02024C10 - mov r10, r4 - cmp r0, r1 - beq _080277AA - mov r8, r3 - adds r7, r5, 0 - adds r5, r6, 0 - mov r4, r9 - movs r3, 0x58 -_0802778C: - adds r2, 0x1 - cmp r2, 0x3 - bgt _080277AA - lsls r1, r2, 1 - ldrb r0, [r4] - muls r0, r3 - adds r1, r0 - add r1, r8 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r7 - ldrh r1, [r1] - ldrh r0, [r0] - cmp r1, r0 - bne _0802778C -_080277AA: - cmp r2, 0x4 - bne _0802788C - ldr r5, _08027804 @ =gUnknown_02024BE4 - ldrb r1, [r5] - lsls r1, 1 - mov r2, r9 - ldrb r0, [r2] - movs r6, 0x58 - muls r0, r6 - adds r1, r0 - mov r0, r12 - adds r0, 0xC - adds r1, r0 - ldr r2, _08027808 @ =gUnknown_02024C34 - ldr r3, _0802780C @ =gUnknown_02024C08 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strh r0, [r1] - ldr r4, _08027810 @ =gBattleMoves - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r4, [r0, 0x4] - cmp r4, 0x4 - bhi _08027814 - mov r1, r9 - ldrb r0, [r1] - muls r0, r6 - ldrb r1, [r5] - adds r0, r1 - mov r1, r12 - adds r1, 0x24 - adds r0, r1 - strb r4, [r0] - b _08027828 - .align 2, 0 -_08027800: .4byte gUnknown_02024C10 -_08027804: .4byte gUnknown_02024BE4 -_08027808: .4byte gUnknown_02024C34 -_0802780C: .4byte gUnknown_02024C08 -_08027810: .4byte gBattleMoves -_08027814: - mov r4, r9 - ldrb r0, [r4] - muls r0, r6 - ldrb r1, [r5] - adds r0, r1 - mov r1, r12 - adds r1, 0x24 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] -_08027828: - ldr r1, _08027880 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08027884 @ =gUnknown_02024CA8 - mov r2, r9 - ldrb r0, [r2] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - adds r2, r1 - ldrb r4, [r2, 0x18] - lsrs r3, r4, 4 - ldr r1, _08027888 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - orrs r1, r3 - lsls r1, 4 - movs r0, 0xF - ands r0, r4 - orrs r0, r1 - strb r0, [r2, 0x18] - mov r4, r10 - ldr r0, [r4] - adds r0, 0x5 - str r0, [r4] - b _080278A8 - .align 2, 0 -_08027880: .4byte gUnknown_030041C0 -_08027884: .4byte gUnknown_02024CA8 -_08027888: .4byte gBitTable -_0802788C: - mov r0, r10 - ldr r2, [r0] - 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 - mov r2, r10 - str r1, [r2] -_080278A8: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atk9D_copyattack - - thumb_func_start sub_80278B8 -sub_80278B8: @ 80278B8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, _08027938 @ =gUnknown_02024BE6 - movs r6, 0xB1 - lsls r6, 1 - ldr r5, _0802793C @ =gUnknown_081FACFE - ldr r0, _08027940 @ =gUnknown_02024C10 - mov r8, r0 -_080278CA: - bl Random - ldr r2, _08027944 @ =0x000001ff - adds r1, r2, 0 - ands r0, r1 - adds r0, 0x1 - strh r0, [r7] - cmp r0, r6 - bhi _080278CA - movs r0, 0x3 -_080278DE: - subs r0, 0x1 - cmp r0, 0 - bge _080278DE - ldr r4, _08027938 @ =gUnknown_02024BE6 - ldrh r2, [r4] - ldr r3, _08027948 @ =0x0000ffff - subs r0, r5, 0x2 -_080278EC: - adds r0, 0x2 - ldrh r1, [r0] - cmp r1, r2 - beq _080278F8 - cmp r1, r3 - bne _080278EC -_080278F8: - ldr r0, _08027948 @ =0x0000ffff - cmp r1, r0 - bne _080278CA - ldr r2, _0802794C @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _08027950 @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r3, _08027954 @ =gUnknown_081D6BBC - ldr r2, _08027958 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - mov r1, r8 - str r0, [r1] - ldrh r0, [r4] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _0802795C @ =gUnknown_02024C08 - strb r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08027938: .4byte gUnknown_02024BE6 -_0802793C: .4byte gUnknown_081FACFE -_08027940: .4byte gUnknown_02024C10 -_08027944: .4byte 0x000001ff -_08027948: .4byte 0x0000ffff -_0802794C: .4byte gUnknown_02024C6C -_08027950: .4byte 0xfffffbff -_08027954: .4byte gUnknown_081D6BBC -_08027958: .4byte gBattleMoves -_0802795C: .4byte gUnknown_02024C08 - thumb_func_end sub_80278B8 - - thumb_func_start sub_8027960 -sub_8027960: @ 8027960 - ldr r3, _08027980 @ =gUnknown_02024BEC - ldr r2, _08027984 @ =gBattleMons - ldr r0, _08027988 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r0, [r0] - str r0, [r3] - ldr r1, _0802798C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08027980: .4byte gUnknown_02024BEC -_08027984: .4byte gBattleMons -_08027988: .4byte gUnknown_02024C07 -_0802798C: .4byte gUnknown_02024C10 - thumb_func_end sub_8027960 - - thumb_func_start atkA0_psywavedamageeffect -atkA0_psywavedamageeffect: @ 8027990 - push {r4,lr} - movs r4, 0xF -_08027994: - bl Random - adds r3, r4, 0 - ands r3, r0 - cmp r3, 0xA - bgt _08027994 - lsls r0, r3, 2 - adds r0, r3 - lsls r3, r0, 1 - ldr r4, _080279D4 @ =gUnknown_02024BEC - ldr r2, _080279D8 @ =gBattleMons - ldr r0, _080279DC @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - adds r0, r3, 0 - adds r0, 0x32 - muls r0, r1 - movs r1, 0x64 - bl __divsi3 - str r0, [r4] - ldr r1, _080279E0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080279D4: .4byte gUnknown_02024BEC -_080279D8: .4byte gBattleMons -_080279DC: .4byte gUnknown_02024C07 -_080279E0: .4byte gUnknown_02024C10 - thumb_func_end atkA0_psywavedamageeffect - - thumb_func_start atkA1_counterdamagecalculator -atkA1_counterdamagecalculator: @ 80279E4 - push {r4-r6,lr} - ldr r4, _08027A54 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _08027A58 @ =gUnknown_02024D28 - ldrb r0, [r4] - lsls r0, 4 - adds r0, r5 - ldrb r0, [r0, 0xC] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r0, r5, 0x4 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, 0 - beq _08027A98 - cmp r6, r2 - beq _08027A98 - ldr r6, _08027A5C @ =gBattleMons - adds r0, r1, r5 - ldrb r0, [r0, 0xC] - movs r4, 0x58 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08027A98 - ldr r1, _08027A60 @ =gUnknown_02024BEC - lsls r0, r3, 1 - str r0, [r1] - ldr r1, _08027A64 @ =gUnknown_02024C80 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _08027A6C - ldrb r1, [r1, 0x9] - adds r0, r1, 0 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08027A6C - ldr r0, _08027A68 @ =gUnknown_02024C08 - strb r1, [r0] - b _08027A7C - .align 2, 0 -_08027A54: .4byte gUnknown_02024C07 -_08027A58: .4byte gUnknown_02024D28 -_08027A5C: .4byte gBattleMons -_08027A60: .4byte gUnknown_02024BEC -_08027A64: .4byte gUnknown_02024C80 -_08027A68: .4byte gUnknown_02024C08 -_08027A6C: - ldr r2, _08027A88 @ =gUnknown_02024C08 - ldr r1, _08027A8C @ =gUnknown_02024D28 - ldr r0, _08027A90 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xC] - strb r0, [r2] -_08027A7C: - ldr r1, _08027A94 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08027AC8 - .align 2, 0 -_08027A88: .4byte gUnknown_02024C08 -_08027A8C: .4byte gUnknown_02024D28 -_08027A90: .4byte gUnknown_02024C07 -_08027A94: .4byte gUnknown_02024C10 -_08027A98: - ldr r2, _08027AD0 @ =gUnknown_02024D68 - ldr r0, _08027AD4 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, _08027AD8 @ =gUnknown_02024C10 - 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] -_08027AC8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08027AD0: .4byte gUnknown_02024D68 -_08027AD4: .4byte gUnknown_02024C07 -_08027AD8: .4byte gUnknown_02024C10 - thumb_func_end atkA1_counterdamagecalculator - - thumb_func_start atkA2_mirrorcoatdamagecalculator -atkA2_mirrorcoatdamagecalculator: @ 8027ADC - push {r4-r6,lr} - ldr r4, _08027B4C @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, _08027B50 @ =gUnknown_02024D28 - ldrb r0, [r4] - lsls r0, 4 - adds r0, r5 - ldrb r0, [r0, 0xD] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r0, r5, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r3, [r0] - cmp r3, 0 - beq _08027B90 - cmp r6, r2 - beq _08027B90 - ldr r6, _08027B54 @ =gBattleMons - adds r0, r1, r5 - ldrb r0, [r0, 0xD] - movs r4, 0x58 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08027B90 - ldr r1, _08027B58 @ =gUnknown_02024BEC - lsls r0, r3, 1 - str r0, [r1] - ldr r1, _08027B5C @ =gUnknown_02024C80 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r1 - ldrb r0, [r1, 0x8] - cmp r0, 0 - beq _08027B64 - ldrb r1, [r1, 0x9] - adds r0, r1, 0 - muls r0, r4 - adds r0, r6 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08027B64 - ldr r0, _08027B60 @ =gUnknown_02024C08 - strb r1, [r0] - b _08027B74 - .align 2, 0 -_08027B4C: .4byte gUnknown_02024C07 -_08027B50: .4byte gUnknown_02024D28 -_08027B54: .4byte gBattleMons -_08027B58: .4byte gUnknown_02024BEC -_08027B5C: .4byte gUnknown_02024C80 -_08027B60: .4byte gUnknown_02024C08 -_08027B64: - ldr r2, _08027B80 @ =gUnknown_02024C08 - ldr r1, _08027B84 @ =gUnknown_02024D28 - ldr r0, _08027B88 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0xD] - strb r0, [r2] -_08027B74: - ldr r1, _08027B8C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08027BC0 - .align 2, 0 -_08027B80: .4byte gUnknown_02024C08 -_08027B84: .4byte gUnknown_02024D28 -_08027B88: .4byte gUnknown_02024C07 -_08027B8C: .4byte gUnknown_02024C10 -_08027B90: - ldr r2, _08027BC8 @ =gUnknown_02024D68 - ldr r0, _08027BCC @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, _08027BD0 @ =gUnknown_02024C10 - 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] -_08027BC0: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08027BC8: .4byte gUnknown_02024D68 -_08027BCC: .4byte gUnknown_02024C07 -_08027BD0: .4byte gUnknown_02024C10 - thumb_func_end atkA2_mirrorcoatdamagecalculator - - thumb_func_start atkA3_disablelastusedattack -atkA3_disablelastusedattack: @ 8027BD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r4, 0 - ldr r2, _08027CD4 @ =gBattleMons - ldr r3, _08027CD8 @ =gUnknown_02024C08 - ldrb r1, [r3] - movs r0, 0x58 - muls r0, r1 - adds r7, r2, 0 - adds r7, 0xC - adds r0, r7 - ldr r5, _08027CDC @ =gUnknown_02024C34 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r0] - mov r9, r2 - adds r6, r3, 0 - ldr r2, _08027CE0 @ =gUnknown_02024CA8 - mov r8, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _08027C28 - mov r12, r6 - movs r3, 0x58 -_08027C08: - adds r4, 0x1 - cmp r4, 0x3 - bgt _08027C28 - lsls r2, r4, 1 - mov r0, r12 - ldrb r1, [r0] - adds r0, r1, 0 - muls r0, r3 - adds r2, r0 - adds r2, r7 - lsls r1, 1 - adds r1, r5 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _08027C08 -_08027C28: - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - ldrh r0, [r0, 0x4] - cmp r0, 0 - bne _08027CEC - cmp r4, 0x4 - beq _08027CEC - movs r5, 0x58 - adds r0, r1, 0 - muls r0, r5 - adds r0, r4, r0 - mov r1, r9 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08027CEC - ldr r1, _08027CE4 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - lsls r2, r4, 1 - ldrb r0, [r6] - muls r0, r5 - adds r0, r2, r0 - mov r3, r9 - adds r3, 0xC - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r6] - muls r0, r5 - adds r0, r2, r0 - adds r0, r3 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r8 - muls r1, r5 - adds r2, r1 - adds r2, r3 - ldrh r1, [r2] - strh r1, [r0, 0x4] - bl Random - ldrb r2, [r6] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r8 - movs r2, 0x3 - ands r2, r0 - adds r2, 0x2 - ldrb r3, [r1, 0xB] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xB] - ldrb r0, [r6] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r8 - ldrb r3, [r1, 0xB] - lsls r2, r3, 28 - lsrs r2, 24 - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xB] - ldr r1, _08027CE8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08027D06 - .align 2, 0 -_08027CD4: .4byte gBattleMons -_08027CD8: .4byte gUnknown_02024C08 -_08027CDC: .4byte gUnknown_02024C34 -_08027CE0: .4byte gUnknown_02024CA8 -_08027CE4: .4byte gUnknown_030041C0 -_08027CE8: .4byte gUnknown_02024C10 -_08027CEC: - ldr r3, _08027D14 @ =gUnknown_02024C10 - 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] -_08027D06: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08027D14: .4byte gUnknown_02024C10 - thumb_func_end atkA3_disablelastusedattack - - thumb_func_start atkA4_setencore -atkA4_setencore: @ 8027D18 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r3, _08027E0C @ =gBattleMons - ldr r4, _08027E10 @ =gUnknown_02024C08 - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r6, r3, 0 - adds r6, 0xC - adds r0, r6 - ldr r2, _08027E14 @ =gUnknown_02024C34 - lsls r1, 1 - adds r1, r2 - ldrh r0, [r0] - mov r10, r3 - mov r8, r2 - ldr r2, _08027E18 @ =gUnknown_02024CA8 - mov r9, r2 - ldrh r1, [r1] - cmp r0, r1 - beq _08027D72 - mov r12, r4 - adds r7, r6, 0 - mov r6, r8 - movs r3, 0x58 -_08027D52: - adds r5, 0x1 - cmp r5, 0x3 - bgt _08027D72 - lsls r2, r5, 1 - mov r0, r12 - ldrb r1, [r0] - adds r0, r1, 0 - muls r0, r3 - adds r2, r0 - adds r2, r7 - lsls r1, 1 - adds r1, r6 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _08027D52 -_08027D72: - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r2, [r0] - cmp r2, 0xA5 - beq _08027D86 - cmp r2, 0xE3 - beq _08027D86 - cmp r2, 0x77 - bne _08027D88 -_08027D86: - movs r5, 0x4 -_08027D88: - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r2, r9 - adds r3, r0, r2 - ldrh r0, [r3, 0x6] - cmp r0, 0 - bne _08027E20 - cmp r5, 0x4 - beq _08027E20 - movs r0, 0x58 - adds r2, r1, 0 - muls r2, r0 - adds r0, r5, r2 - mov r1, r10 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08027E20 - lsls r0, r5, 1 - adds r0, r2 - subs r1, 0x18 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r3, 0x6] - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r9 - strb r5, [r0, 0xC] - bl Random - ldrb r2, [r4] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - add r1, r9 - movs r2, 0x3 - ands r2, r0 - adds r2, 0x3 - ldrb r3, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xE] - ldrb r0, [r4] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r9 - ldrb r3, [r1, 0xE] - lsls r2, r3, 28 - lsrs r2, 24 - movs r0, 0xF - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0xE] - ldr r1, _08027E1C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08027E3A - .align 2, 0 -_08027E0C: .4byte gBattleMons -_08027E10: .4byte gUnknown_02024C08 -_08027E14: .4byte gUnknown_02024C34 -_08027E18: .4byte gUnknown_02024CA8 -_08027E1C: .4byte gUnknown_02024C10 -_08027E20: - ldr r3, _08027E48 @ =gUnknown_02024C10 - 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] -_08027E3A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08027E48: .4byte gUnknown_02024C10 - thumb_func_end atkA4_setencore - - thumb_func_start sub_8027E4C -sub_8027E4C: @ 8027E4C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r7, _08027EEC @ =gBattleMons - ldr r0, _08027EF0 @ =gUnknown_02024C08 - mov r8, r0 - ldrb r0, [r0] - movs r6, 0x58 - adds r2, r0, 0 - muls r2, r6 - adds r0, r7, 0 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - bne _08027F18 - ldr r1, _08027EF4 @ =gUnknown_02024C07 - mov r12, r1 - ldrb r0, [r1] - muls r0, r6 - adds r0, r7 - ldrh r4, [r0, 0x28] - adds r0, r2, r7 - ldrh r2, [r0, 0x28] - adds r4, r2 - asrs r4, 1 - ldr r5, _08027EF8 @ =gUnknown_02024BEC - mov r9, r5 - subs r2, r4 - str r2, [r5] - ldr r3, _08027EFC @ =0x02000000 - ldr r1, _08027F00 @ =0x00016014 - adds r0, r3, r1 - strb r2, [r0] - movs r0, 0xFF - lsls r0, 8 - ands r0, r2 - asrs r0, 8 - ldr r5, _08027F04 @ =0x00016015 - adds r1, r3, r5 - strb r0, [r1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r2 - asrs r0, 16 - adds r5, 0x1 - adds r1, r3, r5 - strb r0, [r1] - lsrs r2, 24 - ldr r0, _08027F08 @ =0x00016017 - adds r3, r0 - strb r2, [r3] - mov r1, r12 - ldrb r0, [r1] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0, 0x28] - subs r0, r4 - mov r5, r9 - str r0, [r5] - ldr r2, _08027F0C @ =gUnknown_02024D68 - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - adds r0, r2 - ldr r1, _08027F10 @ =0x0000ffff - str r1, [r0] - ldr r1, _08027F14 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08027F32 - .align 2, 0 -_08027EEC: .4byte gBattleMons -_08027EF0: .4byte gUnknown_02024C08 -_08027EF4: .4byte gUnknown_02024C07 -_08027EF8: .4byte gUnknown_02024BEC -_08027EFC: .4byte 0x02000000 -_08027F00: .4byte 0x00016014 -_08027F04: .4byte 0x00016015 -_08027F08: .4byte 0x00016017 -_08027F0C: .4byte gUnknown_02024D68 -_08027F10: .4byte 0x0000ffff -_08027F14: .4byte gUnknown_02024C10 -_08027F18: - ldr r3, _08027F40 @ =gUnknown_02024C10 - 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] -_08027F32: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08027F40: .4byte gUnknown_02024C10 - thumb_func_end sub_8027E4C - - thumb_func_start sub_8027F44 -sub_8027F44: @ 8027F44 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r1, _08027FA8 @ =gUnknown_02024C3C - ldr r4, _08027FAC @ =gUnknown_02024C07 - ldrb r0, [r4] - lsls r0, 1 - adds r2, r0, r1 - ldrh r1, [r2] - cmp r1, 0 - beq _08027F8C - ldr r0, _08027FB0 @ =0x0000ffff - cmp r1, r0 - beq _08027F8C - ldrh r0, [r2] - bl sub_8028350 - lsls r0, 24 - cmp r0, 0 - beq _08028024 - ldr r2, _08027FB4 @ =gUnknown_02024D28 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08028024 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _08028024 -_08027F8C: - ldr r3, _08027FB8 @ =gUnknown_02024C10 - 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 _08028110 - .align 2, 0 -_08027FA8: .4byte gUnknown_02024C3C -_08027FAC: .4byte gUnknown_02024C07 -_08027FB0: .4byte 0x0000ffff -_08027FB4: .4byte gUnknown_02024D28 -_08027FB8: .4byte gUnknown_02024C10 -_08027FBC: - mov r0, r12 - strb r5, [r0] - mov r1, r10 - ldrb r0, [r1] - muls r0, r2 - adds r0, r7 - adds r0, 0x22 - strb r5, [r0] - ldr r1, _08027FE0 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r5, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, _08027FE4 @ =gUnknown_02024C10 - b _08028012 - .align 2, 0 -_08027FE0: .4byte gUnknown_030041C0 -_08027FE4: .4byte gUnknown_02024C10 -_08027FE8: - mov r0, r8 - adds r0, 0x1 - adds r0, r3 - ldrb r2, [r0] - strb r2, [r4] - mov r4, r10 - ldrb r0, [r4] - muls r0, r6 - ldr r7, _0802801C @ =gBattleMons - adds r0, r7 - adds r0, 0x22 - strb r2, [r0] - ldr r1, _08028020 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - mov r1, r12 -_08028012: - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08028110 - .align 2, 0 -_0802801C: .4byte gBattleMons -_08028020: .4byte gUnknown_030041C0 -_08028024: - movs r4, 0 - mov r8, r4 - movs r7, 0x7F - mov r9, r7 -_0802802C: - bl Random - mov r4, r9 - ands r4, r0 - cmp r4, 0x70 - bhi _0802802C - lsls r0, r4, 1 - adds r4, r0, r4 - ldr r6, _08028120 @ =gTypeEffectiveness - adds r3, r4, r6 - ldr r1, _08028124 @ =gUnknown_02024C44 - ldr r2, _08028128 @ =gUnknown_02024C07 - ldrb r5, [r2] - lsls r0, r5, 1 - adds r0, r1 - ldrb r1, [r3] - mov r10, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _08028088 - adds r0, r4, 0x2 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x5 - bhi _08028088 - ldr r7, _0802812C @ =gBattleMons - movs r2, 0x58 - adds r0, r5, 0 - muls r0, r2 - adds r3, r0, r7 - movs r0, 0x21 - adds r0, r3 - mov r12, r0 - adds r0, r4, 0x1 - adds r0, r6 - ldrb r5, [r0] - mov r1, r12 - ldrb r0, [r1] - adds r1, r5, 0 - cmp r0, r1 - beq _08028088 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - bne _08027FBC -_08028088: - movs r7, 0x1 - add r8, r7 - ldr r0, _08028130 @ =0x000003e7 - cmp r8, r0 - ble _0802802C - movs r0, 0 - mov r8, r0 - ldr r1, _08028134 @ =gUnknown_02024C10 - mov r12, r1 - ldr r3, _08028120 @ =gTypeEffectiveness - adds r0, r4, 0x1 - adds r0, r3 - mov r9, r0 - adds r5, r3, 0 -_080280A4: - ldrb r1, [r5] - cmp r1, 0xFF - bgt _080280AE - cmp r1, 0xFE - bge _080280E8 -_080280AE: - mov r4, r10 - ldrb r2, [r4] - lsls r0, r2, 1 - ldr r7, _08028124 @ =gUnknown_02024C44 - adds r0, r7 - ldrh r0, [r0] - cmp r1, r0 - bne _080280E8 - ldrb r0, [r5, 0x2] - cmp r0, 0x5 - bhi _080280E8 - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - ldr r1, _0802812C @ =gBattleMons - adds r2, r0, r1 - adds r4, r2, 0 - adds r4, 0x21 - ldrb r0, [r4] - mov r7, r9 - ldrb r1, [r7] - cmp r0, r1 - beq _080280E8 - adds r0, r2, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _080280E8 - b _08027FE8 -_080280E8: - adds r5, 0x3 - movs r0, 0x3 - add r8, r0 - ldr r0, _08028138 @ =0x0000014f - cmp r8, r0 - bls _080280A4 - mov r1, r12 - ldr r2, [r1] - 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 - mov r4, r12 - str r1, [r4] -_08028110: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08028120: .4byte gTypeEffectiveness -_08028124: .4byte gUnknown_02024C44 -_08028128: .4byte gUnknown_02024C07 -_0802812C: .4byte gBattleMons -_08028130: .4byte 0x000003e7 -_08028134: .4byte gUnknown_02024C10 -_08028138: .4byte 0x0000014f - thumb_func_end sub_8027F44 - - thumb_func_start atkA7_setalwayshitflag -atkA7_setalwayshitflag: @ 802813C - push {r4,lr} - ldr r4, _08028180 @ =gUnknown_02024C98 - ldr r3, _08028184 @ =gUnknown_02024C08 - ldrb r1, [r3] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x19 - negs r2, r2 - ands r0, r2 - str r0, [r1] - ldrb r1, [r3] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x10 - orrs r0, r2 - str r0, [r1] - ldr r2, _08028188 @ =gUnknown_02024CA8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0802818C @ =gUnknown_02024C07 - ldrb r1, [r1] - strb r1, [r0, 0x15] - ldr r1, _08028190 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08028180: .4byte gUnknown_02024C98 -_08028184: .4byte gUnknown_02024C08 -_08028188: .4byte gUnknown_02024CA8 -_0802818C: .4byte gUnknown_02024C07 -_08028190: .4byte gUnknown_02024C10 - thumb_func_end atkA7_setalwayshitflag - - thumb_func_start atkA8_copymovepermanently -atkA8_copymovepermanently: @ 8028194 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - ldr r0, _080282F4 @ =gUnknown_02024BE8 - ldr r1, _080282F8 @ =0x0000ffff - adds r5, r1, 0 - strh r5, [r0] - ldr r3, _080282FC @ =gBattleMons - ldr r2, _08028300 @ =gUnknown_02024C07 - ldrb r1, [r2] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r0, r3, 0 - adds r0, 0x50 - adds r0, r4, r0 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 14 - ands r1, r0 - mov r12, r3 - mov r10, r2 - cmp r1, 0 - beq _080281CC - b _08028320 -_080281CC: - ldr r0, _08028304 @ =gUnknown_02024C2C - ldr r2, _08028308 @ =gUnknown_02024C08 - ldrb r1, [r2] - lsls r1, 1 - adds r1, r0 - ldrh r1, [r1] - mov r9, r0 - mov r8, r2 - cmp r1, 0xA5 - bne _080281E2 - b _08028320 -_080281E2: - cmp r1, 0 - bne _080281E8 - b _08028320 -_080281E8: - cmp r1, r5 - bne _080281EE - b _08028320 -_080281EE: - cmp r1, 0xA6 - bne _080281F4 - b _08028320 -_080281F4: - movs r7, 0 - mov r5, r9 - mov r0, r12 - adds r0, 0xC - adds r1, r4, r0 - mov r3, r8 -_08028200: - ldrh r2, [r1] - cmp r2, 0xA6 - beq _08028212 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - cmp r2, r0 - beq _0802821A -_08028212: - adds r1, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _08028200 -_0802821A: - cmp r7, 0x4 - beq _08028220 - b _08028320 -_08028220: - ldr r4, _0802830C @ =gUnknown_02024BE4 - ldrb r1, [r4] - lsls r1, 1 - mov r2, r10 - ldrb r0, [r2] - movs r3, 0x58 - muls r0, r3 - adds r1, r0 - mov r6, r12 - adds r6, 0xC - adds r1, r6 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - mov r1, r10 - ldrb r0, [r1] - adds r2, r0, 0 - muls r2, r3 - ldrb r4, [r4] - adds r2, r4 - mov r5, r12 - adds r5, 0x24 - adds r2, r5 - ldr r4, _08028310 @ =gBattleMoves - mov r1, r8 - ldrb r0, [r1] - lsls r0, 1 - add r0, r9 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x4] - strb r0, [r2] - ldr r1, _08028314 @ =gUnknown_02024A60 - mov r2, r10 - ldrb r0, [r2] - strb r0, [r1] - movs r7, 0 - ldrb r0, [r2] - muls r0, r3 - adds r4, r0, r5 - adds r3, r0, 0 - add r2, sp, 0x4 - add r5, sp, 0xC -_08028282: - adds r0, r3, r6 - ldrh r0, [r0] - strh r0, [r2] - adds r1, r5, r7 - ldrb r0, [r4] - strb r0, [r1] - adds r4, 0x1 - adds r3, 0x2 - adds r2, 0x2 - adds r7, 0x1 - cmp r7, 0x3 - ble _08028282 - add r2, sp, 0x4 - mov r0, r10 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r12 - adds r0, 0x3B - ldrb r0, [r0] - strb r0, [r2, 0xC] - str r2, [sp] - movs r0, 0 - movs r1, 0x3 - movs r2, 0 - movs r3, 0x10 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r0, _08028314 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08028318 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldr r3, _08028304 @ =gUnknown_02024C2C - ldr r2, _08028308 @ =gUnknown_02024C08 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _0802831C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802833A - .align 2, 0 -_080282F4: .4byte gUnknown_02024BE8 -_080282F8: .4byte 0x0000ffff -_080282FC: .4byte gBattleMons -_08028300: .4byte gUnknown_02024C07 -_08028304: .4byte gUnknown_02024C2C -_08028308: .4byte gUnknown_02024C08 -_0802830C: .4byte gUnknown_02024BE4 -_08028310: .4byte gBattleMoves -_08028314: .4byte gUnknown_02024A60 -_08028318: .4byte gUnknown_030041C0 -_0802831C: .4byte gUnknown_02024C10 -_08028320: - ldr r3, _0802834C @ =gUnknown_02024C10 - 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] -_0802833A: - 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 -_0802834C: .4byte gUnknown_02024C10 - thumb_func_end atkA8_copymovepermanently - - thumb_func_start sub_8028350 -sub_8028350: @ 8028350 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08028380 @ =gBattleMoves - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - cmp r0, 0x91 - beq _0802837A - cmp r0, 0x27 - beq _0802837A - cmp r0, 0x4B - beq _0802837A - cmp r0, 0x97 - beq _0802837A - cmp r0, 0x9B - beq _0802837A - cmp r0, 0x1A - bne _08028384 -_0802837A: - movs r0, 0x1 - b _08028386 - .align 2, 0 -_08028380: .4byte gBattleMoves -_08028384: - movs r0, 0 -_08028386: - pop {r1} - bx r1 - thumb_func_end sub_8028350 - - thumb_func_start sub_802838C -sub_802838C: @ 802838C - push {lr} - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080283AA - cmp r1, 0xD6 - beq _080283AA - movs r0, 0x89 - lsls r0, 1 - cmp r1, r0 - beq _080283AA - cmp r1, 0x77 - beq _080283AA - cmp r1, 0x76 - bne _080283AE -_080283AA: - movs r0, 0x1 - b _080283B0 -_080283AE: - movs r0, 0 -_080283B0: - pop {r1} - bx r1 - thumb_func_end sub_802838C - - thumb_func_start move_weather_interaction -move_weather_interaction: @ 80283B4 - push {lr} - lsls r1, 16 - lsrs r2, r1, 16 - ldr r1, _0802840C @ =gBattleMoves - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x97 - bne _080283D8 - ldr r0, _08028410 @ =word_2024DB8 - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _08028418 -_080283D8: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x91 - beq _080283FA - cmp r0, 0x27 - beq _080283FA - cmp r0, 0x4B - beq _080283FA - cmp r0, 0x97 - beq _080283FA - cmp r0, 0x9B - beq _080283FA - cmp r0, 0x1A - bne _08028418 -_080283FA: - ldr r0, _08028414 @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 20 - ands r0, r1 - cmp r0, 0 - beq _08028418 - movs r0, 0x1 - b _0802841A - .align 2, 0 -_0802840C: .4byte gBattleMoves -_08028410: .4byte word_2024DB8 -_08028414: .4byte gUnknown_02024C6C -_08028418: - movs r0, 0x2 -_0802841A: - pop {r1} - bx r1 - thumb_func_end move_weather_interaction - - thumb_func_start sub_8028420 -sub_8028420: @ 8028420 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r6, 0 - movs r5, 0 - ldr r0, _080284B0 @ =gUnknown_02024C07 - mov r9, r0 - movs r1, 0x58 - mov r8, r1 - ldr r7, _080284B4 @ =gUnknown_02024A8C - movs r0, 0x84 - lsls r0, 1 - mov r10, r0 -_0802843E: - lsls r4, r5, 1 - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4, r0 - adds r0, r7 - ldrh r0, [r0] - bl sub_802838C - lsls r0, 24 - cmp r0, 0 - bne _0802847E - mov r1, r9 - ldrb r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r4, r0 - adds r0, r7 - ldrh r1, [r0] - cmp r1, r10 - beq _0802847E - cmp r1, 0xFD - beq _0802847E - adds r0, r1, 0 - bl sub_8028350 - lsls r0, 24 - cmp r0, 0 - beq _0802848C -_0802847E: - ldr r1, _080284B8 @ =gBitTable - lsls r0, r5, 2 - adds r0, r1 - ldr r0, [r0] - orrs r6, r0 - lsls r0, r6, 24 - lsrs r6, r0, 24 -_0802848C: - adds r5, 0x1 - cmp r5, 0x3 - ble _0802843E - ldr r0, _080284B0 @ =gUnknown_02024C07 - ldrb r0, [r0] - adds r1, r6, 0 - movs r2, 0xFD - bl sub_8015A98 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bne _080284C0 - ldr r1, _080284BC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08028524 - .align 2, 0 -_080284B0: .4byte gUnknown_02024C07 -_080284B4: .4byte gUnknown_02024A8C -_080284B8: .4byte gBitTable -_080284BC: .4byte gUnknown_02024C10 -_080284C0: - movs r7, 0x3 - ldr r4, _08028534 @ =gBitTable -_080284C4: - bl Random - adds r5, r7, 0 - ands r5, r0 - lsls r0, r5, 2 - adds r0, r4 - ldr r0, [r0] - ands r0, r6 - cmp r0, 0 - bne _080284C4 - ldr r4, _08028538 @ =gUnknown_02024BEA - ldr r2, _0802853C @ =gBattleMons - lsls r1, r5, 1 - ldr r0, _08028540 @ =gUnknown_02024C07 - ldrb r3, [r0] - movs r0, 0x58 - muls r0, r3 - adds r1, r0 - adds r2, 0xC - adds r1, r2 - ldrh r0, [r1] - strh r0, [r4] - ldr r0, _08028544 @ =gUnknown_02024BE4 - strb r5, [r0] - ldr r2, _08028548 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0802854C @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldrh r0, [r4] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _08028550 @ =gUnknown_02024C08 - strb r0, [r1] - ldr r3, _08028554 @ =gUnknown_02024C10 - 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] -_08028524: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08028534: .4byte gBitTable -_08028538: .4byte gUnknown_02024BEA -_0802853C: .4byte gBattleMons -_08028540: .4byte gUnknown_02024C07 -_08028544: .4byte gUnknown_02024BE4 -_08028548: .4byte gUnknown_02024C6C -_0802854C: .4byte 0xfffffbff -_08028550: .4byte gUnknown_02024C08 -_08028554: .4byte gUnknown_02024C10 - thumb_func_end sub_8028420 - - thumb_func_start sub_8028558 -sub_8028558: @ 8028558 - ldr r1, _0802857C @ =gBattleMons - ldr r0, _08028580 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - orrs r0, r1 - str r0, [r2] - ldr r1, _08028584 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_0802857C: .4byte gBattleMons -_08028580: .4byte gUnknown_02024C07 -_08028584: .4byte gUnknown_02024C10 - thumb_func_end sub_8028558 - - thumb_func_start b_feature_update_destiny_bond -b_feature_update_destiny_bond: @ 8028588 - push {r4,r5,lr} - ldr r0, _080285D8 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, _080285DC @ =gUnknown_02024C08 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _080285E0 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _080285D2 - cmp r5, r3 - beq _080285D2 - ldr r2, _080285E4 @ =gUnknown_02024C6C - ldr r1, [r2] - movs r0, 0x80 - lsls r0, 17 - ands r0, r1 - cmp r0, 0 - bne _080285D2 - movs r0, 0x40 - orrs r1, r0 - str r1, [r2] -_080285D2: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080285D8: .4byte gUnknown_02024C07 -_080285DC: .4byte gUnknown_02024C08 -_080285E0: .4byte gBattleMons -_080285E4: .4byte gUnknown_02024C6C - thumb_func_end b_feature_update_destiny_bond - - thumb_func_start atkAB_802A458 -atkAB_802A458: @ 80285E8 - push {lr} - bl b_feature_update_destiny_bond - ldr r1, _080285FC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080285FC: .4byte gUnknown_02024C10 - thumb_func_end atkAB_802A458 - - thumb_func_start atkAC_remaininghptopower -atkAC_remaininghptopower: @ 8028600 - push {lr} - ldr r2, _08028654 @ =gBattleMons - ldr r0, _08028658 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - movs r2, 0x28 - ldrsh r0, [r1, r2] - movs r2, 0x2C - ldrsh r1, [r1, r2] - movs r2, 0x30 - bl sub_80461D4 - lsls r0, 24 - lsrs r1, r0, 24 - movs r3, 0 - ldr r0, _0802865C @ =gUnknown_081FAD26 - ldrb r2, [r0] - cmp r1, r2 - ble _0802863A - adds r2, r0, 0 -_0802862C: - adds r3, 0x2 - cmp r3, 0xB - bgt _0802863A - adds r0, r3, r2 - ldrb r0, [r0] - cmp r1, r0 - bgt _0802862C -_0802863A: - ldr r2, _08028660 @ =gUnknown_02024DEC - ldr r1, _0802865C @ =gUnknown_081FAD26 - adds r0, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldr r1, _08028664 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08028654: .4byte gBattleMons -_08028658: .4byte gUnknown_02024C07 -_0802865C: .4byte gUnknown_081FAD26 -_08028660: .4byte gUnknown_02024DEC -_08028664: .4byte gUnknown_02024C10 - thumb_func_end atkAC_remaininghptopower - - thumb_func_start sub_8028668 -sub_8028668: @ 8028668 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r4, _080287F8 @ =gUnknown_02024C34 - ldr r1, _080287FC @ =gUnknown_02024C08 - ldrb r2, [r1] - lsls r0, r2, 1 - adds r0, r4 - ldrh r3, [r0] - mov r8, r1 - cmp r3, 0 - bne _08028688 - b _08028828 -_08028688: - ldr r0, _08028800 @ =0x0000ffff - cmp r3, r0 - bne _08028690 - b _08028828 -_08028690: - ldr r1, _08028804 @ =gUnknown_02024C98 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08028808 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _080286A2 - b _08028828 -_080286A2: - movs r7, 0 - ldr r0, _0802880C @ =gBattleMons - movs r1, 0x58 - muls r1, r2 - adds r2, r0, 0 - adds r2, 0xC - adds r1, r2 - ldrh r1, [r1] - cmp r3, r1 - beq _080286DA - adds r6, r4, 0 - mov r5, r8 - adds r4, r2, 0 - movs r3, 0x58 -_080286BE: - adds r7, 0x1 - cmp r7, 0x3 - bgt _080286DA - ldrb r0, [r5] - lsls r2, r0, 1 - adds r2, r6 - lsls r1, r7, 1 - muls r0, r3 - adds r1, r0 - adds r1, r4 - ldrh r0, [r2] - ldrh r1, [r1] - cmp r0, r1 - bne _080286BE -_080286DA: - cmp r7, 0x4 - bne _080286E0 - b _08028828 -_080286E0: - mov r4, r8 - ldrb r0, [r4] - movs r1, 0x58 - mov r9, r1 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7, r0 - ldr r1, _0802880C @ =gBattleMons - adds r1, 0x24 - mov r10, r1 - add r0, r10 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _08028700 - b _08028828 -_08028700: - bl Random - movs r1, 0x3 - ands r1, r0 - adds r6, r1, 0x2 - ldrb r0, [r4] - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r0, r7, r0 - add r0, r10 - ldrb r0, [r0] - cmp r0, r6 - bge _0802871E - adds r6, r0, 0 -_0802871E: - ldr r1, _08028810 @ =gUnknown_030041C0 - movs r5, 0xFD - strb r5, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldr r2, _080287F8 @ =gUnknown_02024C34 - mov r3, r8 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r4, _08028814 @ =gUnknown_03004290 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - strb r5, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - strb r0, [r4, 0x2] - strb r0, [r4, 0x3] - strb r6, [r4, 0x4] - subs r0, 0x2 - strb r0, [r4, 0x5] - mov r1, r8 - ldrb r0, [r1] - mov r1, r9 - muls r1, r0 - adds r1, r7, r1 - add r1, r10 - ldrb r0, [r1] - subs r0, r6 - strb r0, [r1] - ldr r4, _08028818 @ =gUnknown_02024A60 - mov r3, r8 - ldrb r0, [r3] - strb r0, [r4] - ldr r1, _0802881C @ =gUnknown_02024CA8 - ldrb r3, [r4] - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _08028820 @ =gBitTable - lsls r0, r7, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080287D2 - mov r2, r9 - muls r2, r3 - ldr r0, _0802880C @ =gBattleMons - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080287D2 - adds r1, r7, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - mov r3, r10 - adds r0, r2, r3 - adds r0, r7 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution -_080287D2: - ldr r1, _08028824 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, _0802880C @ =gBattleMons - ldr r0, _080287FC @ =gUnknown_02024C08 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r0, r7, r0 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08028842 - adds r0, r2, 0 - bl b_cancel_multi_turn_move_maybe - b _08028842 - .align 2, 0 -_080287F8: .4byte gUnknown_02024C34 -_080287FC: .4byte gUnknown_02024C08 -_08028800: .4byte 0x0000ffff -_08028804: .4byte gUnknown_02024C98 -_08028808: .4byte 0x000400c0 -_0802880C: .4byte gBattleMons -_08028810: .4byte gUnknown_030041C0 -_08028814: .4byte gUnknown_03004290 -_08028818: .4byte gUnknown_02024A60 -_0802881C: .4byte gUnknown_02024CA8 -_08028820: .4byte gBitTable -_08028824: .4byte gUnknown_02024C10 -_08028828: - ldr r3, _08028854 @ =gUnknown_02024C10 - 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] -_08028842: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08028854: .4byte gUnknown_02024C10 - thumb_func_end sub_8028668 - - thumb_func_start sub_8028858 -sub_8028858: @ 8028858 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r4, 0 - str r4, [sp, 0x4] - movs r7, 0 - ldr r0, _080288AC @ =gUnknown_02024BE6 - ldrh r0, [r0] - cmp r0, 0xD7 - beq _08028872 - b _08028A26 -_08028872: - ldr r5, _080288B0 @ =gUnknown_02024D1E - strb r7, [r5, 0x5] - ldr r6, _080288B4 @ =gUnknown_02024C07 - ldrb r0, [r6] - bl battle_side_get_owner - lsls r0, 24 - ldr r1, _080288B8 @ =gEnemyParty - mov r9, r1 - cmp r0, 0 - bne _0802888C - ldr r2, _080288BC @ =gPlayerParty - mov r9, r2 -_0802888C: - ldr r4, _080288C0 @ =gBattleMons - ldrb r3, [r6] - movs r0, 0x58 - adds r2, r3, 0 - muls r2, r0 - adds r0, r2, r4 - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0x2B - beq _080288C4 - adds r0, r4, 0 - adds r0, 0x4C - adds r0, r2, r0 - str r7, [r0] - b _080288D4 - .align 2, 0 -_080288AC: .4byte gUnknown_02024BE6 -_080288B0: .4byte gUnknown_02024D1E -_080288B4: .4byte gUnknown_02024C07 -_080288B8: .4byte gEnemyParty -_080288BC: .4byte gPlayerParty -_080288C0: .4byte gBattleMons -_080288C4: - ldrb r1, [r1] - adds r0, r3, 0 - bl sub_81074C4 - ldrb r0, [r5, 0x5] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5, 0x5] -_080288D4: - ldr r4, _08028934 @ =gUnknown_02024A60 - ldr r0, _08028938 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r6, 0x2 - eors r0, r6 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _0802893C @ =0x02000000 - ldr r2, _08028940 @ =0x00016003 - adds r1, r2 - strb r0, [r1] - strb r0, [r4] - ldr r0, _08028944 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08028964 - ldr r0, _08028948 @ =gUnknown_02024C0C - ldrb r2, [r0] - ldr r1, _0802894C @ =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _08028964 - ldr r5, _08028950 @ =gBattleMons - movs r0, 0x58 - adds r4, r3, 0 - muls r4, r0 - adds r0, r4, r5 - adds r1, r0, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0x2B - beq _08028954 - adds r0, r5, 0 - adds r0, 0x4C - adds r0, r4, r0 - str r2, [r0] - b _08028964 - .align 2, 0 -_08028934: .4byte gUnknown_02024A60 -_08028938: .4byte gUnknown_02024C07 -_0802893C: .4byte 0x02000000 -_08028940: .4byte 0x00016003 -_08028944: .4byte gUnknown_020239F8 -_08028948: .4byte gUnknown_02024C0C -_0802894C: .4byte gBitTable -_08028950: .4byte gBattleMons -_08028954: - ldrb r1, [r1] - adds r0, r3, 0 - bl sub_81074C4 - ldr r1, _080289AC @ =gUnknown_02024D1E - ldrb r0, [r1, 0x5] - orrs r0, r6 - strb r0, [r1, 0x5] -_08028964: - movs r6, 0 - ldr r0, _080289B0 @ =gBattleMons - mov r8, r0 -_0802896A: - movs r0, 0x64 - adds r4, r6, 0 - muls r4, r0 - add r4, r9 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - lsls r0, 24 - lsrs r4, r0, 24 - cmp r5, 0 - beq _08028A1E - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _08028A1E - ldr r2, _080289B4 @ =gUnknown_02024A6A - ldr r0, _080289B8 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _080289BC - movs r0, 0x58 - muls r0, r1 - b _080289EC - .align 2, 0 -_080289AC: .4byte gUnknown_02024D1E -_080289B0: .4byte gBattleMons -_080289B4: .4byte gUnknown_02024A6A -_080289B8: .4byte gUnknown_02024C07 -_080289BC: - ldr r0, _080289F4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08028A04 - ldr r0, _080289F8 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r0, r6 - bne _08028A04 - ldr r0, _080289FC @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08028A00 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08028A04 - movs r0, 0x58 - muls r0, r3 -_080289EC: - add r0, r8 - adds r0, 0x20 - ldrb r0, [r0] - b _08028A10 - .align 2, 0 -_080289F4: .4byte gUnknown_020239F8 -_080289F8: .4byte gUnknown_02024A60 -_080289FC: .4byte gUnknown_02024C0C -_08028A00: .4byte gBitTable -_08028A04: - adds r0, r5, 0 - adds r1, r4, 0 - bl GetAbilityBySpecies - lsls r0, 24 - lsrs r0, 24 -_08028A10: - cmp r0, 0x2B - beq _08028A1E - movs r0, 0x1 - lsls r0, r6 - orrs r7, r0 - lsls r0, r7, 24 - lsrs r7, r0, 24 -_08028A1E: - adds r6, 0x1 - cmp r6, 0x5 - ble _0802896A - b _08028A7E -_08028A26: - ldr r1, _08028AB4 @ =gUnknown_02024D1E - movs r0, 0x4 - strb r0, [r1, 0x5] - movs r7, 0x3F - ldr r2, _08028AB8 @ =gBattleMons - ldr r1, _08028ABC @ =gUnknown_02024C07 - ldrb r0, [r1] - movs r6, 0x58 - muls r0, r6 - adds r5, r2, 0 - adds r5, 0x4C - adds r0, r5 - str r4, [r0] - ldrb r0, [r1] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r3, _08028AC0 @ =gUnknown_02024A60 - strb r0, [r3] - ldr r0, _08028AC4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08028A7E - ldr r0, _08028AC8 @ =gUnknown_02024C0C - ldrb r2, [r0] - ldr r1, _08028ACC @ =gBitTable - ldrb r3, [r3] - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - bne _08028A7E - adds r0, r3, 0 - muls r0, r6 - adds r0, r5 - str r2, [r0] -_08028A7E: - ldr r4, _08028AC0 @ =gUnknown_02024A60 - ldr r0, _08028ABC @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r4] - add r1, sp, 0x4 - str r1, [sp] - movs r0, 0 - movs r1, 0x28 - adds r2, r7, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08028AD0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08028AB4: .4byte gUnknown_02024D1E -_08028AB8: .4byte gBattleMons -_08028ABC: .4byte gUnknown_02024C07 -_08028AC0: .4byte gUnknown_02024A60 -_08028AC4: .4byte gUnknown_020239F8 -_08028AC8: .4byte gUnknown_02024C0C -_08028ACC: .4byte gBitTable -_08028AD0: .4byte gUnknown_02024C10 - thumb_func_end sub_8028858 - - thumb_func_start sub_8028AD4 -sub_8028AD4: @ 8028AD4 - push {r4-r7,lr} - ldr r7, _08028B24 @ =gBattleMons - ldr r0, _08028B28 @ =gUnknown_02024C08 - ldrb r3, [r0] - movs r6, 0x58 - adds r1, r3, 0 - muls r1, r6 - adds r0, r7, 0 - adds r0, 0x50 - adds r4, r1, r0 - ldr r2, [r4] - movs r5, 0x80 - lsls r5, 21 - adds r0, r2, 0 - ands r0, r5 - cmp r0, 0 - bne _08028B06 - ldr r1, _08028B2C @ =gUnknown_02024C98 - lsls r0, r3, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08028B30 @ =0x000400c0 - ands r0, r1 - cmp r0, 0 - beq _08028B38 -_08028B06: - ldr r3, _08028B34 @ =gUnknown_02024C10 - 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 _08028B5C - .align 2, 0 -_08028B24: .4byte gBattleMons -_08028B28: .4byte gUnknown_02024C08 -_08028B2C: .4byte gUnknown_02024C98 -_08028B30: .4byte 0x000400c0 -_08028B34: .4byte gUnknown_02024C10 -_08028B38: - orrs r2, r5 - str r2, [r4] - ldr r1, _08028B64 @ =gUnknown_02024BEC - ldr r0, _08028B68 @ =gUnknown_02024C07 - ldrb r0, [r0] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _08028B54 - movs r0, 0x1 - str r0, [r1] -_08028B54: - ldr r1, _08028B6C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08028B5C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08028B64: .4byte gUnknown_02024BEC -_08028B68: .4byte gUnknown_02024C07 -_08028B6C: .4byte gUnknown_02024C10 - thumb_func_end sub_8028AD4 - - thumb_func_start sub_8028B70 -sub_8028B70: @ 8028B70 - push {r4,lr} - ldr r4, _08028BC4 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08028BC8 @ =gUnknown_02024C80 - lsls r2, r0, 1 - adds r0, r2, r0 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x6] - cmp r0, 0x3 - bne _08028BD4 - ldr r2, _08028BCC @ =gUnknown_02024D68 - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r3, _08028BD0 @ =gUnknown_02024C10 - 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 _08028BEE - .align 2, 0 -_08028BC4: .4byte gUnknown_02024C07 -_08028BC8: .4byte gUnknown_02024C80 -_08028BCC: .4byte gUnknown_02024D68 -_08028BD0: .4byte gUnknown_02024C10 -_08028BD4: - ldr r1, _08028BF4 @ =gUnknown_02024C7A - adds r1, r2, r1 - ldrh r2, [r1] - movs r0, 0x10 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r3, 0x6] - adds r0, 0x1 - strb r0, [r3, 0x6] - ldr r1, _08028BF8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08028BEE: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08028BF4: .4byte gUnknown_02024C7A -_08028BF8: .4byte gUnknown_02024C10 - thumb_func_end sub_8028B70 - - thumb_func_start sub_8028BFC -sub_8028BFC: @ 8028BFC - ldr r1, _08028C20 @ =gBattleMons - ldr r0, _08028C24 @ =gUnknown_02024C08 - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 22 - orrs r0, r1 - str r0, [r2] - ldr r1, _08028C28 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08028C20: .4byte gBattleMons -_08028C24: .4byte gUnknown_02024C08 -_08028C28: .4byte gUnknown_02024C10 - thumb_func_end sub_8028BFC - - thumb_func_start atkB2_setperishsong -atkB2_setperishsong: @ 8028C2C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r3, 0 - ldr r0, _08028C70 @ =gUnknown_02024A68 - adds r7, r0, 0 - ldr r0, _08028C74 @ =gUnknown_02024C07 - mov r8, r0 - ldrb r1, [r7] - cmp r6, r1 - bge _08028C98 - movs r5, 0x20 - ldr r0, _08028C78 @ =gBattleMons - mov r12, r0 - ldr r0, _08028C7C @ =gUnknown_02024CA8 - adds r4, r0, 0 - adds r4, 0xF - ldr r2, _08028C80 @ =gUnknown_02024C98 -_08028C54: - ldr r1, [r2] - adds r0, r1, 0 - ands r0, r5 - cmp r0, 0 - bne _08028C6C - movs r0, 0x58 - muls r0, r3 - add r0, r12 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x2B - bne _08028C84 -_08028C6C: - adds r6, 0x1 - b _08028C8C - .align 2, 0 -_08028C70: .4byte gUnknown_02024A68 -_08028C74: .4byte gUnknown_02024C07 -_08028C78: .4byte gBattleMons -_08028C7C: .4byte gUnknown_02024CA8 -_08028C80: .4byte gUnknown_02024C98 -_08028C84: - orrs r1, r5 - str r1, [r2] - movs r0, 0x33 - strb r0, [r4] -_08028C8C: - adds r4, 0x1C - adds r2, 0x4 - adds r3, 0x1 - ldrb r0, [r7] - cmp r3, r0 - blt _08028C54 -_08028C98: - mov r1, r8 - ldrb r0, [r1] - bl sub_80153D0 - ldr r0, _08028CC4 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r6, r0 - bne _08028CCC - ldr r3, _08028CC8 @ =gUnknown_02024C10 - 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 _08028CD4 - .align 2, 0 -_08028CC4: .4byte gUnknown_02024A68 -_08028CC8: .4byte gUnknown_02024C10 -_08028CCC: - ldr r1, _08028CE0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08028CD4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08028CE0: .4byte gUnknown_02024C10 - thumb_func_end atkB2_setperishsong - - thumb_func_start atkB3_rolloutdamagecalculation -atkB3_rolloutdamagecalculation: @ 8028CE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08028D08 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08028D18 - ldr r0, _08028D0C @ =gUnknown_02024C07 - ldrb r0, [r0] - bl b_cancel_multi_turn_move_maybe - ldr r1, _08028D10 @ =gUnknown_02024C10 - ldr r0, _08028D14 @ =BattleScript_1D6F74 - str r0, [r1] - b _08028E30 - .align 2, 0 -_08028D08: .4byte gUnknown_02024C68 -_08028D0C: .4byte gUnknown_02024C07 -_08028D10: .4byte gUnknown_02024C10 -_08028D14: .4byte BattleScript_1D6F74 -_08028D18: - ldr r2, _08028E3C @ =gBattleMons - ldr r1, _08028E40 @ =gUnknown_02024C07 - ldrb r3, [r1] - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - adds r4, r2, 0 - adds r4, 0x50 - adds r0, r4 - ldr r0, [r0] - movs r7, 0x80 - lsls r7, 5 - ands r0, r7 - adds r6, r1, 0 - mov r9, r2 - ldr r1, _08028E44 @ =gUnknown_02024CA8 - mov r12, r1 - ldr r2, _08028E48 @ =gUnknown_02024BE6 - mov r8, r2 - cmp r0, 0 - bne _08028D8A - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x11] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - movs r2, 0x5 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0, 0x11] - movs r1, 0xF - ands r1, r2 - movs r2, 0x50 - orrs r1, r2 - strb r1, [r0, 0x11] - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - orrs r0, r7 - str r0, [r1] - ldr r1, _08028E4C @ =gUnknown_02024C54 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r1 - mov r2, r8 - ldrh r1, [r2] - strh r1, [r0] -_08028D8A: - ldrb r0, [r6] - lsls r2, r0, 3 - subs r2, r0 - lsls r2, 2 - add r2, r12 - ldrb r3, [r2, 0x11] - lsls r1, r3, 28 - lsrs r1, 28 - subs r1, 0x1 - movs r0, 0xF - ands r1, r0 - movs r0, 0x10 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x11] - cmp r1, 0 - bne _08028DBE - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - ldr r0, [r1] - ldr r2, _08028E50 @ =0xffffefff - ands r0, r2 - str r0, [r1] -_08028DBE: - ldr r3, _08028E54 @ =gUnknown_02024DEC - ldr r2, _08028E58 @ =gBattleMoves - mov r0, r8 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r3] - movs r2, 0x1 - ldrb r1, [r6] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - mov r1, r12 - adds r4, r0, r1 - ldrb r0, [r4, 0x11] - lsls r0, 28 - lsrs r0, 28 - movs r1, 0x5 - subs r1, r0 - ldr r7, _08028E5C @ =gUnknown_02024C10 - adds r5, r3, 0 - cmp r2, r1 - bge _08028E0C - adds r1, r5, 0 - adds r3, r4, 0 - movs r4, 0x5 -_08028DF8: - ldrh r0, [r1] - lsls r0, 1 - strh r0, [r1] - adds r2, 0x1 - ldrb r0, [r3, 0x11] - lsls r0, 28 - lsrs r0, 28 - subs r0, r4, r0 - cmp r2, r0 - blt _08028DF8 -_08028E0C: - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - mov r1, r9 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 23 - ands r0, r1 - cmp r0, 0 - beq _08028E2A - ldrh r0, [r5] - lsls r0, 1 - strh r0, [r5] -_08028E2A: - ldr r0, [r7] - adds r0, 0x1 - str r0, [r7] -_08028E30: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08028E3C: .4byte gBattleMons -_08028E40: .4byte gUnknown_02024C07 -_08028E44: .4byte gUnknown_02024CA8 -_08028E48: .4byte gUnknown_02024BE6 -_08028E4C: .4byte gUnknown_02024C54 -_08028E50: .4byte 0xffffefff -_08028E54: .4byte gUnknown_02024DEC -_08028E58: .4byte gBattleMoves -_08028E5C: .4byte gUnknown_02024C10 - thumb_func_end atkB3_rolloutdamagecalculation - - thumb_func_start atkB4_jumpifconfusedandattackmaxed -atkB4_jumpifconfusedandattackmaxed: @ 8028E60 - push {r4,r5,lr} - ldr r5, _08028EB0 @ =gBattleMons - ldr r0, _08028EB4 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - adds r3, r1, 0 - muls r3, r0 - adds r0, r5, 0 - adds r0, 0x50 - adds r0, r3, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - ldr r4, _08028EB8 @ =gUnknown_02024C10 - cmp r0, 0 - beq _08028EBC - ldr r2, [r4] - ldrb r0, [r2, 0x1] - adds r0, r3 - adds r1, r5, 0 - adds r1, 0x18 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0xC - bne _08028EBC - 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, [r4] - b _08028EC2 - .align 2, 0 -_08028EB0: .4byte gBattleMons -_08028EB4: .4byte gUnknown_02024C08 -_08028EB8: .4byte gUnknown_02024C10 -_08028EBC: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_08028EC2: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end atkB4_jumpifconfusedandattackmaxed - - thumb_func_start sub_8028EC8 -sub_8028EC8: @ 8028EC8 - push {r4,r5,lr} - ldr r0, _08028EF0 @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _08028F04 - ldr r2, _08028EF4 @ =gUnknown_02024CA8 - ldr r0, _08028EF8 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0 - strb r1, [r0, 0x10] - ldr r1, _08028EFC @ =gUnknown_02024C10 - ldr r0, _08028F00 @ =BattleScript_1D6F74 - str r0, [r1] - b _08028F5C - .align 2, 0 -_08028EF0: .4byte gUnknown_02024C68 -_08028EF4: .4byte gUnknown_02024CA8 -_08028EF8: .4byte gUnknown_02024C07 -_08028EFC: .4byte gUnknown_02024C10 -_08028F00: .4byte BattleScript_1D6F74 -_08028F04: - ldr r5, _08028F64 @ =gUnknown_02024CA8 - ldr r4, _08028F68 @ =gUnknown_02024C07 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x10] - cmp r0, 0x5 - beq _08028F1C - adds r0, 0x1 - strb r0, [r1, 0x10] -_08028F1C: - ldr r3, _08028F6C @ =gUnknown_02024DEC - ldr r2, _08028F70 @ =gBattleMoves - ldr r0, _08028F74 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - strh r0, [r3] - movs r2, 0x1 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r4, _08028F78 @ =gUnknown_02024C10 - ldrb r1, [r0, 0x10] - cmp r2, r1 - bge _08028F56 - adds r1, r3, 0 - adds r3, r0, 0 -_08028F48: - ldrh r0, [r1] - lsls r0, 1 - strh r0, [r1] - adds r2, 0x1 - ldrb r0, [r3, 0x10] - cmp r2, r0 - blt _08028F48 -_08028F56: - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] -_08028F5C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08028F64: .4byte gUnknown_02024CA8 -_08028F68: .4byte gUnknown_02024C07 -_08028F6C: .4byte gUnknown_02024DEC -_08028F70: .4byte gBattleMoves -_08028F74: .4byte gUnknown_02024BE6 -_08028F78: .4byte gUnknown_02024C10 - thumb_func_end sub_8028EC8 - - thumb_func_start atkB6_happinesstodamagecalculation -atkB6_happinesstodamagecalculation: @ 8028F7C - push {r4,lr} - ldr r2, _08028FA8 @ =gBattleMoves - ldr r0, _08028FAC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x79 - bne _08028FBC - ldr r4, _08028FB0 @ =gUnknown_02024DEC - ldr r2, _08028FB4 @ =gBattleMons - ldr r0, _08028FB8 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2B - ldrb r1, [r0] - b _08028FD2 - .align 2, 0 -_08028FA8: .4byte gBattleMoves -_08028FAC: .4byte gUnknown_02024BE6 -_08028FB0: .4byte gUnknown_02024DEC -_08028FB4: .4byte gBattleMons -_08028FB8: .4byte gUnknown_02024C07 -_08028FBC: - ldr r4, _08028FF0 @ =gUnknown_02024DEC - ldr r2, _08028FF4 @ =gBattleMons - ldr r0, _08028FF8 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - movs r1, 0xFF - subs r1, r0 -_08028FD2: - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - movs r1, 0x19 - bl __divsi3 - strh r0, [r4] - ldr r1, _08028FFC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08028FF0: .4byte gUnknown_02024DEC -_08028FF4: .4byte gBattleMons -_08028FF8: .4byte gUnknown_02024C07 -_08028FFC: .4byte gUnknown_02024C10 - thumb_func_end atkB6_happinesstodamagecalculation - - thumb_func_start atkB7_presentdamagecalculation -atkB7_presentdamagecalculation: @ 8029000 - push {r4,lr} - bl Random - movs r4, 0xFF - ands r4, r0 - cmp r4, 0x65 - bgt _0802901C - ldr r1, _08029018 @ =gUnknown_02024DEC - movs r0, 0x28 - strh r0, [r1] - b _0802905E - .align 2, 0 -_08029018: .4byte gUnknown_02024DEC -_0802901C: - cmp r4, 0xB1 - bgt _0802902C - ldr r1, _08029028 @ =gUnknown_02024DEC - movs r0, 0x50 - strh r0, [r1] - b _0802905E - .align 2, 0 -_08029028: .4byte gUnknown_02024DEC -_0802902C: - cmp r4, 0xCB - bgt _0802903C - ldr r1, _08029038 @ =gUnknown_02024DEC - movs r0, 0x78 - strh r0, [r1] - b _0802905E - .align 2, 0 -_08029038: .4byte gUnknown_02024DEC -_0802903C: - ldr r3, _08029068 @ =gUnknown_02024BEC - ldr r2, _0802906C @ =gBattleMons - ldr r0, _08029070 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r0, 2 - str r0, [r3] - cmp r0, 0 - bne _08029058 - movs r0, 0x1 - str r0, [r3] -_08029058: - ldr r0, [r3] - negs r0, r0 - str r0, [r3] -_0802905E: - cmp r4, 0xCB - bgt _0802907C - ldr r1, _08029074 @ =gUnknown_02024C10 - ldr r0, _08029078 @ =BattleScript_1D6F44 - b _080290AC - .align 2, 0 -_08029068: .4byte gUnknown_02024BEC -_0802906C: .4byte gBattleMons -_08029070: .4byte gUnknown_02024C08 -_08029074: .4byte gUnknown_02024C10 -_08029078: .4byte BattleScript_1D6F44 -_0802907C: - ldr r2, _08029098 @ =gBattleMons - ldr r0, _0802909C @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x2C] - ldrh r0, [r0, 0x28] - cmp r1, r0 - bne _080290A8 - ldr r1, _080290A0 @ =gUnknown_02024C10 - ldr r0, _080290A4 @ =BattleScript_1D83B5 - b _080290AC - .align 2, 0 -_08029098: .4byte gBattleMons -_0802909C: .4byte gUnknown_02024C08 -_080290A0: .4byte gUnknown_02024C10 -_080290A4: .4byte BattleScript_1D83B5 -_080290A8: - ldr r1, _080290B4 @ =gUnknown_02024C10 - ldr r0, _080290B8 @ =BattleScript_1D839B -_080290AC: - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080290B4: .4byte gUnknown_02024C10 -_080290B8: .4byte BattleScript_1D839B - thumb_func_end atkB7_presentdamagecalculation - - thumb_func_start sub_80290BC -sub_80290BC: @ 80290BC - push {r4-r6,lr} - ldr r4, _080290F0 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_get_per_side_status - ldr r6, _080290F4 @ =gUnknown_02024C7A - movs r5, 0x1 - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08029100 - ldr r2, _080290F8 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _080290FC @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] - b _08029132 - .align 2, 0 -_080290F0: .4byte gUnknown_02024C07 -_080290F4: .4byte gUnknown_02024C7A -_080290F8: .4byte gUnknown_02024C68 -_080290FC: .4byte gUnknown_02024D1E -_08029100: - ldrb r0, [r4] - bl battle_get_per_side_status - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - adds r1, r6 - ldrh r0, [r1] - movs r2, 0x20 - orrs r0, r2 - strh r0, [r1] - ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, _08029140 @ =gUnknown_02024C80 - adds r1, r5, 0 - ands r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strb r1, [r0, 0x7] - ldr r0, _08029144 @ =gUnknown_02024D1E - strb r1, [r0, 0x5] -_08029132: - ldr r1, _08029148 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08029140: .4byte gUnknown_02024C80 -_08029144: .4byte gUnknown_02024D1E -_08029148: .4byte gUnknown_02024C10 - thumb_func_end sub_80290BC - - thumb_func_start atkB9_magnitudedamagecalculation -atkB9_magnitudedamagecalculation: @ 802914C - push {r4-r7,lr} - mov r7, r8 - push {r7} - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x4 - bgt _08029178 - ldr r1, _08029174 @ =gUnknown_02024DEC - movs r0, 0xA - strh r0, [r1] - movs r3, 0x4 - b _080291E4 - .align 2, 0 -_08029174: .4byte gUnknown_02024DEC -_08029178: - cmp r3, 0xE - bgt _0802918C - ldr r1, _08029188 @ =gUnknown_02024DEC - movs r0, 0x1E - strh r0, [r1] - movs r3, 0x5 - b _080291E4 - .align 2, 0 -_08029188: .4byte gUnknown_02024DEC -_0802918C: - cmp r3, 0x22 - bgt _080291A0 - ldr r1, _0802919C @ =gUnknown_02024DEC - movs r0, 0x32 - strh r0, [r1] - movs r3, 0x6 - b _080291E4 - .align 2, 0 -_0802919C: .4byte gUnknown_02024DEC -_080291A0: - cmp r3, 0x40 - bgt _080291B4 - ldr r1, _080291B0 @ =gUnknown_02024DEC - movs r0, 0x46 - strh r0, [r1] - movs r3, 0x7 - b _080291E4 - .align 2, 0 -_080291B0: .4byte gUnknown_02024DEC -_080291B4: - cmp r3, 0x54 - bgt _080291C8 - ldr r1, _080291C4 @ =gUnknown_02024DEC - movs r0, 0x5A - strh r0, [r1] - movs r3, 0x8 - b _080291E4 - .align 2, 0 -_080291C4: .4byte gUnknown_02024DEC -_080291C8: - cmp r3, 0x5E - bgt _080291DC - ldr r1, _080291D8 @ =gUnknown_02024DEC - movs r0, 0x6E - strh r0, [r1] - movs r3, 0x9 - b _080291E4 - .align 2, 0 -_080291D8: .4byte gUnknown_02024DEC -_080291DC: - ldr r1, _08029250 @ =gUnknown_02024DEC - movs r0, 0x96 - strh r0, [r1] - movs r3, 0xA -_080291E4: - ldr r1, _08029254 @ =gUnknown_030041C0 - movs r2, 0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x1 - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - movs r0, 0x2 - strb r0, [r1, 0x3] - strb r3, [r1, 0x4] - movs r0, 0xFF - strb r0, [r1, 0x5] - ldr r1, _08029258 @ =gUnknown_02024C08 - strb r2, [r1] - ldr r0, _0802925C @ =gUnknown_02024A68 - ldrb r3, [r0] - adds r6, r1, 0 - ldr r0, _08029260 @ =gUnknown_02024C10 - mov r8, r0 - cmp r2, r3 - bcs _0802923C - adds r4, r6, 0 - ldr r0, _08029264 @ =gUnknown_02024C07 - ldrb r5, [r0] - ldr r1, _08029268 @ =gBitTable - mov r12, r1 - ldr r7, _0802926C @ =gUnknown_02024C0C -_0802921A: - ldrb r2, [r4] - cmp r2, r5 - beq _08029230 - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, 2 - add r1, r12 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _0802923C -_08029230: - adds r0, r2, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r3 - bcc _0802921A -_0802923C: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08029250: .4byte gUnknown_02024DEC -_08029254: .4byte gUnknown_030041C0 -_08029258: .4byte gUnknown_02024C08 -_0802925C: .4byte gUnknown_02024A68 -_08029260: .4byte gUnknown_02024C10 -_08029264: .4byte gUnknown_02024C07 -_08029268: .4byte gBitTable -_0802926C: .4byte gUnknown_02024C0C - thumb_func_end atkB9_magnitudedamagecalculation - - thumb_func_start sub_8029270 -sub_8029270: @ 8029270 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, _08029294 @ =gUnknown_02024C0E - ldrb r0, [r0] - cmp r0, 0x1 - bne _080292A0 - ldr r0, _08029298 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0802929C - movs r0, 0x1 - b _080292BA - .align 2, 0 -_08029294: .4byte gUnknown_02024C0E -_08029298: .4byte gUnknown_02024C07 -_0802929C: - movs r0, 0 - b _080292BA -_080292A0: - ldr r0, _080292B4 @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080292B8 - movs r0, 0x3 - b _080292BA - .align 2, 0 -_080292B4: .4byte gUnknown_02024C07 -_080292B8: - movs r0, 0x2 -_080292BA: - bl battle_get_side_with_given_state - ldr r1, _0802937C @ =gUnknown_02024C08 - strb r0, [r1] - ldr r0, _08029380 @ =gUnknown_02024C18 - ldr r1, _0802937C @ =gUnknown_02024C08 - mov r9, r1 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _080293BC - ldr r5, _08029384 @ =gUnknown_02024C07 - ldr r0, _08029388 @ =0x02000000 - ldr r2, _0802938C @ =0x00016010 - adds r1, r3, r2 - adds r1, r0 - ldrb r2, [r5] - mov r10, r0 - ldrb r1, [r1] - cmp r2, r1 - bne _080293BC - ldr r4, _08029390 @ =gBattleMons - movs r2, 0x58 - adds r0, r3, 0 - muls r0, r2 - adds r1, r4, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x27 - ands r0, r1 - cmp r0, 0 - bne _080293BC - ldrb r0, [r5] - muls r0, r2 - adds r0, r4 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _080293BC - ldr r0, _08029394 @ =gUnknown_02024CA8 - lsls r1, r3, 3 - subs r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _080293BC - ldr r0, _08029398 @ =gUnknown_02024C60 - lsls r1, r3, 1 - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0xE4 - bne _080293BC - movs r1, 0 - ldr r0, _0802939C @ =gUnknown_02024A68 - ldr r7, _080293A0 @ =gUnknown_02024BE6 - mov r8, r7 - ldr r2, _080293A4 @ =gUnknown_02024C6C - mov r12, r2 - ldrb r7, [r0] - cmp r1, r7 - bge _0802935A - ldr r6, _080293A8 @ =gUnknown_02024A7A - mov r5, r9 - ldr r4, _080293AC @ =gUnknown_02024A76 - movs r3, 0xB - adds r2, r0, 0 -_08029344: - adds r0, r1, r6 - ldrb r0, [r0] - ldrb r7, [r5] - cmp r0, r7 - bne _08029352 - adds r0, r1, r4 - strb r3, [r0] -_08029352: - adds r1, 0x1 - ldrb r0, [r2] - cmp r1, r0 - blt _08029344 -_0802935A: - movs r0, 0xE4 - mov r1, r8 - strh r0, [r1] - ldr r2, _080293B0 @ =gUnknown_02024C10 - ldr r0, [r2] - adds r0, 0x5 - str r0, [r2] - ldr r1, _080293B4 @ =0x00016002 - add r1, r10 - movs r0, 0x1 - strb r0, [r1] - mov r7, r12 - ldr r0, [r7] - ldr r1, _080293B8 @ =0xfffffbff - ands r0, r1 - str r0, [r7] - b _080293D6 - .align 2, 0 -_0802937C: .4byte gUnknown_02024C08 -_08029380: .4byte gUnknown_02024C18 -_08029384: .4byte gUnknown_02024C07 -_08029388: .4byte 0x02000000 -_0802938C: .4byte 0x00016010 -_08029390: .4byte gBattleMons -_08029394: .4byte gUnknown_02024CA8 -_08029398: .4byte gUnknown_02024C60 -_0802939C: .4byte gUnknown_02024A68 -_080293A0: .4byte gUnknown_02024BE6 -_080293A4: .4byte gUnknown_02024C6C -_080293A8: .4byte gUnknown_02024A7A -_080293AC: .4byte gUnknown_02024A76 -_080293B0: .4byte gUnknown_02024C10 -_080293B4: .4byte 0x00016002 -_080293B8: .4byte 0xfffffbff -_080293BC: - ldr r3, _080293E4 @ =gUnknown_02024C10 - 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] -_080293D6: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080293E4: .4byte gUnknown_02024C10 - thumb_func_end sub_8029270 - - thumb_func_start sub_80293E8 -sub_80293E8: @ 80293E8 - push {lr} - ldr r2, _08029408 @ =word_2024DB8 - ldrh r1, [r2] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08029414 - ldr r2, _0802940C @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08029410 @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08029426 - .align 2, 0 -_08029408: .4byte word_2024DB8 -_0802940C: .4byte gUnknown_02024C68 -_08029410: .4byte gUnknown_02024D1E -_08029414: - movs r0, 0x20 - strh r0, [r2] - ldr r1, _08029434 @ =gUnknown_02024D1E - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r0, _08029438 @ =gUnknown_02024DBC - adds r0, 0x28 - movs r1, 0x5 - strb r1, [r0] -_08029426: - ldr r1, _0802943C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08029434: .4byte gUnknown_02024D1E -_08029438: .4byte gUnknown_02024DBC -_0802943C: .4byte gUnknown_02024C10 - thumb_func_end sub_80293E8 - - thumb_func_start atkBC_maxattackhalvehp -atkBC_maxattackhalvehp: @ 8029440 - push {r4,r5,lr} - ldr r5, _0802948C @ =gBattleMons - ldr r4, _08029490 @ =gUnknown_02024C07 - ldrb r0, [r4] - movs r3, 0x58 - muls r0, r3 - adds r2, r0, r5 - ldrh r0, [r2, 0x2C] - lsrs r1, r0, 1 - cmp r1, 0 - bne _08029458 - movs r1, 0x1 -_08029458: - movs r0, 0x19 - ldrsb r0, [r2, r0] - cmp r0, 0xB - bgt _0802949C - ldrh r0, [r2, 0x28] - cmp r0, r1 - bls _0802949C - movs r0, 0xC - strb r0, [r2, 0x19] - ldr r1, _08029494 @ =gUnknown_02024BEC - ldrb r0, [r4] - muls r0, r3 - adds r0, r5 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _08029480 - movs r0, 0x1 - str r0, [r1] -_08029480: - ldr r1, _08029498 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _080294B6 - .align 2, 0 -_0802948C: .4byte gBattleMons -_08029490: .4byte gUnknown_02024C07 -_08029494: .4byte gUnknown_02024BEC -_08029498: .4byte gUnknown_02024C10 -_0802949C: - ldr r3, _080294BC @ =gUnknown_02024C10 - 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] -_080294B6: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080294BC: .4byte gUnknown_02024C10 - thumb_func_end atkBC_maxattackhalvehp - - thumb_func_start atkBD_copyfoestats -atkBD_copyfoestats: @ 80294C0 - push {r4-r7,lr} - movs r2, 0 - ldr r7, _080294F8 @ =gUnknown_02024C10 - ldr r6, _080294FC @ =gUnknown_02024C07 - movs r4, 0x58 - ldr r3, _08029500 @ =gUnknown_02024A98 - ldr r5, _08029504 @ =gUnknown_02024C08 -_080294CE: - ldrb r0, [r6] - adds r1, r0, 0 - muls r1, r4 - adds r1, r2, r1 - adds r1, r3 - ldrb r0, [r5] - muls r0, r4 - adds r0, r2, r0 - adds r0, r3 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _080294CE - ldr r0, [r7] - adds r0, 0x5 - str r0, [r7] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080294F8: .4byte gUnknown_02024C10 -_080294FC: .4byte gUnknown_02024C07 -_08029500: .4byte gUnknown_02024A98 -_08029504: .4byte gUnknown_02024C08 - thumb_func_end atkBD_copyfoestats - - thumb_func_start atkBE_breakfree -atkBE_breakfree: @ 8029508 - push {r4,r5,lr} - ldr r1, _08029570 @ =gBattleMons - ldr r5, _08029574 @ =gUnknown_02024C07 - ldrb r2, [r5] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r3, r0, r1 - ldr r1, [r3] - movs r0, 0xE0 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08029594 - ldr r0, _08029578 @ =0xffff1fff - ands r1, r0 - str r1, [r3] - ldr r1, _0802957C @ =gUnknown_02024C08 - ldr r2, _08029580 @ =0x02000000 - ldrb r0, [r5] - ldr r3, _08029584 @ =0x00016020 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08029588 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - ldrb r0, [r5] - lsls r0, 1 - subs r3, 0x1C - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1, 0x2] - ldrb r0, [r5] - lsls r0, 1 - adds r3, 0x1 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - bl b_movescr_stack_push_cursor - ldr r1, _0802958C @ =gUnknown_02024C10 - ldr r0, _08029590 @ =gUnknown_081D92C2 - b _0802963E - .align 2, 0 -_08029570: .4byte gBattleMons -_08029574: .4byte gUnknown_02024C07 -_08029578: .4byte 0xffff1fff -_0802957C: .4byte gUnknown_02024C08 -_08029580: .4byte 0x02000000 -_08029584: .4byte 0x00016020 -_08029588: .4byte gUnknown_030041C0 -_0802958C: .4byte gUnknown_02024C10 -_08029590: .4byte gUnknown_081D92C2 -_08029594: - ldr r4, _080295C8 @ =gUnknown_02024C98 - lsls r0, r2, 2 - adds r3, r0, r4 - ldr r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080295D4 - movs r0, 0x5 - negs r0, r0 - ands r1, r0 - str r1, [r3] - ldrb r1, [r5] - lsls r1, 2 - adds r1, r4 - ldr r0, [r1] - movs r2, 0x4 - negs r2, r2 - ands r0, r2 - str r0, [r1] - bl b_movescr_stack_push_cursor - ldr r1, _080295CC @ =gUnknown_02024C10 - ldr r0, _080295D0 @ =gUnknown_081D92C9 - b _0802963E - .align 2, 0 -_080295C8: .4byte gUnknown_02024C98 -_080295CC: .4byte gUnknown_02024C10 -_080295D0: .4byte gUnknown_081D92C9 -_080295D4: - adds r0, r2, 0 - bl battle_side_get_owner - ldr r4, _08029624 @ =gUnknown_02024C7A - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08029638 - ldrb r0, [r5] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 23 - adds r0, r4 - ldrh r2, [r0] - ldr r1, _08029628 @ =0x0000ffef - ands r1, r2 - movs r4, 0 - strh r1, [r0] - ldrb r0, [r5] - bl battle_side_get_owner - ldr r2, _0802962C @ =gUnknown_02024C80 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strb r4, [r1, 0x6] - bl b_movescr_stack_push_cursor - ldr r1, _08029630 @ =gUnknown_02024C10 - ldr r0, _08029634 @ =gUnknown_081D92D0 - b _0802963E - .align 2, 0 -_08029624: .4byte gUnknown_02024C7A -_08029628: .4byte 0x0000ffef -_0802962C: .4byte gUnknown_02024C80 -_08029630: .4byte gUnknown_02024C10 -_08029634: .4byte gUnknown_081D92D0 -_08029638: - ldr r1, _08029648 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 -_0802963E: - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08029648: .4byte gUnknown_02024C10 - thumb_func_end atkBE_breakfree - - thumb_func_start sub_802964C -sub_802964C: @ 802964C - ldr r1, _08029670 @ =gBattleMons - ldr r0, _08029674 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 23 - orrs r0, r1 - str r0, [r2] - ldr r1, _08029678 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_08029670: .4byte gBattleMons -_08029674: .4byte gUnknown_02024C07 -_08029678: .4byte gUnknown_02024C10 - thumb_func_end sub_802964C - - thumb_func_start atkC0_recoverbasedonsunlight -atkC0_recoverbasedonsunlight: @ 802967C - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, _080296E8 @ =gUnknown_02024C08 - ldr r5, _080296EC @ =gUnknown_02024C07 - ldrb r0, [r5] - strb r0, [r1] - ldr r7, _080296F0 @ =gBattleMons - ldrb r0, [r5] - movs r6, 0x58 - muls r0, r6 - adds r0, r7 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - beq _0802975C - ldr r4, _080296F4 @ =word_2024DB8 - ldrh r0, [r4] - cmp r0, 0 - beq _080296CE - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080296CE - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _080296FC -_080296CE: - ldr r3, _080296F8 @ =gUnknown_02024BEC - ldr r2, _080296F0 @ =gBattleMons - ldr r0, _080296EC @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r3] - adds r1, r3, 0 - b _08029736 - .align 2, 0 -_080296E8: .4byte gUnknown_02024C08 -_080296EC: .4byte gUnknown_02024C07 -_080296F0: .4byte gBattleMons -_080296F4: .4byte word_2024DB8 -_080296F8: .4byte gUnknown_02024BEC -_080296FC: - ldrh r1, [r4] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08029728 - ldr r4, _08029724 @ =gUnknown_02024BEC - ldrb r0, [r5] - muls r0, r6 - adds r0, r7 - ldrh r1, [r0, 0x2C] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - movs r1, 0x1E - bl __divsi3 - str r0, [r4] - adds r1, r4, 0 - b _08029736 - .align 2, 0 -_08029724: .4byte gUnknown_02024BEC -_08029728: - ldr r1, _08029754 @ =gUnknown_02024BEC - ldrb r0, [r5] - muls r0, r6 - adds r0, r7 - ldrh r0, [r0, 0x2C] - lsrs r0, 2 - str r0, [r1] -_08029736: - adds r2, r1, 0 - ldr r0, [r2] - cmp r0, 0 - bne _08029742 - movs r0, 0x1 - str r0, [r2] -_08029742: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldr r1, _08029758 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _08029776 - .align 2, 0 -_08029754: .4byte gUnknown_02024BEC -_08029758: .4byte gUnknown_02024C10 -_0802975C: - ldr r3, _08029780 @ =gUnknown_02024C10 - 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] -_08029776: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08029780: .4byte gUnknown_02024C10 - thumb_func_end atkC0_recoverbasedonsunlight - - thumb_func_start sub_8029784 -sub_8029784: @ 8029784 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r2, _08029894 @ =gBattleMons - ldr r0, _08029898 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - adds r4, r1, 0 - muls r4, r0 - adds r4, r2 - ldrb r0, [r4, 0x14] - mov r10, r0 - mov r7, r10 - lsls r7, 27 - adds r0, r7, 0 - lsrs r0, 27 - mov r10, r0 - movs r1, 0x2 - mov r2, r10 - ands r2, r1 - asrs r2, 1 - ldrh r7, [r4, 0x14] - mov r9, r7 - mov r0, r9 - lsls r0, 22 - mov r9, r0 - lsrs r3, r0, 27 - adds r0, r1, 0 - ands r0, r3 - orrs r2, r0 - ldrb r7, [r4, 0x15] - mov r8, r7 - mov r0, r8 - lsls r0, 25 - mov r8, r0 - lsrs r3, r0, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 1 - orrs r2, r0 - ldr r6, [r4, 0x14] - lsls r6, 12 - lsrs r3, r6, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 2 - orrs r2, r0 - ldrh r5, [r4, 0x16] - lsls r5, 23 - lsrs r3, r5, 27 - adds r0, r1, 0 - ands r0, r3 - lsls r0, 3 - orrs r2, r0 - ldrb r3, [r4, 0x17] - lsls r3, 26 - lsrs r0, r3, 27 - ands r1, r0 - lsls r1, 4 - orrs r2, r1 - movs r1, 0x1 - adds r4, r1, 0 - mov r7, r10 - ands r4, r7 - mov r0, r9 - lsrs r0, 27 - mov r9, r0 - adds r0, r1, 0 - mov r7, r9 - ands r0, r7 - lsls r0, 1 - orrs r4, r0 - mov r0, r8 - lsrs r0, 27 - mov r8, r0 - adds r0, r1, 0 - mov r7, r8 - ands r0, r7 - lsls r0, 2 - orrs r4, r0 - lsrs r6, 27 - adds r0, r1, 0 - ands r0, r6 - lsls r0, 3 - orrs r4, r0 - lsrs r5, 27 - adds r0, r1, 0 - ands r0, r5 - lsls r0, 4 - orrs r4, r0 - lsrs r3, 27 - ands r1, r3 - lsls r1, 5 - orrs r4, r1 - ldr r5, _0802989C @ =gUnknown_02024DEC - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - movs r1, 0x3F - bl __divsi3 - adds r0, 0x1E - strh r0, [r5] - ldr r5, _080298A0 @ =0x02000000 - lsls r0, r4, 4 - subs r0, r4 - movs r1, 0x3F - bl __divsi3 - adds r1, r0, 0x1 - ldr r0, _080298A4 @ =0x0001601c - adds r5, r0 - strb r1, [r5] - lsls r0, r1, 24 - lsrs r0, 24 - cmp r0, 0x8 - bls _08029876 - adds r0, r1, 0x1 - strb r0, [r5] -_08029876: - ldrb r0, [r5] - movs r1, 0xC0 - orrs r0, r1 - strb r0, [r5] - ldr r1, _080298A8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08029894: .4byte gBattleMons -_08029898: .4byte gUnknown_02024C07 -_0802989C: .4byte gUnknown_02024DEC -_080298A0: .4byte 0x02000000 -_080298A4: .4byte 0x0001601c -_080298A8: .4byte gUnknown_02024C10 - thumb_func_end sub_8029784 - - thumb_func_start atkC2_selectnexttarget -atkC2_selectnexttarget: @ 80298AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08029908 @ =gUnknown_02024C08 - movs r1, 0 - strb r1, [r0] - ldr r1, _0802990C @ =gUnknown_02024A68 - ldrb r1, [r1] - adds r6, r0, 0 - ldr r0, _08029910 @ =gUnknown_02024C10 - mov r8, r0 - cmp r1, 0 - beq _080298F6 - adds r3, r6, 0 - ldr r0, _08029914 @ =gUnknown_02024C07 - ldrb r5, [r0] - ldr r0, _08029918 @ =gBitTable - mov r12, r0 - adds r4, r1, 0 - ldr r7, _0802991C @ =gUnknown_02024C0C -_080298D4: - ldrb r2, [r3] - cmp r2, r5 - beq _080298EA - ldrb r0, [r7] - ldrb r1, [r6] - lsls r1, 2 - add r1, r12 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - beq _080298F6 -_080298EA: - adds r0, r2, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - cmp r0, r4 - bcc _080298D4 -_080298F6: - mov r1, r8 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08029908: .4byte gUnknown_02024C08 -_0802990C: .4byte gUnknown_02024A68 -_08029910: .4byte gUnknown_02024C10 -_08029914: .4byte gUnknown_02024C07 -_08029918: .4byte gBitTable -_0802991C: .4byte gUnknown_02024C0C - thumb_func_end atkC2_selectnexttarget - - thumb_func_start atkC3_setfutureattack -atkC3_setfutureattack: @ 8029920 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r0, _08029958 @ =gUnknown_02024DBC - mov r8, r0 - ldr r7, _0802995C @ =gUnknown_02024C08 - ldrb r1, [r7] - adds r0, r1, r0 - ldrb r6, [r0] - cmp r6, 0 - beq _08029964 - ldr r3, _08029960 @ =gUnknown_02024C10 - 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 _08029A2E - .align 2, 0 -_08029958: .4byte gUnknown_02024DBC -_0802995C: .4byte gUnknown_02024C08 -_08029960: .4byte gUnknown_02024C10 -_08029964: - lsls r1, 1 - mov r0, r8 - adds r0, 0x18 - adds r1, r0 - ldr r2, _08029A04 @ =gUnknown_02024BE6 - mov r9, r2 - ldrh r0, [r2] - strh r0, [r1] - mov r0, r8 - adds r0, 0x4 - ldrb r4, [r7] - adds r0, r4 - ldr r5, _08029A08 @ =gUnknown_02024C07 - ldrb r1, [r5] - strb r1, [r0] - ldrb r0, [r7] - add r0, r8 - movs r1, 0x3 - strb r1, [r0] - ldr r4, _08029A0C @ =gUnknown_02024C7A - ldrb r0, [r7] - bl battle_get_per_side_status - movs r1, 0x1 - mov r10, r1 - ands r1, r0 - lsls r1, 1 - adds r1, r4 - ldrh r3, [r1] - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - ldr r2, _08029A10 @ =gBattleMons - adds r0, r2 - ldrb r1, [r7] - muls r1, r4 - adds r1, r2 - mov r4, r9 - ldrh r2, [r4] - str r6, [sp] - str r6, [sp, 0x4] - ldrb r4, [r5] - str r4, [sp, 0x8] - ldrb r4, [r7] - str r4, [sp, 0xC] - bl CalculateBaseDamage - ldrb r1, [r7] - lsls r1, 2 - mov r2, r8 - adds r2, 0x8 - adds r1, r2 - str r0, [r1] - ldr r1, _08029A14 @ =gUnknown_02024D28 - ldrb r0, [r5] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _080299F2 - ldrb r4, [r7] - lsls r4, 2 - adds r4, r2 - ldr r1, [r4] - lsls r0, r1, 4 - subs r0, r1 - movs r1, 0xA - bl __divsi3 - str r0, [r4] -_080299F2: - mov r0, r9 - ldrh r1, [r0] - ldr r0, _08029A18 @ =0x00000161 - cmp r1, r0 - bne _08029A20 - ldr r0, _08029A1C @ =gUnknown_02024D1E - mov r1, r10 - strb r1, [r0, 0x5] - b _08029A26 - .align 2, 0 -_08029A04: .4byte gUnknown_02024BE6 -_08029A08: .4byte gUnknown_02024C07 -_08029A0C: .4byte gUnknown_02024C7A -_08029A10: .4byte gBattleMons -_08029A14: .4byte gUnknown_02024D28 -_08029A18: .4byte 0x00000161 -_08029A1C: .4byte gUnknown_02024D1E -_08029A20: - ldr r1, _08029A40 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] -_08029A26: - ldr r1, _08029A44 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08029A2E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08029A40: .4byte gUnknown_02024D1E -_08029A44: .4byte gUnknown_02024C10 - thumb_func_end atkC3_setfutureattack - - thumb_func_start atkC4_802B910 -atkC4_802B910: @ 8029A48 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08029A8C @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - ldr r7, _08029A90 @ =gEnemyParty - cmp r0, 0 - bne _08029A62 - ldr r7, _08029A94 @ =gPlayerParty -_08029A62: - ldr r2, _08029A98 @ =gBattleMons - ldr r0, _08029A9C @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _08029AA4 - ldr r3, _08029AA0 @ =gUnknown_02024C10 - 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] - b _08029C40 - .align 2, 0 -_08029A8C: .4byte gUnknown_02024C07 -_08029A90: .4byte gEnemyParty -_08029A94: .4byte gPlayerParty -_08029A98: .4byte gBattleMons -_08029A9C: .4byte gUnknown_02024C08 -_08029AA0: .4byte gUnknown_02024C10 -_08029AA4: - ldr r6, _08029BE0 @ =gUnknown_02024D1E - ldrb r0, [r6] - mov r8, r0 - cmp r0, 0x5 - bls _08029AB0 - b _08029C0C -_08029AB0: - adds r4, r6, 0 - movs r5, 0x64 -_08029AB4: - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08029AF8 - ldrb r0, [r6] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08029AF8 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08029AF8 - ldrb r0, [r4] - muls r0, r5 - adds r0, r7, r0 - movs r1, 0x37 - bl GetMonData - cmp r0, 0 - beq _08029B08 -_08029AF8: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r6, r4, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _08029AB4 -_08029B08: - ldr r1, _08029BE0 @ =gUnknown_02024D1E - mov r9, r1 - ldrb r2, [r1] - cmp r2, 0x5 - bhi _08029C0C - ldr r1, _08029BE4 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r6, _08029BE8 @ =gUnknown_02024C07 - ldrb r0, [r6] - strb r0, [r1, 0x2] - strb r2, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08029BEC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x9 - str r0, [r1] - ldr r2, _08029BF0 @ =gUnknown_02024BEC - mov r8, r2 - ldr r5, _08029BF4 @ =gBaseStats - mov r1, r9 - ldrb r0, [r1] - movs r4, 0x64 - muls r0, r4 - adds r0, r7, r0 - movs r1, 0xB - bl GetMonData - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r3, [r1, 0x1] - mov r2, r8 - str r3, [r2] - ldr r2, _08029BF8 @ =gBattleMoves - ldr r0, _08029BFC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - muls r0, r3 - mov r1, r8 - str r0, [r1] - mov r2, r9 - ldrb r0, [r2] - muls r0, r4 - adds r0, r7, r0 - movs r1, 0x38 - bl GetMonData - lsls r0, 1 - movs r1, 0x5 - bl __udivsi3 - adds r0, 0x2 - mov r2, r8 - ldr r1, [r2] - muls r0, r1 - str r0, [r2] - ldr r3, _08029C00 @ =gBattleMons - ldr r1, _08029C04 @ =gUnknown_02024C08 - ldrb r2, [r1] - movs r1, 0x58 - muls r1, r2 - adds r1, r3 - ldrh r2, [r1] - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r5 - ldrb r1, [r1, 0x2] - bl __divsi3 - mov r1, r8 - str r0, [r1] - movs r1, 0x32 - bl __divsi3 - adds r2, r0, 0x2 - mov r0, r8 - str r2, [r0] - ldr r1, _08029C08 @ =gUnknown_02024D28 - ldrb r0, [r6] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - bge _08029BD4 - lsls r0, r2, 4 - subs r0, r2 - movs r1, 0xA - bl __divsi3 - mov r1, r8 - str r0, [r1] -_08029BD4: - mov r2, r9 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _08029C46 - .align 2, 0 -_08029BE0: .4byte gUnknown_02024D1E -_08029BE4: .4byte gUnknown_030041C0 -_08029BE8: .4byte gUnknown_02024C07 -_08029BEC: .4byte gUnknown_02024C10 -_08029BF0: .4byte gUnknown_02024BEC -_08029BF4: .4byte gBaseStats -_08029BF8: .4byte gBattleMoves -_08029BFC: .4byte gUnknown_02024BE6 -_08029C00: .4byte gBattleMons -_08029C04: .4byte gUnknown_02024C08 -_08029C08: .4byte gUnknown_02024D28 -_08029C0C: - mov r0, r8 - cmp r0, 0 - beq _08029C2C - ldr r3, _08029C28 @ =gUnknown_02024C10 - 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] - b _08029C40 - .align 2, 0 -_08029C28: .4byte gUnknown_02024C10 -_08029C2C: - ldr r3, _08029C54 @ =gUnknown_02024C10 - ldr r2, [r3] - 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] -_08029C40: - lsls r0, 24 - orrs r1, r0 - str r1, [r3] -_08029C46: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08029C54: .4byte gUnknown_02024C10 - thumb_func_end atkC4_802B910 - - thumb_func_start atkC5_hidepreattack -atkC5_hidepreattack: @ 8029C58 - push {lr} - ldr r0, _08029C6C @ =gUnknown_02024BE6 - ldrh r1, [r0] - cmp r1, 0x5B - beq _08029C98 - cmp r1, 0x5B - bgt _08029C70 - cmp r1, 0x13 - beq _08029C7C - b _08029CC4 - .align 2, 0 -_08029C6C: .4byte gUnknown_02024BE6 -_08029C70: - ldr r0, _08029C8C @ =0x00000123 - cmp r1, r0 - beq _08029CB0 - adds r0, 0x31 - cmp r1, r0 - bne _08029CC4 -_08029C7C: - ldr r2, _08029C90 @ =gUnknown_02024C98 - ldr r0, _08029C94 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x40 - b _08029CC0 - .align 2, 0 -_08029C8C: .4byte 0x00000123 -_08029C90: .4byte gUnknown_02024C98 -_08029C94: .4byte gUnknown_02024C07 -_08029C98: - ldr r2, _08029CA8 @ =gUnknown_02024C98 - ldr r0, _08029CAC @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - b _08029CC0 - .align 2, 0 -_08029CA8: .4byte gUnknown_02024C98 -_08029CAC: .4byte gUnknown_02024C07 -_08029CB0: - ldr r2, _08029CD0 @ =gUnknown_02024C98 - ldr r0, _08029CD4 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 11 -_08029CC0: - orrs r0, r2 - str r0, [r1] -_08029CC4: - ldr r1, _08029CD8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08029CD0: .4byte gUnknown_02024C98 -_08029CD4: .4byte gUnknown_02024C07 -_08029CD8: .4byte gUnknown_02024C10 - thumb_func_end atkC5_hidepreattack - - thumb_func_start atkC6_unhidepostattack -atkC6_unhidepostattack: @ 8029CDC - push {lr} - ldr r0, _08029CF0 @ =gUnknown_02024BE6 - ldrh r1, [r0] - cmp r1, 0x5B - beq _08029D20 - cmp r1, 0x5B - bgt _08029CF4 - cmp r1, 0x13 - beq _08029D00 - b _08029D4E - .align 2, 0 -_08029CF0: .4byte gUnknown_02024BE6 -_08029CF4: - ldr r0, _08029D14 @ =0x00000123 - cmp r1, r0 - beq _08029D3C - adds r0, 0x31 - cmp r1, r0 - bne _08029D4E -_08029D00: - ldr r2, _08029D18 @ =gUnknown_02024C98 - ldr r0, _08029D1C @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x41 - negs r2, r2 - b _08029D4A - .align 2, 0 -_08029D14: .4byte 0x00000123 -_08029D18: .4byte gUnknown_02024C98 -_08029D1C: .4byte gUnknown_02024C07 -_08029D20: - ldr r2, _08029D34 @ =gUnknown_02024C98 - ldr r0, _08029D38 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x81 - negs r2, r2 - b _08029D4A - .align 2, 0 -_08029D34: .4byte gUnknown_02024C98 -_08029D38: .4byte gUnknown_02024C07 -_08029D3C: - ldr r2, _08029D5C @ =gUnknown_02024C98 - ldr r0, _08029D60 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - ldr r2, _08029D64 @ =0xfffbffff -_08029D4A: - ands r0, r2 - str r0, [r1] -_08029D4E: - ldr r1, _08029D68 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08029D5C: .4byte gUnknown_02024C98 -_08029D60: .4byte gUnknown_02024C07 -_08029D64: .4byte 0xfffbffff -_08029D68: .4byte gUnknown_02024C10 - thumb_func_end atkC6_unhidepostattack - - thumb_func_start atkC7_setminimize -atkC7_setminimize: @ 8029D6C - push {lr} - ldr r0, _08029D9C @ =gUnknown_02024C6C - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _08029D90 - ldr r2, _08029DA0 @ =gUnknown_02024C98 - ldr r0, _08029DA4 @ =gUnknown_02024C07 - ldrb r1, [r0] - lsls r1, 2 - adds r1, r2 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 1 - orrs r0, r2 - str r0, [r1] -_08029D90: - ldr r1, _08029DA8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08029D9C: .4byte gUnknown_02024C6C -_08029DA0: .4byte gUnknown_02024C98 -_08029DA4: .4byte gUnknown_02024C07 -_08029DA8: .4byte gUnknown_02024C10 - thumb_func_end atkC7_setminimize - - thumb_func_start sub_8029DAC -sub_8029DAC: @ 8029DAC - push {lr} - ldr r3, _08029DD0 @ =word_2024DB8 - ldrh r1, [r3] - movs r2, 0x80 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08029DDC - ldr r2, _08029DD4 @ =gUnknown_02024C68 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - ldr r1, _08029DD8 @ =gUnknown_02024D1E - movs r0, 0x2 - strb r0, [r1, 0x5] - b _08029DEA - .align 2, 0 -_08029DD0: .4byte word_2024DB8 -_08029DD4: .4byte gUnknown_02024C68 -_08029DD8: .4byte gUnknown_02024D1E -_08029DDC: - strh r2, [r3] - ldr r0, _08029DF8 @ =gUnknown_02024D1E - movs r1, 0x5 - strb r1, [r0, 0x5] - ldr r0, _08029DFC @ =gUnknown_02024DBC - adds r0, 0x28 - strb r1, [r0] -_08029DEA: - ldr r1, _08029E00 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08029DF8: .4byte gUnknown_02024D1E -_08029DFC: .4byte gUnknown_02024DBC -_08029E00: .4byte gUnknown_02024C10 - thumb_func_end sub_8029DAC - - thumb_func_start atkC9_jumpifattackandspecialattackcannotfall -atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 - push {r4,lr} - ldr r2, _08029E48 @ =gBattleMons - ldr r0, _08029E4C @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - movs r0, 0x19 - ldrsb r0, [r1, r0] - adds r3, r2, 0 - cmp r0, 0 - bne _08029E58 - movs r0, 0x1C - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _08029E58 - ldr r0, _08029E50 @ =gUnknown_02024D1E - ldrb r0, [r0, 0x6] - cmp r0, 0x1 - beq _08029E58 - ldr r3, _08029E54 @ =gUnknown_02024C10 - 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 _08029E84 - .align 2, 0 -_08029E48: .4byte gBattleMons -_08029E4C: .4byte gUnknown_02024C08 -_08029E50: .4byte gUnknown_02024D1E -_08029E54: .4byte gUnknown_02024C10 -_08029E58: - ldr r4, _08029E8C @ =gUnknown_02024A60 - ldr r0, _08029E90 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r4] - ldr r2, _08029E94 @ =gUnknown_02024BEC - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0, 0x28] - str r0, [r2] - ldr r1, _08029E98 @ =0x00007fff - movs r0, 0 - bl dp01_build_cmdbuf_x18_0_aa_health_bar_update - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _08029E9C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_08029E84: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08029E8C: .4byte gUnknown_02024A60 -_08029E90: .4byte gUnknown_02024C07 -_08029E94: .4byte gUnknown_02024BEC -_08029E98: .4byte 0x00007fff -_08029E9C: .4byte gUnknown_02024C10 - thumb_func_end atkC9_jumpifattackandspecialattackcannotfall - - thumb_func_start atkCA_setforcedtarget -atkCA_setforcedtarget: @ 8029EA0 - push {r4,r5,lr} - ldr r4, _08029EE0 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - ldr r5, _08029EE4 @ =gUnknown_02024C80 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - movs r0, 0x1 - strb r0, [r1, 0x8] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r4] - strb r0, [r1, 0x9] - ldr r1, _08029EE8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08029EE0: .4byte gUnknown_02024C07 -_08029EE4: .4byte gUnknown_02024C80 -_08029EE8: .4byte gUnknown_02024C10 - thumb_func_end atkCA_setforcedtarget - - thumb_func_start atkCB_setcharge -atkCB_setcharge: @ 8029EEC - push {r4,lr} - ldr r0, _08029F40 @ =gUnknown_02024C98 - ldr r3, _08029F44 @ =gUnknown_02024C07 - ldrb r1, [r3] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 2 - orrs r0, r2 - str r0, [r1] - ldr r4, _08029F48 @ =gUnknown_02024CA8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x12] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x12] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x12] - ldr r1, _08029F4C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08029F40: .4byte gUnknown_02024C98 -_08029F44: .4byte gUnknown_02024C07 -_08029F48: .4byte gUnknown_02024CA8 -_08029F4C: .4byte gUnknown_02024C10 - thumb_func_end atkCB_setcharge - - thumb_func_start atkCC_callterrainattack -atkCC_callterrainattack: @ 8029F50 - push {r4,lr} - ldr r2, _08029FA0 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _08029FA4 @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, _08029FA8 @ =gUnknown_02024BE6 - ldr r1, _08029FAC @ =gNaturePowerMoves - ldr r0, _08029FB0 @ =gUnknown_0300428C - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _08029FB4 @ =gUnknown_02024C08 - strb r0, [r1] - ldr r3, _08029FB8 @ =gUnknown_081D6BBC - ldr r2, _08029FBC @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - bl b_movescr_stack_push - ldr r1, _08029FC0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08029FA0: .4byte gUnknown_02024C6C -_08029FA4: .4byte 0xfffffbff -_08029FA8: .4byte gUnknown_02024BE6 -_08029FAC: .4byte gNaturePowerMoves -_08029FB0: .4byte gUnknown_0300428C -_08029FB4: .4byte gUnknown_02024C08 -_08029FB8: .4byte gUnknown_081D6BBC -_08029FBC: .4byte gBattleMoves -_08029FC0: .4byte gUnknown_02024C10 - thumb_func_end atkCC_callterrainattack - - thumb_func_start atkCD_cureifburnedparalysedorpoisoned -atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, _0802A010 @ =gBattleMons - ldr r3, _0802A014 @ =gUnknown_02024C07 - ldrb r0, [r3] - movs r6, 0x58 - muls r0, r6 - adds r5, r1, 0 - adds r5, 0x4C - adds r2, r0, r5 - ldr r0, [r2] - movs r1, 0xD8 - ands r0, r1 - cmp r0, 0 - beq _0802A020 - movs r0, 0 - str r0, [r2] - ldr r1, _0802A018 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r4, _0802A01C @ =gUnknown_02024A60 - ldrb r0, [r3] - strb r0, [r4] - ldrb r0, [r4] - muls r0, r6 - adds r0, r5 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - b _0802A03A - .align 2, 0 -_0802A010: .4byte gBattleMons -_0802A014: .4byte gUnknown_02024C07 -_0802A018: .4byte gUnknown_02024C10 -_0802A01C: .4byte gUnknown_02024A60 -_0802A020: - ldr r3, _0802A044 @ =gUnknown_02024C10 - 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] -_0802A03A: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802A044: .4byte gUnknown_02024C10 - thumb_func_end atkCD_cureifburnedparalysedorpoisoned - - thumb_func_start atkCE_settorment -atkCE_settorment: @ 802A048 - push {lr} - ldr r1, _0802A080 @ =gBattleMons - ldr r0, _0802A084 @ =gUnknown_02024C08 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r2, 0x80 - lsls r2, 24 - cmp r1, 0 - bge _0802A08C - ldr r3, _0802A088 @ =gUnknown_02024C10 - 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 _0802A098 - .align 2, 0 -_0802A080: .4byte gBattleMons -_0802A084: .4byte gUnknown_02024C08 -_0802A088: .4byte gUnknown_02024C10 -_0802A08C: - orrs r1, r2 - str r1, [r0] - ldr r1, _0802A09C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802A098: - pop {r0} - bx r0 - .align 2, 0 -_0802A09C: .4byte gUnknown_02024C10 - thumb_func_end atkCE_settorment - - thumb_func_start atkCF_jumpifnodamage -atkCF_jumpifnodamage: @ 802A0A0 - push {lr} - ldr r2, _0802A0CC @ =gUnknown_02024D28 - ldr r0, _0802A0D0 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r0, r2, 0x4 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - bne _0802A0C0 - adds r0, r2, 0 - adds r0, 0x8 - adds r0, r1, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0802A0D8 -_0802A0C0: - ldr r1, _0802A0D4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802A0F2 - .align 2, 0 -_0802A0CC: .4byte gUnknown_02024D28 -_0802A0D0: .4byte gUnknown_02024C07 -_0802A0D4: .4byte gUnknown_02024C10 -_0802A0D8: - ldr r3, _0802A0F8 @ =gUnknown_02024C10 - 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] -_0802A0F2: - pop {r0} - bx r0 - .align 2, 0 -_0802A0F8: .4byte gUnknown_02024C10 - thumb_func_end atkCF_jumpifnodamage - - thumb_func_start atkD0_settaunt -atkD0_settaunt: @ 802A0FC - push {r4,lr} - ldr r4, _0802A140 @ =gUnknown_02024CA8 - ldr r3, _0802A144 @ =gUnknown_02024C08 - ldrb r0, [r3] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r2, r1, r4 - ldrb r1, [r2, 0x13] - lsls r0, r1, 28 - cmp r0, 0 - bne _0802A14C - movs r0, 0x10 - negs r0, r0 - ands r0, r1 - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2, 0x13] - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0, 0x13] - movs r1, 0xF - ands r1, r2 - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x13] - ldr r1, _0802A148 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802A166 - .align 2, 0 -_0802A140: .4byte gUnknown_02024CA8 -_0802A144: .4byte gUnknown_02024C08 -_0802A148: .4byte gUnknown_02024C10 -_0802A14C: - ldr r3, _0802A16C @ =gUnknown_02024C10 - 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] -_0802A166: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802A16C: .4byte gUnknown_02024C10 - thumb_func_end atkD0_settaunt - - thumb_func_start sub_802A170 -sub_802A170: @ 802A170 - push {r4,lr} - ldr r4, _0802A1D8 @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r3, _0802A1DC @ =gUnknown_02024C08 - strb r0, [r3] - ldr r0, _0802A1E0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802A1F4 - ldr r0, _0802A1E4 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _0802A1E8 @ =gBitTable - ldrb r3, [r3] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802A1F4 - ldr r1, _0802A1EC @ =gUnknown_02024D28 - ldrb r0, [r4] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 28 - cmp r0, 0 - blt _0802A1F4 - lsls r0, r3, 4 - adds r2, r0, r1 - ldrb r1, [r2] - lsls r0, r1, 28 - cmp r0, 0 - blt _0802A1F4 - movs r0, 0x8 - orrs r0, r1 - strb r0, [r2] - ldr r1, _0802A1F0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802A20E - .align 2, 0 -_0802A1D8: .4byte gUnknown_02024C07 -_0802A1DC: .4byte gUnknown_02024C08 -_0802A1E0: .4byte gUnknown_020239F8 -_0802A1E4: .4byte gUnknown_02024C0C -_0802A1E8: .4byte gBitTable -_0802A1EC: .4byte gUnknown_02024D28 -_0802A1F0: .4byte gUnknown_02024C10 -_0802A1F4: - ldr r3, _0802A214 @ =gUnknown_02024C10 - 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] -_0802A20E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802A214: .4byte gUnknown_02024C10 - thumb_func_end sub_802A170 - - thumb_func_start sub_802A218 -sub_802A218: @ 802A218 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, _0802A30C @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802A24C - ldr r0, _0802A310 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0802A314 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0802A24C - ldr r0, _0802A318 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _0802A2EE -_0802A24C: - ldr r4, _0802A30C @ =gUnknown_02024C07 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _0802A310 @ =gUnknown_020239F8 - ldrh r1, [r0] - ldr r0, _0802A314 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _0802A290 - ldr r0, _0802A318 @ =gTrainerBattleOpponent - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _0802A290 - ldr r0, _0802A31C @ =gUnknown_02024DBC - adds r0, 0x29 - adds r0, r2, r0 - ldrb r1, [r0] - ldr r3, _0802A320 @ =gBitTable - ldr r2, _0802A324 @ =gUnknown_02024A6A - ldrb r0, [r4] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802A2EE -_0802A290: - ldr r0, _0802A328 @ =gBattleMons - mov r9, r0 - ldr r1, _0802A30C @ =gUnknown_02024C07 - ldrb r4, [r1] - movs r2, 0x58 - mov r8, r2 - mov r0, r8 - muls r0, r4 - mov r3, r9 - adds r5, r0, r3 - ldrh r3, [r5, 0x2E] - adds r1, r3, 0 - cmp r1, 0 - bne _0802A2BE - ldr r0, _0802A32C @ =gUnknown_02024C08 - ldrb r0, [r0] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - beq _0802A2EE -_0802A2BE: - cmp r1, 0xAF - beq _0802A2EE - ldr r7, _0802A32C @ =gUnknown_02024C08 - ldrb r0, [r7] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - mov r1, r9 - adds r2, r0, r1 - ldrh r1, [r2, 0x2E] - cmp r1, 0xAF - beq _0802A2EE - adds r0, r3, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bls _0802A2EE - adds r0, r1, 0 - subs r0, 0x79 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xB - bhi _0802A334 -_0802A2EE: - ldr r3, _0802A330 @ =gUnknown_02024C10 - 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 _0802A49A - .align 2, 0 -_0802A30C: .4byte gUnknown_02024C07 -_0802A310: .4byte gUnknown_020239F8 -_0802A314: .4byte 0x00000902 -_0802A318: .4byte gTrainerBattleOpponent -_0802A31C: .4byte gUnknown_02024DBC -_0802A320: .4byte gBitTable -_0802A324: .4byte gUnknown_02024A6A -_0802A328: .4byte gBattleMons -_0802A32C: .4byte gUnknown_02024C08 -_0802A330: .4byte gUnknown_02024C10 -_0802A334: - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x3C - bne _0802A36C - ldr r1, _0802A360 @ =gUnknown_02024C10 - ldr r0, _0802A364 @ =gUnknown_081D9913 - str r0, [r1] - ldr r1, _0802A368 @ =byte_2024C06 - ldrb r0, [r7] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - ldrb r1, [r1] - bl sub_81074C4 - b _0802A49A - .align 2, 0 -_0802A360: .4byte gUnknown_02024C10 -_0802A364: .4byte gUnknown_081D9913 -_0802A368: .4byte byte_2024C06 -_0802A36C: - lsls r0, r4, 1 - ldr r4, _0802A458 @ =0x020160f0 - adds r6, r0, r4 - ldrh r5, [r5, 0x2E] - mov r10, r5 - strh r1, [r6] - ldr r3, _0802A45C @ =gUnknown_02024C07 - ldrb r0, [r3] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - mov r3, r10 - strh r3, [r0, 0x2E] - ldr r5, _0802A460 @ =gUnknown_02024A60 - ldr r1, _0802A45C @ =gUnknown_02024C07 - ldrb r0, [r1] - strb r0, [r5] - str r6, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldr r2, _0802A45C @ =gUnknown_02024C07 - ldrb r0, [r2] - bl dp01_battle_side_mark_buffer_for_execution - ldrb r0, [r7] - strb r0, [r5] - ldrb r0, [r7] - mov r3, r8 - muls r3, r0 - adds r0, r3, 0 - mov r1, r9 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r0, _0802A464 @ =0xfffe9f10 - adds r4, r0 - ldrb r0, [r7] - lsls r0, 1 - ldr r2, _0802A468 @ =0x000160e8 - adds r0, r2 - adds r0, r4 - movs r1, 0 - strb r1, [r0] - ldrb r0, [r7] - lsls r0, 1 - ldr r1, _0802A46C @ =0x000160e9 - adds r0, r1 - adds r0, r4 - movs r3, 0 - strb r3, [r0] - ldr r3, _0802A45C @ =gUnknown_02024C07 - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - adds r0, r4 - movs r2, 0 - strb r2, [r0] - ldrb r0, [r3] - lsls r0, 1 - adds r0, r1 - adds r0, r4 - strb r2, [r0] - ldr r1, _0802A470 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, _0802A474 @ =gUnknown_030041C0 - movs r3, 0xFD - strb r3, [r1] - movs r2, 0xA - strb r2, [r1, 0x1] - ldrh r0, [r6] - strb r0, [r1, 0x2] - ldrh r0, [r6] - lsrs r0, 8 - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _0802A478 @ =gUnknown_03004290 - strb r3, [r1] - strb r2, [r1, 0x1] - mov r3, r10 - strb r3, [r1, 0x2] - mov r2, r10 - lsrs r0, r2, 8 - strb r0, [r1, 0x3] - movs r0, 0x1 - negs r0, r0 - strb r0, [r1, 0x4] - cmp r2, 0 - beq _0802A480 - ldrh r0, [r6] - cmp r0, 0 - beq _0802A494 - ldr r1, _0802A47C @ =gUnknown_02024D1E - movs r0, 0x2 - b _0802A498 - .align 2, 0 -_0802A458: .4byte 0x020160f0 -_0802A45C: .4byte gUnknown_02024C07 -_0802A460: .4byte gUnknown_02024A60 -_0802A464: .4byte 0xfffe9f10 -_0802A468: .4byte 0x000160e8 -_0802A46C: .4byte 0x000160e9 -_0802A470: .4byte gUnknown_02024C10 -_0802A474: .4byte gUnknown_030041C0 -_0802A478: .4byte gUnknown_03004290 -_0802A47C: .4byte gUnknown_02024D1E -_0802A480: - ldrh r0, [r6] - cmp r0, 0 - beq _0802A494 - ldr r0, _0802A490 @ =gUnknown_02024D1E - movs r3, 0 - strb r3, [r0, 0x5] - b _0802A49A - .align 2, 0 -_0802A490: .4byte gUnknown_02024D1E -_0802A494: - ldr r1, _0802A4AC @ =gUnknown_02024D1E - movs r0, 0x1 -_0802A498: - strb r0, [r1, 0x5] -_0802A49A: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A4AC: .4byte gUnknown_02024D1E - thumb_func_end sub_802A218 - - thumb_func_start sub_802A4B0 -sub_802A4B0: @ 802A4B0 - push {r4,lr} - ldr r3, _0802A4F0 @ =gBattleMons - ldr r4, _0802A4F4 @ =gUnknown_02024C08 - ldrb r0, [r4] - movs r2, 0x58 - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r1, [r0] - adds r0, r1, 0 - cmp r0, 0 - beq _0802A504 - cmp r0, 0x19 - beq _0802A504 - ldr r0, _0802A4F8 @ =gUnknown_02024C07 - ldrb r0, [r0] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - strb r1, [r0] - ldr r1, _0802A4FC @ =byte_2024C06 - ldrb r0, [r4] - muls r0, r2 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _0802A500 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802A51E - .align 2, 0 -_0802A4F0: .4byte gBattleMons -_0802A4F4: .4byte gUnknown_02024C08 -_0802A4F8: .4byte gUnknown_02024C07 -_0802A4FC: .4byte byte_2024C06 -_0802A500: .4byte gUnknown_02024C10 -_0802A504: - ldr r3, _0802A524 @ =gUnknown_02024C10 - 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] -_0802A51E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802A524: .4byte gUnknown_02024C10 - thumb_func_end sub_802A4B0 - - thumb_func_start atkD4_802C408 -atkD4_802C408: @ 802A528 - push {r4-r7,lr} - ldr r7, _0802A53C @ =gUnknown_02024C10 - ldr r2, [r7] - ldrb r3, [r2, 0x1] - cmp r3, 0 - beq _0802A540 - cmp r3, 0x1 - beq _0802A578 - b _0802A5F4 - .align 2, 0 -_0802A53C: .4byte gUnknown_02024C10 -_0802A540: - ldr r1, _0802A56C @ =gUnknown_02024DBC - ldr r4, _0802A570 @ =gUnknown_02024C07 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r5, [r4] - adds r3, r0, r5 - ldrb r0, [r3] - cmp r0, 0 - bne _0802A5C4 - movs r0, 0x2 - strb r0, [r3] - ldrb r0, [r4] - adds r1, 0x24 - adds r1, r0, r1 - ldr r2, _0802A574 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x6 - b _0802A5F2 - .align 2, 0 -_0802A56C: .4byte gUnknown_02024DBC -_0802A570: .4byte gUnknown_02024C07 -_0802A574: .4byte gUnknown_02024A6A -_0802A578: - ldr r1, _0802A5DC @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x4 - strb r0, [r1, 0x1] - ldr r4, _0802A5E0 @ =gUnknown_02024C08 - ldrb r0, [r4] - strb r0, [r1, 0x2] - ldr r0, _0802A5E4 @ =gUnknown_02024DBC - adds r0, 0x24 - ldrb r5, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _0802A5E8 @ =gUnknown_02024BEC - ldr r6, _0802A5EC @ =gBattleMons - ldrb r0, [r4] - movs r5, 0x58 - muls r0, r5 - adds r0, r6 - ldrh r0, [r0, 0x2C] - lsrs r0, 1 - str r0, [r1] - cmp r0, 0 - bne _0802A5B0 - str r3, [r1] -_0802A5B0: - ldr r0, [r1] - negs r0, r0 - str r0, [r1] - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r1, [r0, 0x28] - ldrh r0, [r0, 0x2C] - cmp r1, r0 - bne _0802A5F0 -_0802A5C4: - 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, [r7] - b _0802A5F4 - .align 2, 0 -_0802A5DC: .4byte gUnknown_030041C0 -_0802A5E0: .4byte gUnknown_02024C08 -_0802A5E4: .4byte gUnknown_02024DBC -_0802A5E8: .4byte gUnknown_02024BEC -_0802A5EC: .4byte gBattleMons -_0802A5F0: - adds r0, r2, 0x6 -_0802A5F2: - str r0, [r7] -_0802A5F4: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end atkD4_802C408 - - thumb_func_start sub_802A5FC -sub_802A5FC: @ 802A5FC - push {lr} - ldr r1, _0802A634 @ =gUnknown_02024C98 - ldr r0, _0802A638 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 3 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0802A640 - ldr r3, _0802A63C @ =gUnknown_02024C10 - 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 _0802A64C - .align 2, 0 -_0802A634: .4byte gUnknown_02024C98 -_0802A638: .4byte gUnknown_02024C07 -_0802A63C: .4byte gUnknown_02024C10 -_0802A640: - orrs r1, r3 - str r1, [r2] - ldr r1, _0802A650 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802A64C: - pop {r0} - bx r0 - .align 2, 0 -_0802A650: .4byte gUnknown_02024C10 - thumb_func_end sub_802A5FC - - thumb_func_start atkD6_doubledamagedealtifdamaged -atkD6_doubledamagedealtifdamaged: @ 802A654 - push {lr} - ldr r3, _0802A6A4 @ =gUnknown_02024D28 - ldr r0, _0802A6A8 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r0, r3, 0x4 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0802A674 - adds r0, r2, r3 - ldr r1, _0802A6AC @ =gUnknown_02024C08 - ldrb r0, [r0, 0xC] - ldrb r1, [r1] - cmp r0, r1 - beq _0802A68C -_0802A674: - adds r0, r3, 0 - adds r0, 0x8 - adds r0, r2, r0 - ldr r0, [r0] - cmp r0, 0 - beq _0802A696 - adds r0, r2, r3 - ldr r1, _0802A6AC @ =gUnknown_02024C08 - ldrb r0, [r0, 0xD] - ldrb r1, [r1] - cmp r0, r1 - bne _0802A696 -_0802A68C: - ldr r0, _0802A6B0 @ =0x02000000 - ldr r1, _0802A6B4 @ =0x0001601f - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] -_0802A696: - ldr r1, _0802A6B8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802A6A4: .4byte gUnknown_02024D28 -_0802A6A8: .4byte gUnknown_02024C07 -_0802A6AC: .4byte gUnknown_02024C08 -_0802A6B0: .4byte 0x02000000 -_0802A6B4: .4byte 0x0001601f -_0802A6B8: .4byte gUnknown_02024C10 - thumb_func_end atkD6_doubledamagedealtifdamaged - - thumb_func_start sub_802A6BC -sub_802A6BC: @ 802A6BC - push {r4,lr} - ldr r1, _0802A700 @ =gUnknown_02024C98 - ldr r0, _0802A704 @ =gUnknown_02024C08 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r4, r0, r1 - ldr r2, [r4] - movs r0, 0xC0 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _0802A6E4 - ldr r1, _0802A708 @ =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0802A710 -_0802A6E4: - ldr r3, _0802A70C @ =gUnknown_02024C10 - 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 _0802A720 - .align 2, 0 -_0802A700: .4byte gUnknown_02024C98 -_0802A704: .4byte gUnknown_02024C08 -_0802A708: .4byte gBattleMons -_0802A70C: .4byte gUnknown_02024C10 -_0802A710: - movs r0, 0x80 - lsls r0, 5 - orrs r2, r0 - str r2, [r4] - ldr r1, _0802A728 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802A720: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802A728: .4byte gUnknown_02024C10 - thumb_func_end sub_802A6BC - - thumb_func_start atkD8_setdamagetohealthdifference -atkD8_setdamagetohealthdifference: @ 802A72C - push {lr} - ldr r2, _0802A768 @ =gBattleMons - ldr r0, _0802A76C @ =gUnknown_02024C08 - ldrb r0, [r0] - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - ldr r0, _0802A770 @ =gUnknown_02024C07 - ldrb r0, [r0] - muls r0, r1 - adds r1, r0, r2 - ldrh r0, [r3, 0x28] - ldrh r2, [r1, 0x28] - cmp r0, r2 - bhi _0802A778 - ldr r3, _0802A774 @ =gUnknown_02024C10 - 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 _0802A78A - .align 2, 0 -_0802A768: .4byte gBattleMons -_0802A76C: .4byte gUnknown_02024C08 -_0802A770: .4byte gUnknown_02024C07 -_0802A774: .4byte gUnknown_02024C10 -_0802A778: - ldr r2, _0802A790 @ =gUnknown_02024BEC - ldrh r0, [r3, 0x28] - ldrh r1, [r1, 0x28] - subs r0, r1 - str r0, [r2] - ldr r1, _0802A794 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802A78A: - pop {r0} - bx r0 - .align 2, 0 -_0802A790: .4byte gUnknown_02024BEC -_0802A794: .4byte gUnknown_02024C10 - thumb_func_end atkD8_setdamagetohealthdifference - - thumb_func_start atkD9_scaledamagebyhealthratio -atkD9_scaledamagebyhealthratio: @ 802A798 - push {r4,lr} - ldr r4, _0802A7E4 @ =gUnknown_02024DEC - ldrh r0, [r4] - cmp r0, 0 - bne _0802A7D4 - ldr r2, _0802A7E8 @ =gBattleMoves - ldr r0, _0802A7EC @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r3, [r0, 0x1] - ldr r2, _0802A7F0 @ =gBattleMons - ldr r0, _0802A7F4 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldrh r0, [r1, 0x28] - muls r0, r3 - ldrh r1, [r1, 0x2C] - bl __divsi3 - strh r0, [r4] - lsls r0, 16 - cmp r0, 0 - bne _0802A7D4 - movs r0, 0x1 - strh r0, [r4] -_0802A7D4: - ldr r1, _0802A7F8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802A7E4: .4byte gUnknown_02024DEC -_0802A7E8: .4byte gBattleMoves -_0802A7EC: .4byte gUnknown_02024BE6 -_0802A7F0: .4byte gBattleMons -_0802A7F4: .4byte gUnknown_02024C07 -_0802A7F8: .4byte gUnknown_02024C10 - thumb_func_end atkD9_scaledamagebyhealthratio - - thumb_func_start atkDA_abilityswap -atkDA_abilityswap: @ 802A7FC - push {r4-r6,lr} - ldr r5, _0802A860 @ =gBattleMons - ldr r0, _0802A864 @ =gUnknown_02024C07 - ldrb r0, [r0] - movs r4, 0x58 - muls r0, r4 - adds r0, r5 - adds r2, r0, 0 - adds r2, 0x20 - ldrb r1, [r2] - cmp r1, 0 - bne _0802A824 - ldr r0, _0802A868 @ =gUnknown_02024C08 - ldrb r0, [r0] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0 - beq _0802A844 -_0802A824: - cmp r1, 0x19 - beq _0802A844 - ldr r6, _0802A868 @ =gUnknown_02024C08 - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x19 - beq _0802A844 - ldr r0, _0802A86C @ =gUnknown_02024C68 - ldrb r1, [r0] - movs r0, 0x29 - ands r0, r1 - cmp r0, 0 - beq _0802A874 -_0802A844: - ldr r3, _0802A870 @ =gUnknown_02024C10 - 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 _0802A88A - .align 2, 0 -_0802A860: .4byte gBattleMons -_0802A864: .4byte gUnknown_02024C07 -_0802A868: .4byte gUnknown_02024C08 -_0802A86C: .4byte gUnknown_02024C68 -_0802A870: .4byte gUnknown_02024C10 -_0802A874: - ldrb r1, [r2] - strb r3, [r2] - ldrb r0, [r6] - muls r0, r4 - adds r0, r5 - adds r0, 0x20 - strb r1, [r0] - ldr r1, _0802A890 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802A88A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802A890: .4byte gUnknown_02024C10 - thumb_func_end atkDA_abilityswap - - thumb_func_start atkDB_imprisoneffect -atkDB_imprisoneffect: @ 802A894 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r0, 0 - mov r8, r0 - ldr r1, _0802A8B8 @ =gUnknown_02024C98 - ldr r0, _0802A8BC @ =gUnknown_02024C07 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 6 - ands r0, r1 - cmp r0, 0 - beq _0802A8E8 - b _0802A95E - .align 2, 0 -_0802A8B8: .4byte gUnknown_02024C98 -_0802A8BC: .4byte gUnknown_02024C07 -_0802A8C0: - ldr r0, _0802A8E0 @ =gUnknown_02024C98 - mov r2, r9 - ldrb r1, [r2] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - movs r2, 0x80 - lsls r2, 6 - orrs r0, r2 - str r0, [r1] - ldr r1, _0802A8E4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802A956 - .align 2, 0 -_0802A8E0: .4byte gUnknown_02024C98 -_0802A8E4: .4byte gUnknown_02024C10 -_0802A8E8: - adds r0, r2, 0 - bl sub_801529C - movs r6, 0 - b _0802A94E -_0802A8F2: - adds r0, r6, 0 - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r8, r0 - beq _0802A948 - movs r4, 0 - ldr r7, _0802A984 @ =gUnknown_02024C07 - mov r9, r7 - ldr r0, _0802A988 @ =gBattleMons - mov r12, r0 - mov r1, r9 - ldrb r0, [r1] - mov r2, r12 - adds r2, 0xC - movs r1, 0x58 - muls r0, r1 - adds r3, r0, r2 - adds r5, r6, 0 - muls r5, r1 -_0802A91C: - movs r2, 0 - ldrh r1, [r3] - mov r0, r12 - adds r0, 0xC - adds r0, r5, r0 -_0802A926: - ldrh r7, [r0] - cmp r1, r7 - bne _0802A930 - cmp r1, 0 - bne _0802A938 -_0802A930: - adds r0, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - ble _0802A926 -_0802A938: - cmp r2, 0x4 - bne _0802A944 - adds r3, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0802A91C -_0802A944: - cmp r4, 0x4 - bne _0802A8C0 -_0802A948: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0802A94E: - ldr r0, _0802A98C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r6, r0 - bcc _0802A8F2 -_0802A956: - ldr r0, _0802A98C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r6, r0 - bne _0802A978 -_0802A95E: - ldr r3, _0802A990 @ =gUnknown_02024C10 - 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] -_0802A978: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802A984: .4byte gUnknown_02024C07 -_0802A988: .4byte gBattleMons -_0802A98C: .4byte gUnknown_02024A68 -_0802A990: .4byte gUnknown_02024C10 - thumb_func_end atkDB_imprisoneffect - - thumb_func_start atkDC_setgrudge -atkDC_setgrudge: @ 802A994 - push {lr} - ldr r1, _0802A9CC @ =gUnknown_02024C98 - ldr r0, _0802A9D0 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 7 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - beq _0802A9D8 - ldr r3, _0802A9D4 @ =gUnknown_02024C10 - 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 _0802A9E4 - .align 2, 0 -_0802A9CC: .4byte gUnknown_02024C98 -_0802A9D0: .4byte gUnknown_02024C07 -_0802A9D4: .4byte gUnknown_02024C10 -_0802A9D8: - orrs r1, r3 - str r1, [r2] - ldr r1, _0802A9E8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802A9E4: - pop {r0} - bx r0 - .align 2, 0 -_0802A9E8: .4byte gUnknown_02024C10 - thumb_func_end atkDC_setgrudge - - thumb_func_start atkDD_weightdamagecalculation -atkDD_weightdamagecalculation: @ 802A9EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - ldr r2, _0802AA50 @ =gWeightDamage - ldrh r0, [r2] - ldr r1, _0802AA54 @ =0x0000ffff - cmp r0, r1 - beq _0802AA64 - adds r6, r2, 0 - ldr r0, _0802AA58 @ =gBattleMons - mov r8, r0 - adds r7, r1, 0 - adds r4, r6, 0 -_0802AA08: - ldr r0, _0802AA5C @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - add r0, r8 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D54 - ldrh r1, [r4] - lsls r0, 16 - lsrs r0, 16 - cmp r1, r0 - bhi _0802AA36 - adds r4, 0x4 - adds r5, 0x2 - ldrh r0, [r4] - cmp r0, r7 - bne _0802AA08 -_0802AA36: - lsls r0, r5, 1 - adds r0, r6 - ldrh r1, [r0] - ldr r0, _0802AA54 @ =0x0000ffff - cmp r1, r0 - beq _0802AA64 - ldr r0, _0802AA60 @ =gUnknown_02024DEC - adds r1, r5, 0x1 - lsls r1, 1 - adds r1, r6 - ldrh r1, [r1] - strh r1, [r0] - b _0802AA6A - .align 2, 0 -_0802AA50: .4byte gWeightDamage -_0802AA54: .4byte 0x0000ffff -_0802AA58: .4byte gBattleMons -_0802AA5C: .4byte gUnknown_02024C08 -_0802AA60: .4byte gUnknown_02024DEC -_0802AA64: - ldr r1, _0802AA7C @ =gUnknown_02024DEC - movs r0, 0x78 - strh r0, [r1] -_0802AA6A: - ldr r1, _0802AA80 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802AA7C: .4byte gUnknown_02024DEC -_0802AA80: .4byte gUnknown_02024C10 - thumb_func_end atkDD_weightdamagecalculation - - thumb_func_start atkDE_asistattackselect -atkDE_asistattackselect: @ 802AA84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - mov r10, r0 - ldr r0, _0802AB9C @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x1 - ands r1, r0 - ldr r0, _0802ABA0 @ =gPlayerParty - str r0, [sp] - cmp r1, 0 - beq _0802AAAC - ldr r1, _0802ABA4 @ =gEnemyParty - str r1, [sp] -_0802AAAC: - movs r2, 0 -_0802AAAE: - ldr r1, _0802ABA8 @ =gUnknown_02024A6A - ldr r0, _0802AB9C @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - adds r1, r2, 0x1 - str r1, [sp, 0x4] - ldrh r0, [r0] - cmp r2, r0 - beq _0802AB54 - movs r0, 0x64 - adds r6, r2, 0 - muls r6, r0 - ldr r0, [sp] - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _0802AB54 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _0802AB54 - movs r5, 0 - ldr r1, _0802ABAC @ =0x0000ffff - mov r8, r1 - mov r9, r6 - mov r1, r10 - lsls r0, r1, 1 - ldr r1, _0802ABB0 @ =0x02016024 - adds r6, r0, r1 -_0802AAF8: - movs r7, 0 - adds r1, r5, 0 - adds r1, 0xD - ldr r0, [sp] - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl sub_802838C - lsls r0, 24 - adds r1, r5, 0x1 - cmp r0, 0 - bne _0802AB4E - ldr r0, _0802ABB4 @ =gUnknown_081FACFE - ldrh r2, [r0] - adds r3, r0, 0 - cmp r2, r8 - beq _0802AB42 - cmp r4, r2 - beq _0802AB38 - ldr r5, _0802ABAC @ =0x0000ffff - adds r2, r3, 0 -_0802AB2A: - adds r2, 0x2 - adds r7, 0x1 - ldrh r0, [r2] - cmp r0, r5 - beq _0802AB42 - cmp r4, r0 - bne _0802AB2A -_0802AB38: - lsls r0, r7, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r8 - bne _0802AB4E -_0802AB42: - cmp r4, 0 - beq _0802AB4E - strh r4, [r6] - adds r6, 0x2 - movs r0, 0x1 - add r10, r0 -_0802AB4E: - adds r5, r1, 0 - cmp r5, 0x3 - ble _0802AAF8 -_0802AB54: - ldr r2, [sp, 0x4] - cmp r2, 0x5 - ble _0802AAAE - mov r1, r10 - cmp r1, 0 - beq _0802ABCC - ldr r2, _0802ABB8 @ =gUnknown_02024C6C - ldr r0, [r2] - ldr r1, _0802ABBC @ =0xfffffbff - ands r0, r1 - str r0, [r2] - ldr r4, _0802ABC0 @ =gUnknown_02024BEA - bl Random - movs r1, 0xFF - ands r1, r0 - mov r0, r10 - muls r0, r1 - asrs r0, 8 - lsls r0, 1 - ldr r1, _0802ABB0 @ =0x02016024 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0 - bl sub_801B5C0 - ldr r1, _0802ABC4 @ =gUnknown_02024C08 - strb r0, [r1] - ldr r1, _0802ABC8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802ABE6 - .align 2, 0 -_0802AB9C: .4byte gUnknown_02024C07 -_0802ABA0: .4byte gPlayerParty -_0802ABA4: .4byte gEnemyParty -_0802ABA8: .4byte gUnknown_02024A6A -_0802ABAC: .4byte 0x0000ffff -_0802ABB0: .4byte 0x02016024 -_0802ABB4: .4byte gUnknown_081FACFE -_0802ABB8: .4byte gUnknown_02024C6C -_0802ABBC: .4byte 0xfffffbff -_0802ABC0: .4byte gUnknown_02024BEA -_0802ABC4: .4byte gUnknown_02024C08 -_0802ABC8: .4byte gUnknown_02024C10 -_0802ABCC: - ldr r3, _0802ABF8 @ =gUnknown_02024C10 - 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] -_0802ABE6: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802ABF8: .4byte gUnknown_02024C10 - thumb_func_end atkDE_asistattackselect - - thumb_func_start atkDF_setmagiccoat -atkDF_setmagiccoat: @ 802ABFC - push {lr} - ldr r1, _0802AC44 @ =gUnknown_02024C08 - ldr r3, _0802AC48 @ =gUnknown_02024C07 - ldrb r0, [r3] - strb r0, [r1] - ldr r2, _0802AC4C @ =gUnknown_02024D68 - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0802AC50 @ =gUnknown_02024A7E - ldrb r1, [r0] - ldr r0, _0802AC54 @ =gUnknown_02024A68 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0802AC5C - ldr r3, _0802AC58 @ =gUnknown_02024C10 - 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 _0802AC74 - .align 2, 0 -_0802AC44: .4byte gUnknown_02024C08 -_0802AC48: .4byte gUnknown_02024C07 -_0802AC4C: .4byte gUnknown_02024D68 -_0802AC50: .4byte gUnknown_02024A7E -_0802AC54: .4byte gUnknown_02024A68 -_0802AC58: .4byte gUnknown_02024C10 -_0802AC5C: - ldr r0, _0802AC78 @ =gUnknown_02024D28 - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1] - ldr r1, _0802AC7C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802AC74: - pop {r0} - bx r0 - .align 2, 0 -_0802AC78: .4byte gUnknown_02024D28 -_0802AC7C: .4byte gUnknown_02024C10 - thumb_func_end atkDF_setmagiccoat - - thumb_func_start atkE0_setstealstatchange -atkE0_setstealstatchange: @ 802AC80 - push {lr} - ldr r2, _0802ACC4 @ =gUnknown_02024D68 - ldr r3, _0802ACC8 @ =gUnknown_02024C07 - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - ldr r0, _0802ACCC @ =gUnknown_02024A7E - ldrb r1, [r0] - ldr r0, _0802ACD0 @ =gUnknown_02024A68 - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _0802ACD8 - ldr r3, _0802ACD4 @ =gUnknown_02024C10 - 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 _0802ACEE - .align 2, 0 -_0802ACC4: .4byte gUnknown_02024D68 -_0802ACC8: .4byte gUnknown_02024C07 -_0802ACCC: .4byte gUnknown_02024A7E -_0802ACD0: .4byte gUnknown_02024A68 -_0802ACD4: .4byte gUnknown_02024C10 -_0802ACD8: - ldr r0, _0802ACF4 @ =gUnknown_02024D28 - ldrb r1, [r3] - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, _0802ACF8 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802ACEE: - pop {r0} - bx r0 - .align 2, 0 -_0802ACF4: .4byte gUnknown_02024D28 -_0802ACF8: .4byte gUnknown_02024C10 - thumb_func_end atkE0_setstealstatchange - - thumb_func_start atkE1_802CBE4 -atkE1_802CBE4: @ 802ACFC - push {r4-r6,lr} - ldr r4, _0802ADA0 @ =0x02000000 - ldr r1, _0802ADA4 @ =0x000160dd - adds r0, r4, r1 - ldrb r0, [r0] - subs r1, 0xDA - adds r4, r1 - strb r0, [r4] - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, _0802ADA8 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x9 - strb r0, [r2, 0x1] - ldr r3, _0802ADAC @ =gBattleMons - ldrb r1, [r4] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - strb r0, [r2, 0x2] - movs r0, 0xFF - strb r0, [r2, 0x3] - ldr r2, _0802ADB0 @ =gUnknown_02024C08 - ldr r1, _0802ADB4 @ =gUnknown_02024A68 - ldrb r0, [r2] - ldrb r1, [r1] - cmp r0, r1 - bcs _0802AD84 - adds r4, r2, 0 - ldr r6, _0802ADB8 @ =gBitTable -_0802AD44: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, r5 - beq _0802AD66 - ldr r0, _0802ADBC @ =gUnknown_02024C0C - ldrb r1, [r0] - ldrb r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ands r1, r0 - ldr r2, _0802ADB4 @ =gUnknown_02024A68 - cmp r1, 0 - beq _0802AD7A -_0802AD66: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _0802ADB4 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - adds r2, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bcc _0802AD44 -_0802AD7A: - ldr r0, _0802ADB0 @ =gUnknown_02024C08 - ldrb r0, [r0] - ldrb r2, [r2] - cmp r0, r2 - bcc _0802ADC4 -_0802AD84: - ldr r3, _0802ADC0 @ =gUnknown_02024C10 - 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 _0802ADCC - .align 2, 0 -_0802ADA0: .4byte 0x02000000 -_0802ADA4: .4byte 0x000160dd -_0802ADA8: .4byte gUnknown_030041C0 -_0802ADAC: .4byte gBattleMons -_0802ADB0: .4byte gUnknown_02024C08 -_0802ADB4: .4byte gUnknown_02024A68 -_0802ADB8: .4byte gBitTable -_0802ADBC: .4byte gUnknown_02024C0C -_0802ADC0: .4byte gUnknown_02024C10 -_0802ADC4: - ldr r1, _0802ADD4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802ADCC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802ADD4: .4byte gUnknown_02024C10 - thumb_func_end atkE1_802CBE4 - - thumb_func_start sub_802ADD8 -sub_802ADD8: @ 802ADD8 - push {r4-r7,lr} - sub sp, 0x4 - ldr r6, _0802AE44 @ =gUnknown_02024C10 - ldr r0, [r6] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r5, _0802AE48 @ =gUnknown_02024A60 - strb r0, [r5] - ldr r4, _0802AE4C @ =gBattleMons - ldrb r0, [r5] - movs r1, 0x58 - mov r12, r1 - mov r1, r12 - muls r1, r0 - adds r0, r1, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _0802AE34 - adds r4, 0x4C - adds r1, r4 - movs r0, 0 - str r0, [r1] - ldr r2, _0802AE50 @ =gBitTable - ldr r1, _0802AE54 @ =0x02000000 - ldrb r3, [r5] - ldr r7, _0802AE58 @ =0x00016064 - adds r0, r3, r7 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0] - mov r0, r12 - muls r0, r3 - adds r0, r4 - str r0, [sp] - movs r0, 0 - movs r1, 0x28 - movs r3, 0x4 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution -_0802AE34: - ldr r0, [r6] - adds r0, 0x2 - str r0, [r6] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802AE44: .4byte gUnknown_02024C10 -_0802AE48: .4byte gUnknown_02024A60 -_0802AE4C: .4byte gBattleMons -_0802AE50: .4byte gBitTable -_0802AE54: .4byte 0x02000000 -_0802AE58: .4byte 0x00016064 - thumb_func_end sub_802ADD8 - - thumb_func_start atkE3_jumpiffainted -atkE3_jumpiffainted: @ 802AE5C - push {r4,lr} - ldr r4, _0802AE98 @ =gUnknown_02024C10 - ldr r0, [r4] - ldrb r0, [r0, 0x1] - bl sub_8015150 - ldr r1, _0802AE9C @ =gUnknown_02024A60 - strb r0, [r1] - ldr r2, _0802AEA0 @ =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0, 0x28] - cmp r0, 0 - bne _0802AEA4 - ldr r2, [r4] - 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, [r4] - b _0802AEAA - .align 2, 0 -_0802AE98: .4byte gUnknown_02024C10 -_0802AE9C: .4byte gUnknown_02024A60 -_0802AEA0: .4byte gBattleMons -_0802AEA4: - ldr r0, [r4] - adds r0, 0x6 - str r0, [r4] -_0802AEAA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end atkE3_jumpiffainted - - thumb_func_start sub_802AEB0 -sub_802AEB0: @ 802AEB0 - push {lr} - ldr r0, _0802AEC4 @ =gUnknown_0300428C - ldrb r0, [r0] - cmp r0, 0x7 - bhi _0802AF4C - lsls r0, 2 - ldr r1, _0802AEC8 @ =_0802AECC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802AEC4: .4byte gUnknown_0300428C -_0802AEC8: .4byte _0802AECC - .align 2, 0 -_0802AECC: - .4byte _0802AEEC - .4byte _0802AEF8 - .4byte _0802AF04 - .4byte _0802AF10 - .4byte _0802AF1C - .4byte _0802AF28 - .4byte _0802AF34 - .4byte _0802AF40 -_0802AEEC: - ldr r1, _0802AEF4 @ =gUnknown_02024D1E - movs r0, 0x2 - b _0802AF50 - .align 2, 0 -_0802AEF4: .4byte gUnknown_02024D1E -_0802AEF8: - ldr r1, _0802AF00 @ =gUnknown_02024D1E - movs r0, 0x1 - b _0802AF50 - .align 2, 0 -_0802AF00: .4byte gUnknown_02024D1E -_0802AF04: - ldr r1, _0802AF0C @ =gUnknown_02024D1E - movs r0, 0x1B - b _0802AF50 - .align 2, 0 -_0802AF0C: .4byte gUnknown_02024D1E -_0802AF10: - ldr r1, _0802AF18 @ =gUnknown_02024D1E - movs r0, 0x17 - b _0802AF50 - .align 2, 0 -_0802AF18: .4byte gUnknown_02024D1E -_0802AF1C: - ldr r1, _0802AF24 @ =gUnknown_02024D1E - movs r0, 0x16 - b _0802AF50 - .align 2, 0 -_0802AF24: .4byte gUnknown_02024D1E -_0802AF28: - ldr r1, _0802AF30 @ =gUnknown_02024D1E - movs r0, 0x18 - b _0802AF50 - .align 2, 0 -_0802AF30: .4byte gUnknown_02024D1E -_0802AF34: - ldr r1, _0802AF3C @ =gUnknown_02024D1E - movs r0, 0x7 - b _0802AF50 - .align 2, 0 -_0802AF3C: .4byte gUnknown_02024D1E -_0802AF40: - ldr r1, _0802AF48 @ =gUnknown_02024D1E - movs r0, 0x8 - b _0802AF50 - .align 2, 0 -_0802AF48: .4byte gUnknown_02024D1E -_0802AF4C: - ldr r1, _0802AF60 @ =gUnknown_02024D1E - movs r0, 0x5 -_0802AF50: - strb r0, [r1, 0x3] - ldr r1, _0802AF64 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0802AF60: .4byte gUnknown_02024D1E -_0802AF64: .4byte gUnknown_02024C10 - thumb_func_end sub_802AEB0 - - thumb_func_start sub_802AF68 -sub_802AF68: @ 802AF68 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r7, 0 - ldr r0, _0802AFB4 @ =gBaseStats - mov r9, r0 - ldr r1, _0802AFB8 @ =gPickupItems - mov r8, r1 -_0802AF7A: - movs r0, 0x64 - adds r4, r7, 0 - muls r4, r0 - ldr r0, _0802AFBC @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _0802AFC0 - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x17] - b _0802AFCA - .align 2, 0 -_0802AFB4: .4byte gBaseStats -_0802AFB8: .4byte gPickupItems -_0802AFBC: .4byte gPlayerParty -_0802AFC0: - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x16] -_0802AFCA: - adds r4, r7, 0x1 - cmp r0, 0x35 - bne _0802B032 - cmp r5, 0 - beq _0802B032 - movs r0, 0xCE - lsls r0, 1 - cmp r5, r0 - beq _0802B032 - cmp r6, 0 - bne _0802B032 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _0802B032 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - mov r1, r8 - ldrh r0, [r1, 0x2] - cmp r0, r3 - bgt _0802B020 - adds r1, 0x2 -_0802B012: - adds r1, 0x4 - adds r2, 0x2 - cmp r2, 0x11 - bgt _0802B020 - ldrh r0, [r1] - cmp r0, r3 - ble _0802B012 -_0802B020: - movs r0, 0x64 - muls r0, r7 - ldr r1, _0802B04C @ =gPlayerParty - adds r0, r1 - lsls r2, 1 - add r2, r8 - movs r1, 0xC - bl SetMonData -_0802B032: - adds r7, r4, 0 - cmp r7, 0x5 - ble _0802AF7A - ldr r1, _0802B050 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B04C: .4byte gPlayerParty -_0802B050: .4byte gUnknown_02024C10 - thumb_func_end sub_802AF68 - - thumb_func_start atkE6_castform_transform -atkE6_castform_transform: @ 802B054 - push {r4,lr} - ldr r4, _0802B0A8 @ =gUnknown_02024A60 - ldr r3, _0802B0AC @ =0x02000000 - ldr r1, _0802B0B0 @ =0x00016003 - adds r0, r3, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _0802B0B4 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _0802B086 - ldr r0, _0802B0B8 @ =0x0001609b - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x80 - orrs r0, r1 - strb r0, [r2] -_0802B086: - ldr r1, _0802B0B8 @ =0x0001609b - adds r0, r3, r1 - ldrb r2, [r0] - movs r0, 0 - movs r1, 0 - bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim - ldrb r0, [r4] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B0BC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802B0A8: .4byte gUnknown_02024A60 -_0802B0AC: .4byte 0x02000000 -_0802B0B0: .4byte 0x00016003 -_0802B0B4: .4byte gBattleMons -_0802B0B8: .4byte 0x0001609b -_0802B0BC: .4byte gUnknown_02024C10 - thumb_func_end atkE6_castform_transform - - thumb_func_start atkE7_castform_switch -atkE7_castform_switch: @ 802B0C0 - push {r4,r5,lr} - ldr r1, _0802B0F4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r5, _0802B0F8 @ =0x02000000 - ldr r1, _0802B0FC @ =0x00016003 - adds r0, r5, r1 - ldrb r0, [r0] - bl castform_switch - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0802B0EC - ldr r0, _0802B100 @ =gUnknown_081D977D - bl b_push_move_exec - subs r1, r4, 0x1 - ldr r2, _0802B104 @ =0x0001609b - adds r0, r5, r2 - strb r1, [r0] -_0802B0EC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802B0F4: .4byte gUnknown_02024C10 -_0802B0F8: .4byte 0x02000000 -_0802B0FC: .4byte 0x00016003 -_0802B100: .4byte gUnknown_081D977D -_0802B104: .4byte 0x0001609b - thumb_func_end atkE7_castform_switch - - thumb_func_start atkE8_settypebasedhalvers -atkE8_settypebasedhalvers: @ 802B108 - push {r4,lr} - movs r4, 0 - ldr r2, _0802B144 @ =gBattleMoves - ldr r0, _0802B148 @ =gUnknown_02024BE6 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0xC9 - bne _0802B158 - ldr r1, _0802B14C @ =gUnknown_02024C98 - ldr r0, _0802B150 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 9 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _0802B17C - orrs r1, r3 - str r1, [r2] - ldr r0, _0802B154 @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - b _0802B180 - .align 2, 0 -_0802B144: .4byte gBattleMoves -_0802B148: .4byte gUnknown_02024BE6 -_0802B14C: .4byte gUnknown_02024C98 -_0802B150: .4byte gUnknown_02024C07 -_0802B154: .4byte gUnknown_02024D1E -_0802B158: - ldr r1, _0802B18C @ =gUnknown_02024C98 - ldr r0, _0802B190 @ =gUnknown_02024C07 - ldrb r0, [r0] - lsls r0, 2 - adds r2, r0, r1 - ldr r1, [r2] - movs r3, 0x80 - lsls r3, 10 - adds r0, r1, 0 - ands r0, r3 - cmp r0, 0 - bne _0802B17C - orrs r1, r3 - str r1, [r2] - ldr r1, _0802B194 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - movs r4, 0x1 -_0802B17C: - cmp r4, 0 - beq _0802B19C -_0802B180: - ldr r1, _0802B198 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802B1B6 - .align 2, 0 -_0802B18C: .4byte gUnknown_02024C98 -_0802B190: .4byte gUnknown_02024C07 -_0802B194: .4byte gUnknown_02024D1E -_0802B198: .4byte gUnknown_02024C10 -_0802B19C: - ldr r3, _0802B1BC @ =gUnknown_02024C10 - 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] -_0802B1B6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802B1BC: .4byte gUnknown_02024C10 - thumb_func_end atkE8_settypebasedhalvers - - thumb_func_start sub_802B1C0 -sub_802B1C0: @ 802B1C0 - push {lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0802B276 - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - bne _0802B276 - ldr r3, _0802B218 @ =word_2024DB8 - ldrb r0, [r3] - ldr r2, _0802B21C @ =0x02000000 - cmp r0, 0 - beq _0802B202 - ldr r0, _0802B220 @ =0x0001601f - adds r1, r2, r0 - movs r0, 0x2 - strb r0, [r1] -_0802B202: - ldrh r1, [r3] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - beq _0802B228 - ldr r0, _0802B224 @ =0x0001601c - adds r1, r2, r0 - movs r0, 0x8B - strb r0, [r1] - b _0802B276 - .align 2, 0 -_0802B218: .4byte word_2024DB8 -_0802B21C: .4byte 0x02000000 -_0802B220: .4byte 0x0001601f -_0802B224: .4byte 0x0001601c -_0802B228: - movs r0, 0x18 - ands r0, r1 - cmp r0, 0 - beq _0802B240 - ldr r0, _0802B23C @ =0x0001601c - adds r1, r2, r0 - movs r0, 0x85 - strb r0, [r1] - b _0802B276 - .align 2, 0 -_0802B23C: .4byte 0x0001601c -_0802B240: - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _0802B258 - ldr r0, _0802B254 @ =0x0001601c - adds r1, r2, r0 - movs r0, 0x8A - strb r0, [r1] - b _0802B276 - .align 2, 0 -_0802B254: .4byte 0x0001601c -_0802B258: - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0802B270 - ldr r0, _0802B26C @ =0x0001601c - adds r1, r2, r0 - movs r0, 0x8F - strb r0, [r1] - b _0802B276 - .align 2, 0 -_0802B26C: .4byte 0x0001601c -_0802B270: - ldr r1, _0802B284 @ =0x0001601c - adds r0, r2, r1 - strb r3, [r0] -_0802B276: - ldr r1, _0802B288 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0802B284: .4byte 0x0001601c -_0802B288: .4byte gUnknown_02024C10 - thumb_func_end sub_802B1C0 - - thumb_func_start atkEA_recycleitem -atkEA_recycleitem: @ 802B28C - push {r4-r7,lr} - sub sp, 0x4 - ldr r7, _0802B2F0 @ =gUnknown_02024A60 - ldr r0, _0802B2F4 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r7] - ldrb r2, [r7] - lsls r1, r2, 1 - ldr r0, _0802B2F8 @ =0x020160cc - adds r6, r1, r0 - ldrh r5, [r6] - cmp r5, 0 - beq _0802B308 - ldr r4, _0802B2FC @ =gBattleMons - movs r3, 0x58 - adds r0, r2, 0 - muls r0, r3 - adds r0, r4 - ldrh r0, [r0, 0x2E] - cmp r0, 0 - bne _0802B308 - ldr r1, _0802B300 @ =gUnknown_02024C04 - strh r5, [r1] - strh r0, [r6] - ldrb r0, [r7] - muls r0, r3 - adds r0, r4 - ldrh r1, [r1] - strh r1, [r0, 0x2E] - ldrb r0, [r7] - muls r0, r3 - adds r1, r4, 0 - adds r1, 0x2E - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0 - movs r3, 0x2 - bl dp01_build_cmdbuf_x02_a_b_varargs - ldrb r0, [r7] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B304 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802B322 - .align 2, 0 -_0802B2F0: .4byte gUnknown_02024A60 -_0802B2F4: .4byte gUnknown_02024C07 -_0802B2F8: .4byte 0x020160cc -_0802B2FC: .4byte gBattleMons -_0802B300: .4byte gUnknown_02024C04 -_0802B304: .4byte gUnknown_02024C10 -_0802B308: - ldr r3, _0802B32C @ =gUnknown_02024C10 - 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] -_0802B322: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B32C: .4byte gUnknown_02024C10 - thumb_func_end atkEA_recycleitem - - thumb_func_start atkEB_settypetoterrain -atkEB_settypetoterrain: @ 802B330 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0802B3A0 @ =gBattleMons - mov r8, r0 - ldr r7, _0802B3A4 @ =gUnknown_02024C07 - ldrb r0, [r7] - movs r6, 0x58 - muls r0, r6 - mov r1, r8 - adds r3, r0, r1 - movs r0, 0x21 - adds r0, r3 - mov r12, r0 - ldr r5, _0802B3A8 @ =gTerrainToType - ldr r4, _0802B3AC @ =gUnknown_0300428C - ldrb r0, [r4] - adds r0, r5 - ldrb r2, [r0] - mov r1, r12 - ldrb r0, [r1] - adds r1, r2, 0 - cmp r0, r1 - beq _0802B3B8 - adds r0, r3, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, r1 - beq _0802B3B8 - mov r0, r12 - strb r2, [r0] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - add r1, r8 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - adds r1, 0x22 - strb r0, [r1] - ldr r1, _0802B3B0 @ =gUnknown_030041C0 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x3 - strb r0, [r1, 0x1] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - strb r0, [r1, 0x2] - movs r0, 0xFF - strb r0, [r1, 0x3] - ldr r1, _0802B3B4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802B3D2 - .align 2, 0 -_0802B3A0: .4byte gBattleMons -_0802B3A4: .4byte gUnknown_02024C07 -_0802B3A8: .4byte gTerrainToType -_0802B3AC: .4byte gUnknown_0300428C -_0802B3B0: .4byte gUnknown_030041C0 -_0802B3B4: .4byte gUnknown_02024C10 -_0802B3B8: - ldr r3, _0802B3DC @ =gUnknown_02024C10 - 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] -_0802B3D2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B3DC: .4byte gUnknown_02024C10 - thumb_func_end atkEB_settypetoterrain - - thumb_func_start sub_802B3E0 -sub_802B3E0: @ 802B3E0 - push {r4,r5,lr} - ldr r5, _0802B45C @ =gUnknown_02024C07 - ldrb r0, [r5] - bl battle_get_per_side_status - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r4, _0802B460 @ =gUnknown_02024A60 - strb r0, [r4] - ldr r0, _0802B464 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802B490 - ldr r0, _0802B468 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _0802B46C @ =gBitTable - ldrb r3, [r4] - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802B490 - ldr r0, _0802B470 @ =gUnknown_02024C18 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _0802B490 - ldr r1, _0802B474 @ =gUnknown_02024C60 - lsls r0, r3, 1 - adds r0, r1 - ldrh r2, [r0] - cmp r2, 0xE4 - bne _0802B490 - ldr r0, _0802B478 @ =gUnknown_02024A76 - adds r0, r3, r0 - movs r1, 0xB - strb r1, [r0] - ldr r0, _0802B47C @ =gUnknown_02024BE6 - strh r2, [r0] - ldr r1, _0802B480 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - ldr r1, _0802B484 @ =0x02000000 - ldr r0, _0802B488 @ =0x00016002 - adds r2, r1, r0 - movs r0, 0x1 - strb r0, [r2] - ldrb r0, [r5] - ldr r2, _0802B48C @ =0x000160a7 - adds r1, r2 - strb r0, [r1] - ldrb r0, [r4] - strb r0, [r5] - b _0802B4AA - .align 2, 0 -_0802B45C: .4byte gUnknown_02024C07 -_0802B460: .4byte gUnknown_02024A60 -_0802B464: .4byte gUnknown_020239F8 -_0802B468: .4byte gUnknown_02024C0C -_0802B46C: .4byte gBitTable -_0802B470: .4byte gUnknown_02024C18 -_0802B474: .4byte gUnknown_02024C60 -_0802B478: .4byte gUnknown_02024A76 -_0802B47C: .4byte gUnknown_02024BE6 -_0802B480: .4byte gUnknown_02024C10 -_0802B484: .4byte 0x02000000 -_0802B488: .4byte 0x00016002 -_0802B48C: .4byte 0x000160a7 -_0802B490: - ldr r3, _0802B4B0 @ =gUnknown_02024C10 - 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] -_0802B4AA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802B4B0: .4byte gUnknown_02024C10 - thumb_func_end sub_802B3E0 - - thumb_func_start sub_802B4B4 -sub_802B4B4: @ 802B4B4 - push {r4,r5,lr} - ldr r1, _0802B4DC @ =gUnknown_02024C0A - ldr r3, _0802B4E0 @ =gUnknown_02024C07 - ldrb r0, [r3] - strb r0, [r1] - ldr r2, _0802B4E4 @ =gUnknown_02024C08 - lsls r0, 24 - lsrs r0, 24 - adds r4, r1, 0 - ldrb r1, [r2] - cmp r0, r1 - bne _0802B4F0 - ldr r0, _0802B4E8 @ =0x02000000 - ldr r5, _0802B4EC @ =0x00016003 - adds r1, r0, r5 - ldrb r1, [r1] - strb r1, [r2] - strb r1, [r3] - b _0802B4FA - .align 2, 0 -_0802B4DC: .4byte gUnknown_02024C0A -_0802B4E0: .4byte gUnknown_02024C07 -_0802B4E4: .4byte gUnknown_02024C08 -_0802B4E8: .4byte 0x02000000 -_0802B4EC: .4byte 0x00016003 -_0802B4F0: - ldr r0, _0802B510 @ =0x02000000 - ldr r3, _0802B514 @ =0x00016003 - adds r1, r0, r3 - ldrb r1, [r1] - strb r1, [r2] -_0802B4FA: - ldrb r1, [r4] - ldr r5, _0802B514 @ =0x00016003 - adds r0, r5 - strb r1, [r0] - ldr r1, _0802B518 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802B510: .4byte 0x02000000 -_0802B514: .4byte 0x00016003 -_0802B518: .4byte gUnknown_02024C10 - thumb_func_end sub_802B4B4 - - thumb_func_start sub_802B51C -sub_802B51C: @ 802B51C - push {r4,lr} - ldr r0, _0802B56C @ =gUnknown_02024C07 - ldrb r0, [r0] - bl battle_side_get_owner - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0802B570 @ =gUnknown_02024C80 - lsls r3, r0, 1 - adds r0, r3, r0 - lsls r0, 2 - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0 - bne _0802B544 - ldrb r2, [r4, 0x1] - cmp r2, 0 - beq _0802B58C -_0802B544: - ldr r2, _0802B574 @ =gUnknown_02024C7A - adds r2, r3, r2 - ldrh r1, [r2] - ldr r0, _0802B578 @ =0x0000fffe - ands r0, r1 - movs r3, 0 - ldr r1, _0802B57C @ =0x0000fffd - ands r0, r1 - strh r0, [r2] - strb r3, [r4] - strb r3, [r4, 0x1] - ldr r0, _0802B580 @ =0x02000000 - ldr r2, _0802B584 @ =0x00016002 - adds r1, r0, r2 - movs r2, 0x1 - strb r2, [r1] - ldr r3, _0802B588 @ =0x000160a1 - adds r0, r3 - b _0802B598 - .align 2, 0 -_0802B56C: .4byte gUnknown_02024C07 -_0802B570: .4byte gUnknown_02024C80 -_0802B574: .4byte gUnknown_02024C7A -_0802B578: .4byte 0x0000fffe -_0802B57C: .4byte 0x0000fffd -_0802B580: .4byte 0x02000000 -_0802B584: .4byte 0x00016002 -_0802B588: .4byte 0x000160a1 -_0802B58C: - ldr r0, _0802B5A8 @ =0x02000000 - ldr r3, _0802B5AC @ =0x00016002 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, _0802B5B0 @ =0x000160a1 - adds r0, r1 -_0802B598: - strb r2, [r0] - ldr r1, _0802B5B4 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802B5A8: .4byte 0x02000000 -_0802B5AC: .4byte 0x00016002 -_0802B5B0: .4byte 0x000160a1 -_0802B5B4: .4byte gUnknown_02024C10 - thumb_func_end sub_802B51C - - thumb_func_start sub_802B5B8 -sub_802B5B8: @ 802B5B8 - push {r4-r7,lr} - movs r4, 0 - ldr r0, _0802B5F8 @ =gUnknown_02024A64 - ldr r0, [r0] - cmp r0, 0 - beq _0802B5C6 - b _0802B94E -_0802B5C6: - ldr r5, _0802B5FC @ =gUnknown_02024A60 - ldr r0, _0802B600 @ =gUnknown_02024C07 - ldrb r0, [r0] - strb r0, [r5] - ldr r6, _0802B604 @ =gUnknown_02024C08 - movs r1, 0x1 - eors r0, r1 - strb r0, [r6] - ldr r0, _0802B608 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0802B614 - movs r0, 0 - movs r1, 0x5 - bl dp01_build_cmdbuf_x0D_a - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B60C @ =gUnknown_02024C10 - ldr r0, _0802B610 @ =gUnknown_081D9F35 - b _0802B94C - .align 2, 0 -_0802B5F8: .4byte gUnknown_02024A64 -_0802B5FC: .4byte gUnknown_02024A60 -_0802B600: .4byte gUnknown_02024C07 -_0802B604: .4byte gUnknown_02024C08 -_0802B608: .4byte gUnknown_020239F8 -_0802B60C: .4byte gUnknown_02024C10 -_0802B610: .4byte gUnknown_081D9F35 -_0802B614: - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0802B63C - movs r0, 0 - movs r1, 0x4 - bl dp01_build_cmdbuf_x0D_a - ldrb r0, [r5] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B634 @ =gUnknown_02024C10 - ldr r0, _0802B638 @ =gUnknown_081D9F00 - b _0802B94C - .align 2, 0 -_0802B634: .4byte gUnknown_02024C10 -_0802B638: .4byte gUnknown_081D9F00 -_0802B63C: - ldr r0, _0802B660 @ =gUnknown_02024C04 - ldrh r0, [r0] - cmp r0, 0x5 - bne _0802B66C - ldr r0, _0802B664 @ =0x02000000 - ldr r1, _0802B668 @ =0x00016089 - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r0, r1, 8 - subs r0, r1 - movs r1, 0x64 - bl __divsi3 - lsls r0, 24 - lsrs r5, r0, 24 - b _0802B684 - .align 2, 0 -_0802B660: .4byte gUnknown_02024C04 -_0802B664: .4byte 0x02000000 -_0802B668: .4byte 0x00016089 -_0802B66C: - ldr r3, _0802B6A0 @ =gBaseStats - ldr r2, _0802B6A4 @ =gBattleMons - ldrb r1, [r6] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r5, [r0, 0x8] -_0802B684: - ldr r2, _0802B6A8 @ =gUnknown_02024C04 - ldrh r0, [r2] - cmp r0, 0x5 - bhi _0802B68E - b _0802B784 -_0802B68E: - subs r0, 0x6 - cmp r0, 0x6 - bls _0802B696 - b _0802B78E -_0802B696: - lsls r0, 2 - ldr r1, _0802B6AC @ =_0802B6B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802B6A0: .4byte gBaseStats -_0802B6A4: .4byte gBattleMons -_0802B6A8: .4byte gUnknown_02024C04 -_0802B6AC: .4byte _0802B6B0 - .align 2, 0 -_0802B6B0: - .4byte _0802B6CC - .4byte _0802B6FC - .4byte _0802B70E - .4byte _0802B73C - .4byte _0802B76C - .4byte _0802B72E - .4byte _0802B72E -_0802B6CC: - ldr r2, _0802B6F4 @ =gBattleMons - ldr r0, _0802B6F8 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r1, 0xB - beq _0802B760 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0xB - beq _0802B760 - cmp r1, 0x6 - beq _0802B760 - cmp r0, 0x6 - beq _0802B760 - b _0802B72E - .align 2, 0 -_0802B6F4: .4byte gBattleMons -_0802B6F8: .4byte gUnknown_02024C08 -_0802B6FC: - bl sav1_map_get_light_level - lsls r0, 24 - lsrs r0, 24 - movs r4, 0xA - cmp r0, 0x5 - bne _0802B78E - movs r4, 0x23 - b _0802B78E -_0802B70E: - ldr r2, _0802B734 @ =gBattleMons - ldr r0, _0802B738 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x2A - ldrb r1, [r0] - cmp r1, 0x27 - bhi _0802B72E - movs r0, 0x28 - subs r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bhi _0802B78E -_0802B72E: - movs r4, 0xA - b _0802B78E - .align 2, 0 -_0802B734: .4byte gBattleMons -_0802B738: .4byte gUnknown_02024C08 -_0802B73C: - ldr r2, _0802B764 @ =gBattleMons - ldr r0, _0802B768 @ =gUnknown_02024C08 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - movs r4, 0xA - cmp r0, 0 - beq _0802B78E -_0802B760: - movs r4, 0x1E - b _0802B78E - .align 2, 0 -_0802B764: .4byte gBattleMons -_0802B768: .4byte gUnknown_02024C08 -_0802B76C: - ldr r0, _0802B780 @ =gUnknown_030042E0 - ldrb r0, [r0, 0x13] - adds r0, 0xA - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x28 - bls _0802B78E - movs r4, 0x28 - b _0802B78E - .align 2, 0 -_0802B780: .4byte gUnknown_030042E0 -_0802B784: - ldr r1, _0802B7F4 @ =gBallCatchBonuses - ldrh r0, [r2] - subs r0, 0x2 - adds r0, r1 - ldrb r4, [r0] -_0802B78E: - adds r0, r5, 0 - muls r0, r4 - movs r1, 0xA - bl __divsi3 - ldr r5, _0802B7F8 @ =gBattleMons - ldr r1, _0802B7FC @ =gUnknown_02024C08 - ldrb r1, [r1] - movs r7, 0x58 - adds r4, r1, 0 - muls r4, r7 - adds r3, r4, r5 - ldrh r2, [r3, 0x2C] - lsls r1, r2, 1 - adds r1, r2 - ldrh r2, [r3, 0x28] - lsls r2, 1 - subs r2, r1, r2 - muls r0, r2 - bl __divsi3 - adds r6, r0, 0 - adds r5, 0x4C - adds r4, r5 - ldr r4, [r4] - movs r0, 0x27 - ands r0, r4 - cmp r0, 0 - beq _0802B7CA - lsls r6, 1 -_0802B7CA: - ands r4, r7 - cmp r4, 0 - beq _0802B7DC - lsls r0, r6, 4 - subs r0, r6 - movs r1, 0xA - bl __udivsi3 - adds r6, r0, 0 -_0802B7DC: - ldr r1, _0802B800 @ =gUnknown_02024C04 - ldrh r0, [r1] - cmp r0, 0x5 - beq _0802B81C - cmp r0, 0x1 - bne _0802B808 - ldr r0, _0802B804 @ =gUnknown_030042E0 - ldrb r1, [r0, 0x5] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0, 0x5] - b _0802B81C - .align 2, 0 -_0802B7F4: .4byte gBallCatchBonuses -_0802B7F8: .4byte gBattleMons -_0802B7FC: .4byte gUnknown_02024C08 -_0802B800: .4byte gUnknown_02024C04 -_0802B804: .4byte gUnknown_030042E0 -_0802B808: - ldr r0, _0802B860 @ =gUnknown_030042E0 - ldrh r1, [r1] - adds r0, r1 - adds r1, r0, 0 - adds r1, 0x34 - ldrb r0, [r1] - cmp r0, 0xFE - bhi _0802B81C - adds r0, 0x1 - strb r0, [r1] -_0802B81C: - cmp r6, 0xFE - bls _0802B880 - movs r0, 0 - movs r1, 0x4 - bl dp01_build_cmdbuf_x0D_a - ldr r0, _0802B864 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - ldr r1, _0802B868 @ =gUnknown_02024C10 - ldr r0, _0802B86C @ =gUnknown_081D9EC2 - str r0, [r1] - ldr r1, _0802B870 @ =gUnknown_02024A6A - ldr r0, _0802B874 @ =gUnknown_02024C08 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802B878 @ =gEnemyParty - adds r0, r1 - ldr r2, _0802B87C @ =gUnknown_02024C04 - movs r1, 0x26 - bl SetMonData - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - beq _0802B90E - b _0802B938 - .align 2, 0 -_0802B860: .4byte gUnknown_030042E0 -_0802B864: .4byte gUnknown_02024A60 -_0802B868: .4byte gUnknown_02024C10 -_0802B86C: .4byte gUnknown_081D9EC2 -_0802B870: .4byte gUnknown_02024A6A -_0802B874: .4byte gUnknown_02024C08 -_0802B878: .4byte gEnemyParty -_0802B87C: .4byte gUnknown_02024C04 -_0802B880: - movs r0, 0xFF - lsls r0, 16 - adds r1, r6, 0 - bl __udivsi3 - bl Sqrt - lsls r0, 16 - lsrs r0, 16 - bl Sqrt - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, _0802B8A8 @ =0x000ffff0 - adds r1, r6, 0 - bl __udivsi3 - adds r6, r0, 0 - movs r4, 0 - b _0802B8B2 - .align 2, 0 -_0802B8A8: .4byte 0x000ffff0 -_0802B8AC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0802B8B2: - cmp r4, 0x3 - bhi _0802B8C2 - bl Random - lsls r0, 16 - lsrs r0, 16 - cmp r0, r6 - bcc _0802B8AC -_0802B8C2: - ldr r5, _0802B918 @ =gUnknown_02024C04 - ldrh r0, [r5] - cmp r0, 0x1 - bne _0802B8CC - movs r4, 0x4 -_0802B8CC: - movs r0, 0 - adds r1, r4, 0 - bl dp01_build_cmdbuf_x0D_a - ldr r0, _0802B91C @ =gUnknown_02024A60 - ldrb r0, [r0] - bl dp01_battle_side_mark_buffer_for_execution - cmp r4, 0x4 - bne _0802B944 - ldr r1, _0802B920 @ =gUnknown_02024C10 - ldr r0, _0802B924 @ =gUnknown_081D9EC2 - str r0, [r1] - ldr r1, _0802B928 @ =gUnknown_02024A6A - ldr r0, _0802B92C @ =gUnknown_02024C08 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802B930 @ =gEnemyParty - adds r0, r1 - movs r1, 0x26 - adds r2, r5, 0 - bl SetMonData - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _0802B938 -_0802B90E: - ldr r1, _0802B934 @ =gUnknown_02024D1E - movs r0, 0 - strb r0, [r1, 0x5] - b _0802B94E - .align 2, 0 -_0802B918: .4byte gUnknown_02024C04 -_0802B91C: .4byte gUnknown_02024A60 -_0802B920: .4byte gUnknown_02024C10 -_0802B924: .4byte gUnknown_081D9EC2 -_0802B928: .4byte gUnknown_02024A6A -_0802B92C: .4byte gUnknown_02024C08 -_0802B930: .4byte gEnemyParty -_0802B934: .4byte gUnknown_02024D1E -_0802B938: - ldr r1, _0802B940 @ =gUnknown_02024D1E - movs r0, 0x1 - strb r0, [r1, 0x5] - b _0802B94E - .align 2, 0 -_0802B940: .4byte gUnknown_02024D1E -_0802B944: - ldr r0, _0802B954 @ =gUnknown_02024D1E - strb r4, [r0, 0x5] - ldr r1, _0802B958 @ =gUnknown_02024C10 - ldr r0, _0802B95C @ =gUnknown_081D9F0A -_0802B94C: - str r0, [r1] -_0802B94E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802B954: .4byte gUnknown_02024D1E -_0802B958: .4byte gUnknown_02024C10 -_0802B95C: .4byte gUnknown_081D9F0A - thumb_func_end sub_802B5B8 - - thumb_func_start sub_802B960 -sub_802B960: @ 802B960 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r0, _0802B9C8 @ =gUnknown_02024A6A - mov r9, r0 - ldr r5, _0802B9CC @ =gUnknown_02024C07 - ldrb r0, [r5] - movs r4, 0x1 - eors r0, r4 - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, _0802B9D0 @ =gEnemyParty - adds r0, r6 - bl GiveMonToPlayer - ldr r2, _0802B9D4 @ =gUnknown_030042E0 - ldr r1, _0802B9D8 @ =gBattleMons - ldrb r0, [r5] - eors r4, r0 - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2, 0x28] - lsls r4, 1 - add r4, r9 - ldrh r0, [r4] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - adds r2, 0x2A - movs r1, 0x2 - bl GetMonData - ldr r1, _0802B9DC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802B9C8: .4byte gUnknown_02024A6A -_0802B9CC: .4byte gUnknown_02024C07 -_0802B9D0: .4byte gEnemyParty -_0802B9D4: .4byte gUnknown_030042E0 -_0802B9D8: .4byte gBattleMons -_0802B9DC: .4byte gUnknown_02024C10 - thumb_func_end sub_802B960 - - thumb_func_start sub_802B9E0 -sub_802B9E0: @ 802B9E0 - push {r4-r6,lr} - ldr r4, _0802BA20 @ =gBattleMons - ldr r6, _0802BA24 @ =gUnknown_02024C08 - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r0, r4 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - bl sub_8090D90 - lsls r0, 24 - cmp r0, 0 - beq _0802BA2C - ldr r3, _0802BA28 @ =gUnknown_02024C10 - 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 _0802BA82 - .align 2, 0 -_0802BA20: .4byte gBattleMons -_0802BA24: .4byte gUnknown_02024C08 -_0802BA28: .4byte gUnknown_02024C10 -_0802BA2C: - ldrb r0, [r6] - muls r0, r5 - adds r0, r4 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl sub_8090D90 - ldrb r0, [r6] - adds r2, r0, 0 - muls r2, r5 - adds r0, r2, r4 - ldrh r0, [r0] - cmp r0, 0xC9 - bne _0802BA5C - ldr r0, _0802BA88 @ =gSaveBlock2 - adds r1, r4, 0 - adds r1, 0x48 - adds r1, r2, r1 - ldr r1, [r1] - str r1, [r0, 0x1C] -_0802BA5C: - ldrb r0, [r6] - adds r2, r0, 0 - muls r2, r5 - adds r0, r2, r4 - ldrh r1, [r0] - movs r0, 0x9A - lsls r0, 1 - cmp r1, r0 - bne _0802BA7A - ldr r0, _0802BA88 @ =gSaveBlock2 - adds r1, r4, 0 - adds r1, 0x48 - adds r1, r2, r1 - ldr r1, [r1] - str r1, [r0, 0x20] -_0802BA7A: - ldr r1, _0802BA8C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] -_0802BA82: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802BA88: .4byte gSaveBlock2 -_0802BA8C: .4byte gUnknown_02024C10 - thumb_func_end sub_802B9E0 - - thumb_func_start sub_802BA90 -sub_802BA90: @ 802BA90 - push {r4-r7,lr} - sub sp, 0x4 - ldr r7, _0802BAA8 @ =gUnknown_02024D1E - ldrb r1, [r7] - cmp r1, 0x1 - beq _0802BAC6 - cmp r1, 0x1 - bgt _0802BAAC - cmp r1, 0 - beq _0802BAB8 - b _0802BBC4 - .align 2, 0 -_0802BAA8: .4byte gUnknown_02024D1E -_0802BAAC: - cmp r1, 0x2 - beq _0802BB10 - cmp r1, 0x3 - bne _0802BAB6 - b _0802BBB0 -_0802BAB6: - b _0802BBC4 -_0802BAB8: - movs r0, 0x1 - negs r0, r0 - str r1, [sp] - movs r1, 0 - movs r2, 0 - movs r3, 0x10 - b _0802BB6E -_0802BAC6: - ldr r0, _0802BB04 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802BBC4 - ldr r4, _0802BB08 @ =gBattleMons - ldr r6, _0802BB0C @ =gUnknown_02024C08 - ldrb r0, [r6] - movs r5, 0x58 - muls r0, r5 - adds r0, r4 - ldrh r0, [r0] - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r6] - adds r2, r1, 0 - muls r2, r5 - adds r1, r4, 0 - adds r1, 0x54 - adds r1, r2, r1 - ldr r1, [r1] - adds r4, 0x48 - adds r2, r4 - ldr r2, [r2] - bl sub_809070C - strb r0, [r7, 0x1] - b _0802BB72 - .align 2, 0 -_0802BB04: .4byte gPaletteFade -_0802BB08: .4byte gBattleMons -_0802BB0C: .4byte gUnknown_02024C08 -_0802BB10: - ldr r0, _0802BB7C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802BBC4 - ldr r0, _0802BB80 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _0802BB84 @ =sub_800F808 - cmp r1, r0 - bne _0802BBC4 - ldr r2, _0802BB88 @ =gTasks - ldrb r1, [r7, 0x1] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r4, [r0, 0x4] - cmp r4, 0 - bne _0802BBC4 - ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building - ldr r1, _0802BB90 @ =0x06008000 - bl LZDecompressVram - ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building - ldr r1, _0802BB98 @ =0x0600d000 - bl LZDecompressVram - ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower - movs r1, 0x20 - movs r2, 0x60 - bl LoadCompressedPalette - ldr r1, _0802BBA0 @ =REG_BG3CNT - ldr r2, _0802BBA4 @ =0x00005a0b - adds r0, r2, 0 - strh r0, [r1] - ldr r1, _0802BBA8 @ =gUnknown_030041B0 - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, _0802BBAC @ =0x0000fffc - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 -_0802BB6E: - bl BeginNormalPaletteFade -_0802BB72: - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - b _0802BBC4 - .align 2, 0 -_0802BB7C: .4byte gPaletteFade -_0802BB80: .4byte gMain -_0802BB84: .4byte sub_800F808 -_0802BB88: .4byte gTasks -_0802BB8C: .4byte gBattleTerrainTiles_Building -_0802BB90: .4byte 0x06008000 -_0802BB94: .4byte gBattleTerrainTilemap_Building -_0802BB98: .4byte 0x0600d000 -_0802BB9C: .4byte gBattleTerrainPalette_BattleTower -_0802BBA0: .4byte REG_BG3CNT -_0802BBA4: .4byte 0x00005a0b -_0802BBA8: .4byte gUnknown_030041B0 -_0802BBAC: .4byte 0x0000fffc -_0802BBB0: - ldr r0, _0802BBCC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802BBC4 - ldr r1, _0802BBD0 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] -_0802BBC4: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802BBCC: .4byte gPaletteFade -_0802BBD0: .4byte gUnknown_02024C10 - thumb_func_end sub_802BA90 - - thumb_func_start sub_802BBD4 -sub_802BBD4: @ 802BBD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r12, r1 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 24 - lsrs r7, r3, 24 - lsls r4, 24 - lsrs r4, 24 - mov r8, r4 - mov r2, r12 - cmp r2, r7 - bgt _0802BC5A - lsls r1, r6, 1 - ldr r0, _0802BC20 @ =0x0600c000 - adds r1, r0 - mov r9, r1 -_0802BC06: - adds r1, r6, 0 - adds r0, r2, 0x1 - mov r10, r0 - cmp r1, r5 - bgt _0802BC54 - lsls r0, r2, 6 - mov r4, r9 - adds r3, r4, r0 -_0802BC16: - cmp r2, r12 - bne _0802BC28 - ldr r0, _0802BC24 @ =0x00001022 - b _0802BC36 - .align 2, 0 -_0802BC20: .4byte 0x0600c000 -_0802BC24: .4byte 0x00001022 -_0802BC28: - cmp r2, r7 - bne _0802BC34 - ldr r0, _0802BC30 @ =0x00001028 - b _0802BC36 - .align 2, 0 -_0802BC30: .4byte 0x00001028 -_0802BC34: - ldr r0, _0802BC68 @ =0x00001025 -_0802BC36: - cmp r1, r6 - beq _0802BC42 - adds r0, 0x1 - cmp r1, r5 - bne _0802BC42 - adds r0, 0x1 -_0802BC42: - mov r4, r8 - cmp r4, 0 - beq _0802BC4A - movs r0, 0 -_0802BC4A: - strh r0, [r3] - adds r3, 0x2 - adds r1, 0x1 - cmp r1, r5 - ble _0802BC16 -_0802BC54: - mov r2, r10 - cmp r2, r7 - ble _0802BC06 -_0802BC5A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802BC68: .4byte 0x00001025 - thumb_func_end sub_802BBD4 - - thumb_func_start sub_802BC6C -sub_802BC6C: @ 802BC6C - push {lr} - ldr r0, _0802BC88 @ =gUnknown_02024D1E - ldrb r1, [r0, 0x1] - lsls r1, 28 - movs r0, 0x90 - lsls r0, 23 - adds r1, r0 - lsrs r1, 24 - movs r0, 0xC8 - bl sub_814A880 - pop {r0} - bx r0 - .align 2, 0 -_0802BC88: .4byte gUnknown_02024D1E - thumb_func_end sub_802BC6C - - thumb_func_start nullsub_6 -nullsub_6: @ 802BC8C - bx lr - thumb_func_end nullsub_6 - - thumb_func_start atkF3_receive_new_pokemon_maybe -atkF3_receive_new_pokemon_maybe: @ 802BC90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, _0802BCB4 @ =gUnknown_02024D1E - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x4 - bls _0802BCA8 - b _0802BEDA -_0802BCA8: - lsls r0, r1, 2 - ldr r1, _0802BCB8 @ =_0802BCBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802BCB4: .4byte gUnknown_02024D1E -_0802BCB8: .4byte _0802BCBC - .align 2, 0 -_0802BCBC: - .4byte _0802BCD0 - .4byte _0802BCEC - .4byte _0802BD84 - .4byte _0802BE50 - .4byte _0802BEA4 -_0802BCD0: - bl sub_8023A80 - ldr r0, _0802BCE8 @ =gUnknown_02024D1E - ldrb r1, [r0] - adds r1, 0x1 - movs r2, 0 - strb r1, [r0] - strb r2, [r0, 0x1] - bl sub_802BC6C - b _0802BEDA - .align 2, 0 -_0802BCE8: .4byte gUnknown_02024D1E -_0802BCEC: - ldr r0, _0802BD60 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0802BD10 - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0802BD10 - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0 - strb r0, [r4, 0x1] - bl sub_802BC6C -_0802BD10: - ldr r0, _0802BD60 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0802BD36 - ldr r4, _0802BD64 @ =gUnknown_02024D1E - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _0802BD36 - movs r0, 0x5 - bl PlaySE - bl nullsub_6 - movs r0, 0x1 - strb r0, [r4, 0x1] - bl sub_802BC6C -_0802BD36: - ldr r0, _0802BD60 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802BD68 - movs r0, 0x5 - bl PlaySE - ldr r1, _0802BD64 @ =gUnknown_02024D1E - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _0802BD7A - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x3 - bl BeginFastPaletteFade - b _0802BEDA - .align 2, 0 -_0802BD60: .4byte gMain -_0802BD64: .4byte gUnknown_02024D1E -_0802BD68: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0802BD72 - b _0802BEDA -_0802BD72: - movs r0, 0x5 - bl PlaySE - ldr r1, _0802BD80 @ =gUnknown_02024D1E -_0802BD7A: - movs r0, 0x4 - strb r0, [r1] - b _0802BEDA - .align 2, 0 -_0802BD80: .4byte gUnknown_02024D1E -_0802BD84: - ldr r0, _0802BE34 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0802BD92 - b _0802BEDA -_0802BD92: - ldr r7, _0802BE38 @ =gUnknown_02024A6A - ldr r0, _0802BE3C @ =gUnknown_02024C07 - mov r10, r0 - ldrb r0, [r0] - movs r4, 0x1 - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0x64 - mov r9, r1 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - ldr r1, _0802BE40 @ =gEnemyParty - mov r8, r1 - add r0, r8 - movs r1, 0x2 - ldr r2, _0802BE44 @ =0x02016079 - bl GetMonData - mov r1, r10 - ldrb r0, [r1] - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - movs r1, 0xB - bl GetMonData - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - mov r1, r10 - ldrb r0, [r1] - eors r0, r4 - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - bl GetMonGender - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - mov r1, r10 - ldrb r0, [r1] - eors r4, r0 - lsls r4, 1 - adds r4, r7 - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - add r0, r8 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, _0802BE48 @ =sub_800F808 - str r0, [sp, 0x4] - movs r0, 0x2 - ldr r1, _0802BE44 @ =0x02016079 - adds r2, r6, 0 - adds r3, r5, 0 - bl DoNamingScreen - ldr r1, _0802BE4C @ =gUnknown_02024D1E - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0802BEDA - .align 2, 0 -_0802BE34: .4byte gPaletteFade -_0802BE38: .4byte gUnknown_02024A6A -_0802BE3C: .4byte gUnknown_02024C07 -_0802BE40: .4byte gEnemyParty -_0802BE44: .4byte 0x02016079 -_0802BE48: .4byte sub_800F808 -_0802BE4C: .4byte gUnknown_02024D1E -_0802BE50: - ldr r0, _0802BE88 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _0802BE8C @ =sub_800F808 - cmp r1, r0 - bne _0802BEDA - ldr r0, _0802BE90 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802BEDA - ldr r2, _0802BE94 @ =gUnknown_02024A6A - ldr r0, _0802BE98 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x1 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802BE9C @ =gEnemyParty - adds r0, r1 - ldr r2, _0802BEA0 @ =0x02016079 - movs r1, 0x2 - bl SetMonData - b _0802BEC0 - .align 2, 0 -_0802BE88: .4byte gMain -_0802BE8C: .4byte sub_800F808 -_0802BE90: .4byte gPaletteFade -_0802BE94: .4byte gUnknown_02024A6A -_0802BE98: .4byte gUnknown_02024C07 -_0802BE9C: .4byte gEnemyParty -_0802BEA0: .4byte 0x02016079 -_0802BEA4: - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _0802BEC0 - ldr r1, _0802BEBC @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x5 - str r0, [r1] - b _0802BEDA - .align 2, 0 -_0802BEBC: .4byte gUnknown_02024C10 -_0802BEC0: - ldr r3, _0802BEEC @ =gUnknown_02024C10 - 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] -_0802BEDA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802BEEC: .4byte gUnknown_02024C10 - thumb_func_end atkF3_receive_new_pokemon_maybe - - thumb_func_start sub_802BEF0 -sub_802BEF0: @ 802BEF0 - ldr r2, _0802BF10 @ =gBattleMons - ldr r0, _0802BF14 @ =gUnknown_02024C07 - ldrb r1, [r0] - movs r0, 0x58 - muls r1, r0 - adds r1, r2 - ldr r0, _0802BF18 @ =gUnknown_02024BEC - ldr r2, [r0] - ldrh r0, [r1, 0x28] - subs r0, r2 - strh r0, [r1, 0x28] - ldr r1, _0802BF1C @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_0802BF10: .4byte gBattleMons -_0802BF14: .4byte gUnknown_02024C07 -_0802BF18: .4byte gUnknown_02024BEC -_0802BF1C: .4byte gUnknown_02024C10 - thumb_func_end sub_802BEF0 - - thumb_func_start sub_802BF20 -sub_802BF20: @ 802BF20 - ldr r1, _0802BF3C @ =gBattleMons - ldr r0, _0802BF40 @ =gUnknown_02024C07 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x4C - adds r0, r1 - movs r1, 0 - str r1, [r0] - ldr r1, _0802BF44 @ =gUnknown_02024C10 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - bx lr - .align 2, 0 -_0802BF3C: .4byte gBattleMons -_0802BF40: .4byte gUnknown_02024C07 -_0802BF44: .4byte gUnknown_02024C10 - thumb_func_end sub_802BF20 - - thumb_func_start sub_802BF48 -sub_802BF48: @ 802BF48 - ldr r1, _0802BF50 @ =gUnknown_02024A7F - movs r0, 0xC - strb r0, [r1] - bx lr - .align 2, 0 -_0802BF50: .4byte gUnknown_02024A7F - thumb_func_end sub_802BF48 - - thumb_func_start sub_802BF54 -sub_802BF54: @ 802BF54 - ldr r1, _0802BF64 @ =gUnknown_02024A7F - movs r0, 0xC - strb r0, [r1] - ldr r1, _0802BF68 @ =gUnknown_02024A7E - ldr r0, _0802BF6C @ =gUnknown_02024A68 - ldrb r0, [r0] - strb r0, [r1] - bx lr - .align 2, 0 -_0802BF64: .4byte gUnknown_02024A7F -_0802BF68: .4byte gUnknown_02024A7E -_0802BF6C: .4byte gUnknown_02024A68 - thumb_func_end sub_802BF54 - - thumb_func_start nullsub_91 -nullsub_91: @ 802BF70 - bx lr - thumb_func_end nullsub_91 - - thumb_func_start sub_802BF74 -sub_802BF74: @ 802BF74 - ldr r1, _0802BF8C @ =gUnknown_03004330 - ldr r0, _0802BF90 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802BF94 @ =sub_802C014 - str r1, [r0] - ldr r1, _0802BF98 @ =gUnknown_02024E6D - movs r0, 0 - strb r0, [r1] - bx lr - .align 2, 0 -_0802BF8C: .4byte gUnknown_03004330 -_0802BF90: .4byte gUnknown_02024A60 -_0802BF94: .4byte sub_802C014 -_0802BF98: .4byte gUnknown_02024E6D - thumb_func_end sub_802BF74 - - thumb_func_start dp01_tbl1_exec_completed -dp01_tbl1_exec_completed: @ 802BF9C - push {r4,lr} - sub sp, 0x4 - ldr r1, _0802BFDC @ =gUnknown_03004330 - ldr r4, _0802BFE0 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802BFE4 @ =sub_802C014 - str r1, [r0] - ldr r0, _0802BFE8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802BFF0 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, _0802BFEC @ =gUnknown_02023A60 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _0802C002 - .align 2, 0 -_0802BFDC: .4byte gUnknown_03004330 -_0802BFE0: .4byte gUnknown_02024A60 -_0802BFE4: .4byte sub_802C014 -_0802BFE8: .4byte gUnknown_020239F8 -_0802BFEC: .4byte gUnknown_02023A60 -_0802BFF0: - ldr r2, _0802C00C @ =gUnknown_02024A64 - ldr r1, _0802C010 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0802C002: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C00C: .4byte gUnknown_02024A64 -_0802C010: .4byte gBitTable - thumb_func_end dp01_tbl1_exec_completed - - thumb_func_start sub_802C014 -sub_802C014: @ 802C014 - push {lr} - ldr r2, _0802C048 @ =gUnknown_02024A64 - ldr r1, _0802C04C @ =gBitTable - ldr r0, _0802C050 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0802C060 - ldr r0, _0802C054 @ =gUnknown_02023A60 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _0802C05C - ldr r0, _0802C058 @ =gUnknown_081FAD98 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _0802C060 - .align 2, 0 -_0802C048: .4byte gUnknown_02024A64 -_0802C04C: .4byte gBitTable -_0802C050: .4byte gUnknown_02024A60 -_0802C054: .4byte gUnknown_02023A60 -_0802C058: .4byte gUnknown_081FAD98 -_0802C05C: - bl dp01_tbl1_exec_completed -_0802C060: - pop {r0} - bx r0 - thumb_func_end sub_802C014 - - thumb_func_start bx_0802E404 -bx_0802E404: @ 802C064 - push {lr} - ldr r2, _0802C08C @ =gSprites - ldr r1, _0802C090 @ =gUnknown_02024BE0 - ldr r0, _0802C094 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x24 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _0802C086 - bl dp01_tbl1_exec_completed -_0802C086: - pop {r0} - bx r0 - .align 2, 0 -_0802C08C: .4byte gSprites -_0802C090: .4byte gUnknown_02024BE0 -_0802C094: .4byte gUnknown_02024A60 - thumb_func_end bx_0802E404 - - thumb_func_start sub_802C098 -sub_802C098: @ 802C098 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, _0802C0FC @ =gUnknown_02023A60 - ldr r4, _0802C100 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r2, r0, 9 - adds r1, r7, 0x2 - adds r1, r2, r1 - ldrb r5, [r1] - adds r1, r7, 0x3 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r5, r1 - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldr r0, _0802C104 @ =gMain - ldrh r1, [r0, 0x2E] - movs r2, 0x1 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0802C13E - movs r0, 0x5 - bl PlaySE - bl sub_814A7FC - ldr r1, _0802C108 @ =gUnknown_02024E60 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0802C11C - cmp r0, 0x1 - bgt _0802C10C - cmp r0, 0 - beq _0802C116 - b _0802C138 - .align 2, 0 -_0802C0FC: .4byte gUnknown_02023A60 -_0802C100: .4byte gUnknown_02024A60 -_0802C104: .4byte gMain -_0802C108: .4byte gUnknown_02024E60 -_0802C10C: - cmp r0, 0x2 - beq _0802C122 - cmp r0, 0x3 - beq _0802C12E - b _0802C138 -_0802C116: - movs r0, 0x1 - movs r1, 0 - b _0802C126 -_0802C11C: - movs r0, 0x1 - movs r1, 0x1 - b _0802C126 -_0802C122: - movs r0, 0x1 - movs r1, 0x2 -_0802C126: - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - b _0802C138 -_0802C12E: - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb -_0802C138: - bl dp01_tbl1_exec_completed - b _0802C2AC -_0802C13E: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0802C178 - ldr r5, _0802C174 @ =gUnknown_02024E60 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0802C158 - b _0802C2AC -_0802C158: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl nullsub_8 - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x1 - b _0802C200 - .align 2, 0 -_0802C174: .4byte gUnknown_02024E60 -_0802C178: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0802C1B0 - ldr r5, _0802C1AC @ =gUnknown_02024E60 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0802C192 - b _0802C2AC -_0802C192: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl nullsub_8 - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x1 - b _0802C200 - .align 2, 0 -_0802C1AC: .4byte gUnknown_02024E60 -_0802C1B0: - movs r0, 0x40 - mov r8, r0 - ands r0, r1 - cmp r0, 0 - beq _0802C1D0 - ldr r5, _0802C1CC @ =gUnknown_02024E60 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802C2AC - b _0802C1E8 - .align 2, 0 -_0802C1CC: .4byte gUnknown_02024E60 -_0802C1D0: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0802C218 - ldr r5, _0802C214 @ =gUnknown_02024E60 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0802C2AC -_0802C1E8: - movs r0, 0x5 - bl PlaySE - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl nullsub_8 - ldrb r1, [r4] - adds r1, r5 - ldrb r0, [r1] - movs r2, 0x2 -_0802C200: - eors r0, r2 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl sub_802E3E4 - b _0802C2AC - .align 2, 0 -_0802C214: .4byte gUnknown_02024E60 -_0802C218: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802C2A0 - ldr r6, _0802C294 @ =gUnknown_020239F8 - ldrh r1, [r6] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _0802C2AC - ldrb r0, [r4] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0802C2AC - movs r0, 0 - bl battle_get_side_with_given_state - ldr r1, _0802C298 @ =gUnknown_02024C0C - ldrb r1, [r1] - ldr r2, _0802C29C @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0802C2AC - ldrh r1, [r6] - mov r0, r8 - ands r0, r1 - cmp r0, 0 - bne _0802C2AC - ldrb r0, [r4] - lsls r0, 9 - adds r1, r7, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0802C278 - cmp r5, 0xC - bhi _0802C2AC - adds r0, r5, 0 - movs r1, 0x1 - bl AddBagItem -_0802C278: - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - movs r1, 0xC - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed - bl sub_814A7FC - b _0802C2AC - .align 2, 0 -_0802C294: .4byte gUnknown_020239F8 -_0802C298: .4byte gUnknown_02024C0C -_0802C29C: .4byte gBitTable -_0802C2A0: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0802C2AC - bl sub_804454C -_0802C2AC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_802C098 - - thumb_func_start unref_sub_802C2B8 -unref_sub_802C2B8: @ 802C2B8 - push {r4,lr} - ldr r4, _0802C2E0 @ =gUnknown_02024A60 - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - ldr r1, _0802C2E4 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802C2E8 @ =sub_802C2EC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802C2E0: .4byte gUnknown_02024A60 -_0802C2E4: .4byte gUnknown_03004330 -_0802C2E8: .4byte sub_802C2EC - thumb_func_end unref_sub_802C2B8 - - thumb_func_start sub_802C2EC -sub_802C2EC: @ 802C2EC - push {r4,r5,lr} - sub sp, 0x4 - ldr r1, _0802C384 @ =gUnknown_081FAE7C - mov r0, sp - movs r2, 0x4 - bl memcpy - ldr r0, _0802C388 @ =gUnknown_03004344 - ldrb r0, [r0] - movs r1, 0x1 - movs r2, 0xF - movs r3, 0x1 - bl dp11b_obj_instanciate - movs r4, 0 - ldr r0, _0802C38C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r0, 0 - beq _0802C32E -_0802C312: - ldr r0, _0802C388 @ =gUnknown_03004344 - ldrb r0, [r0] - cmp r4, r0 - beq _0802C324 - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0x1 - bl dp11b_obj_free -_0802C324: - adds r4, 0x1 - ldr r0, _0802C38C @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r4, r0 - blt _0802C312 -_0802C32E: - ldr r0, _0802C390 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802C3A8 - bl sub_814A7FC - movs r0, 0x5 - bl PlaySE - ldr r2, _0802C394 @ =gSprites - ldr r1, _0802C398 @ =gUnknown_02024BE0 - ldr r4, _0802C388 @ =gUnknown_03004344 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0802C39C @ =sub_8010574 - str r1, [r0] - ldr r1, _0802C3A0 @ =gUnknown_02024E64 - ldr r0, _0802C3A4 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - ldrb r0, [r4] - lsls r0, 8 - orrs r2, r0 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - bl dp01_tbl1_exec_completed - b _0802C658 - .align 2, 0 -_0802C384: .4byte gUnknown_081FAE7C -_0802C388: .4byte gUnknown_03004344 -_0802C38C: .4byte gUnknown_02024A68 -_0802C390: .4byte gMain -_0802C394: .4byte gSprites -_0802C398: .4byte gUnknown_02024BE0 -_0802C39C: .4byte sub_8010574 -_0802C3A0: .4byte gUnknown_02024E64 -_0802C3A4: .4byte gUnknown_02024A60 -_0802C3A8: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802C41C - movs r0, 0x5 - bl PlaySE - ldr r2, _0802C400 @ =gSprites - ldr r1, _0802C404 @ =gUnknown_02024BE0 - ldr r5, _0802C408 @ =gUnknown_03004344 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0802C40C @ =sub_8010574 - str r1, [r0] - ldr r1, _0802C410 @ =gUnknown_03004330 - ldr r4, _0802C414 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802C418 @ =sub_802C68C - str r1, [r0] - ldrb r0, [r4] - movs r1, 0x1 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldrb r0, [r4] - movs r1, 0 - movs r2, 0x7 - movs r3, 0x1 - bl dp11b_obj_instanciate - ldrb r0, [r5] - movs r1, 0x1 - bl dp11b_obj_free - b _0802C658 - .align 2, 0 -_0802C400: .4byte gSprites -_0802C404: .4byte gUnknown_02024BE0 -_0802C408: .4byte gUnknown_03004344 -_0802C40C: .4byte sub_8010574 -_0802C410: .4byte gUnknown_03004330 -_0802C414: .4byte gUnknown_02024A60 -_0802C418: .4byte sub_802C68C -_0802C41C: - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _0802C426 - b _0802C540 -_0802C426: - movs r0, 0x5 - bl PlaySE - ldr r2, _0802C458 @ =gSprites - ldr r1, _0802C45C @ =gUnknown_02024BE0 - ldr r3, _0802C460 @ =gUnknown_03004344 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0802C464 @ =sub_8010574 - str r1, [r0] - adds r5, r3, 0 -_0802C448: - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - mov r0, sp - b _0802C472 - .align 2, 0 -_0802C458: .4byte gSprites -_0802C45C: .4byte gUnknown_02024BE0 -_0802C460: .4byte gUnknown_03004344 -_0802C464: .4byte sub_8010574 -_0802C468: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0802C478 - mov r2, sp - adds r0, r2, r4 -_0802C472: - ldrb r0, [r0] - cmp r1, r0 - bne _0802C468 -_0802C478: - subs r4, 0x1 - cmp r4, 0 - bge _0802C480 - movs r4, 0x3 -_0802C480: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl battle_get_side_with_given_state - strb r0, [r5] - ldr r1, _0802C4B4 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - beq _0802C478 - movs r4, 0 - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0802C4FE - cmp r0, 0x1 - bgt _0802C4B8 - cmp r0, 0 - beq _0802C4C2 - b _0802C500 - .align 2, 0 -_0802C4B4: .4byte gUnknown_02024A68 -_0802C4B8: - cmp r0, 0x2 - beq _0802C4C2 - cmp r0, 0x3 - beq _0802C4FE - b _0802C500 -_0802C4C2: - ldr r2, _0802C520 @ =gUnknown_02024A60 - ldrb r0, [r2] - ldrb r1, [r5] - cmp r0, r1 - bne _0802C4FE - ldr r1, _0802C524 @ =gUnknown_02024A6A - ldrb r2, [r2] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802C528 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802C52C @ =gUnknown_02024E64 - adds r2, r1 - ldrb r1, [r2] - adds r1, 0xD - bl GetMonData - ldr r2, _0802C530 @ =gBattleMoves - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x6] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802C500 -_0802C4FE: - adds r4, 0x1 -_0802C500: - ldr r0, _0802C534 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _0802C538 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - ldr r0, _0802C53C @ =gUnknown_03004344 - cmp r1, 0 - beq _0802C518 - movs r4, 0 -_0802C518: - cmp r4, 0 - beq _0802C448 - b _0802C640 - .align 2, 0 -_0802C520: .4byte gUnknown_02024A60 -_0802C524: .4byte gUnknown_02024A6A -_0802C528: .4byte gPlayerParty -_0802C52C: .4byte gUnknown_02024E64 -_0802C530: .4byte gBattleMoves -_0802C534: .4byte gUnknown_02024C0C -_0802C538: .4byte gBitTable -_0802C53C: .4byte gUnknown_03004344 -_0802C540: - movs r0, 0x90 - ands r0, r1 - cmp r0, 0 - bne _0802C54A - b _0802C658 -_0802C54A: - movs r0, 0x5 - bl PlaySE - ldr r2, _0802C57C @ =gSprites - ldr r1, _0802C580 @ =gUnknown_02024BE0 - ldr r3, _0802C584 @ =gUnknown_03004344 - ldrb r0, [r3] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0802C588 @ =sub_8010574 - str r1, [r0] - adds r5, r3, 0 -_0802C56C: - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r1, r0, 24 - movs r4, 0 - mov r0, sp - b _0802C596 - .align 2, 0 -_0802C57C: .4byte gSprites -_0802C580: .4byte gUnknown_02024BE0 -_0802C584: .4byte gUnknown_03004344 -_0802C588: .4byte sub_8010574 -_0802C58C: - adds r4, 0x1 - cmp r4, 0x3 - bgt _0802C59C - mov r2, sp - adds r0, r2, r4 -_0802C596: - ldrb r0, [r0] - cmp r1, r0 - bne _0802C58C -_0802C59C: - adds r4, 0x1 - cmp r4, 0x3 - ble _0802C5A4 - movs r4, 0 -_0802C5A4: - mov r1, sp - adds r0, r1, r4 - ldrb r0, [r0] - bl battle_get_side_with_given_state - strb r0, [r5] - ldr r1, _0802C5D8 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - beq _0802C59C - movs r4, 0 - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0802C622 - cmp r0, 0x1 - bgt _0802C5DC - cmp r0, 0 - beq _0802C5E6 - b _0802C624 - .align 2, 0 -_0802C5D8: .4byte gUnknown_02024A68 -_0802C5DC: - cmp r0, 0x2 - beq _0802C5E6 - cmp r0, 0x3 - beq _0802C622 - b _0802C624 -_0802C5E6: - ldr r2, _0802C660 @ =gUnknown_02024A60 - ldrb r0, [r2] - ldrb r1, [r5] - cmp r0, r1 - bne _0802C622 - ldr r1, _0802C664 @ =gUnknown_02024A6A - ldrb r2, [r2] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802C668 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802C66C @ =gUnknown_02024E64 - adds r2, r1 - ldrb r1, [r2] - adds r1, 0xD - bl GetMonData - ldr r2, _0802C670 @ =gBattleMoves - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x6] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802C624 -_0802C622: - adds r4, 0x1 -_0802C624: - ldr r0, _0802C674 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _0802C678 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - ldr r0, _0802C67C @ =gUnknown_03004344 - cmp r1, 0 - beq _0802C63C - movs r4, 0 -_0802C63C: - cmp r4, 0 - beq _0802C56C -_0802C640: - ldr r2, _0802C680 @ =gSprites - ldr r1, _0802C684 @ =gUnknown_02024BE0 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0802C688 @ =sub_8010520 - str r1, [r0] -_0802C658: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802C660: .4byte gUnknown_02024A60 -_0802C664: .4byte gUnknown_02024A6A -_0802C668: .4byte gPlayerParty -_0802C66C: .4byte gUnknown_02024E64 -_0802C670: .4byte gBattleMoves -_0802C674: .4byte gUnknown_02024C0C -_0802C678: .4byte gBitTable -_0802C67C: .4byte gUnknown_03004344 -_0802C680: .4byte gSprites -_0802C684: .4byte gUnknown_02024BE0 -_0802C688: .4byte sub_8010520 - thumb_func_end sub_802C2EC - - thumb_func_start sub_802C68C -sub_802C68C: @ 802C68C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r0, 0 - mov r8, r0 - ldr r7, _0802C6E4 @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 9 - ldr r1, _0802C6E8 @ =gUnknown_02023A64 - adds r6, r0, r1 - ldr r0, _0802C6EC @ =gMain - ldrh r1, [r0, 0x2E] - movs r5, 0x1 - adds r4, r5, 0 - ands r4, r1 - cmp r4, 0 - bne _0802C6B2 - b _0802C864 -_0802C6B2: - movs r0, 0x5 - bl PlaySE - ldr r1, _0802C6F0 @ =gUnknown_02024E64 - ldrb r0, [r7] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r1, r6, r0 - ldrh r0, [r1] - cmp r0, 0xAE - bne _0802C6F4 - ldrb r0, [r6, 0x12] - movs r4, 0 - cmp r0, 0x7 - beq _0802C702 - ldrb r1, [r6, 0x13] - movs r0, 0x7 - eors r1, r0 - negs r0, r1 - orrs r0, r1 - asrs r4, r0, 31 - movs r0, 0x10 - ands r4, r0 - b _0802C702 - .align 2, 0 -_0802C6E4: .4byte gUnknown_02024A60 -_0802C6E8: .4byte gUnknown_02023A64 -_0802C6EC: .4byte gMain -_0802C6F0: .4byte gUnknown_02024E64 -_0802C6F4: - ldr r2, _0802C714 @ =gBattleMoves - ldrh r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r4, [r0, 0x6] -_0802C702: - movs r0, 0x10 - ands r0, r4 - cmp r0, 0 - beq _0802C720 - ldr r0, _0802C718 @ =gUnknown_03004344 - ldr r1, _0802C71C @ =gUnknown_02024A60 - ldrb r1, [r1] - strb r1, [r0] - b _0802C73A - .align 2, 0 -_0802C714: .4byte gBattleMoves -_0802C718: .4byte gUnknown_03004344 -_0802C71C: .4byte gUnknown_02024A60 -_0802C720: - ldr r0, _0802C764 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_get_per_side_status - adds r1, r0, 0 - movs r2, 0x1 - movs r0, 0x1 - ands r0, r1 - eors r0, r2 - bl battle_get_side_with_given_state - ldr r1, _0802C768 @ =gUnknown_03004344 - strb r0, [r1] -_0802C73A: - ldr r3, _0802C76C @ =gUnknown_02023A60 - ldr r5, _0802C764 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r1, r2, 9 - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _0802C770 - movs r0, 0x2 - ands r0, r4 - cmp r0, 0 - beq _0802C7B2 - adds r0, r3, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _0802C7B2 - movs r2, 0x1 - add r8, r2 - b _0802C7B2 - .align 2, 0 -_0802C764: .4byte gUnknown_02024A60 -_0802C768: .4byte gUnknown_03004344 -_0802C76C: .4byte gUnknown_02023A60 -_0802C770: - movs r0, 0x7D - ands r0, r4 - cmp r0, 0 - bne _0802C77C - movs r0, 0x1 - add r8, r0 -_0802C77C: - ldr r0, _0802C7D0 @ =gUnknown_02024E64 - adds r0, r2, r0 - adds r1, r6, 0 - adds r1, 0x8 - ldrb r0, [r0] - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0802C7B8 - movs r0, 0x12 - ands r0, r4 - cmp r0, 0 - bne _0802C7B2 - movs r0, 0 - bl sub_803C348 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0802C7B2 - ldrb r0, [r5] - bl sub_803C434 - ldr r1, _0802C7D4 @ =gUnknown_03004344 - strb r0, [r1] - movs r2, 0 - mov r8, r2 -_0802C7B2: - mov r0, r8 - cmp r0, 0 - bne _0802C7DC -_0802C7B8: - bl sub_814A7FC - ldr r1, _0802C7D0 @ =gUnknown_02024E64 - ldr r0, _0802C7D8 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - ldr r0, _0802C7D4 @ =gUnknown_03004344 - ldrb r0, [r0] - lsls r0, 8 - orrs r2, r0 - b _0802C888 - .align 2, 0 -_0802C7D0: .4byte gUnknown_02024E64 -_0802C7D4: .4byte gUnknown_03004344 -_0802C7D8: .4byte gUnknown_02024A60 -_0802C7DC: - ldr r1, _0802C7F8 @ =gUnknown_03004330 - ldr r2, _0802C7FC @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802C800 @ =sub_802C2EC - str r1, [r0] - movs r0, 0x12 - ands r4, r0 - cmp r4, 0 - beq _0802C808 - ldr r1, _0802C804 @ =gUnknown_03004344 - ldrb r0, [r2] - b _0802C838 - .align 2, 0 -_0802C7F8: .4byte gUnknown_03004330 -_0802C7FC: .4byte gUnknown_02024A60 -_0802C800: .4byte sub_802C2EC -_0802C804: .4byte gUnknown_03004344 -_0802C808: - movs r0, 0x1 - bl battle_get_side_with_given_state - ldr r1, _0802C828 @ =gUnknown_02024C0C - ldrb r1, [r1] - ldr r2, _0802C82C @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _0802C830 - movs r0, 0x3 - b _0802C832 - .align 2, 0 -_0802C828: .4byte gUnknown_02024C0C -_0802C82C: .4byte gBitTable -_0802C830: - movs r0, 0x1 -_0802C832: - bl battle_get_side_with_given_state - ldr r1, _0802C854 @ =gUnknown_03004344 -_0802C838: - strb r0, [r1] - ldr r2, _0802C858 @ =gSprites - ldr r1, _0802C85C @ =gUnknown_02024BE0 - ldr r0, _0802C854 @ =gUnknown_03004344 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0802C860 @ =sub_8010520 - b _0802CA36 - .align 2, 0 -_0802C854: .4byte gUnknown_03004344 -_0802C858: .4byte gSprites -_0802C85C: .4byte gUnknown_02024BE0 -_0802C860: .4byte sub_8010520 -_0802C864: - movs r6, 0x2 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0802C8A4 - bl sub_814A7FC - movs r0, 0x5 - bl PlaySE - ldr r0, _0802C898 @ =gUnknown_030042A4 - strh r4, [r0] - ldr r1, _0802C89C @ =gUnknown_030042A0 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, _0802C8A0 @ =0x0000ffff -_0802C888: - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed - b _0802CA38 - .align 2, 0 -_0802C898: .4byte gUnknown_030042A4 -_0802C89C: .4byte gUnknown_030042A0 -_0802C8A0: .4byte 0x0000ffff -_0802C8A4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0802C8D4 - ldr r4, _0802C8D0 @ =gUnknown_02024E64 - adds r2, r4 - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _0802C8BC - b _0802CA38 -_0802C8BC: - ldrb r0, [r2] - bl nullsub_7 - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - movs r2, 0x1 - eors r0, r2 - b _0802C976 - .align 2, 0 -_0802C8D0: .4byte gUnknown_02024E64 -_0802C8D4: - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0802C914 - ldr r4, _0802C90C @ =gUnknown_02024E64 - adds r3, r2, r4 - ldrb r2, [r3] - movs r6, 0x1 - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - beq _0802C8EE - b _0802CA38 -_0802C8EE: - ldr r1, _0802C910 @ =gUnknown_03004348 - adds r0, r6, 0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcc _0802C8FC - b _0802CA38 -_0802C8FC: - ldrb r0, [r3] - bl nullsub_7 - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - eors r0, r6 - b _0802C976 - .align 2, 0 -_0802C90C: .4byte gUnknown_02024E64 -_0802C910: .4byte gUnknown_03004348 -_0802C914: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0802C944 - ldr r4, _0802C940 @ =gUnknown_02024E64 - adds r2, r4 - ldrb r1, [r2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _0802C92C - b _0802CA38 -_0802C92C: - ldrb r0, [r2] - bl nullsub_7 - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - movs r2, 0x2 - eors r0, r2 - b _0802C976 - .align 2, 0 -_0802C940: .4byte gUnknown_02024E64 -_0802C944: - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0802C99C - ldr r4, _0802C994 @ =gUnknown_02024E64 - adds r3, r2, r4 - ldrb r2, [r3] - movs r5, 0x2 - adds r0, r6, 0 - ands r0, r2 - cmp r0, 0 - bne _0802CA38 - ldr r1, _0802C998 @ =gUnknown_03004348 - adds r0, r5, 0 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcs _0802CA38 - ldrb r0, [r3] - bl nullsub_7 - ldrb r1, [r7] - adds r1, r4 - ldrb r0, [r1] - eors r0, r5 -_0802C976: - strb r0, [r1] - movs r0, 0x5 - bl PlaySE - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - bl sub_802E3B4 - bl sub_802E220 - bl sub_802E2D4 - b _0802CA38 - .align 2, 0 -_0802C994: .4byte gUnknown_02024E64 -_0802C998: .4byte gUnknown_03004348 -_0802C99C: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0802CA38 - ldr r0, _0802C9D8 @ =gUnknown_03004348 - ldrb r0, [r0] - cmp r0, 0x1 - bls _0802CA38 - ldr r0, _0802C9DC @ =gUnknown_020239F8 - ldrh r1, [r0] - adds r0, r6, 0 - ands r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0802CA38 - ldr r4, _0802C9E0 @ =gUnknown_02024E64 - adds r0, r2, r4 - ldrb r0, [r0] - ldr r1, _0802C9E4 @ =gUnknown_081FAE80 - bl sub_802E12C - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0802C9EC - ldr r0, _0802C9E8 @ =gUnknown_03004344 - strb r5, [r0] - b _0802C9F4 - .align 2, 0 -_0802C9D8: .4byte gUnknown_03004348 -_0802C9DC: .4byte gUnknown_020239F8 -_0802C9E0: .4byte gUnknown_02024E64 -_0802C9E4: .4byte gUnknown_081FAE80 -_0802C9E8: .4byte gUnknown_03004344 -_0802C9EC: - ldr r1, _0802CA44 @ =gUnknown_03004344 - adds r0, 0x1 - strb r0, [r1] - adds r0, r1, 0 -_0802C9F4: - ldrb r0, [r0] - movs r1, 0x1B - bl sub_802E3B4 - ldr r4, _0802CA48 @ =gUnknown_03004210 - ldr r1, _0802CA4C @ =0x00001016 - movs r0, 0x1C - str r0, [sp] - movs r0, 0x3A - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x17 - movs r3, 0x37 - bl FillWindowRect - ldr r1, _0802CA50 @ =gUnknown_08400D89 - movs r2, 0xA4 - lsls r2, 2 - movs r0, 0x37 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x17 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _0802CA54 @ =gUnknown_03004330 - ldr r0, _0802CA58 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802CA5C @ =sub_802CA60 -_0802CA36: - str r1, [r0] -_0802CA38: - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802CA44: .4byte gUnknown_03004344 -_0802CA48: .4byte gUnknown_03004210 -_0802CA4C: .4byte 0x00001016 -_0802CA50: .4byte gUnknown_08400D89 -_0802CA54: .4byte gUnknown_03004330 -_0802CA58: .4byte gUnknown_02024A60 -_0802CA5C: .4byte sub_802CA60 - thumb_func_end sub_802C68C - - thumb_func_start sub_802CA60 -sub_802CA60: @ 802CA60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - ldr r0, _0802CDEC @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0 - bne _0802CA7A - b _0802CE78 -_0802CA7A: - movs r0, 0x5 - bl PlaySE - ldr r0, _0802CDF0 @ =gUnknown_02024E64 - mov r10, r0 - ldr r1, _0802CDF4 @ =gUnknown_02024A60 - mov r8, r1 - ldrb r1, [r1] - adds r2, r1, r0 - ldr r5, _0802CDF8 @ =gUnknown_03004344 - ldrb r0, [r2] - ldrb r3, [r5] - cmp r0, r3 - bne _0802CA98 - b _0802CE14 -_0802CA98: - lsls r1, 9 - ldr r0, _0802CDFC @ =gUnknown_02023A64 - adds r1, r0 - mov r9, r1 - ldrb r1, [r2] - lsls r1, 1 - add r1, r9 - ldrh r6, [r1] - ldrb r0, [r5] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - ldrb r0, [r5] - lsls r0, 1 - add r0, r9 - strh r6, [r0] - mov r1, r8 - ldrb r0, [r1] - add r0, r10 - ldrb r1, [r0] - mov r7, r9 - adds r7, 0x8 - adds r1, r7, r1 - ldrb r6, [r1] - ldrb r0, [r5] - adds r0, r7, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - adds r0, r7, r0 - strb r6, [r0] - mov r2, r8 - ldrb r0, [r2] - add r0, r10 - ldrb r1, [r0] - mov r2, r9 - adds r2, 0xC - adds r1, r2, r1 - ldrb r6, [r1] - ldrb r0, [r5] - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r5] - adds r2, r0 - strb r6, [r2] - mov r3, r8 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - ldr r2, _0802CE00 @ =gUnknown_02024CA8 - adds r6, r0, r2 - ldrb r4, [r6, 0x18] - lsls r3, r4, 24 - lsrs r2, r3, 28 - ldr r0, _0802CE04 @ =gBitTable - mov r12, r0 - add r1, r10 - ldrb r0, [r1] - lsls r0, 2 - add r0, r12 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _0802CB52 - lsrs r1, r3, 28 - bics r1, r0 - lsls r1, 4 - movs r2, 0xF - adds r0, r2, 0 - ands r0, r4 - orrs r0, r1 - strb r0, [r6, 0x18] - mov r1, r8 - ldrb r0, [r1] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r3, _0802CE00 @ =gUnknown_02024CA8 - adds r1, r3 - ldrb r4, [r1, 0x18] - lsrs r3, r4, 4 - ldrb r0, [r5] - lsls r0, 2 - add r0, r12 - ldr r0, [r0] - orrs r0, r3 - lsls r0, 4 - ands r2, r4 - orrs r2, r0 - strb r2, [r1, 0x18] -_0802CB52: - bl sub_802E1B0 - movs r6, 0 - mov r12, r7 - mov r5, sp - adds r5, 0x20 - str r5, [sp, 0x28] - ldr r2, _0802CE08 @ =gBattleMons - mov r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r4, r0, 0 - adds r4, 0x3B - mov r7, r8 - mov r10, r2 - movs r5, 0x3 -_0802CB76: - mov r3, sp - adds r3, r6 - adds r3, 0x8 - ldrb r1, [r4] - lsls r2, r6, 1 - adds r0, r5, 0 - lsls r0, r2 - ands r1, r0 - asrs r1, r2 - strb r1, [r3] - adds r6, 0x1 - cmp r6, 0x3 - ble _0802CB76 - ldr r1, _0802CDF0 @ =gUnknown_02024E64 - ldrb r0, [r7] - adds r0, r1 - ldrb r0, [r0] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - ldr r2, [sp, 0x28] - strb r0, [r2] - ldrb r0, [r7] - adds r0, r1 - ldrb r0, [r0] - mov r2, sp - adds r2, r0 - adds r2, 0x8 - ldr r1, _0802CDF8 @ =gUnknown_03004344 - ldrb r0, [r1] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - movs r3, 0 - strb r0, [r2] - ldrb r0, [r1] - mov r1, sp - adds r1, r0 - adds r1, 0x8 - ldr r5, [sp, 0x28] - ldrb r0, [r5] - strb r0, [r1] - strb r3, [r5] - movs r6, 0 - ldr r2, [sp, 0x28] -_0802CBD0: - mov r0, sp - adds r0, r6 - adds r0, 0x8 - ldrb r1, [r0] - lsls r0, r6, 1 - lsls r1, r0 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - adds r6, 0x1 - cmp r6, 0x3 - ble _0802CBD0 - ldrb r1, [r7] - movs r0, 0x58 - muls r0, r1 - add r0, r10 - adds r0, 0x3B - ldr r2, [sp, 0x28] - ldrb r1, [r2] - strb r1, [r0] - movs r6, 0 - adds r4, r7, 0 - movs r3, 0x58 - movs r5, 0x24 - add r5, r10 - mov r8, r5 - mov r2, r9 - mov r7, r10 - adds r7, 0xC - mov r5, r12 -_0802CC0C: - lsls r1, r6, 1 - ldrb r0, [r4] - muls r0, r3 - adds r1, r0 - adds r1, r7 - ldrh r0, [r2] - strh r0, [r1] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r3 - adds r1, r6, r1 - add r1, r8 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0802CC0C - ldr r2, _0802CDF4 @ =gUnknown_02024A60 - ldrb r1, [r2] - movs r0, 0x58 - muls r0, r1 - mov r1, r10 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - beq _0802CC4E - b _0802CE1C -_0802CC4E: - movs r6, 0 - mov r0, sp - adds r0, 0xC - str r0, [sp, 0x24] - add r1, sp, 0x14 - mov r10, r1 - ldr r3, _0802CE0C @ =gUnknown_02024A6A - mov r9, r3 - mov r8, r2 - movs r7, 0x64 - ldr r5, _0802CE10 @ =gPlayerParty - adds r4, r0, 0 -_0802CC66: - mov r1, r8 - ldrb r0, [r1] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - adds r0, r5 - adds r1, r6, 0 - adds r1, 0xD - bl GetMonData - strh r0, [r4] - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - add r0, r9 - ldrh r0, [r0] - muls r0, r7 - adds r0, r5 - adds r1, r6, 0 - adds r1, 0x11 - bl GetMonData - mov r3, r10 - adds r1, r3, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0802CC66 - ldr r1, _0802CE0C @ =gUnknown_02024A6A - ldr r0, _0802CDF4 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802CE10 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - ldr r5, [sp, 0x28] - strb r0, [r5] - movs r6, 0 - movs r5, 0x3 - ldr r4, [sp, 0x28] -_0802CCC6: - mov r3, sp - adds r3, r6 - adds r3, 0x8 - lsls r2, r6, 1 - adds r1, r5, 0 - lsls r1, r2 - ldrb r0, [r4] - ands r0, r1 - asrs r0, r2 - strb r0, [r3] - adds r6, 0x1 - cmp r6, 0x3 - ble _0802CCC6 - ldr r4, _0802CDF0 @ =gUnknown_02024E64 - ldr r3, _0802CDF4 @ =gUnknown_02024A60 - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - lsls r1, 1 - ldr r0, [sp, 0x24] - adds r1, r0, r1 - ldrh r6, [r1] - ldr r2, _0802CDF8 @ =gUnknown_03004344 - ldrb r0, [r2] - lsls r0, 1 - ldr r5, [sp, 0x24] - adds r0, r5, r0 - ldrh r0, [r0] - movs r5, 0 - strh r0, [r1] - ldrb r0, [r2] - lsls r0, 1 - ldr r1, [sp, 0x24] - adds r0, r1, r0 - strh r6, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r1, [r0] - add r1, r10 - ldrb r6, [r1] - ldrb r0, [r2] - add r0, r10 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - add r0, r10 - strb r6, [r0] - ldrb r0, [r3] - adds r0, r4 - ldrb r0, [r0] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - ldr r1, [sp, 0x28] - strb r0, [r1] - ldrb r0, [r3] - adds r0, r4 - ldrb r0, [r0] - mov r1, sp - adds r1, r0 - adds r1, 0x8 - ldrb r0, [r2] - add r0, sp - adds r0, 0x8 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r2] - mov r1, sp - adds r1, r0 - adds r1, 0x8 - ldr r2, [sp, 0x28] - ldrb r0, [r2] - strb r0, [r1] - strb r5, [r2] - movs r6, 0 - ldr r2, [sp, 0x28] -_0802CD5E: - mov r0, sp - adds r0, r6 - adds r0, 0x8 - ldrb r1, [r0] - lsls r0, r6, 1 - lsls r1, r0 - ldrb r0, [r2] - orrs r0, r1 - strb r0, [r2] - adds r6, 0x1 - cmp r6, 0x3 - ble _0802CD5E - movs r6, 0 - ldr r3, _0802CE0C @ =gUnknown_02024A6A - mov r10, r3 - ldr r5, _0802CDF4 @ =gUnknown_02024A60 - mov r9, r5 - movs r0, 0x64 - mov r8, r0 - ldr r7, _0802CE10 @ =gPlayerParty - ldr r5, [sp, 0x24] - adds r5, 0x8 - ldr r4, [sp, 0x24] -_0802CD8C: - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r0, r7 - adds r1, r6, 0 - adds r1, 0xD - adds r2, r4, 0 - bl SetMonData - mov r3, r9 - ldrb r0, [r3] - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r7 - adds r1, r6, 0 - adds r1, 0x11 - adds r2, r5, 0 - bl SetMonData - adds r5, 0x1 - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0802CD8C - ldr r1, _0802CE0C @ =gUnknown_02024A6A - ldr r0, _0802CDF4 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802CE10 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - ldr r2, [sp, 0x28] - bl SetMonData - b _0802CE1C - .align 2, 0 -_0802CDEC: .4byte gMain -_0802CDF0: .4byte gUnknown_02024E64 -_0802CDF4: .4byte gUnknown_02024A60 -_0802CDF8: .4byte gUnknown_03004344 -_0802CDFC: .4byte gUnknown_02023A64 -_0802CE00: .4byte gUnknown_02024CA8 -_0802CE04: .4byte gBitTable -_0802CE08: .4byte gBattleMons -_0802CE0C: .4byte gUnknown_02024A6A -_0802CE10: .4byte gPlayerParty -_0802CE14: - ldrb r0, [r5] - ldr r1, _0802CF20 @ =gUnknown_08400D49 - bl sub_802E12C -_0802CE1C: - ldr r1, _0802CF24 @ =gUnknown_03004330 - ldr r2, _0802CF28 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802CF2C @ =sub_802C68C - str r1, [r0] - ldr r3, _0802CF30 @ =gUnknown_02024E64 - ldrb r0, [r2] - adds r0, r3 - ldr r1, _0802CF34 @ =gUnknown_03004344 - ldrb r1, [r1] - strb r1, [r0] - ldrb r0, [r2] - adds r0, r3 - ldrb r0, [r0] - movs r1, 0 - bl sub_802E3B4 - ldr r4, _0802CF38 @ =gUnknown_03004210 - ldr r1, _0802CF3C @ =0x00001016 - movs r0, 0x1C - str r0, [sp] - movs r0, 0x3A - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x17 - movs r3, 0x37 - bl FillWindowRect - ldr r1, _0802CF40 @ =gUnknown_08400D38 - movs r2, 0xA4 - lsls r2, 2 - movs r0, 0x37 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x17 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - bl sub_802E220 - bl sub_802E2D4 -_0802CE78: - ldr r6, _0802CF44 @ =gMain - ldrh r1, [r6, 0x2E] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _0802CEF0 - movs r0, 0x5 - bl PlaySE - ldr r0, _0802CF34 @ =gUnknown_03004344 - ldrb r0, [r0] - bl nullsub_7 - ldr r5, _0802CF30 @ =gUnknown_02024E64 - ldr r4, _0802CF28 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - movs r1, 0 - bl sub_802E3B4 - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - ldr r1, _0802CF20 @ =gUnknown_08400D49 - bl sub_802E12C - ldr r1, _0802CF24 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802CF2C @ =sub_802C68C - str r1, [r0] - ldr r4, _0802CF38 @ =gUnknown_03004210 - ldr r1, _0802CF3C @ =0x00001016 - movs r0, 0x1C - str r0, [sp] - movs r0, 0x3A - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x17 - movs r3, 0x37 - bl FillWindowRect - ldr r1, _0802CF40 @ =gUnknown_08400D38 - movs r2, 0xA4 - lsls r2, 2 - movs r0, 0x37 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x17 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - bl sub_802E220 - bl sub_802E2D4 -_0802CEF0: - ldrh r1, [r6, 0x2E] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0802CF8C - ldr r3, _0802CF34 @ =gUnknown_03004344 - ldrb r2, [r3] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _0802CF8C - ldr r0, _0802CF30 @ =gUnknown_02024E64 - ldr r1, _0802CF28 @ =gUnknown_02024A60 - ldrb r1, [r1] - adds r1, r0 - ldrb r5, [r1] - cmp r2, r5 - bne _0802CF48 - ldrb r0, [r1] - movs r1, 0x1D - bl sub_802E3B4 - b _0802CF4E - .align 2, 0 -_0802CF20: .4byte gUnknown_08400D49 -_0802CF24: .4byte gUnknown_03004330 -_0802CF28: .4byte gUnknown_02024A60 -_0802CF2C: .4byte sub_802C68C -_0802CF30: .4byte gUnknown_02024E64 -_0802CF34: .4byte gUnknown_03004344 -_0802CF38: .4byte gUnknown_03004210 -_0802CF3C: .4byte 0x00001016 -_0802CF40: .4byte gUnknown_08400D38 -_0802CF44: .4byte gMain -_0802CF48: - ldrb r0, [r3] - bl nullsub_7 -_0802CF4E: - ldr r4, _0802CF78 @ =gUnknown_03004344 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] - movs r0, 0x5 - bl PlaySE - ldr r1, _0802CF7C @ =gUnknown_02024E64 - ldr r0, _0802CF80 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _0802CF84 - adds r0, r1, 0 - movs r1, 0 - bl sub_802E3B4 - b _0802CF8C - .align 2, 0 -_0802CF78: .4byte gUnknown_03004344 -_0802CF7C: .4byte gUnknown_02024E64 -_0802CF80: .4byte gUnknown_02024A60 -_0802CF84: - ldrb r0, [r4] - movs r1, 0x1B - bl sub_802E3B4 -_0802CF8C: - ldr r0, _0802CFC8 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0802D020 - ldr r3, _0802CFCC @ =gUnknown_03004344 - ldrb r2, [r3] - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _0802D020 - ldr r1, _0802CFD0 @ =gUnknown_03004348 - movs r0, 0x1 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcs _0802D020 - ldr r0, _0802CFD4 @ =gUnknown_02024E64 - ldr r1, _0802CFD8 @ =gUnknown_02024A60 - ldrb r1, [r1] - adds r1, r0 - ldrb r0, [r1] - cmp r2, r0 - bne _0802CFDC - ldrb r0, [r1] - movs r1, 0x1D - bl sub_802E3B4 - b _0802CFE2 - .align 2, 0 -_0802CFC8: .4byte gMain -_0802CFCC: .4byte gUnknown_03004344 -_0802CFD0: .4byte gUnknown_03004348 -_0802CFD4: .4byte gUnknown_02024E64 -_0802CFD8: .4byte gUnknown_02024A60 -_0802CFDC: - ldrb r0, [r3] - bl nullsub_7 -_0802CFE2: - ldr r4, _0802D00C @ =gUnknown_03004344 - ldrb r0, [r4] - movs r1, 0x1 - eors r0, r1 - strb r0, [r4] - movs r0, 0x5 - bl PlaySE - ldr r1, _0802D010 @ =gUnknown_02024E64 - ldr r0, _0802D014 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _0802D018 - adds r0, r1, 0 - movs r1, 0 - bl sub_802E3B4 - b _0802D020 - .align 2, 0 -_0802D00C: .4byte gUnknown_03004344 -_0802D010: .4byte gUnknown_02024E64 -_0802D014: .4byte gUnknown_02024A60 -_0802D018: - ldrb r0, [r4] - movs r1, 0x1B - bl sub_802E3B4 -_0802D020: - ldr r0, _0802D050 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0802D0A4 - ldr r3, _0802D054 @ =gUnknown_03004344 - ldrb r2, [r3] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0802D0A4 - ldr r0, _0802D058 @ =gUnknown_02024E64 - ldr r1, _0802D05C @ =gUnknown_02024A60 - ldrb r1, [r1] - adds r1, r0 - ldrb r5, [r1] - cmp r2, r5 - bne _0802D060 - ldrb r0, [r1] - movs r1, 0x1D - bl sub_802E3B4 - b _0802D066 - .align 2, 0 -_0802D050: .4byte gMain -_0802D054: .4byte gUnknown_03004344 -_0802D058: .4byte gUnknown_02024E64 -_0802D05C: .4byte gUnknown_02024A60 -_0802D060: - ldrb r0, [r3] - bl nullsub_7 -_0802D066: - ldr r4, _0802D090 @ =gUnknown_03004344 - ldrb r0, [r4] - movs r1, 0x2 - eors r0, r1 - strb r0, [r4] - movs r0, 0x5 - bl PlaySE - ldr r1, _0802D094 @ =gUnknown_02024E64 - ldr r0, _0802D098 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _0802D09C - adds r0, r1, 0 - movs r1, 0 - bl sub_802E3B4 - b _0802D0A4 - .align 2, 0 -_0802D090: .4byte gUnknown_03004344 -_0802D094: .4byte gUnknown_02024E64 -_0802D098: .4byte gUnknown_02024A60 -_0802D09C: - ldrb r0, [r4] - movs r1, 0x1B - bl sub_802E3B4 -_0802D0A4: - ldr r0, _0802D0E0 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0802D138 - ldr r3, _0802D0E4 @ =gUnknown_03004344 - ldrb r2, [r3] - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - bne _0802D138 - ldr r1, _0802D0E8 @ =gUnknown_03004348 - movs r0, 0x2 - eors r0, r2 - ldrb r1, [r1] - cmp r0, r1 - bcs _0802D138 - ldr r0, _0802D0EC @ =gUnknown_02024E64 - ldr r1, _0802D0F0 @ =gUnknown_02024A60 - ldrb r1, [r1] - adds r1, r0 - ldrb r0, [r1] - cmp r2, r0 - bne _0802D0F4 - ldrb r0, [r1] - movs r1, 0x1D - bl sub_802E3B4 - b _0802D0FA - .align 2, 0 -_0802D0E0: .4byte gMain -_0802D0E4: .4byte gUnknown_03004344 -_0802D0E8: .4byte gUnknown_03004348 -_0802D0EC: .4byte gUnknown_02024E64 -_0802D0F0: .4byte gUnknown_02024A60 -_0802D0F4: - ldrb r0, [r3] - bl nullsub_7 -_0802D0FA: - ldr r4, _0802D124 @ =gUnknown_03004344 - ldrb r0, [r4] - movs r1, 0x2 - eors r0, r1 - strb r0, [r4] - movs r0, 0x5 - bl PlaySE - ldr r1, _0802D128 @ =gUnknown_02024E64 - ldr r0, _0802D12C @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bne _0802D130 - adds r0, r1, 0 - movs r1, 0 - bl sub_802E3B4 - b _0802D138 - .align 2, 0 -_0802D124: .4byte gUnknown_03004344 -_0802D128: .4byte gUnknown_02024E64 -_0802D12C: .4byte gUnknown_02024A60 -_0802D130: - ldrb r0, [r4] - movs r1, 0x1B - bl sub_802E3B4 -_0802D138: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_802CA60 - - thumb_func_start sub_802D148 -sub_802D148: @ 802D148 - push {lr} - ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0802D174 - movs r0, 0x5A - bl m4aSongNumStop - ldr r3, _0802D17C @ =gMain - ldr r0, _0802D180 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _0802D184 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r3] - ldr r0, _0802D188 @ =c2_8011A1C - bl SetMainCallback2 -_0802D174: - pop {r0} - bx r0 - .align 2, 0 -_0802D178: .4byte gReceivedRemoteLinkPlayers -_0802D17C: .4byte gMain -_0802D180: .4byte 0x0000043d -_0802D184: .4byte gUnknown_030042D0 -_0802D188: .4byte c2_8011A1C - thumb_func_end sub_802D148 - - thumb_func_start sub_802D18C -sub_802D18C: @ 802D18C - push {lr} - ldr r0, _0802D1BC @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802D1F2 - ldr r0, _0802D1C0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802D1D0 - bl sub_800832C - ldr r1, _0802D1C4 @ =gUnknown_03004330 - ldr r0, _0802D1C8 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802D1CC @ =sub_802D148 - str r1, [r0] - b _0802D1F2 - .align 2, 0 -_0802D1BC: .4byte gPaletteFade -_0802D1C0: .4byte gUnknown_020239F8 -_0802D1C4: .4byte gUnknown_03004330 -_0802D1C8: .4byte gUnknown_02024A60 -_0802D1CC: .4byte sub_802D148 -_0802D1D0: - movs r0, 0x5A - bl m4aSongNumStop - ldr r2, _0802D1F8 @ =gMain - ldr r0, _0802D1FC @ =0x0000043d - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, _0802D200 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_0802D1F2: - pop {r0} - bx r0 - .align 2, 0 -_0802D1F8: .4byte gMain -_0802D1FC: .4byte 0x0000043d -_0802D200: .4byte gUnknown_030042D0 - thumb_func_end sub_802D18C - - thumb_func_start sub_802D204 -sub_802D204: @ 802D204 - push {lr} - ldr r2, _0802D22C @ =gSprites - ldr r1, _0802D230 @ =gUnknown_02024BE0 - ldr r0, _0802D234 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0802D238 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0802D228 - bl dp01_tbl1_exec_completed -_0802D228: - pop {r0} - bx r0 - .align 2, 0 -_0802D22C: .4byte gSprites -_0802D230: .4byte gUnknown_02024BE0 -_0802D234: .4byte gUnknown_02024A60 -_0802D238: .4byte SpriteCallbackDummy - thumb_func_end sub_802D204 - - thumb_func_start sub_802D23C -sub_802D23C: @ 802D23C - push {lr} - ldr r2, _0802D264 @ =gSprites - ldr r1, _0802D268 @ =gUnknown_02024BE0 - ldr r0, _0802D26C @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0802D270 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0802D260 - bl dp01_tbl1_exec_completed -_0802D260: - pop {r0} - bx r0 - .align 2, 0 -_0802D264: .4byte gSprites -_0802D268: .4byte gUnknown_02024BE0 -_0802D26C: .4byte gUnknown_02024A60 -_0802D270: .4byte SpriteCallbackDummy - thumb_func_end sub_802D23C - - thumb_func_start sub_802D274 -sub_802D274: @ 802D274 - push {r4-r6,lr} - ldr r6, _0802D2CC @ =gSprites - ldr r5, _0802D2D0 @ =gUnknown_02024BE0 - ldr r4, _0802D2D4 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, [r0] - ldr r0, _0802D2D8 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0802D2C6 - ldr r0, _0802D2DC @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - bl nullsub_10 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl FreeSpriteOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - bl dp01_tbl1_exec_completed -_0802D2C6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D2CC: .4byte gSprites -_0802D2D0: .4byte gUnknown_02024BE0 -_0802D2D4: .4byte gUnknown_02024A60 -_0802D2D8: .4byte SpriteCallbackDummy -_0802D2DC: .4byte gSaveBlock2 - thumb_func_end sub_802D274 - - thumb_func_start sub_802D2E0 -sub_802D2E0: @ 802D2E0 - push {lr} - ldr r3, _0802D314 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _0802D318 @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0802D310 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x9] - bl dp01_tbl1_exec_completed -_0802D310: - pop {r0} - bx r0 - .align 2, 0 -_0802D314: .4byte gUnknown_02024A60 -_0802D318: .4byte 0x02017810 - thumb_func_end sub_802D2E0 - - thumb_func_start sub_802D31C -sub_802D31C: @ 802D31C - push {r4-r7,lr} - movs r6, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0802D340 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0802D374 - ldr r0, _0802D360 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0802D374 -_0802D340: - ldr r2, _0802D364 @ =gSprites - ldr r1, _0802D368 @ =gUnknown_03004340 - ldr r0, _0802D36C @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0802D370 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0802D3AA - b _0802D3A8 - .align 2, 0 -_0802D360: .4byte gUnknown_020239F8 -_0802D364: .4byte gSprites -_0802D368: .4byte gUnknown_03004340 -_0802D36C: .4byte gUnknown_02024A60 -_0802D370: .4byte SpriteCallbackDummy -_0802D374: - ldr r2, _0802D45C @ =gSprites - ldr r5, _0802D460 @ =gUnknown_03004340 - ldr r0, _0802D464 @ =gUnknown_02024A60 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, _0802D468 @ =SpriteCallbackDummy - cmp r4, r0 - bne _0802D3AA - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _0802D3AA -_0802D3A8: - movs r6, 0x1 -_0802D3AA: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _0802D3B6 - movs r6, 0 -_0802D3B6: - cmp r6, 0 - bne _0802D3BC - b _0802D4DA -_0802D3BC: - ldr r7, _0802D464 @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r5, _0802D46C @ =0x02017810 - adds r4, r0, r5 - ldrb r1, [r4, 0x1] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0802D3D8 - b _0802D4DA -_0802D3D8: - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0802D4DA - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, _0802D470 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, _0802D474 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0802D47C - ldr r0, _0802D478 @ =gMPlay_BGM - bl m4aMPlayContinue - b _0802D488 - .align 2, 0 -_0802D45C: .4byte gSprites -_0802D460: .4byte gUnknown_03004340 -_0802D464: .4byte gUnknown_02024A60 -_0802D468: .4byte SpriteCallbackDummy -_0802D46C: .4byte 0x02017810 -_0802D470: .4byte 0x000027f9 -_0802D474: .4byte gUnknown_020239F8 -_0802D478: .4byte gMPlay_BGM -_0802D47C: - ldr r0, _0802D4E0 @ =gMPlay_BGM - ldr r1, _0802D4E4 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_0802D488: - ldr r7, _0802D4E8 @ =gUnknown_02024A6A - ldr r4, _0802D4EC @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0802D4F0 @ =gPlayerParty - adds r0, r5 - bl sub_80324F8 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0802D4BE - ldrb r0, [r4] - movs r1, 0x2 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - bl sub_80324F8 -_0802D4BE: - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0802D4F4 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, _0802D4F8 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802D4FC @ =sub_802D2E0 - str r1, [r0] -_0802D4DA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D4E0: .4byte gMPlay_BGM -_0802D4E4: .4byte 0x0000ffff -_0802D4E8: .4byte gUnknown_02024A6A -_0802D4EC: .4byte gUnknown_02024A60 -_0802D4F0: .4byte gPlayerParty -_0802D4F4: .4byte 0x02017810 -_0802D4F8: .4byte gUnknown_03004330 -_0802D4FC: .4byte sub_802D2E0 - thumb_func_end sub_802D31C - - thumb_func_start sub_802D500 -sub_802D500: @ 802D500 - push {r4-r7,lr} - ldr r5, _0802D654 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r4, _0802D658 @ =0x02017810 - adds r0, r4 - ldrb r1, [r0] - movs r7, 0x88 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _0802D530 - ldr r0, _0802D65C @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0802D660 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_0802D530: - ldrb r0, [r5] - movs r6, 0x2 - adds r2, r6, 0 - eors r2, r0 - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - bne _0802D55E - ldr r0, _0802D65C @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0802D660 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_0802D55E: - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r3, 0x8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0802D64C - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0802D64C - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0802D5EE - ldr r0, _0802D664 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0802D5EE - ldr r1, _0802D668 @ =gUnknown_0300434C - ldrb r0, [r5] - eors r0, r6 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0802D66C @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, _0802D670 @ =gUnknown_03004340 - ldrb r0, [r5] - adds r1, r6, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0802D65C @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0802D660 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r5] - eors r0, r6 - bl sub_804777C - ldrb r0, [r5] - eors r0, r6 - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC -_0802D5EE: - ldr r1, _0802D668 @ =gUnknown_0300434C - ldr r4, _0802D654 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0802D66C @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _0802D670 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _0802D65C @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0802D660 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r4] - bl sub_804777C - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - ldr r2, _0802D674 @ =0x02017840 - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _0802D678 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802D67C @ =sub_802D31C - str r1, [r0] -_0802D64C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802D654: .4byte gUnknown_02024A60 -_0802D658: .4byte 0x02017810 -_0802D65C: .4byte gUnknown_02024A6A -_0802D660: .4byte gPlayerParty -_0802D664: .4byte gUnknown_020239F8 -_0802D668: .4byte gUnknown_0300434C -_0802D66C: .4byte gSprites -_0802D670: .4byte gUnknown_03004340 -_0802D674: .4byte 0x02017840 -_0802D678: .4byte gUnknown_03004330 -_0802D67C: .4byte sub_802D31C - thumb_func_end sub_802D500 - - thumb_func_start sub_802D680 -sub_802D680: @ 802D680 - push {r4-r6,lr} - ldr r2, _0802D710 @ =gSprites - ldr r0, _0802D714 @ =gUnknown_03004340 - ldr r6, _0802D718 @ =gUnknown_02024A60 - ldrb r3, [r6] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _0802D71C @ =SpriteCallbackDummy - cmp r1, r0 - bne _0802D708 - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r5, _0802D720 @ =0x02017810 - adds r2, r0, r5 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0802D708 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r6] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _0802D724 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldrb r2, [r6] - lsls r0, r2, 2 - adds r1, r5, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0802D6FC - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_0802D6FC: - ldr r0, _0802D728 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _0802D72C @ =sub_802D730 - str r0, [r1] -_0802D708: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D710: .4byte gSprites -_0802D714: .4byte gUnknown_03004340 -_0802D718: .4byte gUnknown_02024A60 -_0802D71C: .4byte SpriteCallbackDummy -_0802D720: .4byte 0x02017810 -_0802D724: .4byte 0x000027f9 -_0802D728: .4byte gUnknown_03004330 -_0802D72C: .4byte sub_802D730 - thumb_func_end sub_802D680 - - thumb_func_start sub_802D730 -sub_802D730: @ 802D730 - push {r4,lr} - ldr r4, _0802D780 @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0802D784 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0802D77A - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - bne _0802D77A - ldr r0, _0802D788 @ =gMPlay_BGM - ldr r1, _0802D78C @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - ldr r2, _0802D790 @ =gUnknown_02024A6A - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0802D794 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - bl dp01_tbl1_exec_completed -_0802D77A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D780: .4byte gUnknown_02024A60 -_0802D784: .4byte 0x02017810 -_0802D788: .4byte gMPlay_BGM -_0802D78C: .4byte 0x0000ffff -_0802D790: .4byte gUnknown_02024A6A -_0802D794: .4byte gPlayerParty - thumb_func_end sub_802D730 - - thumb_func_start sub_802D798 -sub_802D798: @ 802D798 - push {r4-r6,lr} - ldr r5, _0802D844 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r6, _0802D848 @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _0802D7C6 - ldr r0, _0802D84C @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0802D850 @ =gPlayerParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_0802D7C6: - ldr r4, _0802D854 @ =gSprites - ldr r0, _0802D858 @ =gUnknown_0300434C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _0802D85C @ =SpriteCallbackDummy - cmp r1, r0 - bne _0802D83C - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0802D83C - adds r0, r3, r4 - bl DestroySprite - ldr r4, _0802D860 @ =gUnknown_03004340 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _0802D84C @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0802D850 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r5] - bl sub_804777C - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r0, [r5] - bl sub_8031F88 - ldr r1, _0802D864 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802D868 @ =sub_802D680 - str r1, [r0] -_0802D83C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D844: .4byte gUnknown_02024A60 -_0802D848: .4byte 0x02017810 -_0802D84C: .4byte gUnknown_02024A6A -_0802D850: .4byte gPlayerParty -_0802D854: .4byte gSprites -_0802D858: .4byte gUnknown_0300434C -_0802D85C: .4byte SpriteCallbackDummy -_0802D860: .4byte gUnknown_03004340 -_0802D864: .4byte gUnknown_03004330 -_0802D868: .4byte sub_802D680 - thumb_func_end sub_802D798 - - thumb_func_start c3_0802FDF4 -c3_0802FDF4: @ 802D86C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - bne _0802D88E - ldr r0, _0802D894 @ =gMPlay_BGM - ldr r1, _0802D898 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl - adds r0, r4, 0 - bl DestroyTask -_0802D88E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802D894: .4byte gMPlay_BGM -_0802D898: .4byte 0x0000ffff - thumb_func_end c3_0802FDF4 - - thumb_func_start bx_t1_healthbar_update -bx_t1_healthbar_update: @ 802D89C - push {r4-r6,lr} - ldr r5, _0802D8DC @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r6, _0802D8E0 @ =gUnknown_03004340 - adds r1, r0, r6 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8045C78 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - bl sub_8043DFC - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _0802D8E4 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - bl sub_80440EC - b _0802D8FE - .align 2, 0 -_0802D8DC: .4byte gUnknown_02024A60 -_0802D8E0: .4byte gUnknown_03004340 -_0802D8E4: - ldr r2, _0802D904 @ =gUnknown_02024A6A - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0802D908 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - bl dp01_tbl1_exec_completed -_0802D8FE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802D904: .4byte gUnknown_02024A6A -_0802D908: .4byte gPlayerParty - thumb_func_end bx_t1_healthbar_update - - thumb_func_start sub_802D90C -sub_802D90C: @ 802D90C - push {lr} - ldr r0, _0802D920 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _0802D91A - bl dp01_tbl1_exec_completed -_0802D91A: - pop {r0} - bx r0 - .align 2, 0 -_0802D920: .4byte gUnknown_03004210 - thumb_func_end sub_802D90C - - thumb_func_start sub_802D924 -sub_802D924: @ 802D924 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _0802DA24 @ =gTasks - lsls r0, 2 - add r0, r9 - lsls r0, 3 - adds r0, r1 - mov r8, r0 - ldrb r0, [r0, 0x8] - mov r10, r0 - mov r1, r8 - ldrb r7, [r1, 0xC] - str r7, [sp, 0x8] - ldrh r2, [r1, 0xA] - str r2, [sp, 0xC] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0802D96A - ldr r1, _0802DA28 @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r10, r0 - bne _0802D96A - b _0802DA80 -_0802D96A: - movs r0, 0x64 - mov r1, r10 - muls r1, r0 - ldr r0, _0802DA2C @ =gPlayerParty - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - ldr r3, _0802DA30 @ =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, _0802DA34 @ =gBaseStats - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x13] - movs r1, 0xCA - lsls r1, 1 - muls r1, r2 - adds r4, r1 - adds r4, r3 - ldr r2, [r4] - str r2, [sp] - ldr r3, [sp, 0xC] - lsls r1, r3, 16 - asrs r1, 16 - adds r0, r1 - cmp r0, r2 - bcc _0802DA58 - adds r0, r6, 0 - movs r1, 0x19 - mov r2, sp - bl SetMonData - adds r0, r6, 0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - ldr r0, [sp, 0xC] - subs r2, r0, r2 - ldr r4, _0802DA38 @ =gUnknown_02024A60 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb - strb r5, [r4] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802DA40 - ldr r2, _0802DA28 @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r2 - mov r1, r10 - ldrh r0, [r0] - cmp r1, r0 - beq _0802DA1E - movs r0, 0x2 - eors r7, r0 - lsls r0, r7, 1 - adds r0, r2 - ldrh r0, [r0] - cmp r1, r0 - bne _0802DA40 -_0802DA1E: - ldr r0, _0802DA3C @ =sub_802DCB0 - b _0802DA82 - .align 2, 0 -_0802DA24: .4byte gTasks -_0802DA28: .4byte gUnknown_02024A6A -_0802DA2C: .4byte gPlayerParty -_0802DA30: .4byte gExperienceTables -_0802DA34: .4byte gBaseStats -_0802DA38: .4byte gUnknown_02024A60 -_0802DA3C: .4byte sub_802DCB0 -_0802DA40: - ldr r0, _0802DA50 @ =gTasks - mov r2, r9 - lsls r1, r2, 2 - add r1, r9 - lsls r1, 3 - adds r1, r0 - ldr r0, _0802DA54 @ =sub_802DDC4 - b _0802DA84 - .align 2, 0 -_0802DA50: .4byte gTasks -_0802DA54: .4byte sub_802DDC4 -_0802DA58: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r6, 0 - movs r1, 0x19 - bl SetMonData - ldr r1, _0802DA78 @ =gUnknown_03004330 - ldr r3, [sp, 0x8] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, _0802DA7C @ =sub_802D90C - str r1, [r0] - mov r0, r9 - bl DestroyTask - b _0802DA86 - .align 2, 0 -_0802DA78: .4byte gUnknown_03004330 -_0802DA7C: .4byte sub_802D90C -_0802DA80: - ldr r0, _0802DA98 @ =sub_802DA9C -_0802DA82: - mov r1, r8 -_0802DA84: - str r0, [r1] -_0802DA86: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802DA98: .4byte sub_802DA9C - thumb_func_end sub_802D924 - - thumb_func_start sub_802DA9C -sub_802DA9C: @ 802DA9C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0802DB54 @ =gTasks - lsls r2, r0, 2 - mov r8, r2 - add r8, r0 - mov r0, r8 - lsls r0, 3 - mov r8, r0 - add r8, r1 - mov r2, r8 - ldrb r1, [r2, 0x8] - movs r0, 0xA - ldrsh r2, [r2, r0] - mov r9, r2 - mov r2, r8 - ldrb r2, [r2, 0xC] - mov r10, r2 - movs r0, 0x64 - adds r6, r1, 0 - muls r6, r0 - ldr r0, _0802DB58 @ =gPlayerParty - adds r6, r0 - adds r0, r6, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - movs r1, 0x19 - bl GetMonData - adds r3, r0, 0 - ldr r6, _0802DB5C @ =gExperienceTables - lsls r1, r4, 2 - ldr r2, _0802DB60 @ =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r2 - ldrb r2, [r0, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r2 - adds r1, r0 - adds r1, r6 - ldr r1, [r1] - subs r3, r1 - adds r4, 0x1 - lsls r4, 2 - adds r4, r0 - adds r4, r6 - ldr r2, [r4] - subs r2, r1 - ldr r0, _0802DB64 @ =gUnknown_03004340 - add r0, r10 - ldrb r1, [r0] - mov r0, r9 - negs r0, r0 - str r0, [sp] - mov r0, r10 - bl sub_8043D84 - movs r0, 0x21 - bl PlaySE - ldr r0, _0802DB68 @ =sub_802DB6C - mov r1, r8 - str r0, [r1] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802DB54: .4byte gTasks -_0802DB58: .4byte gPlayerParty -_0802DB5C: .4byte gExperienceTables -_0802DB60: .4byte gBaseStats -_0802DB64: .4byte gUnknown_03004340 -_0802DB68: .4byte sub_802DB6C - thumb_func_end sub_802DA9C - - thumb_func_start sub_802DB6C -sub_802DB6C: @ 802DB6C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _0802DB98 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r6, r0, r1 - ldrh r1, [r6, 0x1C] - movs r2, 0x1C - ldrsh r0, [r6, r2] - cmp r0, 0xC - bgt _0802DB9C - adds r0, r1, 0x1 - strh r0, [r6, 0x1C] - b _0802DC98 - .align 2, 0 -_0802DB98: .4byte gTasks -_0802DB9C: - ldrb r0, [r6, 0x8] - mov r9, r0 - ldrh r2, [r6, 0xA] - mov r10, r2 - ldrb r7, [r6, 0xC] - ldr r5, _0802DC64 @ =gUnknown_03004340 - adds r5, r7, r5 - ldrb r1, [r5] - adds r0, r7, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8045C78 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r5] - bl sub_8043DFC - lsls r4, 16 - asrs r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - bne _0802DC98 - movs r0, 0x21 - bl m4aSongNumStop - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, _0802DC68 @ =gPlayerParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x4] - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - ldr r3, _0802DC6C @ =gExperienceTables - adds r4, 0x1 - lsls r4, 2 - ldr r2, _0802DC70 @ =gBaseStats - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1, 0x13] - movs r0, 0xCA - lsls r0, 1 - muls r0, r1 - adds r4, r0 - adds r4, r3 - ldr r1, [r4] - str r1, [sp] - mov r2, r10 - lsls r0, r2, 16 - asrs r4, r0, 16 - ldr r0, [sp, 0x4] - adds r0, r4 - cmp r0, r1 - blt _0802DC7C - adds r0, r5, 0 - movs r1, 0x19 - mov r2, sp - bl SetMonData - adds r0, r5, 0 - bl CalculateMonStats - ldr r2, [sp] - add r0, sp, 0x4 - ldrh r0, [r0] - subs r2, r0 - subs r2, r4, r2 - ldr r4, _0802DC74 @ =gUnknown_02024A60 - ldrb r5, [r4] - strb r7, [r4] - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb - strb r5, [r4] - ldr r0, _0802DC78 @ =sub_802DCB0 - str r0, [r6] - b _0802DC98 - .align 2, 0 -_0802DC64: .4byte gUnknown_03004340 -_0802DC68: .4byte gPlayerParty -_0802DC6C: .4byte gExperienceTables -_0802DC70: .4byte gBaseStats -_0802DC74: .4byte gUnknown_02024A60 -_0802DC78: .4byte sub_802DCB0 -_0802DC7C: - str r0, [sp, 0x4] - add r2, sp, 0x4 - adds r0, r5, 0 - movs r1, 0x19 - bl SetMonData - ldr r1, _0802DCA8 @ =gUnknown_03004330 - lsls r0, r7, 2 - adds r0, r1 - ldr r1, _0802DCAC @ =sub_802D90C - str r1, [r0] - mov r0, r8 - bl DestroyTask -_0802DC98: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802DCA8: .4byte gUnknown_03004330 -_0802DCAC: .4byte sub_802D90C - thumb_func_end sub_802DB6C - - thumb_func_start sub_802DCB0 -sub_802DCB0: @ 802DCB0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _0802DD04 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r4, [r0, 0xC] - ldrb r6, [r0, 0x8] - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802DCE4 - ldr r1, _0802DD08 @ =gUnknown_02024A6A - movs r0, 0x2 - adds r2, r4, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - bne _0802DCE4 - adds r4, r2, 0 -_0802DCE4: - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r4, 0 - movs r3, 0 - bl move_anim_start_t4 - ldr r0, _0802DD04 @ =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, _0802DD0C @ =sub_802DD10 - str r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802DD04: .4byte gTasks -_0802DD08: .4byte gUnknown_02024A6A -_0802DD0C: .4byte sub_802DD10 - thumb_func_end sub_802DCB0 - - thumb_func_start sub_802DD10 -sub_802DD10: @ 802DD10 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _0802DD78 @ =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r2, r0, r1 - ldrb r5, [r2, 0xC] - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - ldr r1, _0802DD7C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0802DDAE - ldrb r4, [r2, 0x8] - movs r0, 0x64 - adds r1, r4, 0 - muls r1, r0 - ldr r0, _0802DD80 @ =gPlayerParty - adds r7, r1, r0 - adds r0, r7, 0 - movs r1, 0x38 - bl GetMonData - bl battle_type_is_double - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802DD8C - ldr r1, _0802DD84 @ =gUnknown_02024A6A - movs r0, 0x2 - adds r2, r5, 0 - eors r2, r0 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - bne _0802DD8C - ldr r0, _0802DD88 @ =gUnknown_03004340 - adds r0, r2, r0 - ldrb r0, [r0] - adds r1, r7, 0 - movs r2, 0 - bl sub_8045A5C - b _0802DDA0 - .align 2, 0 -_0802DD78: .4byte gTasks -_0802DD7C: .4byte 0x02017810 -_0802DD80: .4byte gPlayerParty -_0802DD84: .4byte gUnknown_02024A6A -_0802DD88: .4byte gUnknown_03004340 -_0802DD8C: - ldr r0, _0802DDB4 @ =gUnknown_03004340 - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x64 - muls r1, r4 - ldr r2, _0802DDB8 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C -_0802DDA0: - ldr r0, _0802DDBC @ =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, _0802DDC0 @ =sub_802DDC4 - str r0, [r1] -_0802DDAE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802DDB4: .4byte gUnknown_03004340 -_0802DDB8: .4byte gPlayerParty -_0802DDBC: .4byte gTasks -_0802DDC0: .4byte sub_802DDC4 - thumb_func_end sub_802DD10 - - thumb_func_start sub_802DDC4 -sub_802DDC4: @ 802DDC4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _0802DE00 @ =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrb r1, [r4, 0x8] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802DE04 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - bl GetMonData - ldrb r0, [r4, 0xC] - ldr r1, _0802DE08 @ =gUnknown_03004330 - lsls r0, 2 - adds r0, r1 - ldr r1, _0802DE0C @ =sub_802D90C - str r1, [r0] - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802DE00: .4byte gTasks -_0802DE04: .4byte gPlayerParty -_0802DE08: .4byte gUnknown_03004330 -_0802DE0C: .4byte sub_802D90C - thumb_func_end sub_802DDC4 - - thumb_func_start sub_802DE10 -sub_802DE10: @ 802DE10 - push {r4-r6,lr} - ldr r6, _0802DE94 @ =gSprites - ldr r5, _0802DE98 @ =gUnknown_02024BE0 - ldr r4, _0802DE9C @ =gUnknown_02024A60 - ldrb r2, [r4] - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r3, 0x22 - ldrsh r1, [r0, r3] - movs r3, 0x26 - ldrsh r0, [r0, r3] - adds r1, r0 - cmp r1, 0xA0 - ble _0802DE8C - ldr r1, _0802DEA0 @ =gUnknown_02024A6A - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802DEA4 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl nullsub_9 - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r0, [r4] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - bl DestroySprite - ldr r1, _0802DEA8 @ =gUnknown_03004340 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl1_exec_completed -_0802DE8C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802DE94: .4byte gSprites -_0802DE98: .4byte gUnknown_02024BE0 -_0802DE9C: .4byte gUnknown_02024A60 -_0802DEA0: .4byte gUnknown_02024A6A -_0802DEA4: .4byte gPlayerParty -_0802DEA8: .4byte gUnknown_03004340 - thumb_func_end sub_802DE10 - - thumb_func_start sub_802DEAC -sub_802DEAC: @ 802DEAC - push {r4-r6,lr} - ldr r6, _0802DF04 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _0802DF08 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0802DEFC - ldr r5, _0802DF0C @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0802DF10 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _0802DF14 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl1_exec_completed -_0802DEFC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802DF04: .4byte gUnknown_02024A60 -_0802DF08: .4byte 0x02017810 -_0802DF0C: .4byte gUnknown_02024BE0 -_0802DF10: .4byte gSprites -_0802DF14: .4byte gUnknown_03004340 - thumb_func_end sub_802DEAC - - thumb_func_start sub_802DF18 -sub_802DF18: @ 802DF18 - push {lr} - ldr r0, _0802DF2C @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _0802DF26 - bl dp01_tbl1_exec_completed -_0802DF26: - pop {r0} - bx r0 - .align 2, 0 -_0802DF2C: .4byte gUnknown_03004210 - thumb_func_end sub_802DF18 - - thumb_func_start sub_802DF30 -sub_802DF30: @ 802DF30 - push {r4,lr} - ldr r0, _0802DF70 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802DF6A - ldr r1, _0802DF74 @ =gUnknown_03004330 - ldr r2, _0802DF78 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802DF7C @ =sub_802DF88 - str r1, [r0] - ldr r3, _0802DF80 @ =gTasks - ldr r1, _0802DF84 @ =gUnknown_0300434C - ldrb r0, [r2] - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r3 - ldrb r4, [r1, 0x8] - bl DestroyTask - adds r0, r4, 0 - bl sub_8094E20 -_0802DF6A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802DF70: .4byte gPaletteFade -_0802DF74: .4byte gUnknown_03004330 -_0802DF78: .4byte gUnknown_02024A60 -_0802DF7C: .4byte sub_802DF88 -_0802DF80: .4byte gTasks -_0802DF84: .4byte gUnknown_0300434C - thumb_func_end sub_802DF30 - - thumb_func_start sub_802DF88 -sub_802DF88: @ 802DF88 - push {lr} - ldr r0, _0802DFB8 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _0802DFBC @ =sub_800F808 - cmp r1, r0 - bne _0802DFF8 - ldr r0, _0802DFC0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802DFF8 - ldr r0, _0802DFC4 @ =gUnknown_0202E8F4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0802DFD0 - ldr r0, _0802DFC8 @ =gUnknown_0202E8F5 - ldrb r1, [r0] - ldr r2, _0802DFCC @ =gUnknown_02038470 - movs r0, 0x1 - bl dp01_build_cmdbuf_x22_a_three_bytes - b _0802DFDA - .align 2, 0 -_0802DFB8: .4byte gMain -_0802DFBC: .4byte sub_800F808 -_0802DFC0: .4byte gPaletteFade -_0802DFC4: .4byte gUnknown_0202E8F4 -_0802DFC8: .4byte gUnknown_0202E8F5 -_0802DFCC: .4byte gUnknown_02038470 -_0802DFD0: - movs r0, 0x1 - movs r1, 0x6 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes -_0802DFDA: - ldr r1, _0802DFFC @ =gUnknown_02023A60 - ldr r0, _0802E000 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0xF - ands r0, r1 - cmp r0, 0x1 - bne _0802DFF4 - bl b_link_standby_message -_0802DFF4: - bl dp01_tbl1_exec_completed -_0802DFF8: - pop {r0} - bx r0 - .align 2, 0 -_0802DFFC: .4byte gUnknown_02023A60 -_0802E000: .4byte gUnknown_02024A60 - thumb_func_end sub_802DF88 - - thumb_func_start sub_802E004 -sub_802E004: @ 802E004 - push {lr} - ldr r0, _0802E02C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802E028 - ldr r1, _0802E030 @ =gUnknown_03004330 - ldr r0, _0802E034 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802E038 @ =sub_802E03C - str r1, [r0] - bl nullsub_14 - bl sub_80A6DCC -_0802E028: - pop {r0} - bx r0 - .align 2, 0 -_0802E02C: .4byte gPaletteFade -_0802E030: .4byte gUnknown_03004330 -_0802E034: .4byte gUnknown_02024A60 -_0802E038: .4byte sub_802E03C - thumb_func_end sub_802E004 - - thumb_func_start sub_802E03C -sub_802E03C: @ 802E03C - push {lr} - ldr r0, _0802E068 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _0802E06C @ =sub_800F808 - cmp r1, r0 - bne _0802E062 - ldr r0, _0802E070 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0802E062 - ldr r0, _0802E074 @ =word_203855E - ldrh r1, [r0] - movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl1_exec_completed -_0802E062: - pop {r0} - bx r0 - .align 2, 0 -_0802E068: .4byte gMain -_0802E06C: .4byte sub_800F808 -_0802E070: .4byte gPaletteFade -_0802E074: .4byte word_203855E - thumb_func_end sub_802E03C - - thumb_func_start bx_wait_t1 -bx_wait_t1: @ 802E078 - push {lr} - ldr r0, _0802E0A4 @ =gUnknown_02024E6D - ldrb r0, [r0] - cmp r0, 0 - beq _0802E09A - ldr r0, _0802E0A8 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0802E0AC @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0802E09E -_0802E09A: - bl dp01_tbl1_exec_completed -_0802E09E: - pop {r0} - bx r0 - .align 2, 0 -_0802E0A4: .4byte gUnknown_02024E6D -_0802E0A8: .4byte gUnknown_02024A60 -_0802E0AC: .4byte 0x02017810 - thumb_func_end bx_wait_t1 - - thumb_func_start bx_blink_t1 -bx_blink_t1: @ 802E0B0 - push {r4,lr} - ldr r1, _0802E0EC @ =gUnknown_02024BE0 - ldr r0, _0802E0F0 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _0802E0F4 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _0802E0FC - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _0802E0F8 @ =gUnknown_02024E6D - strb r3, [r0] - bl dp01_tbl1_exec_completed - b _0802E126 - .align 2, 0 -_0802E0EC: .4byte gUnknown_02024BE0 -_0802E0F0: .4byte gUnknown_02024A60 -_0802E0F4: .4byte gSprites -_0802E0F8: .4byte gUnknown_02024E6D -_0802E0FC: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0802E120 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_0802E120: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_0802E126: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t1 - - thumb_func_start sub_802E12C -sub_802E12C: @ 802E12C - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r0, _0802E180 @ =gUnknown_02024A60 - ldrb r4, [r0] - lsls r4, 9 - ldr r0, _0802E184 @ =gUnknown_02023A64 - adds r4, r0 - ldr r5, _0802E188 @ =gUnknown_020238CC - adds r0, r5, 0 - bl StringCopy - lsls r0, r6, 1 - adds r4, r0 - ldrh r1, [r4] - movs r0, 0xD - muls r1, r0 - ldr r0, _0802E18C @ =gMoveNames - adds r1, r0 - adds r0, r5, 0 - bl StringAppend - ldr r4, _0802E190 @ =gUnknown_03004210 - adds r1, r5, 0 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 18 - movs r2, 0xC0 - lsls r2, 18 - adds r0, r2 - lsrs r2, r0, 16 - movs r0, 0x1 - ands r0, r6 - movs r3, 0x1 - cmp r0, 0 - beq _0802E176 - movs r3, 0xB -_0802E176: - cmp r6, 0x1 - bgt _0802E194 - movs r0, 0x37 - b _0802E196 - .align 2, 0 -_0802E180: .4byte gUnknown_02024A60 -_0802E184: .4byte gUnknown_02023A64 -_0802E188: .4byte gUnknown_020238CC -_0802E18C: .4byte gMoveNames -_0802E190: .4byte gUnknown_03004210 -_0802E194: - movs r0, 0x39 -_0802E196: - str r0, [sp] - adds r0, r4, 0 - bl InitWindow - ldr r0, _0802E1AC @ =gUnknown_03004210 - bl sub_8002F44 - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E1AC: .4byte gUnknown_03004210 - thumb_func_end sub_802E12C - - thumb_func_start sub_802E1B0 -sub_802E1B0: @ 802E1B0 - push {r4-r6,lr} - sub sp, 0x8 - ldr r0, _0802E208 @ =gUnknown_02024A60 - ldrb r4, [r0] - lsls r4, 9 - ldr r0, _0802E20C @ =gUnknown_02023A64 - adds r4, r0 - ldr r5, _0802E210 @ =gUnknown_03004348 - movs r0, 0 - strb r0, [r5] - ldr r0, _0802E214 @ =gUnknown_03004210 - ldr r1, _0802E218 @ =0x00001016 - movs r2, 0x14 - str r2, [sp] - movs r2, 0x3A - str r2, [sp, 0x4] - movs r2, 0x1 - movs r3, 0x37 - bl FillWindowRect - movs r6, 0 -_0802E1DA: - lsls r0, r6, 24 - lsrs r0, 24 - bl nullsub_7 - adds r0, r6, 0 - ldr r1, _0802E21C @ =gUnknown_08400D49 - bl sub_802E12C - ldrh r0, [r4] - cmp r0, 0 - beq _0802E1F6 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_0802E1F6: - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0802E1DA - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E208: .4byte gUnknown_02024A60 -_0802E20C: .4byte gUnknown_02023A64 -_0802E210: .4byte gUnknown_03004348 -_0802E214: .4byte gUnknown_03004210 -_0802E218: .4byte 0x00001016 -_0802E21C: .4byte gUnknown_08400D49 - thumb_func_end sub_802E1B0 - - thumb_func_start sub_802E220 -sub_802E220: @ 802E220 - push {r4-r6,lr} - sub sp, 0x4 - ldr r4, _0802E2B8 @ =gUnknown_02023A60 - ldr r6, _0802E2BC @ =gUnknown_02024A60 - ldrb r0, [r6] - lsls r1, r0, 9 - adds r0, r4, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0802E2B0 - adds r4, 0x4 - adds r4, r1, r4 - ldr r2, _0802E2C0 @ =gUnknown_020238CC - ldr r1, _0802E2C4 @ =gUnknown_08400D49 - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 - movs r1, 0xFC - strb r1, [r2] - movs r0, 0x11 - strb r0, [r2, 0x1] - movs r0, 0x2 - strb r0, [r2, 0x2] - adds r2, 0x3 - strb r1, [r2] - movs r0, 0x14 - strb r0, [r2, 0x1] - movs r0, 0x6 - strb r0, [r2, 0x2] - adds r2, 0x3 - ldr r5, _0802E2C8 @ =gUnknown_02024E64 - ldrb r1, [r6] - adds r1, r5 - adds r0, r4, 0 - adds r0, 0x8 - ldrb r1, [r1] - adds r0, r1 - ldrb r1, [r0] - adds r0, r2, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r2, r0, 0 - movs r0, 0xBA - strb r0, [r2] - adds r2, 0x1 - ldrb r0, [r6] - adds r0, r5 - adds r4, 0xC - ldrb r0, [r0] - adds r4, r0 - ldrb r1, [r4] - adds r0, r2, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, _0802E2CC @ =gUnknown_03004210 - ldr r1, _0802E2C0 @ =gUnknown_020238CC - ldr r2, _0802E2D0 @ =0x000002a2 - movs r0, 0x37 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x19 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 -_0802E2B0: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802E2B8: .4byte gUnknown_02023A60 -_0802E2BC: .4byte gUnknown_02024A60 -_0802E2C0: .4byte gUnknown_020238CC -_0802E2C4: .4byte gUnknown_08400D49 -_0802E2C8: .4byte gUnknown_02024E64 -_0802E2CC: .4byte gUnknown_03004210 -_0802E2D0: .4byte 0x000002a2 - thumb_func_end sub_802E220 - - thumb_func_start sub_802E2D4 -sub_802E2D4: @ 802E2D4 - push {r4,r5,lr} - sub sp, 0x8 - ldr r4, _0802E314 @ =gUnknown_02023A60 - ldr r5, _0802E318 @ =gUnknown_02024A60 - ldrb r0, [r5] - lsls r1, r0, 9 - adds r0, r4, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0802E328 - ldr r4, _0802E31C @ =gUnknown_03004210 - ldr r1, _0802E320 @ =0x00001016 - movs r0, 0x1C - str r0, [sp] - movs r0, 0x3A - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x17 - movs r3, 0x37 - bl FillWindowRect - ldr r1, _0802E324 @ =gUnknown_08400D52 - movs r2, 0xA4 - lsls r2, 2 - movs r0, 0x37 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x13 - bl InitWindow - b _0802E388 - .align 2, 0 -_0802E314: .4byte gUnknown_02023A60 -_0802E318: .4byte gUnknown_02024A60 -_0802E31C: .4byte gUnknown_03004210 -_0802E320: .4byte 0x00001016 -_0802E324: .4byte gUnknown_08400D52 -_0802E328: - adds r4, 0x4 - adds r4, r1, r4 - ldr r3, _0802E398 @ =gUnknown_020238CC - ldr r1, _0802E39C @ =gUnknown_08400D49 - adds r0, r3, 0 - bl StringCopy - adds r3, r0, 0 - ldr r2, _0802E3A0 @ =gBattleMoves - ldr r1, _0802E3A4 @ =gUnknown_02024E64 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r4, r0 - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x2] - lsls r1, r0, 3 - subs r1, r0 - ldr r0, _0802E3A8 @ =gTypeNames - adds r1, r0 - adds r0, r3, 0 - bl StringCopy - ldr r4, _0802E3AC @ =gUnknown_03004210 - ldr r1, _0802E3B0 @ =0x00001016 - movs r0, 0x1C - str r0, [sp] - movs r0, 0x3A - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r2, 0x17 - movs r3, 0x39 - bl FillWindowRect - ldr r1, _0802E398 @ =gUnknown_020238CC - movs r2, 0xB0 - lsls r2, 2 - movs r0, 0x39 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x17 - bl InitWindow -_0802E388: - ldr r0, _0802E3AC @ =gUnknown_03004210 - bl sub_8002F44 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802E398: .4byte gUnknown_020238CC -_0802E39C: .4byte gUnknown_08400D49 -_0802E3A0: .4byte gBattleMoves -_0802E3A4: .4byte gUnknown_02024E64 -_0802E3A8: .4byte gTypeNames -_0802E3AC: .4byte gUnknown_03004210 -_0802E3B0: .4byte 0x00001016 - thumb_func_end sub_802E2D4 - - thumb_func_start sub_802E3B4 -sub_802E3B4: @ 802E3B4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x48 - bl sub_814A958 - ldr r1, _0802E3DC @ =gUnknown_081FAE89 - lsls r4, 1 - adds r0, r4, r1 - ldrb r0, [r0] - adds r1, 0x1 - adds r4, r1 - ldrb r1, [r4] - bl sub_814A880 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802E3DC: .4byte gUnknown_081FAE89 - thumb_func_end sub_802E3B4 - - thumb_func_start nullsub_7 -nullsub_7: @ 802E3E0 - bx lr - thumb_func_end nullsub_7 - - thumb_func_start sub_802E3E4 -sub_802E3E4: @ 802E3E4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x2A - bl sub_814A958 - ldr r1, _0802E40C @ =gUnknown_081FAE91 - lsls r4, 1 - adds r0, r4, r1 - ldrb r0, [r0] - adds r1, 0x1 - adds r4, r1 - ldrb r1, [r4] - bl sub_814A880 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802E40C: .4byte gUnknown_081FAE91 - thumb_func_end sub_802E3E4 - - thumb_func_start nullsub_8 -nullsub_8: @ 802E410 - bx lr - thumb_func_end nullsub_8 - - thumb_func_start sub_802E414 -sub_802E414: @ 802E414 - push {lr} - ldr r0, _0802E420 @ =sub_807AD58 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0802E420: .4byte sub_807AD58 - thumb_func_end sub_802E414 - - thumb_func_start sub_802E424 -sub_802E424: @ 802E424 - push {lr} - ldr r0, _0802E430 @ =sub_807AD58 - bl SetMainCallback2 - pop {r0} - bx r0 - .align 2, 0 -_0802E430: .4byte sub_807AD58 - thumb_func_end sub_802E424 - - thumb_func_start sub_802E434 -sub_802E434: @ 802E434 - push {lr} - ldr r0, _0802E458 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0802E45C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _0802E452 - bl dp01_tbl1_exec_completed -_0802E452: - pop {r0} - bx r0 - .align 2, 0 -_0802E458: .4byte gUnknown_02024A60 -_0802E45C: .4byte 0x02017810 - thumb_func_end sub_802E434 - - thumb_func_start sub_802E460 -sub_802E460: @ 802E460 - push {lr} - ldr r0, _0802E484 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0802E488 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _0802E47E - bl dp01_tbl1_exec_completed -_0802E47E: - pop {r0} - bx r0 - .align 2, 0 -_0802E484: .4byte gUnknown_02024A60 -_0802E488: .4byte 0x02017810 - thumb_func_end sub_802E460 - - thumb_func_start b_link_standby_message -b_link_standby_message: @ 802E48C - push {lr} - sub sp, 0x4 - ldr r0, _0802E4BC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802E4B6 - ldr r0, _0802E4C0 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _0802E4C4 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r0, _0802E4C8 @ =gUnknown_03004210 - ldr r1, _0802E4CC @ =gUnknown_08400CE0 - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 -_0802E4B6: - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_0802E4BC: .4byte gUnknown_020239F8 -_0802E4C0: .4byte gUnknown_030042A4 -_0802E4C4: .4byte gUnknown_030042A0 -_0802E4C8: .4byte gUnknown_03004210 -_0802E4CC: .4byte gUnknown_08400CE0 - thumb_func_end b_link_standby_message - - thumb_func_start dp01t_00_1_getattr -dp01t_00_1_getattr: @ 802E4D0 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, _0802E4FC @ =gUnknown_02023A60 - ldr r0, _0802E500 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0802E508 - ldr r0, _0802E504 @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl dp01_getattr_by_ch1_for_player_pokemon_ - adds r6, r0, 0 - b _0802E52A - .align 2, 0 -_0802E4FC: .4byte gUnknown_02023A60 -_0802E500: .4byte gUnknown_02024A60 -_0802E504: .4byte gUnknown_02024A6A -_0802E508: - ldrb r4, [r1] - movs r5, 0 -_0802E50C: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0802E522 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl dp01_getattr_by_ch1_for_player_pokemon_ - adds r6, r0 -_0802E522: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _0802E50C -_0802E52A: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl1_exec_completed - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_1_getattr - - thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_ -dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _0802E578 @ =gUnknown_02023A60 - ldr r3, _0802E57C @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _0802E56E - bl _0802ECDA -_0802E56E: - lsls r0, 2 - ldr r1, _0802E580 @ =_0802E584 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E578: .4byte gUnknown_02023A60 -_0802E57C: .4byte gUnknown_02024A60 -_0802E580: .4byte _0802E584 - .align 2, 0 -_0802E584: - .4byte _0802E674 - .4byte _0802E898 - .4byte _0802E8A8 - .4byte _0802E8B8 - .4byte _0802E920 - .4byte _0802E920 - .4byte _0802E920 - .4byte _0802E920 - .4byte _0802E93C - .4byte _0802E978 - .4byte _0802E978 - .4byte _0802E978 - .4byte _0802E978 - .4byte _0802ECDA - .4byte _0802ECDA - .4byte _0802ECDA - .4byte _0802ECDA - .4byte _0802E994 - .4byte _0802E9A4 - .4byte _0802E9D4 - .4byte _0802E9E4 - .4byte _0802E9F4 - .4byte _0802EA04 - .4byte _0802EA14 - .4byte _0802EA24 - .4byte _0802EA34 - .4byte _0802EA44 - .4byte _0802EA54 - .4byte _0802EA64 - .4byte _0802EA74 - .4byte _0802EA84 - .4byte _0802EA94 - .4byte _0802EAE4 - .4byte _0802EAF4 - .4byte _0802EB04 - .4byte _0802EB14 - .4byte _0802EB24 - .4byte _0802EB34 - .4byte _0802EB44 - .4byte _0802EB54 - .4byte _0802EB64 - .4byte _0802EB98 - .4byte _0802EBA8 - .4byte _0802EBB8 - .4byte _0802EBC8 - .4byte _0802EBD8 - .4byte _0802EBE8 - .4byte _0802EBF8 - .4byte _0802EC08 - .4byte _0802EC28 - .4byte _0802EC38 - .4byte _0802EC48 - .4byte _0802EC58 - .4byte _0802EC68 - .4byte _0802EC78 - .4byte _0802EC88 - .4byte _0802EC98 - .4byte _0802ECA8 - .4byte _0802ECB8 - .4byte _0802ECC8 -_0802E674: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0802E888 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_0802E6C0: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0802E6C0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0802E888 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, _0802E88C @ =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, _0802E890 @ =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, _0802E894 @ =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_0802E878: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _0802E878 - b _0802ECDA - .align 2, 0 -_0802E888: .4byte gPlayerParty -_0802E88C: .4byte 0xfffffc1f -_0802E890: .4byte 0xfff07fff -_0802E894: .4byte 0xfffffe0f -_0802E898: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E8A4 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - b _0802EC12 - .align 2, 0 -_0802E8A4: .4byte gPlayerParty -_0802E8A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E8B4 @ =gPlayerParty - adds r0, r1 - movs r1, 0xC - b _0802EC12 - .align 2, 0 -_0802E8B4: .4byte gPlayerParty -_0802E8B8: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0802E91C @ =gPlayerParty - adds r4, r1, r0 - mov r8, r9 -_0802E8CE: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _0802E8CE - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E91C @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_0802E90C: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _0802E90C - b _0802ECDA - .align 2, 0 -_0802E91C: .4byte gPlayerParty -_0802E920: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E938 @ =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _0802EC12 - .align 2, 0 -_0802E938: .4byte gPlayerParty -_0802E93C: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, _0802E974 @ =gPlayerParty - mov r8, r2 -_0802E948: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _0802E948 - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E974 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _0802ECDA - .align 2, 0 -_0802E974: .4byte gPlayerParty -_0802E978: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E990 @ =gPlayerParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _0802ECD2 - .align 2, 0 -_0802E990: .4byte gPlayerParty -_0802E994: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E9A0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1 - b _0802E9AE - .align 2, 0 -_0802E9A0: .4byte gPlayerParty -_0802E9A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E9D0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x19 -_0802E9AE: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _0802ECDA - .align 2, 0 -_0802E9D0: .4byte gPlayerParty -_0802E9D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E9E0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1A - b _0802ECD2 - .align 2, 0 -_0802E9E0: .4byte gPlayerParty -_0802E9E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802E9F0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1B - b _0802ECD2 - .align 2, 0 -_0802E9F0: .4byte gPlayerParty -_0802E9F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA00 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1C - b _0802ECD2 - .align 2, 0 -_0802EA00: .4byte gPlayerParty -_0802EA04: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA10 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1D - b _0802ECD2 - .align 2, 0 -_0802EA10: .4byte gPlayerParty -_0802EA14: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA20 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1E - b _0802ECD2 - .align 2, 0 -_0802EA20: .4byte gPlayerParty -_0802EA24: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA30 @ =gPlayerParty - adds r0, r1 - movs r1, 0x1F - b _0802ECD2 - .align 2, 0 -_0802EA30: .4byte gPlayerParty -_0802EA34: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA40 @ =gPlayerParty - adds r0, r1 - movs r1, 0x20 - b _0802ECD2 - .align 2, 0 -_0802EA40: .4byte gPlayerParty -_0802EA44: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA50 @ =gPlayerParty - adds r0, r1 - movs r1, 0x22 - b _0802ECD2 - .align 2, 0 -_0802EA50: .4byte gPlayerParty -_0802EA54: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA60 @ =gPlayerParty - adds r0, r1 - movs r1, 0x23 - b _0802ECD2 - .align 2, 0 -_0802EA60: .4byte gPlayerParty -_0802EA64: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA70 @ =gPlayerParty - adds r0, r1 - movs r1, 0x24 - b _0802ECD2 - .align 2, 0 -_0802EA70: .4byte gPlayerParty -_0802EA74: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA80 @ =gPlayerParty - adds r0, r1 - movs r1, 0x25 - b _0802ECD2 - .align 2, 0 -_0802EA80: .4byte gPlayerParty -_0802EA84: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EA90 @ =gPlayerParty - adds r0, r1 - movs r1, 0x26 - b _0802ECD2 - .align 2, 0 -_0802EA90: .4byte gPlayerParty -_0802EA94: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0802EAE0 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _0802ECDA - .align 2, 0 -_0802EAE0: .4byte gPlayerParty -_0802EAE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EAF0 @ =gPlayerParty - adds r0, r1 - movs r1, 0x27 - b _0802ECD2 - .align 2, 0 -_0802EAF0: .4byte gPlayerParty -_0802EAF4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB00 @ =gPlayerParty - adds r0, r1 - movs r1, 0x28 - b _0802ECD2 - .align 2, 0 -_0802EB00: .4byte gPlayerParty -_0802EB04: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB10 @ =gPlayerParty - adds r0, r1 - movs r1, 0x29 - b _0802ECD2 - .align 2, 0 -_0802EB10: .4byte gPlayerParty -_0802EB14: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB20 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2A - b _0802ECD2 - .align 2, 0 -_0802EB20: .4byte gPlayerParty -_0802EB24: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB30 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2B - b _0802ECD2 - .align 2, 0 -_0802EB30: .4byte gPlayerParty -_0802EB34: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB40 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2C - b _0802ECD2 - .align 2, 0 -_0802EB40: .4byte gPlayerParty -_0802EB44: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB50 @ =gPlayerParty - adds r0, r1 - movs r1, 0 - b _0802EB6E - .align 2, 0 -_0802EB50: .4byte gPlayerParty -_0802EB54: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB60 @ =gPlayerParty - adds r0, r1 - movs r1, 0x9 - b _0802EC12 - .align 2, 0 -_0802EB60: .4byte gPlayerParty -_0802EB64: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EB94 @ =gPlayerParty - adds r0, r1 - movs r1, 0x37 -_0802EB6E: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _0802ECDA - .align 2, 0 -_0802EB94: .4byte gPlayerParty -_0802EB98: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EBA4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x38 - b _0802ECD2 - .align 2, 0 -_0802EBA4: .4byte gPlayerParty -_0802EBA8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EBB4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x39 - b _0802EC12 - .align 2, 0 -_0802EBB4: .4byte gPlayerParty -_0802EBB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EBC4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - b _0802EC12 - .align 2, 0 -_0802EBC4: .4byte gPlayerParty -_0802EBC8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EBD4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3B - b _0802EC12 - .align 2, 0 -_0802EBD4: .4byte gPlayerParty -_0802EBD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EBE4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3C - b _0802EC12 - .align 2, 0 -_0802EBE4: .4byte gPlayerParty -_0802EBE8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EBF4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3D - b _0802EC12 - .align 2, 0 -_0802EBF4: .4byte gPlayerParty -_0802EBF8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC04 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3E - b _0802EC12 - .align 2, 0 -_0802EC04: .4byte gPlayerParty -_0802EC08: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC24 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3F -_0802EC12: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _0802ECDA - .align 2, 0 -_0802EC24: .4byte gPlayerParty -_0802EC28: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC34 @ =gPlayerParty - adds r0, r1 - movs r1, 0x16 - b _0802ECD2 - .align 2, 0 -_0802EC34: .4byte gPlayerParty -_0802EC38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC44 @ =gPlayerParty - adds r0, r1 - movs r1, 0x17 - b _0802ECD2 - .align 2, 0 -_0802EC44: .4byte gPlayerParty -_0802EC48: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC54 @ =gPlayerParty - adds r0, r1 - movs r1, 0x18 - b _0802ECD2 - .align 2, 0 -_0802EC54: .4byte gPlayerParty -_0802EC58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC64 @ =gPlayerParty - adds r0, r1 - movs r1, 0x21 - b _0802ECD2 - .align 2, 0 -_0802EC64: .4byte gPlayerParty -_0802EC68: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC74 @ =gPlayerParty - adds r0, r1 - movs r1, 0x2F - b _0802ECD2 - .align 2, 0 -_0802EC74: .4byte gPlayerParty -_0802EC78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC84 @ =gPlayerParty - adds r0, r1 - movs r1, 0x30 - b _0802ECD2 - .align 2, 0 -_0802EC84: .4byte gPlayerParty -_0802EC88: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802EC94 @ =gPlayerParty - adds r0, r1 - movs r1, 0x32 - b _0802ECD2 - .align 2, 0 -_0802EC94: .4byte gPlayerParty -_0802EC98: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802ECA4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x33 - b _0802ECD2 - .align 2, 0 -_0802ECA4: .4byte gPlayerParty -_0802ECA8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802ECB4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x34 - b _0802ECD2 - .align 2, 0 -_0802ECB4: .4byte gPlayerParty -_0802ECB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802ECC4 @ =gPlayerParty - adds r0, r1 - movs r1, 0x35 - b _0802ECD2 - .align 2, 0 -_0802ECC4: .4byte gPlayerParty -_0802ECC8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802ECEC @ =gPlayerParty - adds r0, r1 - movs r1, 0x36 -_0802ECD2: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_0802ECDA: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0802ECEC: .4byte gPlayerParty - thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_ - - thumb_func_start sub_802ECF0 -sub_802ECF0: @ 802ECF0 - push {r4-r7,lr} - sub sp, 0x58 - ldr r2, _0802ED68 @ =gUnknown_02024A6A - ldr r5, _0802ED6C @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - adds r4, r2, 0 - muls r4, r0 - ldr r3, _0802ED70 @ =gUnknown_02023A60 - lsls r1, 9 - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r2, [r0] - ldr r0, _0802ED74 @ =gPlayerParty - adds r0, r2, r0 - adds r6, r4, r0 - mov r0, sp - adds r4, r0, r2 - movs r2, 0 - adds r0, r3, 0x2 - adds r1, r0 - adds r7, r5, 0 - mov r12, r3 - ldrb r1, [r1] - cmp r2, r1 - bcs _0802ED46 - adds r3, r0, 0 -_0802ED2C: - adds r1, r4, r2 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r5] - lsls r0, 9 - adds r0, r3 - ldrb r0, [r0] - cmp r2, r0 - bcc _0802ED2C -_0802ED46: - ldrb r0, [r7] - lsls r0, 9 - mov r1, r12 - adds r1, 0x2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - adds r2, r4, 0 - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl1_exec_completed - add sp, 0x58 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802ED68: .4byte gUnknown_02024A6A -_0802ED6C: .4byte gUnknown_02024A60 -_0802ED70: .4byte gUnknown_02023A60 -_0802ED74: .4byte gPlayerParty - thumb_func_end sub_802ECF0 - - thumb_func_start dp01t_02_1_setattr -dp01t_02_1_setattr: @ 802ED78 - push {r4,r5,lr} - ldr r1, _0802ED9C @ =gUnknown_02023A60 - ldr r0, _0802EDA0 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0802EDA8 - ldr r0, _0802EDA4 @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl dp01_setattr_by_ch1_for_player_pokemon - b _0802EDC6 - .align 2, 0 -_0802ED9C: .4byte gUnknown_02023A60 -_0802EDA0: .4byte gUnknown_02024A60 -_0802EDA4: .4byte gUnknown_02024A6A -_0802EDA8: - ldrb r4, [r1] - movs r5, 0 -_0802EDAC: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _0802EDBA - adds r0, r5, 0 - bl dp01_setattr_by_ch1_for_player_pokemon -_0802EDBA: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _0802EDAC -_0802EDC6: - bl dp01_tbl1_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end dp01t_02_1_setattr - - thumb_func_start dp01_setattr_by_ch1_for_player_pokemon -dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x34 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0802EE08 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - ldr r2, _0802EE0C @ =gUnknown_02023A63 - adds r3, r0, r2 - adds r6, r3, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r7, r2, 0 - cmp r0, 0x3B - bls _0802EDFC - bl _0802F796 -_0802EDFC: - lsls r0, 2 - ldr r1, _0802EE10 @ =_0802EE14 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802EE08: .4byte gUnknown_02024A60 -_0802EE0C: .4byte gUnknown_02023A63 -_0802EE10: .4byte _0802EE14 - .align 2, 0 -_0802EE14: - .4byte _0802EF04 - .4byte _0802F09C - .4byte _0802F0BC - .4byte _0802F0DC - .4byte _0802F134 - .4byte _0802F134 - .4byte _0802F134 - .4byte _0802F134 - .4byte _0802F15C - .4byte _0802F1C0 - .4byte _0802F1C0 - .4byte _0802F1C0 - .4byte _0802F1C0 - .4byte _0802F796 - .4byte _0802F796 - .4byte _0802F796 - .4byte _0802F796 - .4byte _0802F1F0 - .4byte _0802F210 - .4byte _0802F230 - .4byte _0802F250 - .4byte _0802F270 - .4byte _0802F290 - .4byte _0802F2B0 - .4byte _0802F2D0 - .4byte _0802F2F0 - .4byte _0802F310 - .4byte _0802F330 - .4byte _0802F350 - .4byte _0802F370 - .4byte _0802F390 - .4byte _0802F3B0 - .4byte _0802F420 - .4byte _0802F440 - .4byte _0802F460 - .4byte _0802F480 - .4byte _0802F4A0 - .4byte _0802F4C0 - .4byte _0802F4E0 - .4byte _0802F500 - .4byte _0802F520 - .4byte _0802F540 - .4byte _0802F560 - .4byte _0802F580 - .4byte _0802F5A0 - .4byte _0802F5C0 - .4byte _0802F5E0 - .4byte _0802F600 - .4byte _0802F620 - .4byte _0802F640 - .4byte _0802F660 - .4byte _0802F680 - .4byte _0802F6A0 - .4byte _0802F6C0 - .4byte _0802F6E0 - .4byte _0802F700 - .4byte _0802F720 - .4byte _0802F740 - .4byte _0802F760 - .4byte _0802F780 -_0802EF04: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0802F098 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r6, 0 - bl SetMonData - adds r2, r6, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r6 - mov r10, r0 - adds r0, r6, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r6, 0x2 - str r0, [sp, 0x4] - adds r0, r6, 0x4 - str r0, [sp, 0x8] - adds r0, r6, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r7, r6, 0 - adds r7, 0x24 - adds r4, r6, 0 - adds r4, 0xC -_0802EF6A: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r7, 0 - bl SetMonData - adds r7, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0802EF6A - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0802F098 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl SetMonData - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl SetMonData - ldrb r0, [r6, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r6, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r6, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r6, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F098: .4byte gPlayerParty -_0802F09C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F0B4 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F0B8 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xB - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F0B4: .4byte gPlayerParty -_0802F0B8: .4byte gUnknown_02024A60 -_0802F0BC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F0D4 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F0D8 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0xC - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F0D4: .4byte gPlayerParty -_0802F0D8: .4byte gUnknown_02024A60 -_0802F0DC: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r3 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _0802F130 @ =gPlayerParty - adds r7, r1, r0 - adds r6, r3, 0 - adds r6, 0x8 - adds r4, r3, 0 -_0802F0F6: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _0802F0F6 - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F130 @ =gPlayerParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F130: .4byte gPlayerParty -_0802F134: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F150 @ =gPlayerParty - adds r0, r1 - ldr r3, _0802F154 @ =gUnknown_02023A60 - ldr r1, _0802F158 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _0802F1D8 - .align 2, 0 -_0802F150: .4byte gPlayerParty -_0802F154: .4byte gUnknown_02023A60 -_0802F158: .4byte gUnknown_02024A60 -_0802F15C: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0802F1B8 @ =gPlayerParty - adds r4, r0 - ldr r5, _0802F1BC @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x11 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F1B8: .4byte gPlayerParty -_0802F1BC: .4byte gUnknown_02024A60 -_0802F1C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F1E4 @ =gPlayerParty - adds r0, r1 - ldr r3, _0802F1E8 @ =gUnknown_02023A60 - ldr r1, _0802F1EC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_0802F1D8: - adds r3, 0x3 - adds r2, r3 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F1E4: .4byte gPlayerParty -_0802F1E8: .4byte gUnknown_02023A60 -_0802F1EC: .4byte gUnknown_02024A60 -_0802F1F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F208 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F20C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F208: .4byte gPlayerParty -_0802F20C: .4byte gUnknown_02024A60 -_0802F210: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F228 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F22C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x19 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F228: .4byte gPlayerParty -_0802F22C: .4byte gUnknown_02024A60 -_0802F230: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F248 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F24C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1A - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F248: .4byte gPlayerParty -_0802F24C: .4byte gUnknown_02024A60 -_0802F250: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F268 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F26C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1B - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F268: .4byte gPlayerParty -_0802F26C: .4byte gUnknown_02024A60 -_0802F270: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F288 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F28C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1C - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F288: .4byte gPlayerParty -_0802F28C: .4byte gUnknown_02024A60 -_0802F290: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F2A8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F2AC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1D - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F2A8: .4byte gPlayerParty -_0802F2AC: .4byte gUnknown_02024A60 -_0802F2B0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F2C8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F2CC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1E - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F2C8: .4byte gPlayerParty -_0802F2CC: .4byte gUnknown_02024A60 -_0802F2D0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F2E8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F2EC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x1F - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F2E8: .4byte gPlayerParty -_0802F2EC: .4byte gUnknown_02024A60 -_0802F2F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F308 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F30C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x20 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F308: .4byte gPlayerParty -_0802F30C: .4byte gUnknown_02024A60 -_0802F310: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F328 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F32C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x22 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F328: .4byte gPlayerParty -_0802F32C: .4byte gUnknown_02024A60 -_0802F330: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F348 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F34C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x23 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F348: .4byte gPlayerParty -_0802F34C: .4byte gUnknown_02024A60 -_0802F350: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F368 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F36C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x24 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F368: .4byte gPlayerParty -_0802F36C: .4byte gUnknown_02024A60 -_0802F370: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F388 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F38C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x25 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F388: .4byte gPlayerParty -_0802F38C: .4byte gUnknown_02024A60 -_0802F390: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F3A8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F3AC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x26 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F3A8: .4byte gPlayerParty -_0802F3AC: .4byte gUnknown_02024A60 -_0802F3B0: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0802F418 @ =gPlayerParty - adds r4, r0 - ldr r5, _0802F41C @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r2, 9 - adds r2, r7 - adds r0, r4, 0 - movs r1, 0x27 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl SetMonData - ldrb r2, [r5] - lsls r2, 9 - adds r0, r7, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _0802F4D0 - .align 2, 0 -_0802F418: .4byte gPlayerParty -_0802F41C: .4byte gUnknown_02024A60 -_0802F420: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F438 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F43C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x27 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F438: .4byte gPlayerParty -_0802F43C: .4byte gUnknown_02024A60 -_0802F440: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F458 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F45C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x28 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F458: .4byte gPlayerParty -_0802F45C: .4byte gUnknown_02024A60 -_0802F460: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F478 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F47C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x29 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F478: .4byte gPlayerParty -_0802F47C: .4byte gUnknown_02024A60 -_0802F480: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F498 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F49C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2A - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F498: .4byte gPlayerParty -_0802F49C: .4byte gUnknown_02024A60 -_0802F4A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F4B8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F4BC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2B - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F4B8: .4byte gPlayerParty -_0802F4BC: .4byte gUnknown_02024A60 -_0802F4C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F4D8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F4DC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 -_0802F4D0: - movs r1, 0x2C - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F4D8: .4byte gPlayerParty -_0802F4DC: .4byte gUnknown_02024A60 -_0802F4E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F4F8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F4FC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F4F8: .4byte gPlayerParty -_0802F4FC: .4byte gUnknown_02024A60 -_0802F500: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F518 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F51C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x9 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F518: .4byte gPlayerParty -_0802F51C: .4byte gUnknown_02024A60 -_0802F520: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F538 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F53C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x37 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F538: .4byte gPlayerParty -_0802F53C: .4byte gUnknown_02024A60 -_0802F540: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F558 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F55C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x38 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F558: .4byte gPlayerParty -_0802F55C: .4byte gUnknown_02024A60 -_0802F560: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F578 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F57C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x39 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F578: .4byte gPlayerParty -_0802F57C: .4byte gUnknown_02024A60 -_0802F580: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F598 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F59C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3A - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F598: .4byte gPlayerParty -_0802F59C: .4byte gUnknown_02024A60 -_0802F5A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F5B8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F5BC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3B - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F5B8: .4byte gPlayerParty -_0802F5BC: .4byte gUnknown_02024A60 -_0802F5C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F5D8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F5DC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3C - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F5D8: .4byte gPlayerParty -_0802F5DC: .4byte gUnknown_02024A60 -_0802F5E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F5F8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F5FC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3D - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F5F8: .4byte gPlayerParty -_0802F5FC: .4byte gUnknown_02024A60 -_0802F600: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F618 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F61C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3E - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F618: .4byte gPlayerParty -_0802F61C: .4byte gUnknown_02024A60 -_0802F620: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F638 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F63C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x3F - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F638: .4byte gPlayerParty -_0802F63C: .4byte gUnknown_02024A60 -_0802F640: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F658 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F65C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x16 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F658: .4byte gPlayerParty -_0802F65C: .4byte gUnknown_02024A60 -_0802F660: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F678 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F67C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x17 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F678: .4byte gPlayerParty -_0802F67C: .4byte gUnknown_02024A60 -_0802F680: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F698 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F69C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x18 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F698: .4byte gPlayerParty -_0802F69C: .4byte gUnknown_02024A60 -_0802F6A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F6B8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F6BC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x21 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F6B8: .4byte gPlayerParty -_0802F6BC: .4byte gUnknown_02024A60 -_0802F6C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F6D8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F6DC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x2F - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F6D8: .4byte gPlayerParty -_0802F6DC: .4byte gUnknown_02024A60 -_0802F6E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F6F8 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F6FC @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x30 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F6F8: .4byte gPlayerParty -_0802F6FC: .4byte gUnknown_02024A60 -_0802F700: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F718 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F71C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x32 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F718: .4byte gPlayerParty -_0802F71C: .4byte gUnknown_02024A60 -_0802F720: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F738 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F73C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x33 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F738: .4byte gPlayerParty -_0802F73C: .4byte gUnknown_02024A60 -_0802F740: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F758 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F75C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x34 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F758: .4byte gPlayerParty -_0802F75C: .4byte gUnknown_02024A60 -_0802F760: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F778 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F77C @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x35 - bl SetMonData - b _0802F796 - .align 2, 0 -_0802F778: .4byte gPlayerParty -_0802F77C: .4byte gUnknown_02024A60 -_0802F780: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0802F7C0 @ =gPlayerParty - adds r0, r1 - ldr r1, _0802F7C4 @ =gUnknown_02024A60 - ldrb r2, [r1] - lsls r2, 9 - adds r2, r7 - movs r1, 0x36 - bl SetMonData -_0802F796: - ldr r2, _0802F7C8 @ =gUnknown_02024A6A - ldr r0, _0802F7C4 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0802F7C0 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - add sp, 0x34 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F7C0: .4byte gPlayerParty -_0802F7C4: .4byte gUnknown_02024A60 -_0802F7C8: .4byte gUnknown_02024A6A - thumb_func_end dp01_setattr_by_ch1_for_player_pokemon - - thumb_func_start sub_802F7CC -sub_802F7CC: @ 802F7CC - push {r4-r7,lr} - ldr r1, _0802F830 @ =gUnknown_02024A6A - ldr r7, _0802F834 @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, _0802F838 @ =gUnknown_02023A60 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _0802F83C @ =gPlayerParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _0802F824 - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_0802F802: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _0802F802 -_0802F824: - bl dp01_tbl1_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802F830: .4byte gUnknown_02024A6A -_0802F834: .4byte gUnknown_02024A60 -_0802F838: .4byte gUnknown_02023A60 -_0802F83C: .4byte gPlayerParty - thumb_func_end sub_802F7CC - - thumb_func_start sub_802F840 -sub_802F840: @ 802F840 - push {r4,lr} - ldr r2, _0802F88C @ =gUnknown_02024A6A - ldr r4, _0802F890 @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0802F894 @ =gPlayerParty - adds r0, r2 - bl sub_80318FC - ldr r2, _0802F898 @ =gSprites - ldr r0, _0802F89C @ =gUnknown_02024BE0 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldr r1, _0802F8A0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802F8A4 @ =bx_0802E404 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0802F88C: .4byte gUnknown_02024A6A -_0802F890: .4byte gUnknown_02024A60 -_0802F894: .4byte gPlayerParty -_0802F898: .4byte gSprites -_0802F89C: .4byte gUnknown_02024BE0 -_0802F8A0: .4byte gUnknown_03004330 -_0802F8A4: .4byte bx_0802E404 - thumb_func_end sub_802F840 - - thumb_func_start sub_802F8A8 -sub_802F8A8: @ 802F8A8 - push {r4-r6,lr} - ldr r5, _0802F914 @ =gUnknown_02024A60 - ldrb r0, [r5] - ldr r4, _0802F918 @ =gUnknown_02023A60 - lsls r1, r0, 9 - adds r6, r4, 0x2 - adds r1, r6 - ldrb r1, [r1] - bl sub_8032AA8 - ldr r2, _0802F91C @ =gUnknown_02024A6A - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r2 - lsls r0, 9 - adds r4, 0x1 - adds r0, r4 - ldrb r0, [r0] - movs r4, 0 - strh r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0802F920 @ =gPlayerParty - adds r0, r2 - bl sub_80318FC - ldr r1, _0802F924 @ =gUnknown_02024E60 - ldrb r0, [r5] - adds r0, r1 - strb r4, [r0] - ldr r1, _0802F928 @ =gUnknown_02024E64 - ldrb r0, [r5] - adds r0, r1 - strb r4, [r0] - ldrb r0, [r5] - lsls r1, r0, 9 - adds r1, r6 - ldrb r1, [r1] - bl sub_802F934 - ldr r1, _0802F92C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802F930 @ =sub_802D798 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802F914: .4byte gUnknown_02024A60 -_0802F918: .4byte gUnknown_02023A60 -_0802F91C: .4byte gUnknown_02024A6A -_0802F920: .4byte gPlayerParty -_0802F924: .4byte gUnknown_02024E60 -_0802F928: .4byte gUnknown_02024E64 -_0802F92C: .4byte gUnknown_03004330 -_0802F930: .4byte sub_802D798 - thumb_func_end sub_802F8A8 - - thumb_func_start sub_802F934 -sub_802F934: @ 802F934 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8032AA8 - ldr r0, _0802FA78 @ =gUnknown_02024A6A - lsls r2, r6, 1 - adds r2, r0 - ldr r0, _0802FA7C @ =gUnknown_02023A60 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r2] - ldrh r1, [r2] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0802FA80 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _0802FA84 @ =sub_80312F0 - bl object_new_hidden_with_callback - ldr r1, _0802FA88 @ =gUnknown_0300434C - mov r9, r1 - add r9, r6 - mov r1, r9 - strb r0, [r1] - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl GetMonSpriteTemplate_803C56C - ldr r0, _0802FA8C @ =gUnknown_02024E8C - mov r10, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r10 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _0802FA90 @ =gUnknown_02024BE0 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _0802FA94 @ =gSprites - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _0802FA98 @ =gUnknown_02024E84 - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0802FA9C @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFF - bl sub_8046400 - mov r1, r9 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802FA78: .4byte gUnknown_02024A6A -_0802FA7C: .4byte gUnknown_02023A60 -_0802FA80: .4byte gPlayerParty -_0802FA84: .4byte sub_80312F0 -_0802FA88: .4byte gUnknown_0300434C -_0802FA8C: .4byte gUnknown_02024E8C -_0802FA90: .4byte gUnknown_02024BE0 -_0802FA94: .4byte gSprites -_0802FA98: .4byte gUnknown_02024E84 -_0802FA9C: .4byte SpriteCallbackDummy - thumb_func_end sub_802F934 - - thumb_func_start sub_802FAA0 -sub_802FAA0: @ 802FAA0 - push {r4-r6,lr} - ldr r1, _0802FAD0 @ =gUnknown_02023A60 - ldr r6, _0802FAD4 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _0802FAE4 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _0802FAD8 @ =0x02017810 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, _0802FADC @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802FAE0 @ =sub_802FB2C - str r1, [r0] - b _0802FB1A - .align 2, 0 -_0802FAD0: .4byte gUnknown_02023A60 -_0802FAD4: .4byte gUnknown_02024A60 -_0802FAD8: .4byte 0x02017810 -_0802FADC: .4byte gUnknown_03004330 -_0802FAE0: .4byte sub_802FB2C -_0802FAE4: - ldr r5, _0802FB20 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0802FB24 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldr r1, _0802FB28 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl1_exec_completed -_0802FB1A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802FB20: .4byte gUnknown_02024BE0 -_0802FB24: .4byte gSprites -_0802FB28: .4byte gUnknown_03004340 - thumb_func_end sub_802FAA0 - - thumb_func_start sub_802FB2C -sub_802FB2C: @ 802FB2C - push {r4,r5,lr} - ldr r5, _0802FB48 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0802FB4C @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0802FB50 - cmp r0, 0x1 - beq _0802FB7C - b _0802FBA4 - .align 2, 0 -_0802FB48: .4byte gUnknown_02024A60 -_0802FB4C: .4byte 0x02017810 -_0802FB50: - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0802FB6C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0802FB6C: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _0802FBA4 -_0802FB7C: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0802FBA4 - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x1 - bl move_anim_start_t4 - ldr r1, _0802FBAC @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802FBB0 @ =sub_802DEAC - str r1, [r0] -_0802FBA4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802FBAC: .4byte gUnknown_03004330 -_0802FBB0: .4byte sub_802DEAC - thumb_func_end sub_802FB2C - - thumb_func_start sub_802FBB4 -sub_802FBB4: @ 802FBB4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _0802FBDC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0802FBE8 - ldr r0, _0802FBE0 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - ldr r7, _0802FBE4 @ =0x0000fff0 - cmp r1, 0 - beq _0802FBEA - movs r7, 0x10 - b _0802FBEA - .align 2, 0 -_0802FBDC: .4byte gUnknown_020239F8 -_0802FBE0: .4byte gUnknown_02024A60 -_0802FBE4: .4byte 0x0000fff0 -_0802FBE8: - movs r7, 0 -_0802FBEA: - ldr r4, _0802FCB8 @ =gSaveBlock2 - ldrb r0, [r4, 0x8] - ldr r6, _0802FCBC @ =gUnknown_02024A60 - ldrb r1, [r6] - bl sub_8031AF4 - ldrb r5, [r4, 0x8] - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl GetMonSpriteTemplate_803C5A0 - ldr r0, _0802FCC0 @ =gUnknown_02024E8C - mov r8, r0 - lsls r5, r7, 16 - movs r0, 0xA0 - lsls r0, 15 - adds r5, r0 - asrs r5, 16 - ldr r1, _0802FCC4 @ =gTrainerBackPicCoords - ldrb r0, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 15 - adds r4, r0 - asrs r4, 16 - ldrb r0, [r6] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r5, _0802FCC8 @ =gUnknown_02024BE0 - ldrb r1, [r6] - adds r1, r5 - strb r0, [r1] - ldr r4, _0802FCCC @ =gSprites - ldrb r3, [r6] - adds r0, r3, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0xF0 - strh r1, [r0, 0x24] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0802FCD0 @ =0x0000fffe - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _0802FCD4 @ =sub_80313A0 - str r1, [r0] - ldr r1, _0802FCD8 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802FCDC @ =sub_802D204 - str r1, [r0] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0802FCB8: .4byte gSaveBlock2 -_0802FCBC: .4byte gUnknown_02024A60 -_0802FCC0: .4byte gUnknown_02024E8C -_0802FCC4: .4byte gTrainerBackPicCoords -_0802FCC8: .4byte gUnknown_02024BE0 -_0802FCCC: .4byte gSprites -_0802FCD0: .4byte 0x0000fffe -_0802FCD4: .4byte sub_80313A0 -_0802FCD8: .4byte gUnknown_03004330 -_0802FCDC: .4byte sub_802D204 - thumb_func_end sub_802FBB4 - - thumb_func_start sub_802FCE0 -sub_802FCE0: @ 802FCE0 - push {r4-r6,lr} - ldr r4, _0802FD94 @ =gSaveBlock2 - ldrb r0, [r4, 0x8] - ldr r5, _0802FD98 @ =gUnknown_02024A60 - ldrb r1, [r5] - bl sub_8031AF4 - ldrb r6, [r4, 0x8] - ldrb r0, [r5] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl GetMonSpriteTemplate_803C5A0 - ldr r0, _0802FD9C @ =gUnknown_02024E8C - ldr r2, _0802FDA0 @ =gTrainerBackPicCoords - ldrb r1, [r4, 0x8] - lsls r1, 2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r2, r1 - asrs r2, 16 - movs r1, 0x50 - movs r3, 0x1E - bl CreateSprite - ldr r6, _0802FDA4 @ =gUnknown_02024BE0 - ldrb r1, [r5] - adds r1, r6 - strb r0, [r1] - ldr r4, _0802FDA8 @ =gSprites - ldrb r3, [r5] - adds r0, r3, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0802FDAC @ =0x0000ffa0 - strh r1, [r0, 0x24] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _0802FDB0 @ =sub_80313A0 - str r1, [r0] - ldr r1, _0802FDB4 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802FDB8 @ =sub_802D23C - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802FD94: .4byte gSaveBlock2 -_0802FD98: .4byte gUnknown_02024A60 -_0802FD9C: .4byte gUnknown_02024E8C -_0802FDA0: .4byte gTrainerBackPicCoords -_0802FDA4: .4byte gUnknown_02024BE0 -_0802FDA8: .4byte gSprites -_0802FDAC: .4byte 0x0000ffa0 -_0802FDB0: .4byte sub_80313A0 -_0802FDB4: .4byte gUnknown_03004330 -_0802FDB8: .4byte sub_802D23C - thumb_func_end sub_802FCE0 - - thumb_func_start sub_802FDBC -sub_802FDBC: @ 802FDBC - push {r4-r6,lr} - ldr r5, _0802FE5C @ =gUnknown_02024BE0 - ldr r6, _0802FE60 @ =gUnknown_02024A60 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0802FE64 @ =gSprites - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0802FE68 @ =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0802FE6C @ =sub_8078B34 - str r1, [r0] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0802FE70 @ =SpriteCallbackDummy - bl oamt_set_x3A_32 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl StartSpriteAnim - ldr r1, _0802FE74 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802FE78 @ =sub_802D274 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0802FE5C: .4byte gUnknown_02024BE0 -_0802FE60: .4byte gUnknown_02024A60 -_0802FE64: .4byte gSprites -_0802FE68: .4byte 0x0000ffd8 -_0802FE6C: .4byte sub_8078B34 -_0802FE70: .4byte SpriteCallbackDummy -_0802FE74: .4byte gUnknown_03004330 -_0802FE78: .4byte sub_802D274 - thumb_func_end sub_802FDBC - - thumb_func_start sub_802FE7C -sub_802FE7C: @ 802FE7C - push {r4,r5,lr} - ldr r5, _0802FEC0 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _0802FEC4 @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _0802FEC8 - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0802FEAE - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0802FEAE: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _0802FF3E - .align 2, 0 -_0802FEC0: .4byte gUnknown_02024A60 -_0802FEC4: .4byte 0x02017810 -_0802FEC8: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0802FF3E - strb r4, [r3, 0x4] - ldr r2, _0802FF44 @ =gUnknown_02024A6A - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _0802FF48 @ =gPlayerParty - adds r0, r2 - bl sub_80324F8 - movs r1, 0x40 - negs r1, r1 - movs r0, 0x10 - bl PlaySE12WithPanning - ldr r2, _0802FF4C @ =gSprites - ldr r3, _0802FF50 @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r4, [r0, 0x30] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x5 - strh r1, [r0, 0x32] - ldrb r0, [r5] - adds r0, r3 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0802FF54 @ =sub_80105EC - str r1, [r0] - ldr r1, _0802FF58 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802FF5C @ =sub_802DE10 - str r1, [r0] -_0802FF3E: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802FF44: .4byte gUnknown_02024A6A -_0802FF48: .4byte gPlayerParty -_0802FF4C: .4byte gSprites -_0802FF50: .4byte gUnknown_02024BE0 -_0802FF54: .4byte sub_80105EC -_0802FF58: .4byte gUnknown_03004330 -_0802FF5C: .4byte sub_802DE10 - thumb_func_end sub_802FE7C - - thumb_func_start sub_802FF60 -sub_802FF60: @ 802FF60 - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl dp01_tbl1_exec_completed - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_802FF60 - - thumb_func_start sub_802FF80 -sub_802FF80: @ 802FF80 - push {r4,r5,lr} - ldr r1, _0802FFBC @ =0x02017840 - movs r0, 0x4 - strb r0, [r1, 0x8] - ldr r1, _0802FFC0 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldr r5, _0802FFC4 @ =gUnknown_02024A60 - ldrb r4, [r5] - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x3 - bl move_anim_start_t4 - ldr r1, _0802FFC8 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0802FFCC @ =bx_wait_t1 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0802FFBC: .4byte 0x02017840 -_0802FFC0: .4byte gUnknown_02024E6D -_0802FFC4: .4byte gUnknown_02024A60 -_0802FFC8: .4byte gUnknown_03004330 -_0802FFCC: .4byte bx_wait_t1 - thumb_func_end sub_802FF80 - - thumb_func_start sub_802FFD0 -sub_802FFD0: @ 802FFD0 - push {r4,r5,lr} - ldr r1, _08030014 @ =gUnknown_02023A60 - ldr r5, _08030018 @ =gUnknown_02024A60 - ldrb r0, [r5] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r1, [r0] - ldr r0, _0803001C @ =0x02017840 - strb r1, [r0, 0x8] - ldr r1, _08030020 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldrb r4, [r5] - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r4, 0 - movs r3, 0x3 - bl move_anim_start_t4 - ldr r1, _08030024 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030028 @ =bx_wait_t1 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030014: .4byte gUnknown_02023A60 -_08030018: .4byte gUnknown_02024A60 -_0803001C: .4byte 0x02017840 -_08030020: .4byte gUnknown_02024E6D -_08030024: .4byte gUnknown_03004330 -_08030028: .4byte bx_wait_t1 - thumb_func_end sub_802FFD0 - - thumb_func_start sub_803002C -sub_803002C: @ 803002C - push {lr} - ldr r1, _08030054 @ =gUnknown_02023A60 - ldr r0, _08030058 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0803004A -_08030040: - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08030040 -_0803004A: - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030054: .4byte gUnknown_02023A60 -_08030058: .4byte gUnknown_02024A60 - thumb_func_end sub_803002C - - thumb_func_start dp01t_0F_1_move_anim -dp01t_0F_1_move_anim: @ 803005C - push {r4-r6,lr} - ldr r6, _08030140 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _0803006E - b _0803017E -_0803006E: - ldr r0, _08030144 @ =gUnknown_02023A60 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, _08030148 @ =gUnknown_0202F7C4 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _0803014C @ =gUnknown_0202F7BC - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _08030150 @ =gUnknown_0202F7B8 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, _08030154 @ =gUnknown_0202F7BE - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _08030158 @ =gUnknown_0202F7C0 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _0803015C @ =gUnknown_0202F7B4 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, _08030160 @ =gUnknown_02024E70 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_8031720 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08030164 - bl dp01_tbl1_exec_completed - b _0803017E - .align 2, 0 -_08030140: .4byte gUnknown_02024A60 -_08030144: .4byte gUnknown_02023A60 -_08030148: .4byte gUnknown_0202F7C4 -_0803014C: .4byte gUnknown_0202F7BC -_08030150: .4byte gUnknown_0202F7B8 -_08030154: .4byte gUnknown_0202F7BE -_08030158: .4byte gUnknown_0202F7C0 -_0803015C: .4byte gUnknown_0202F7B4 -_08030160: .4byte gUnknown_02024E70 -_08030164: - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08030184 @ =0x02017810 - adds r0, r1 - strb r2, [r0, 0x4] - ldr r1, _08030188 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803018C @ =sub_8030190 - str r1, [r0] -_0803017E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08030184: .4byte 0x02017810 -_08030188: .4byte gUnknown_03004330 -_0803018C: .4byte sub_8030190 - thumb_func_end dp01t_0F_1_move_anim - - thumb_func_start sub_8030190 -sub_8030190: @ 8030190 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _080301D4 @ =gUnknown_02023A60 - ldr r5, _080301D8 @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r6, r2, 0x2 - mov r8, r6 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r7, [r1] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r6, _080301DC @ =0x02017810 - adds r0, r6 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _0803021E - cmp r2, 0x1 - bgt _080301E0 - cmp r2, 0 - beq _080301EA - b _080302E8 - .align 2, 0 -_080301D4: .4byte gUnknown_02023A60 -_080301D8: .4byte gUnknown_02024A60 -_080301DC: .4byte 0x02017810 -_080301E0: - cmp r2, 0x2 - beq _08030244 - cmp r2, 0x3 - beq _080302B0 - b _080302E8 -_080301EA: - lsls r1, r3, 2 - adds r0, r6, 0 - subs r0, 0x10 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _0803020E - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0803020E: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _080302E8 -_0803021E: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080302E8 - movs r0, 0 - bl sub_80326EC - adds r0, r4, 0 - bl move_anim_start_t1 - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _080302E8 -_08030244: - ldr r0, _080302A0 @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _080302A4 @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _080302E8 - movs r0, 0x1 - bl sub_80326EC - ldrb r2, [r5] - lsls r0, r2, 2 - adds r4, r6, 0 - subs r4, 0x10 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0803028C - cmp r7, 0x1 - bhi _0803028C - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0] - movs r1, 0x9 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_0803028C: - ldr r0, _080302A8 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080302AC @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _080302E8 - .align 2, 0 -_080302A0: .4byte gUnknown_0202F7AC -_080302A4: .4byte gUnknown_0202F7B1 -_080302A8: .4byte gUnknown_02024A60 -_080302AC: .4byte 0x02017810 -_080302B0: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080302E8 - bl sub_8031F24 - ldrb r0, [r5] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_80324BC - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r4, [r0, 0x4] - bl dp01_tbl1_exec_completed -_080302E8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8030190 - - thumb_func_start sub_80302F4 -sub_80302F4: @ 80302F4 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08030338 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _0803033C @ =gUnknown_030042A0 - strh r1, [r0] - ldr r4, _08030340 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, _08030344 @ =gUnknown_02023A62 - adds r0, r1 - ldrh r0, [r0] - bl sub_8120AA8 - ldr r0, _08030348 @ =gUnknown_03004210 - ldr r1, _0803034C @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08030350 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030354 @ =sub_802DF18 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030338: .4byte gUnknown_030042A4 -_0803033C: .4byte gUnknown_030042A0 -_08030340: .4byte gUnknown_02024A60 -_08030344: .4byte gUnknown_02023A62 -_08030348: .4byte gUnknown_03004210 -_0803034C: .4byte gUnknown_020238CC -_08030350: .4byte gUnknown_03004330 -_08030354: .4byte sub_802DF18 - thumb_func_end sub_80302F4 - - thumb_func_start dp01t_11_1_message_for_player_only -dp01t_11_1_message_for_player_only: @ 8030358 - push {lr} - ldr r0, _08030370 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08030374 - bl sub_80302F4 - b _08030378 - .align 2, 0 -_08030370: .4byte gUnknown_02024A60 -_08030374: - bl dp01_tbl1_exec_completed -_08030378: - pop {r0} - bx r0 - thumb_func_end dp01t_11_1_message_for_player_only - - thumb_func_start sub_803037C -sub_803037C: @ 803037C - push {r4,lr} - sub sp, 0x8 - ldr r1, _08030434 @ =gUnknown_030042A4 - movs r0, 0 - strh r0, [r1] - ldr r1, _08030438 @ =gUnknown_030042A0 - movs r0, 0xA0 - strh r0, [r1] - ldr r4, _0803043C @ =gUnknown_03004210 - movs r0, 0x1B - str r0, [sp] - movs r0, 0x12 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0x2 - movs r3, 0xF - bl FillWindowRect - movs r0, 0x10 - str r0, [sp] - movs r0, 0x26 - str r0, [sp, 0x4] - adds r0, r4, 0 - movs r1, 0xA - movs r2, 0x2 - movs r3, 0x23 - bl FillWindowRect - ldr r1, _08030440 @ =gUnknown_03004330 - ldr r0, _08030444 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030448 @ =sub_802C098 - str r1, [r0] - ldr r1, _0803044C @ =gUnknown_08400CF3 - movs r2, 0xC8 - lsls r2, 1 - movs r0, 0x23 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x12 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - ldr r1, _08030450 @ =0x0000ffff - ldr r3, _08030454 @ =0x00002d9f - movs r0, 0 - str r0, [sp] - movs r2, 0xC - bl sub_814A5C0 - movs r4, 0 -_080303EC: - lsls r0, r4, 24 - lsrs r0, 24 - bl nullsub_8 - adds r4, 0x1 - cmp r4, 0x3 - ble _080303EC - ldr r1, _08030458 @ =gUnknown_02024E60 - ldr r0, _08030444 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_802E3E4 - ldr r0, _0803045C @ =gUnknown_08400CA8 - bl get_battle_strings_ - ldr r4, _0803043C @ =gUnknown_03004210 - ldr r1, _08030460 @ =gUnknown_020238CC - movs r2, 0xDC - lsls r2, 1 - movs r0, 0x23 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x2 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030434: .4byte gUnknown_030042A4 -_08030438: .4byte gUnknown_030042A0 -_0803043C: .4byte gUnknown_03004210 -_08030440: .4byte gUnknown_03004330 -_08030444: .4byte gUnknown_02024A60 -_08030448: .4byte sub_802C098 -_0803044C: .4byte gUnknown_08400CF3 -_08030450: .4byte 0x0000ffff -_08030454: .4byte 0x00002d9f -_08030458: .4byte gUnknown_02024E60 -_0803045C: .4byte gUnknown_08400CA8 -_08030460: .4byte gUnknown_020238CC - thumb_func_end sub_803037C - - thumb_func_start nullsub_42 -nullsub_42: @ 8030464 - bx lr - thumb_func_end nullsub_42 - - thumb_func_start sub_8030468 -sub_8030468: @ 8030468 - push {lr} - sub sp, 0x4 - ldr r1, _08030494 @ =0x0000ffff - ldr r3, _08030498 @ =0x00002d9f - movs r0, 0 - str r0, [sp] - movs r2, 0xC - bl sub_814A5C0 - bl sub_80304A8 - ldr r1, _0803049C @ =gUnknown_03004330 - ldr r0, _080304A0 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080304A4 @ =sub_802C68C - str r1, [r0] - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08030494: .4byte 0x0000ffff -_08030498: .4byte 0x00002d9f -_0803049C: .4byte gUnknown_03004330 -_080304A0: .4byte gUnknown_02024A60 -_080304A4: .4byte sub_802C68C - thumb_func_end sub_8030468 - - thumb_func_start sub_80304A8 -sub_80304A8: @ 80304A8 - push {r4,lr} - sub sp, 0x4 - ldr r1, _08030510 @ =gUnknown_030042A4 - movs r0, 0 - strh r0, [r1] - ldr r1, _08030514 @ =gUnknown_030042A0 - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2, 0 - strh r0, [r1] - bl sub_802E1B0 - ldr r1, _08030518 @ =gUnknown_03004344 - movs r0, 0xFF - strb r0, [r1] - ldr r1, _0803051C @ =gUnknown_02024E64 - ldr r4, _08030520 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_802E3B4 - ldr r1, _08030524 @ =gUnknown_02023A60 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _08030500 - ldr r4, _08030528 @ =gUnknown_03004210 - ldr r1, _0803052C @ =gUnknown_08400D38 - movs r2, 0xA4 - lsls r2, 2 - movs r0, 0x37 - str r0, [sp] - adds r0, r4, 0 - movs r3, 0x17 - bl InitWindow - adds r0, r4, 0 - bl sub_8002F44 -_08030500: - bl sub_802E220 - bl sub_802E2D4 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030510: .4byte gUnknown_030042A4 -_08030514: .4byte gUnknown_030042A0 -_08030518: .4byte gUnknown_03004344 -_0803051C: .4byte gUnknown_02024E64 -_08030520: .4byte gUnknown_02024A60 -_08030524: .4byte gUnknown_02023A60 -_08030528: .4byte gUnknown_03004210 -_0803052C: .4byte gUnknown_08400D38 - thumb_func_end sub_80304A8 - - thumb_func_start sub_8030530 -sub_8030530: @ 8030530 - push {r4,r5,lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _0803057C @ =gUnknown_03004330 - ldr r2, _08030580 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030584 @ =sub_802E004 - str r1, [r0] - ldr r1, _08030588 @ =gUnknown_02024E6C - ldrb r0, [r2] - strb r0, [r1] - movs r3, 0 - ldr r5, _0803058C @ =gUnknown_02038470 - ldr r4, _08030590 @ =gUnknown_02023A60 -_0803055E: - adds r0, r3, r5 - ldrb r1, [r2] - lsls r1, 9 - adds r1, 0x1 - adds r1, r3, r1 - adds r1, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r3, 0x1 - cmp r3, 0x2 - ble _0803055E - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0803057C: .4byte gUnknown_03004330 -_08030580: .4byte gUnknown_02024A60 -_08030584: .4byte sub_802E004 -_08030588: .4byte gUnknown_02024E6C -_0803058C: .4byte gUnknown_02038470 -_08030590: .4byte gUnknown_02023A60 - thumb_func_end sub_8030530 - - thumb_func_start sub_8030594 -sub_8030594: @ 8030594 - push {r4,r5,lr} - sub sp, 0x4 - ldr r0, _08030644 @ =TaskDummy - movs r1, 0xFF - bl CreateTask - ldr r3, _08030648 @ =gUnknown_0300434C - ldr r5, _0803064C @ =gUnknown_02024A60 - ldrb r1, [r5] - adds r1, r3 - strb r0, [r1] - ldr r4, _08030650 @ =gTasks - ldrb r2, [r5] - adds r3, r2, r3 - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldr r4, _08030654 @ =gUnknown_02023A60 - lsls r2, 9 - adds r3, r4, 0x1 - adds r2, r3 - ldrb r2, [r2] - movs r0, 0xF - ands r0, r2 - strh r0, [r1, 0x8] - ldr r2, _08030658 @ =0x02000000 - ldrb r0, [r5] - lsls r0, 9 - adds r0, r3 - ldrb r0, [r0] - lsrs r0, 4 - ldr r3, _0803065C @ =0x00016054 - adds r1, r2, r3 - strb r0, [r1] - ldrb r0, [r5] - lsls r0, 9 - adds r1, r4, 0x2 - adds r0, r1 - ldrb r1, [r0] - adds r3, 0x49 - adds r0, r2, r3 - strb r1, [r0] - ldrb r0, [r5] - lsls r0, 9 - adds r1, r4, 0x3 - adds r0, r1 - ldrb r0, [r0] - ldr r1, _08030660 @ =0x000160c0 - adds r2, r1 - strb r0, [r2] - movs r2, 0 - ldr r3, _08030664 @ =gUnknown_02038470 -_08030600: - adds r0, r2, r3 - ldrb r1, [r5] - lsls r1, 9 - adds r1, 0x4 - adds r1, r2, r1 - adds r1, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x2 - ble _08030600 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, _08030668 @ =gUnknown_03004330 - ldr r2, _0803064C @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803066C @ =sub_802DF30 - str r1, [r0] - ldr r1, _08030670 @ =gUnknown_02024E6C - ldrb r0, [r2] - strb r0, [r1] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030644: .4byte TaskDummy -_08030648: .4byte gUnknown_0300434C -_0803064C: .4byte gUnknown_02024A60 -_08030650: .4byte gTasks -_08030654: .4byte gUnknown_02023A60 -_08030658: .4byte 0x02000000 -_0803065C: .4byte 0x00016054 -_08030660: .4byte 0x000160c0 -_08030664: .4byte gUnknown_02038470 -_08030668: .4byte gUnknown_03004330 -_0803066C: .4byte sub_802DF30 -_08030670: .4byte gUnknown_02024E6C - thumb_func_end sub_8030594 - - thumb_func_start sub_8030674 -sub_8030674: @ 8030674 - push {lr} - sub sp, 0x4 - bl sub_80325B8 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r1, 0x2 - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl dp01_tbl1_exec_completed - add sp, 0x4 - pop {r0} - bx r0 - thumb_func_end sub_8030674 - - thumb_func_start sub_8030698 -sub_8030698: @ 8030698 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, _08030710 @ =gUnknown_02023A60 - ldr r0, _08030714 @ =gUnknown_02024A60 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, _08030718 @ =0x00007fff - cmp r7, r0 - beq _08030728 - ldr r6, _0803071C @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _08030720 @ =gPlayerParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _08030724 @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_8043D84 - b _08030762 - .align 2, 0 -_08030710: .4byte gUnknown_02023A60 -_08030714: .4byte gUnknown_02024A60 -_08030718: .4byte 0x00007fff -_0803071C: .4byte gUnknown_02024A6A -_08030720: .4byte gPlayerParty -_08030724: .4byte gUnknown_03004340 -_08030728: - ldr r1, _08030780 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08030784 @ =gPlayerParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r4, _08030788 @ =gUnknown_03004340 - adds r1, r0, r4 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_8043D84 - mov r1, r9 - ldrb r0, [r1] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0 - movs r2, 0 - bl sub_80440EC -_08030762: - ldr r1, _0803078C @ =gUnknown_03004330 - ldr r0, _08030790 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030794 @ =bx_t1_healthbar_update - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08030780: .4byte gUnknown_02024A6A -_08030784: .4byte gPlayerParty -_08030788: .4byte gUnknown_03004340 -_0803078C: .4byte gUnknown_03004330 -_08030790: .4byte gUnknown_02024A60 -_08030794: .4byte bx_t1_healthbar_update - thumb_func_end sub_8030698 - - thumb_func_start sub_8030798 -sub_8030798: @ 8030798 - push {r4-r7,lr} - ldr r5, _080307C4 @ =gUnknown_02023A60 - ldr r6, _080307C8 @ =gUnknown_02024A60 - ldrb r0, [r6] - lsls r0, 9 - adds r1, r5, 0x1 - adds r0, r1 - ldrb r7, [r0] - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _080307CC @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - cmp r0, 0x63 - bls _080307D0 - bl dp01_tbl1_exec_completed - b _0803081C - .align 2, 0 -_080307C4: .4byte gUnknown_02023A60 -_080307C8: .4byte gUnknown_02024A60 -_080307CC: .4byte gPlayerParty -_080307D0: - movs r0, 0x1 - bl load_gfxc_health_bar - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - ldrb r1, [r6] - lsls r1, 9 - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r0, r5, 0x3 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - ldr r0, _08030824 @ =sub_802D924 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08030828 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r7, [r1, 0x8] - strh r4, [r1, 0xA] - ldrb r0, [r6] - strh r0, [r1, 0xC] - ldr r1, _0803082C @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030830 @ =nullsub_91 - str r1, [r0] -_0803081C: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08030824: .4byte sub_802D924 -_08030828: .4byte gTasks -_0803082C: .4byte gUnknown_03004330 -_08030830: .4byte nullsub_91 - thumb_func_end sub_8030798 - - thumb_func_start sub_8030834 -sub_8030834: @ 8030834 - push {r4,lr} - ldr r4, _0803088C @ =gUnknown_02024A60 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08030884 - ldr r0, _08030890 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08030894 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08030898 @ =gPlayerParty - adds r1, r2 - movs r2, 0x9 - bl sub_8045A5C - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _0803089C @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, _080308A0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _080308A4 @ =sub_802E434 - str r1, [r0] -_08030884: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803088C: .4byte gUnknown_02024A60 -_08030890: .4byte gUnknown_03004340 -_08030894: .4byte gUnknown_02024A6A -_08030898: .4byte gPlayerParty -_0803089C: .4byte 0x02017810 -_080308A0: .4byte gUnknown_03004330 -_080308A4: .4byte sub_802E434 - thumb_func_end sub_8030834 - - thumb_func_start sub_80308A8 -sub_80308A8: @ 80308A8 - push {r4,r5,lr} - ldr r5, _08030900 @ =gUnknown_02024A60 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _080308F8 - ldr r4, _08030904 @ =gUnknown_02023A60 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, _08030908 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803090C @ =sub_802E434 - str r1, [r0] -_080308F8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030900: .4byte gUnknown_02024A60 -_08030904: .4byte gUnknown_02023A60 -_08030908: .4byte gUnknown_03004330 -_0803090C: .4byte sub_802E434 - thumb_func_end sub_80308A8 - - thumb_func_start sub_8030910 -sub_8030910: @ 8030910 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r0, _0803096C @ =gUnknown_02024A6A - mov r8, r0 - ldr r4, _08030970 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, _08030974 @ =gPlayerParty - adds r0, r5 - movs r1, 0x37 - bl GetMonData - ldr r2, _08030978 @ =gUnknown_02023A60 - ldrb r1, [r4] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - eors r0, r1 - mov r1, sp - strb r0, [r1] - ldrb r0, [r4] - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - movs r1, 0x37 - mov r2, sp - bl SetMonData - bl dp01_tbl1_exec_completed - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803096C: .4byte gUnknown_02024A6A -_08030970: .4byte gUnknown_02024A60 -_08030974: .4byte gPlayerParty -_08030978: .4byte gUnknown_02023A60 - thumb_func_end sub_8030910 - - thumb_func_start sub_803097C -sub_803097C: @ 803097C - push {lr} - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_803097C - - thumb_func_start sub_8030988 -sub_8030988: @ 8030988 - push {r4,r5,lr} - ldr r3, _080309EC @ =gUnknown_02023A60 - ldr r0, _080309F0 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r2, 9 - adds r0, r3, 0x1 - adds r0, r2, r0 - ldrb r5, [r0] - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r5, r0 - adds r0, r3, 0x3 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 16 - orrs r5, r0 - adds r0, r3, 0x4 - adds r0, r2, r0 - ldrb r4, [r0] - lsls r4, 24 - adds r0, r3, 0x5 - adds r0, r2, r0 - ldrb r1, [r0] - adds r0, r3, 0x6 - adds r0, r2, r0 - ldrb r0, [r0] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - adds r3, 0x7 - adds r2, r3 - orrs r5, r4 - lsrs r4, r1, 16 - movs r0, 0x80 - lsls r0, 5 - cmp r4, r0 - bhi _080309F8 - ldr r0, _080309F4 @ =0x040000d4 - str r2, [r0] - str r5, [r0, 0x4] - lsrs r1, 17 - movs r2, 0x80 - lsls r2, 24 - orrs r1, r2 - str r1, [r0, 0x8] - ldr r0, [r0, 0x8] - b _08030A24 - .align 2, 0 -_080309EC: .4byte gUnknown_02023A60 -_080309F0: .4byte gUnknown_02024A60 -_080309F4: .4byte 0x040000d4 -_080309F8: - ldr r3, _08030A30 @ =0x040000d4 - str r2, [r3] - str r5, [r3, 0x4] - ldr r0, _08030A34 @ =0x80000800 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] - movs r0, 0x80 - lsls r0, 5 - adds r2, r0 - adds r5, r0 - ldr r1, _08030A38 @ =0xfffff000 - adds r4, r1 - cmp r4, r0 - bhi _080309F8 - str r2, [r3] - str r5, [r3, 0x4] - lsrs r0, r4, 1 - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r3, 0x8] - ldr r0, [r3, 0x8] -_08030A24: - bl dp01_tbl1_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030A30: .4byte 0x040000d4 -_08030A34: .4byte 0x80000800 -_08030A38: .4byte 0xfffff000 - thumb_func_end sub_8030988 - - thumb_func_start sub_8030A3C -sub_8030A3C: @ 8030A3C - push {lr} - ldr r2, _08030A64 @ =gUnknown_02023A60 - ldr r0, _08030A68 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayBGM - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030A64: .4byte gUnknown_02023A60 -_08030A68: .4byte gUnknown_02024A60 - thumb_func_end sub_8030A3C - - thumb_func_start sub_8030A6C -sub_8030A6C: @ 8030A6C - push {lr} - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8030A6C - - thumb_func_start sub_8030A78 -sub_8030A78: @ 8030A78 - push {lr} - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8030A78 - - thumb_func_start sub_8030A8C -sub_8030A8C: @ 8030A8C - push {lr} - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8030A8C - - thumb_func_start sub_8030AA0 -sub_8030AA0: @ 8030AA0 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl dp01_build_cmdbuf_x23_aa_0 - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8030AA0 - - thumb_func_start sub_8030AB4 -sub_8030AB4: @ 8030AB4 - push {lr} - movs r0, 0x1 - movs r1, 0 - bl dp01_build_cmdbuf_x24_aa_0 - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8030AB4 - - thumb_func_start sub_8030AC8 -sub_8030AC8: @ 8030AC8 - push {lr} - ldr r2, _08030AE0 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030AE0: .4byte gUnknown_020238C8 - thumb_func_end sub_8030AC8 - - thumb_func_start sub_8030AE4 -sub_8030AE4: @ 8030AE4 - push {lr} - ldr r3, _08030B10 @ =gUnknown_020238C8 - ldr r1, _08030B14 @ =gUnknown_02023A60 - ldr r0, _08030B18 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030B10: .4byte gUnknown_020238C8 -_08030B14: .4byte gUnknown_02023A60 -_08030B18: .4byte gUnknown_02024A60 - thumb_func_end sub_8030AE4 - - thumb_func_start sub_8030B1C -sub_8030B1C: @ 8030B1C - push {lr} - ldr r2, _08030B30 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030B30: .4byte gUnknown_020238C8 - thumb_func_end sub_8030B1C - - thumb_func_start sub_8030B34 -sub_8030B34: @ 8030B34 - push {lr} - ldr r3, _08030B58 @ =gUnknown_020238C8 - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030B58: .4byte gUnknown_020238C8 - thumb_func_end sub_8030B34 - - thumb_func_start dp01t_29_1_blink -dp01t_29_1_blink: @ 8030B5C - push {r4,lr} - ldr r3, _08030B84 @ =gSprites - ldr r2, _08030B88 @ =gUnknown_02024BE0 - ldr r4, _08030B8C @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _08030B90 - bl dp01_tbl1_exec_completed - b _08030BBA - .align 2, 0 -_08030B84: .4byte gSprites -_08030B88: .4byte gUnknown_02024BE0 -_08030B8C: .4byte gUnknown_02024A60 -_08030B90: - ldr r1, _08030BC0 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_8047858 - ldr r1, _08030BC4 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030BC8 @ =bx_blink_t1 - str r1, [r0] -_08030BBA: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030BC0: .4byte gUnknown_02024E6D -_08030BC4: .4byte gUnknown_03004330 -_08030BC8: .4byte bx_blink_t1 - thumb_func_end dp01t_29_1_blink - - thumb_func_start sub_8030BCC -sub_8030BCC: @ 8030BCC - push {lr} - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8030BCC - - thumb_func_start sub_8030BD8 -sub_8030BD8: @ 8030BD8 - push {r4,lr} - ldr r4, _08030C14 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _08030BEC - movs r3, 0xC0 -_08030BEC: - ldr r2, _08030C18 @ =gUnknown_02023A60 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl PlaySE12WithPanning - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08030C14: .4byte gUnknown_02024A60 -_08030C18: .4byte gUnknown_02023A60 - thumb_func_end sub_8030BD8 - - thumb_func_start sub_8030C1C -sub_8030C1C: @ 8030C1C - push {lr} - ldr r2, _08030C44 @ =gUnknown_02023A60 - ldr r0, _08030C48 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayFanfare - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030C44: .4byte gUnknown_02023A60 -_08030C48: .4byte gUnknown_02024A60 - thumb_func_end sub_8030C1C - - thumb_func_start sub_8030C4C -sub_8030C4C: @ 8030C4C - push {lr} - ldr r1, _08030C80 @ =gUnknown_02024A6A - ldr r0, _08030C84 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08030C88 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - negs r1, r1 - movs r2, 0x5 - bl PlayCry3 - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030C80: .4byte gUnknown_02024A6A -_08030C84: .4byte gUnknown_02024A60 -_08030C88: .4byte gPlayerParty - thumb_func_end sub_8030C4C - - thumb_func_start dp01t_2E_1_battle_intro -dp01t_2E_1_battle_intro: @ 8030C8C - push {lr} - ldr r1, _08030CB4 @ =gUnknown_02023A60 - ldr r0, _08030CB8 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80E43C0 - ldr r2, _08030CBC @ =gUnknown_02024DE8 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08030CB4: .4byte gUnknown_02023A60 -_08030CB8: .4byte gUnknown_02024A60 -_08030CBC: .4byte gUnknown_02024DE8 - thumb_func_end dp01t_2E_1_battle_intro - - thumb_func_start sub_8030CC0 -sub_8030CC0: @ 8030CC0 - push {r4-r7,lr} - ldr r6, _08030DF8 @ =gUnknown_02024BE0 - ldr r7, _08030DFC @ =gUnknown_02024A60 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _08030E00 @ =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x32 - strh r1, [r0, 0x2E] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08030E04 @ =0x0000ffd8 - strh r1, [r0, 0x32] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08030E08 @ =sub_8078B34 - str r1, [r0] - ldrb r2, [r7] - adds r0, r2, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x38] - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08030E0C @ =sub_8030E38 - bl oamt_set_x3A_32 - ldrb r0, [r7] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, _08030E10 @ =0x0000d6f8 - bl AllocSpritePalette - adds r4, r0, 0 - lsls r4, 24 - ldr r1, _08030E14 @ =gTrainerBackPicPaletteTable - ldr r0, _08030E18 @ =gSaveBlock2 - ldrb r0, [r0, 0x8] - lsls r0, 3 - adds r0, r1 - ldr r0, [r0] - lsrs r4, 20 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, r2 - movs r2, 0x20 - bl LoadCompressedPalette - ldrb r0, [r7] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r4 - strb r0, [r1, 0x5] - ldr r0, _08030E1C @ =task05_08033660 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08030E20 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r7] - strh r0, [r1, 0x8] - ldrb r3, [r7] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r2, _08030E24 @ =0x02017810 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08030DDC - ldr r0, _08030E28 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, _08030E2C @ =sub_8044CA0 - str r1, [r0] -_08030DDC: - adds r2, 0x30 - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08030E30 @ =gUnknown_03004330 - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030E34 @ =nullsub_91 - str r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08030DF8: .4byte gUnknown_02024BE0 -_08030DFC: .4byte gUnknown_02024A60 -_08030E00: .4byte gSprites -_08030E04: .4byte 0x0000ffd8 -_08030E08: .4byte sub_8078B34 -_08030E0C: .4byte sub_8030E38 -_08030E10: .4byte 0x0000d6f8 -_08030E14: .4byte gTrainerBackPicPaletteTable -_08030E18: .4byte gSaveBlock2 -_08030E1C: .4byte task05_08033660 -_08030E20: .4byte gTasks -_08030E24: .4byte 0x02017810 -_08030E28: .4byte gUnknown_02024E68 -_08030E2C: .4byte sub_8044CA0 -_08030E30: .4byte gUnknown_03004330 -_08030E34: .4byte nullsub_91 - thumb_func_end sub_8030CC0 - - thumb_func_start sub_8030E38 -sub_8030E38: @ 8030E38 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r4, [r5, 0x38] - lsls r4, 24 - lsrs r4, 24 - bl FreeSpriteOamMatrix - ldrb r0, [r5, 0x5] - lsrs r0, 4 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r0, 16 - bl FreeSpritePaletteByTag - adds r0, r5, 0 - bl DestroySprite - ldr r1, _08030E90 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08030E94 @ =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl sub_80318FC - ldr r0, _08030E98 @ =gUnknown_02024BE0 - adds r4, r0 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08030E9C @ =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08030E90: .4byte gUnknown_02024A6A -_08030E94: .4byte gPlayerParty -_08030E98: .4byte gUnknown_02024BE0 -_08030E9C: .4byte gSprites - thumb_func_end sub_8030E38 - - thumb_func_start task05_08033660 -task05_08033660: @ 8030EA0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r1, _08030EC8 @ =gTasks - lsls r0, 2 - add r0, r8 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0xA] - movs r3, 0xA - ldrsh r0, [r1, r3] - cmp r0, 0x1E - bgt _08030ECC - adds r0, r2, 0x1 - strh r0, [r1, 0xA] - b _08030F88 - .align 2, 0 -_08030EC8: .4byte gTasks -_08030ECC: - ldr r7, _08030F0C @ =gUnknown_02024A60 - ldrb r0, [r7] - mov r9, r0 - ldrh r0, [r1, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08030EEC - ldr r0, _08030F10 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08030F1C -_08030EEC: - ldr r0, _08030F14 @ =gUnknown_02023A60 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, _08030F18 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_802F934 - b _08030F70 - .align 2, 0 -_08030F0C: .4byte gUnknown_02024A60 -_08030F10: .4byte gUnknown_020239F8 -_08030F14: .4byte gUnknown_02023A60 -_08030F18: .4byte gUnknown_02024A6A -_08030F1C: - ldr r4, _08030F94 @ =gUnknown_02023A60 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r5, _08030F98 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_802F934 - ldrb r0, [r7] - movs r6, 0x2 - eors r0, r6 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r5 - ldrh r0, [r0] - strb r0, [r1] - ldrb r1, [r7] - lsls r0, r1, 1 - adds r0, r5 - ldrh r2, [r0] - movs r0, 0x64 - muls r0, r2 - ldr r2, _08030F9C @ =gPlayerParty - adds r0, r2 - bl sub_80318FC - ldrb r0, [r7] - movs r1, 0 - bl sub_802F934 - ldrb r0, [r7] - eors r0, r6 - strb r0, [r7] -_08030F70: - ldr r1, _08030FA0 @ =gUnknown_03004330 - ldr r2, _08030FA4 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08030FA8 @ =sub_802D500 - str r1, [r0] - mov r3, r9 - strb r3, [r2] - mov r0, r8 - bl DestroyTask -_08030F88: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08030F94: .4byte gUnknown_02023A60 -_08030F98: .4byte gUnknown_02024A6A -_08030F9C: .4byte gPlayerParty -_08030FA0: .4byte gUnknown_03004330 -_08030FA4: .4byte gUnknown_02024A60 -_08030FA8: .4byte sub_802D500 - thumb_func_end task05_08033660 - - thumb_func_start sub_8030FAC -sub_8030FAC: @ 8030FAC - push {r4-r6,lr} - ldr r1, _08030FD4 @ =gUnknown_02023A60 - ldr r0, _08030FD8 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08030FDC - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08030FDC - bl dp01_tbl1_exec_completed - b _08031044 - .align 2, 0 -_08030FD4: .4byte gUnknown_02023A60 -_08030FD8: .4byte gUnknown_02024A60 -_08030FDC: - ldr r5, _0803104C @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r6, _08031050 @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, _08031054 @ =gUnknown_02023A64 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_8044804 - ldr r2, _08031058 @ =gUnknown_02024E68 - ldrb r1, [r5] - adds r1, r2 - movs r2, 0 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r2, [r0, 0x5] - ldrb r1, [r5] - lsls r0, r1, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08031038 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x5D - strb r1, [r0, 0x5] -_08031038: - ldr r0, _0803105C @ =gUnknown_03004330 - ldrb r1, [r5] - lsls r1, 2 - adds r1, r0 - ldr r0, _08031060 @ =sub_8031064 - str r0, [r1] -_08031044: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803104C: .4byte gUnknown_02024A60 -_08031050: .4byte 0x02017810 -_08031054: .4byte gUnknown_02023A64 -_08031058: .4byte gUnknown_02024E68 -_0803105C: .4byte gUnknown_03004330 -_08031060: .4byte sub_8031064 - thumb_func_end sub_8030FAC - - thumb_func_start sub_8031064 -sub_8031064: @ 8031064 - push {r4,lr} - ldr r4, _0803109C @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _080310A0 @ =0x02017810 - adds r0, r3 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _08031094 - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strb r0, [r1, 0x5] - bl dp01_tbl1_exec_completed -_08031094: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803109C: .4byte gUnknown_02024A60 -_080310A0: .4byte 0x02017810 - thumb_func_end sub_8031064 - - thumb_func_start sub_80310A4 -sub_80310A4: @ 80310A4 - push {lr} - ldr r0, _080310DC @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r1, _080310E0 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080310D2 - ldr r2, _080310E4 @ =gTasks - ldr r0, _080310E8 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _080310EC @ =sub_8044CA0 - str r1, [r0] -_080310D2: - bl dp01_tbl1_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_080310DC: .4byte gUnknown_02024A60 -_080310E0: .4byte 0x02017810 -_080310E4: .4byte gTasks -_080310E8: .4byte gUnknown_02024E68 -_080310EC: .4byte sub_8044CA0 - thumb_func_end sub_80310A4 - - thumb_func_start sub_80310F0 -sub_80310F0: @ 80310F0 - push {r4,lr} - ldr r4, _08031110 @ =gUnknown_02024A60 - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031110: .4byte gUnknown_02024A60 - thumb_func_end sub_80310F0 - - thumb_func_start dp01t_33_1_enemy_move -dp01t_33_1_enemy_move: @ 8031114 - push {r4,lr} - ldr r4, _08031164 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _0803115A - ldr r3, _08031168 @ =gSprites - ldr r0, _0803116C @ =gUnknown_02024BE0 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, _08031170 @ =gUnknown_02023A60 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_8031F88 -_0803115A: - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031164: .4byte gUnknown_02024A60 -_08031168: .4byte gSprites -_0803116C: .4byte gUnknown_02024BE0 -_08031170: .4byte gUnknown_02023A60 - thumb_func_end dp01t_33_1_enemy_move - - thumb_func_start bx_exec_buffer_A_ch0_tbl1 -bx_exec_buffer_A_ch0_tbl1: @ 8031174 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _080311B8 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _080311CC - ldr r5, _080311BC @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _080311C0 - bl dp01_tbl1_exec_completed - b _080311CC - .align 2, 0 -_080311B8: .4byte gUnknown_02024A60 -_080311BC: .4byte gUnknown_02023A60 -_080311C0: - ldr r0, _080311D4 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _080311D8 @ =sub_802E460 - str r0, [r1] -_080311CC: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080311D4: .4byte gUnknown_03004330 -_080311D8: .4byte sub_802E460 - thumb_func_end bx_exec_buffer_A_ch0_tbl1 - - thumb_func_start dp01t_35_1_link_standby_message_and_free_vram -dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC - push {r4,lr} - ldr r1, _080311FC @ =gUnknown_02023A60 - ldr r0, _08031200 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0803120E - cmp r0, 0x1 - bgt _08031204 - cmp r0, 0 - beq _0803120A - b _0803122C - .align 2, 0 -_080311FC: .4byte gUnknown_02023A60 -_08031200: .4byte gUnknown_02024A60 -_08031204: - cmp r0, 0x2 - beq _08031228 - b _0803122C -_0803120A: - bl b_link_standby_message -_0803120E: - ldr r4, _08031224 @ =gUnknown_02024A60 - ldrb r0, [r4] - movs r1, 0x1 - bl dp11b_obj_free - ldrb r0, [r4] - movs r1, 0 - bl dp11b_obj_free - b _0803122C - .align 2, 0 -_08031224: .4byte gUnknown_02024A60 -_08031228: - bl b_link_standby_message -_0803122C: - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - thumb_func_end dp01t_35_1_link_standby_message_and_free_vram - - thumb_func_start sub_8031238 -sub_8031238: @ 8031238 - push {r4,lr} - ldr r1, _08031258 @ =gUnknown_02023A60 - ldr r4, _0803125C @ =gUnknown_02024A60 - ldrb r3, [r4] - lsls r0, r3, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r2, [r0] - cmp r2, 0x1 - beq _08031280 - cmp r2, 0x1 - bgt _08031260 - cmp r2, 0 - beq _08031266 - b _08031290 - .align 2, 0 -_08031258: .4byte gUnknown_02023A60 -_0803125C: .4byte gUnknown_02024A60 -_08031260: - cmp r2, 0x2 - beq _08031288 - b _08031290 -_08031266: - ldr r0, _08031278 @ =gUnknown_02024E60 - adds r0, r3, r0 - strb r2, [r0] - ldr r1, _0803127C @ =gUnknown_02024E64 - ldrb r0, [r4] - adds r0, r1 - strb r2, [r0] - b _08031290 - .align 2, 0 -_08031278: .4byte gUnknown_02024E60 -_0803127C: .4byte gUnknown_02024E64 -_08031280: - ldr r0, _08031284 @ =gUnknown_02024E60 - b _0803128A - .align 2, 0 -_08031284: .4byte gUnknown_02024E60 -_08031288: - ldr r0, _0803129C @ =gUnknown_02024E64 -_0803128A: - adds r0, r3, r0 - movs r1, 0 - strb r1, [r0] -_08031290: - bl dp01_tbl1_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803129C: .4byte gUnknown_02024E64 - thumb_func_end sub_8031238 - - thumb_func_start sub_80312A0 -sub_80312A0: @ 80312A0 - push {r4,lr} - ldr r2, _080312D8 @ =gUnknown_02024D26 - ldr r1, _080312DC @ =gUnknown_02023A60 - ldr r4, _080312E0 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x5 - bl FadeOutMapMusic - movs r0, 0x3 - bl BeginFastPaletteFade - bl dp01_tbl1_exec_completed - ldr r1, _080312E4 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _080312E8 @ =sub_802D18C - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080312D8: .4byte gUnknown_02024D26 -_080312DC: .4byte gUnknown_02023A60 -_080312E0: .4byte gUnknown_02024A60 -_080312E4: .4byte gUnknown_03004330 -_080312E8: .4byte sub_802D18C - thumb_func_end sub_80312A0 - - thumb_func_start nullsub_43 -nullsub_43: @ 80312EC - bx lr - thumb_func_end nullsub_43 - - thumb_func_start sub_80312F0 -sub_80312F0: @ 80312F0 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x30] - lsls r0, 24 - lsrs r0, 24 - ldr r7, _08031334 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r5, r1, 2 - adds r3, r5, r7 - adds r0, r3, 0 - adds r0, 0x3F - ldrb r4, [r0] - lsls r0, r4, 26 - cmp r0, 0 - bge _08031354 - adds r0, r3, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - blt _08031354 - adds r1, r3, 0 - adds r1, 0x2C - ldrb r2, [r1] - lsls r0, r2, 25 - cmp r0, 0 - bge _08031338 - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _08031354 - .align 2, 0 -_08031334: .4byte gSprites -_08031338: - lsls r0, r4, 27 - cmp r0, 0 - bge _08031354 - adds r0, r7, 0 - adds r0, 0x1C - adds r0, r5, r0 - ldr r1, _0803135C @ =sub_80105DC - str r1, [r0] - adds r0, r3, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, _08031360 @ =SpriteCallbackDummy - str r0, [r6, 0x1C] -_08031354: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803135C: .4byte sub_80105DC -_08031360: .4byte SpriteCallbackDummy - thumb_func_end sub_80312F0 - - thumb_func_start unref_sub_8031364 -unref_sub_8031364: @ 8031364 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 24 - adds r3, r4, 0 - adds r3, 0x2C - ldrb r0, [r3] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r3] - ldr r0, _08031388 @ =SpriteCallbackDummy - str r0, [r4, 0x1C] - cmp r1, 0 - bne _0803138C - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - b _08031394 - .align 2, 0 -_08031388: .4byte SpriteCallbackDummy -_0803138C: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08031394: - adds r0, r4, 0 - bl AnimateSprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end unref_sub_8031364 - - thumb_func_start sub_80313A0 -sub_80313A0: @ 80313A0 - push {lr} - adds r2, r0, 0 - ldr r0, _080313C8 @ =gUnknown_02024DE8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080313C2 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x24] - adds r0, r1 - strh r0, [r2, 0x24] - lsls r0, 16 - cmp r0, 0 - bne _080313C2 - ldr r0, _080313CC @ =SpriteCallbackDummy - str r0, [r2, 0x1C] -_080313C2: - pop {r0} - bx r0 - .align 2, 0 -_080313C8: .4byte gUnknown_02024DE8 -_080313CC: .4byte SpriteCallbackDummy - thumb_func_end sub_80313A0 - - thumb_func_start move_anim_start_t2_for_situation -move_anim_start_t2_for_situation: @ 80313D0 - push {r4-r6,lr} - adds r4, r1, 0 - lsls r0, 24 - ldr r5, _08031400 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - ldr r6, _08031404 @ =0x02017810 - adds r1, r6 - ldrb r2, [r1] - movs r3, 0x10 - orrs r2, r3 - strb r2, [r1] - cmp r0, 0 - bne _0803144C - cmp r4, 0x20 - bne _08031408 - ldrb r0, [r5] - movs r1, 0x6 - bl move_anim_start_t2 - b _080314C2 - .align 2, 0 -_08031400: .4byte gUnknown_02024A60 -_08031404: .4byte 0x02017810 -_08031408: - cmp r4, 0x8 - beq _08031414 - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - beq _0803141E -_08031414: - ldrb r0, [r5] - movs r1, 0 - bl move_anim_start_t2 - b _080314C2 -_0803141E: - cmp r4, 0x10 - bne _0803142C - ldrb r0, [r5] - movs r1, 0x2 - bl move_anim_start_t2 - b _080314C2 -_0803142C: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _0803143E - ldrb r0, [r5] - movs r1, 0x4 - bl move_anim_start_t2 - b _080314C2 -_0803143E: - cmp r4, 0x40 - bne _080314AE - ldrb r0, [r5] - movs r1, 0x5 - bl move_anim_start_t2 - b _080314C2 -_0803144C: - movs r0, 0xF0 - lsls r0, 12 - ands r0, r4 - cmp r0, 0 - beq _08031460 - ldrb r0, [r5] - movs r1, 0x3 - bl move_anim_start_t2 - b _080314C2 -_08031460: - movs r0, 0x7 - ands r0, r4 - cmp r0, 0 - beq _08031472 - ldrb r0, [r5] - movs r1, 0x1 - bl move_anim_start_t2 - b _080314C2 -_08031472: - movs r0, 0x80 - lsls r0, 21 - ands r0, r4 - cmp r0, 0 - beq _08031486 - ldrb r0, [r5] - movs r1, 0x7 - bl move_anim_start_t2 - b _080314C2 -_08031486: - movs r0, 0x80 - lsls r0, 20 - ands r0, r4 - cmp r0, 0 - beq _0803149A - ldrb r0, [r5] - movs r1, 0x8 - bl move_anim_start_t2 - b _080314C2 -_0803149A: - movs r0, 0xE0 - lsls r0, 8 - ands r0, r4 - cmp r0, 0 - beq _080314AE - ldrb r0, [r5] - movs r1, 0x9 - bl move_anim_start_t2 - b _080314C2 -_080314AE: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_080314C2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end move_anim_start_t2_for_situation - - thumb_func_start move_anim_start_t3 -move_anim_start_t3: @ 80314C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r10, r2 - lsls r3, 24 - lsrs r5, r3, 24 - lsls r4, 16 - lsrs r7, r4, 16 - cmp r5, 0 - bne _0803150C - movs r0, 0x80 - ands r0, r7 - cmp r0, 0 - beq _0803150C - ldr r0, _08031508 @ =gUnknown_02024E84 - adds r0, r6, r0 - movs r2, 0x7F - adds r1, r7, 0 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1 - b _080315C2 - .align 2, 0 -_08031508: .4byte gUnknown_02024E84 -_0803150C: - lsls r1, r6, 2 - ldr r0, _08031530 @ =0x02017800 - adds r4, r1, r0 - ldrb r1, [r4] - movs r0, 0x4 - mov r8, r0 - ands r0, r1 - cmp r0, 0 - beq _08031578 - adds r0, r5, 0 - bl sub_803163C - lsls r0, 24 - cmp r0, 0 - bne _08031534 - movs r0, 0x1 - b _080315C2 - .align 2, 0 -_08031530: .4byte 0x02017800 -_08031534: - ldrb r1, [r4] - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _08031578 - cmp r5, 0x2 - bne _08031578 - ldr r1, _08031570 @ =gSprites - ldr r0, _08031574 @ =gUnknown_02024BE0 - adds r0, r6, r0 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _08031578 - adds r0, r6, 0 - movs r1, 0x1 - bl refresh_graphics_maybe - adds r0, r6, 0 - bl sub_80324E0 - movs r0, 0x1 - b _080315C2 - .align 2, 0 -_08031570: .4byte gSprites -_08031574: .4byte gUnknown_02024BE0 -_08031578: - ldr r0, _080315D0 @ =gUnknown_0202F7C8 - mov r1, r9 - strb r1, [r0] - ldr r0, _080315D4 @ =gUnknown_0202F7C9 - mov r1, r10 - strb r1, [r0] - ldr r4, _080315D8 @ =0x02017840 - strh r7, [r4] - ldr r0, _080315DC @ =gBattleAnims_Unknown1 - adds r1, r5, 0 - movs r2, 0 - bl move_something - ldr r0, _080315E0 @ =sub_80315E8 - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080315E4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0x8] - movs r0, 0x8 - ldrsh r1, [r1, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - subs r4, 0x30 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 -_080315C2: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080315D0: .4byte gUnknown_0202F7C8 -_080315D4: .4byte gUnknown_0202F7C9 -_080315D8: .4byte 0x02017840 -_080315DC: .4byte gBattleAnims_Unknown1 -_080315E0: .4byte sub_80315E8 -_080315E4: .4byte gTasks - thumb_func_end move_anim_start_t3 - - thumb_func_start sub_80315E8 -sub_80315E8: @ 80315E8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _0803162C @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08031630 @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _08031626 - ldr r1, _08031634 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _08031638 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_08031626: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803162C: .4byte gUnknown_0202F7AC -_08031630: .4byte gUnknown_0202F7B1 -_08031634: .4byte gTasks -_08031638: .4byte 0x02017810 - thumb_func_end sub_80315E8 - - thumb_func_start sub_803163C -sub_803163C: @ 803163C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bgt _08031650 - cmp r0, 0xA - bge _08031654 - cmp r0, 0x2 - beq _08031654 - b _08031658 -_08031650: - cmp r0, 0x11 - bne _08031658 -_08031654: - movs r0, 0x1 - b _0803165A -_08031658: - movs r0, 0 -_0803165A: - pop {r1} - bx r1 - thumb_func_end sub_803163C - - thumb_func_start move_anim_start_t4 -move_anim_start_t4: @ 8031660 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r0, _080316B4 @ =gUnknown_0202F7C8 - strb r1, [r0] - ldr r0, _080316B8 @ =gUnknown_0202F7C9 - strb r2, [r0] - ldr r0, _080316BC @ =gBattleAnims_Unknown2 - adds r1, r3, 0 - movs r2, 0 - bl move_something - ldr r0, _080316C0 @ =sub_80316CC - movs r1, 0xA - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080316C4 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - movs r0, 0x8 - ldrsh r1, [r1, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080316C8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080316B4: .4byte gUnknown_0202F7C8 -_080316B8: .4byte gUnknown_0202F7C9 -_080316BC: .4byte gBattleAnims_Unknown2 -_080316C0: .4byte sub_80316CC -_080316C4: .4byte gTasks -_080316C8: .4byte 0x02017810 - thumb_func_end move_anim_start_t4 - - thumb_func_start sub_80316CC -sub_80316CC: @ 80316CC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08031710 @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08031714 @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _0803170A - ldr r1, _08031718 @ =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _0803171C @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r4, 0 - bl DestroyTask -_0803170A: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031710: .4byte gUnknown_0202F7AC -_08031714: .4byte gUnknown_0202F7B1 -_08031718: .4byte gTasks -_0803171C: .4byte 0x02017810 - thumb_func_end sub_80316CC - - thumb_func_start sub_8031720 -sub_8031720: @ 8031720 - movs r0, 0 - bx lr - thumb_func_end sub_8031720 - - thumb_func_start mplay_80342A4 -mplay_80342A4: @ 8031724 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _08031764 - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - ldr r2, _0803176C @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x8] - adds r0, 0x1 - strb r0, [r1, 0x8] - ldr r0, _08031770 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x8] - cmp r0, 0x1D - bls _08031768 - ldr r0, _08031774 @ =gMPlay_SE1 - bl m4aMPlayStop - ldr r0, _08031778 @ =gMPlay_SE2 - bl m4aMPlayStop -_08031764: - cmp r5, 0 - beq _0803177C -_08031768: - movs r0, 0x1 - b _0803178A - .align 2, 0 -_0803176C: .4byte 0x02017810 -_08031770: .4byte gUnknown_02024A60 -_08031774: .4byte gMPlay_SE1 -_08031778: .4byte gMPlay_SE2 -_0803177C: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - ldr r1, _08031790 @ =0x02017810 - adds r0, r1 - strb r5, [r0, 0x8] - movs r0, 0 -_0803178A: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08031790: .4byte 0x02017810 - thumb_func_end mplay_80342A4 - - thumb_func_start sub_8031794 -sub_8031794: @ 8031794 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r1, 0 - bl GetMonData - str r0, [sp, 0xC] - mov r0, r9 - lsls r1, r0, 2 - ldr r0, _080317D0 @ =0x02017800 - adds r2, r1, r0 - ldrh r0, [r2, 0x2] - cmp r0, 0 - bne _080317D4 - mov r0, r8 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - ldr r7, [sp, 0xC] - b _080317DC - .align 2, 0 -_080317D0: .4byte 0x02017800 -_080317D4: - ldrh r6, [r2, 0x2] - ldr r0, _08031838 @ =gUnknown_02024E70 - adds r0, r1, r0 - ldr r7, [r0] -_080317DC: - mov r0, r8 - movs r1, 0x1 - bl GetMonData - mov r10, r0 - mov r0, r9 - bl battle_get_per_side_status - lsls r0, 24 - lsls r5, r6, 3 - ldr r1, _0803183C @ =gMonFrontPicTable - adds r5, r1 - ldr r1, _08031840 @ =gMonFrontPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08031844 @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - str r0, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - adds r0, r5, 0 - bl sub_800D334 - mov r1, r9 - lsls r2, r1, 4 - movs r0, 0x80 - lsls r0, 1 - adds r7, r2, r0 - lsls r1, 2 - ldr r0, _08031848 @ =0x02017800 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - str r1, [sp, 0x10] - adds r4, r2, 0 - cmp r0, 0 - bne _0803184C - mov r0, r8 - bl pokemon_get_pal - b _08031856 - .align 2, 0 -_08031838: .4byte gUnknown_02024E70 -_0803183C: .4byte gMonFrontPicTable -_08031840: .4byte gMonFrontPicCoords -_08031844: .4byte gUnknown_081FAF4C -_08031848: .4byte 0x02017800 -_0803184C: - adds r0, r6, 0 - mov r1, r10 - ldr r2, [sp, 0xC] - bl species_and_otid_get_pal -_08031856: - adds r5, r0, 0 - ldr r1, _080318E0 @ =0x02000000 - mov r8, r1 - adds r0, r5, 0 - bl sub_800D238 - mov r0, r8 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette - adds r1, r4, 0 - adds r1, 0x80 - mov r0, r8 - movs r2, 0x20 - bl LoadPalette - ldr r0, _080318E4 @ =SPECIES_CASTFORM - cmp r6, r0 - bne _080318A2 - subs r0, 0x81 - adds r7, r4, r0 - movs r4, 0xB2 - lsls r4, 9 - add r4, r8 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _080318E8 @ =gUnknown_02024E84 - add r0, r9 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r4 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette -_080318A2: - movs r0, 0xBC - lsls r0, 9 - add r0, r8 - ldr r1, [sp, 0x10] - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _080318CE - ldr r3, _080318EC @ =0x00007fff - adds r0, r7, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r7, 1 - ldr r0, _080318F0 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _080318F4 @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _080318F8 @ =REG_BG0CNT - bl CpuSet -_080318CE: - 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 -_080318E0: .4byte 0x02000000 -_080318E4: .4byte SPECIES_CASTFORM -_080318E8: .4byte gUnknown_02024E84 -_080318EC: .4byte 0x00007fff -_080318F0: .4byte gPlttBufferFaded -_080318F4: .4byte gPlttBufferUnfaded -_080318F8: .4byte REG_BG0CNT - thumb_func_end sub_8031794 - - thumb_func_start sub_80318FC -sub_80318FC: @ 80318FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r1, 0 - bl GetMonData - str r0, [sp, 0xC] - mov r0, r9 - lsls r1, r0, 2 - ldr r0, _08031938 @ =0x02017800 - adds r2, r1, r0 - ldrh r0, [r2, 0x2] - cmp r0, 0 - bne _0803193C - mov r0, r8 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r6, r0, 16 - ldr r7, [sp, 0xC] - b _08031944 - .align 2, 0 -_08031938: .4byte 0x02017800 -_0803193C: - ldrh r6, [r2, 0x2] - ldr r0, _080319A0 @ =gUnknown_02024E70 - adds r0, r1, r0 - ldr r7, [r0] -_08031944: - mov r0, r8 - movs r1, 0x1 - bl GetMonData - mov r10, r0 - mov r0, r9 - bl battle_get_per_side_status - lsls r0, 24 - lsls r5, r6, 3 - ldr r1, _080319A4 @ =gMonBackPicTable - adds r5, r1 - ldr r1, _080319A8 @ =gMonBackPicCoords - lsls r2, r6, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _080319AC @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - str r0, [sp] - str r6, [sp, 0x4] - str r7, [sp, 0x8] - adds r0, r5, 0 - bl sub_800D334 - mov r1, r9 - lsls r2, r1, 4 - movs r0, 0x80 - lsls r0, 1 - adds r7, r2, r0 - lsls r1, 2 - ldr r0, _080319B0 @ =0x02017800 - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - str r1, [sp, 0x10] - adds r4, r2, 0 - cmp r0, 0 - bne _080319B4 - mov r0, r8 - bl pokemon_get_pal - b _080319BE - .align 2, 0 -_080319A0: .4byte gUnknown_02024E70 -_080319A4: .4byte gMonBackPicTable -_080319A8: .4byte gMonBackPicCoords -_080319AC: .4byte gUnknown_081FAF4C -_080319B0: .4byte 0x02017800 -_080319B4: - adds r0, r6, 0 - mov r1, r10 - ldr r2, [sp, 0xC] - bl species_and_otid_get_pal -_080319BE: - adds r5, r0, 0 - ldr r1, _08031A48 @ =0x02000000 - mov r8, r1 - adds r0, r5, 0 - bl sub_800D238 - mov r0, r8 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette - adds r1, r4, 0 - adds r1, 0x80 - mov r0, r8 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08031A4C @ =SPECIES_CASTFORM - cmp r6, r0 - bne _08031A0A - subs r0, 0x81 - adds r7, r4, r0 - movs r4, 0xB2 - lsls r4, 9 - add r4, r8 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _08031A50 @ =gUnknown_02024E84 - add r0, r9 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r4 - adds r1, r7, 0 - movs r2, 0x20 - bl LoadPalette -_08031A0A: - movs r0, 0xBC - lsls r0, 9 - add r0, r8 - ldr r1, [sp, 0x10] - adds r0, r1, r0 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _08031A36 - ldr r3, _08031A54 @ =0x00007fff - adds r0, r7, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r7, 1 - ldr r0, _08031A58 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08031A5C @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _08031A60 @ =REG_BG0CNT - bl CpuSet -_08031A36: - 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 -_08031A48: .4byte 0x02000000 -_08031A4C: .4byte SPECIES_CASTFORM -_08031A50: .4byte gUnknown_02024E84 -_08031A54: .4byte 0x00007fff -_08031A58: .4byte gPlttBufferFaded -_08031A5C: .4byte gPlttBufferUnfaded -_08031A60: .4byte REG_BG0CNT - thumb_func_end sub_80318FC - - thumb_func_start unref_sub_8031A64 -unref_sub_8031A64: @ 8031A64 - bx lr - thumb_func_end unref_sub_8031A64 - - thumb_func_start nullsub_9 -nullsub_9: @ 8031A68 - bx lr - thumb_func_end nullsub_9 - - thumb_func_start sub_8031A6C -sub_8031A6C: @ 8031A6C - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_per_side_status - lsls r0, 24 - lsls r6, r4, 3 - ldr r5, _08031ADC @ =gTrainerFrontPicTable - adds r5, r6, r5 - ldr r1, _08031AE0 @ =gTrainerFrontPicCoords - lsls r4, 2 - adds r4, r1 - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08031AE4 @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r4, [r0] - str r4, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r5, 0 - bl DecompressPicFromTable_2 - str r4, [sp, 0x8] - ldrh r2, [r5, 0x4] - ldr r0, _08031AE8 @ =0xffff0000 - ldr r1, [sp, 0xC] - ands r1, r0 - orrs r1, r2 - str r1, [sp, 0xC] - ldrh r2, [r5, 0x6] - lsls r2, 16 - ldr r0, _08031AEC @ =0x0000ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0xC] - add r0, sp, 0x8 - bl LoadCompressedObjectPic - ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable - adds r6, r0 - adds r0, r6, 0 - bl LoadCompressedObjectPalette - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08031ADC: .4byte gTrainerFrontPicTable -_08031AE0: .4byte gTrainerFrontPicCoords -_08031AE4: .4byte gUnknown_081FAF4C -_08031AE8: .4byte 0xffff0000 -_08031AEC: .4byte 0x0000ffff -_08031AF0: .4byte gTrainerFrontPicPaletteTable - thumb_func_end sub_8031A6C - - thumb_func_start sub_8031AF4 -sub_8031AF4: @ 8031AF4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsls r1, r4, 3 - mov r8, r1 - ldr r6, _08031B60 @ =gTrainerBackPicTable - add r6, r8 - ldr r1, _08031B64 @ =gTrainerBackPicCoords - lsls r4, 2 - adds r4, r1 - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08031B68 @ =gUnknown_081FAF4C - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - adds r0, r6, 0 - bl DecompressPicFromTable_2 - ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable - add r8, r0 - mov r1, r8 - ldr r0, [r1] - lsls r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r5, r1 - lsrs r5, 16 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadCompressedPalette - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08031B60: .4byte gTrainerBackPicTable -_08031B64: .4byte gTrainerBackPicCoords -_08031B68: .4byte gUnknown_081FAF4C -_08031B6C: .4byte gTrainerBackPicPaletteTable - thumb_func_end sub_8031AF4 - - thumb_func_start nullsub_10 -nullsub_10: @ 8031B70 - bx lr - thumb_func_end nullsub_10 - - thumb_func_start sub_8031B74 -sub_8031B74: @ 8031B74 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable - lsrs r4, 13 - adds r0, r4, r0 - ldrh r0, [r0, 0x4] - bl FreeSpritePaletteByTag - ldr r0, _08031B9C @ =gTrainerFrontPicTable - adds r4, r0 - ldrh r0, [r4, 0x6] - bl FreeSpriteTilesByTag - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031B98: .4byte gTrainerFrontPicPaletteTable -_08031B9C: .4byte gTrainerFrontPicTable - thumb_func_end sub_8031B74 - - thumb_func_start unref_sub_8031BA0 -unref_sub_8031BA0: @ 8031BA0 - push {r4-r7,lr} - ldr r4, _08031BCC @ =gUnknown_0820A4D4 - adds r0, r4, 0 - bl LoadSpritePalette - adds r4, 0x8 - adds r0, r4, 0 - bl LoadSpritePalette - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08031BD8 - ldr r0, _08031BD0 @ =gUnknown_0820A47C - bl LoadCompressedObjectPic - ldr r0, _08031BD4 @ =gUnknown_0820A484 - bl LoadCompressedObjectPic - movs r5, 0x2 - b _08031BFA - .align 2, 0 -_08031BCC: .4byte gUnknown_0820A4D4 -_08031BD0: .4byte gUnknown_0820A47C -_08031BD4: .4byte gUnknown_0820A484 -_08031BD8: - ldr r4, _08031C20 @ =gUnknown_0820A48C - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r0, r4, 0 - bl LoadCompressedObjectPic - ldr r4, _08031C24 @ =gUnknown_0820A49C - adds r0, r4, 0 - bl LoadCompressedObjectPic - adds r4, 0x8 - adds r0, r4, 0 - bl LoadCompressedObjectPic - movs r5, 0x4 -_08031BFA: - movs r4, 0 - cmp r4, r5 - bcs _08031C1A - ldr r7, _08031C28 @ =gUnknown_02024A72 - ldr r6, _08031C2C @ =gUnknown_0820A4B4 -_08031C04: - adds r0, r4, r7 - ldrb r0, [r0] - lsls r0, 3 - adds r0, r6 - bl LoadCompressedObjectPic - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08031C04 -_08031C1A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031C20: .4byte gUnknown_0820A48C -_08031C24: .4byte gUnknown_0820A49C -_08031C28: .4byte gUnknown_02024A72 -_08031C2C: .4byte gUnknown_0820A4B4 - thumb_func_end unref_sub_8031BA0 - - thumb_func_start sub_8031C30 -sub_8031C30: @ 8031C30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - movs r6, 0 - cmp r4, 0 - bne _08031C40 - b _08031D52 -_08031C40: - cmp r4, 0x1 - bne _08031C5C - ldr r4, _08031C58 @ =gUnknown_0820A4D4 - adds r0, r4, 0 - bl LoadSpritePalette - adds r4, 0x8 - adds r0, r4, 0 - bl LoadSpritePalette - b _08031D52 - .align 2, 0 -_08031C58: .4byte gUnknown_0820A4D4 -_08031C5C: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08031CC4 - cmp r4, 0x2 - bne _08031C94 - ldr r0, _08031C80 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08031C88 - ldr r0, _08031C84 @ =gUnknown_0820A4AC - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031C80: .4byte gUnknown_020239F8 -_08031C84: .4byte gUnknown_0820A4AC -_08031C88: - ldr r0, _08031C90 @ =gUnknown_0820A47C - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031C90: .4byte gUnknown_0820A47C -_08031C94: - cmp r4, 0x3 - bne _08031CA4 - ldr r0, _08031CA0 @ =gUnknown_0820A484 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CA0: .4byte gUnknown_0820A484 -_08031CA4: - cmp r4, 0x4 - bne _08031CB4 - ldr r0, _08031CB0 @ =gUnknown_02024A72 - ldrb r0, [r0] - b _08031D3C - .align 2, 0 -_08031CB0: .4byte gUnknown_02024A72 -_08031CB4: - cmp r4, 0x5 - bne _08031D50 - ldr r0, _08031CC0 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x1] - b _08031D3C - .align 2, 0 -_08031CC0: .4byte gUnknown_02024A72 -_08031CC4: - cmp r4, 0x2 - bne _08031CD4 - ldr r0, _08031CD0 @ =gUnknown_0820A48C - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CD0: .4byte gUnknown_0820A48C -_08031CD4: - cmp r4, 0x3 - bne _08031CE4 - ldr r0, _08031CE0 @ =gUnknown_0820A494 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CE0: .4byte gUnknown_0820A494 -_08031CE4: - cmp r4, 0x4 - bne _08031CF4 - ldr r0, _08031CF0 @ =gUnknown_0820A49C - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031CF0: .4byte gUnknown_0820A49C -_08031CF4: - cmp r4, 0x5 - bne _08031D04 - ldr r0, _08031D00 @ =gUnknown_0820A4A4 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031D00: .4byte gUnknown_0820A4A4 -_08031D04: - cmp r4, 0x6 - bne _08031D14 - ldr r0, _08031D10 @ =gUnknown_02024A72 - ldrb r0, [r0] - b _08031D3C - .align 2, 0 -_08031D10: .4byte gUnknown_02024A72 -_08031D14: - cmp r4, 0x7 - bne _08031D24 - ldr r0, _08031D20 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x1] - b _08031D3C - .align 2, 0 -_08031D20: .4byte gUnknown_02024A72 -_08031D24: - cmp r4, 0x8 - bne _08031D34 - ldr r0, _08031D30 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x2] - b _08031D3C - .align 2, 0 -_08031D30: .4byte gUnknown_02024A72 -_08031D34: - cmp r5, 0x9 - bne _08031D50 - ldr r0, _08031D48 @ =gUnknown_02024A72 - ldrb r0, [r0, 0x3] -_08031D3C: - lsls r0, 3 - ldr r1, _08031D4C @ =gUnknown_0820A4B4 - adds r0, r1 - bl LoadCompressedObjectPic - b _08031D52 - .align 2, 0 -_08031D48: .4byte gUnknown_02024A72 -_08031D4C: .4byte gUnknown_0820A4B4 -_08031D50: - movs r6, 0x1 -_08031D52: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8031C30 - - thumb_func_start load_gfxc_health_bar -load_gfxc_health_bar: @ 8031D5C - push {lr} - ldr r0, _08031D6C @ =gUnknown_08D09C48 - movs r1, 0x80 - lsls r1, 18 - bl sub_800D238 - pop {r0} - bx r0 - .align 2, 0 -_08031D6C: .4byte gUnknown_08D09C48 - thumb_func_end load_gfxc_health_bar - - thumb_func_start battle_load_something -battle_load_something: @ 8031D70 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r6, 0 - ldrb r0, [r5] - cmp r0, 0x6 - bls _08031D80 - b _08031EDE -_08031D80: - lsls r0, 2 - ldr r1, _08031D8C @ =_08031D90 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08031D8C: .4byte _08031D90 - .align 2, 0 -_08031D90: - .4byte _08031DAC - .4byte _08031DB2 - .4byte _08031EBC - .4byte _08031DC8 - .4byte _08031DF8 - .4byte _08031E34 - .4byte _08031ED4 -_08031DAC: - bl sub_8031F0C - b _08031EBC -_08031DB2: - ldrb r0, [r4] - bl sub_8031C30 - lsls r0, 24 - cmp r0, 0 - beq _08031DC0 - b _08031EB8 -_08031DC0: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _08031EDE -_08031DC8: - ldr r0, _08031DE0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08031DE4 - ldrb r0, [r4] - cmp r0, 0 - bne _08031DE4 - bl battle_make_oam_safari_battle - b _08031DEA - .align 2, 0 -_08031DE0: .4byte gUnknown_020239F8 -_08031DE4: - ldrb r0, [r4] - bl battle_make_oam_normal_battle -_08031DEA: - ldr r2, _08031DF4 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r1, r2 - strb r0, [r1] - b _08031EA6 - .align 2, 0 -_08031DF4: .4byte gUnknown_03004340 -_08031DF8: - ldrb r0, [r4] - bl sub_8043F44 - ldr r0, _08031E18 @ =gUnknown_02024A72 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _08031E20 - ldr r0, _08031E1C @ =gUnknown_03004340 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, 0 - bl nullsub_11 - b _08031EA6 - .align 2, 0 -_08031E18: .4byte gUnknown_02024A72 -_08031E1C: .4byte gUnknown_03004340 -_08031E20: - ldr r0, _08031E30 @ =gUnknown_03004340 - adds r0, r1, r0 - ldrb r0, [r0] - movs r1, 0x1 - bl nullsub_11 - b _08031EA6 - .align 2, 0 -_08031E30: .4byte gUnknown_03004340 -_08031E34: - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08031E7C - ldr r0, _08031E6C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08031E9A - ldr r0, _08031E70 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08031E74 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08031E78 @ =gPlayerParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - b _08031E9A - .align 2, 0 -_08031E6C: .4byte gUnknown_020239F8 -_08031E70: .4byte gUnknown_03004340 -_08031E74: .4byte gUnknown_02024A6A -_08031E78: .4byte gPlayerParty -_08031E7C: - ldr r0, _08031EC4 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08031EC8 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08031ECC @ =gEnemyParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C -_08031E9A: - ldr r1, _08031EC4 @ =gUnknown_03004340 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 -_08031EA6: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08031ED0 @ =gUnknown_02024A68 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _08031EDE -_08031EB8: - movs r0, 0 - strb r0, [r4] -_08031EBC: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - b _08031EDE - .align 2, 0 -_08031EC4: .4byte gUnknown_03004340 -_08031EC8: .4byte gUnknown_02024A6A -_08031ECC: .4byte gEnemyParty -_08031ED0: .4byte gUnknown_02024A68 -_08031ED4: - bl sub_80327CC - bl sub_8094958 - movs r6, 0x1 -_08031EDE: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end battle_load_something - - thumb_func_start sub_8031EE8 -sub_8031EE8: @ 8031EE8 - push {r4,lr} - ldr r4, _08031F08 @ =0x02017810 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x30 - bl memset - adds r4, 0x30 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08031F08: .4byte 0x02017810 - thumb_func_end sub_8031EE8 - - thumb_func_start sub_8031F0C -sub_8031F0C: @ 8031F0C - push {lr} - bl sub_8031EE8 - ldr r0, _08031F20 @ =0x02017800 - movs r1, 0 - movs r2, 0x10 - bl memset - pop {r0} - bx r0 - .align 2, 0 -_08031F20: .4byte 0x02017800 - thumb_func_end sub_8031F0C - - thumb_func_start sub_8031F24 -sub_8031F24: @ 8031F24 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - ldr r5, _08031F78 @ =gUnknown_02024A68 - ldrb r0, [r5] - cmp r4, r0 - bge _08031F6E - ldr r0, _08031F7C @ =gSprites - mov r8, r0 - movs r7, 0x1 - movs r0, 0x2 - negs r0, r0 - mov r12, r0 - ldr r6, _08031F80 @ =gUnknown_02024BE0 - ldr r3, _08031F84 @ =0x02017800 -_08031F44: - adds r0, r4, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - ands r1, r7 - ldrb r2, [r3] - mov r0, r12 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - adds r3, 0x4 - adds r4, 0x1 - ldrb r0, [r5] - cmp r4, r0 - blt _08031F44 -_08031F6E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08031F78: .4byte gUnknown_02024A68 -_08031F7C: .4byte gSprites -_08031F80: .4byte gUnknown_02024BE0 -_08031F84: .4byte 0x02017800 - thumb_func_end sub_8031F24 - - thumb_func_start sub_8031F88 -sub_8031F88: @ 8031F88 - lsls r0, 24 - lsrs r0, 24 - lsls r3, r0, 2 - ldr r1, _08031FB8 @ =0x02017800 - adds r3, r1 - ldr r2, _08031FBC @ =gSprites - ldr r1, _08031FC0 @ =gUnknown_02024BE0 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - ldrb r2, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bx lr - .align 2, 0 -_08031FB8: .4byte 0x02017800 -_08031FBC: .4byte gSprites -_08031FC0: .4byte gUnknown_02024BE0 - thumb_func_end sub_8031F88 - - thumb_func_start sub_8031FC4 -sub_8031FC4: @ 8031FC4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0xC] - lsls r2, 24 - cmp r2, 0 - beq _08032088 - ldr r0, _08032064 @ =gUnknown_02024BE0 - mov r1, r8 - adds r6, r1, r0 - ldrb r1, [r6] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r7, _08032068 @ =gSprites - adds r0, r7 - ldr r4, _0803206C @ =0x02017840 - ldrb r1, [r4] - bl StartSpriteAnim - mov r2, r8 - lsls r0, r2, 20 - movs r5, 0x80 - lsls r5, 17 - adds r0, r5 - lsrs r5, r0, 16 - ldrh r0, [r4] - lsls r0, 5 - ldr r2, _08032070 @ =0xffffebc0 - adds r1, r4, r2 - adds r0, r1 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08032074 @ =gUnknown_02024E84 - add r0, r8 - ldrh r1, [r4] - strb r1, [r0] - mov r1, r8 - lsls r0, r1, 2 - subs r4, 0x40 - adds r0, r4 - ldrh r0, [r0, 0x2] - cmp r0, 0 - beq _0803204C - ldr r3, _08032078 @ =0x00007fff - adds r0, r5, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r5, 1 - ldr r0, _0803207C @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08032080 @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _08032084 @ =REG_BG0CNT - bl CpuSet -_0803204C: - mov r0, r8 - bl sub_8077F68 - ldrb r2, [r6] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r7 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x22] - b _080322F6 - .align 2, 0 -_08032064: .4byte gUnknown_02024BE0 -_08032068: .4byte gSprites -_0803206C: .4byte 0x02017840 -_08032070: .4byte 0xffffebc0 -_08032074: .4byte gUnknown_02024E84 -_08032078: .4byte 0x00007fff -_0803207C: .4byte gPlttBufferFaded -_08032080: .4byte gPlttBufferUnfaded -_08032084: .4byte REG_BG0CNT -_08032088: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _080320D0 - movs r2, 0 - mov r10, r2 - ldr r5, _080320C0 @ =0x02019348 - ldrh r7, [r5, 0x2] - ldr r4, [r5, 0x8] - mov r9, r4 - ldr r6, [r5, 0xC] - lsls r0, r7, 3 - ldr r1, _080320C4 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _080320C8 @ =gMonBackPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _080320CC @ =gUnknown_081FAF4C - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, [r5, 0x10] - b _08032184 - .align 2, 0 -_080320C0: .4byte 0x02019348 -_080320C4: .4byte gMonBackPicTable -_080320C8: .4byte gMonBackPicCoords -_080320CC: .4byte gUnknown_081FAF4C -_080320D0: - mov r0, r8 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, [sp, 0xC] - bl battle_side_get_owner - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08032104 - ldr r1, _080320FC @ =gUnknown_02024A6A - ldr r5, [sp, 0xC] - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08032100 @ =gEnemyParty - b _08032114 - .align 2, 0 -_080320FC: .4byte gUnknown_02024A6A -_08032100: .4byte gEnemyParty -_08032104: - ldr r1, _0803218C @ =gUnknown_02024A6A - ldr r2, [sp, 0xC] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08032190 @ =gPlayerParty -_08032114: - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r7, r0, 16 - mov r0, r8 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _080321A4 - ldr r0, _0803218C @ =gUnknown_02024A6A - mov r5, r8 - lsls r4, r5, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, _08032190 @ =gPlayerParty - adds r0, r5 - movs r1, 0 - bl GetMonData - mov r9, r0 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0x1 - bl GetMonData - adds r6, r0, 0 - lsls r0, r7, 3 - ldr r1, _08032194 @ =gMonBackPicTable - adds r0, r1 - ldr r1, _08032198 @ =gMonBackPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _0803219C @ =gUnknown_081FAF4C - mov r12, r4 - mov r5, r10 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _080321A0 @ =gUnknown_02024E70 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] -_08032184: - str r4, [sp, 0x8] - bl sub_800D334 - b _08032202 - .align 2, 0 -_0803218C: .4byte gUnknown_02024A6A -_08032190: .4byte gPlayerParty -_08032194: .4byte gMonBackPicTable -_08032198: .4byte gMonBackPicCoords -_0803219C: .4byte gUnknown_081FAF4C -_080321A0: .4byte gUnknown_02024E70 -_080321A4: - ldr r0, _08032308 @ =gUnknown_02024A6A - mov r1, r8 - lsls r4, r1, 1 - adds r4, r0 - ldrh r0, [r4] - movs r6, 0x64 - muls r0, r6 - ldr r5, _0803230C @ =gEnemyParty - adds r0, r5 - movs r1, 0 - bl GetMonData - mov r9, r0 - ldrh r0, [r4] - muls r0, r6 - adds r0, r5 - movs r1, 0x1 - bl GetMonData - adds r6, r0, 0 - lsls r0, r7, 3 - ldr r1, _08032310 @ =gMonFrontPicTable - adds r0, r1 - ldr r1, _08032314 @ =gMonFrontPicCoords - lsls r2, r7, 2 - adds r2, r1 - ldrb r1, [r2] - ldrb r2, [r2, 0x1] - movs r3, 0x80 - lsls r3, 18 - ldr r4, _08032318 @ =gUnknown_081FAF4C - mov r12, r4 - mov r5, r10 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp] - str r7, [sp, 0x4] - ldr r4, _0803231C @ =gUnknown_02024E70 - mov r12, r4 - mov r5, r8 - lsls r4, r5, 2 - add r4, r12 - ldr r4, [r4] - str r4, [sp, 0x8] - bl sub_800D334 -_08032202: - ldr r1, _08032318 @ =gUnknown_081FAF4C - mov r2, r10 - lsls r0, r2, 2 - adds r0, r1 - ldr r2, [r0] - ldr r0, _08032320 @ =gUnknown_02024BE0 - add r0, r8 - mov r10, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08032324 @ =gSprites - adds r0, r4 - ldrh r0, [r0, 0x4] - lsls r0, 22 - lsrs r0, 17 - ldr r1, _08032328 @ =0x06010000 - adds r0, r1 - ldr r1, _0803232C @ =0x040000d4 - str r2, [r1] - str r0, [r1, 0x4] - ldr r0, _08032330 @ =0x84000200 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - mov r5, r8 - lsls r0, r5, 20 - movs r1, 0x80 - lsls r1, 17 - adds r0, r1 - lsrs r5, r0, 16 - adds r0, r7, 0 - adds r1, r6, 0 - mov r2, r9 - bl species_and_otid_get_pal - adds r6, r0, 0 - ldr r2, _08032334 @ =0x02000000 - mov r9, r2 - mov r1, r9 - bl sub_800D238 - mov r0, r9 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette - ldr r0, _08032338 @ =SPECIES_CASTFORM - cmp r7, r0 - bne _08032288 - movs r4, 0xB2 - lsls r4, 9 - add r4, r9 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_800D238 - ldr r0, _0803233C @ =gUnknown_02024E84 - ldr r1, [sp, 0xC] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r0, 5 - adds r0, r4 - adds r1, r5, 0 - movs r2, 0x20 - bl LoadPalette -_08032288: - ldr r3, _08032340 @ =0x00007fff - adds r0, r5, 0 - movs r1, 0x10 - movs r2, 0x6 - bl BlendPalette - lsls r1, r5, 1 - ldr r0, _08032344 @ =gPlttBufferFaded - adds r0, r1, r0 - ldr r2, _08032348 @ =gPlttBufferUnfaded - adds r1, r2 - ldr r2, _0803234C @ =REG_BG0CNT - bl CpuSet - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _080322C8 - mov r2, r8 - lsls r0, r2, 2 - movs r1, 0xBC - lsls r1, 9 - add r1, r9 - adds r0, r1 - strh r7, [r0, 0x2] - ldr r0, _0803233C @ =gUnknown_02024E84 - adds r1, r2, r0 - ldr r4, [sp, 0xC] - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] -_080322C8: - mov r0, r8 - bl sub_8077F68 - mov r5, r10 - ldrb r2, [r5] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _08032324 @ =gSprites - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x22] - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, _0803233C @ =gUnknown_02024E84 - add r1, r8 - ldrb r1, [r1] - bl StartSpriteAnim -_080322F6: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032308: .4byte gUnknown_02024A6A -_0803230C: .4byte gEnemyParty -_08032310: .4byte gMonFrontPicTable -_08032314: .4byte gMonFrontPicCoords -_08032318: .4byte gUnknown_081FAF4C -_0803231C: .4byte gUnknown_02024E70 -_08032320: .4byte gUnknown_02024BE0 -_08032324: .4byte gSprites -_08032328: .4byte 0x06010000 -_0803232C: .4byte 0x040000d4 -_08032330: .4byte 0x84000200 -_08032334: .4byte 0x02000000 -_08032338: .4byte SPECIES_CASTFORM -_0803233C: .4byte gUnknown_02024E84 -_08032340: .4byte 0x00007fff -_08032344: .4byte gPlttBufferFaded -_08032348: .4byte gPlttBufferUnfaded -_0803234C: .4byte REG_BG0CNT - thumb_func_end sub_8031FC4 - - thumb_func_start sub_8032350 -sub_8032350: @ 8032350 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - lsls r1, 24 - cmp r1, 0 - bne _08032408 - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _0803236C - movs r4, 0 - b _08032376 -_0803236C: - adds r0, r4, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r4, r0, 24 -_08032376: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - beq _08032388 - ldr r0, _08032384 @ =gSubstituteDollTilemap - b _08032396 - .align 2, 0 -_08032384: .4byte gSubstituteDollTilemap -_08032388: - adds r0, r5, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080323AC - ldr r0, _080323A4 @ =gSubstituteDollGfx -_08032396: - ldr r1, _080323A8 @ =gUnknown_081FAF4C - lsls r4, 2 - adds r1, r4, r1 - ldr r1, [r1] - bl LZDecompressVram - b _080323BA - .align 2, 0 -_080323A4: .4byte gSubstituteDollGfx -_080323A8: .4byte gUnknown_081FAF4C -_080323AC: - ldr r0, _080323F4 @ =gSubstituteDollTilemap - ldr r1, _080323F8 @ =gUnknown_081FAF4C - lsls r4, 2 - adds r1, r4, r1 - ldr r1, [r1] - bl LZDecompressVram -_080323BA: - lsls r7, r5, 4 - ldr r0, _080323FC @ =gSubstituteDollPal - mov r12, r0 - ldr r0, _080323F8 @ =gUnknown_081FAF4C - adds r0, r4, r0 - ldr r4, [r0] - ldr r3, _08032400 @ =0x040000d4 - ldr r6, _08032404 @ =0x84000200 - movs r0, 0x80 - lsls r0, 4 - adds r2, r4, r0 - adds r5, r0, 0 - movs r1, 0x2 -_080323D4: - str r4, [r3] - str r2, [r3, 0x4] - str r6, [r3, 0x8] - ldr r0, [r3, 0x8] - adds r2, r5 - subs r1, 0x1 - cmp r1, 0 - bge _080323D4 - movs r0, 0x80 - lsls r0, 1 - adds r1, r7, r0 - mov r0, r12 - movs r2, 0x20 - bl LoadCompressedPalette - b _08032456 - .align 2, 0 -_080323F4: .4byte gSubstituteDollTilemap -_080323F8: .4byte gUnknown_081FAF4C -_080323FC: .4byte gSubstituteDollPal -_08032400: .4byte 0x040000d4 -_08032404: .4byte 0x84000200 -_08032408: - bl sub_8076BE0 - lsls r0, 24 - cmp r0, 0 - bne _08032456 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _08032440 - ldr r1, _08032438 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0803243C @ =gEnemyParty - adds r0, r1 - adds r1, r4, 0 - bl sub_8031794 - b _08032456 - .align 2, 0 -_08032438: .4byte gUnknown_02024A6A -_0803243C: .4byte gEnemyParty -_08032440: - ldr r1, _0803245C @ =gUnknown_02024A6A - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08032460 @ =gPlayerParty - adds r0, r1 - adds r1, r5, 0 - bl sub_80318FC -_08032456: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803245C: .4byte gUnknown_02024A6A -_08032460: .4byte gPlayerParty - thumb_func_end sub_8032350 - - thumb_func_start refresh_graphics_maybe -refresh_graphics_maybe: @ 8032464 - push {r4-r6,lr} - adds r5, r1, 0 - adds r4, r2, 0 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8032350 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r1, _080324A0 @ =gSprites - adds r4, r0, r1 - ldr r0, _080324A4 @ =gUnknown_02024E84 - adds r0, r6, r0 - ldrb r1, [r0] - adds r0, r4, 0 - bl StartSpriteAnim - cmp r5, 0 - bne _080324A8 - adds r0, r6, 0 - bl sub_8077F7C - b _080324AE - .align 2, 0 -_080324A0: .4byte gSprites -_080324A4: .4byte gUnknown_02024E84 -_080324A8: - adds r0, r6, 0 - bl sub_8077F68 -_080324AE: - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x22] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end refresh_graphics_maybe - - thumb_func_start sub_80324BC -sub_80324BC: @ 80324BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xA4 - bne _080324D8 - lsls r2, r0, 2 - ldr r0, _080324DC @ =0x02017800 - adds r2, r0 - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_080324D8: - pop {r0} - bx r0 - .align 2, 0 -_080324DC: .4byte 0x02017800 - thumb_func_end sub_80324BC - - thumb_func_start sub_80324E0 -sub_80324E0: @ 80324E0 - lsls r0, 24 - lsrs r0, 22 - ldr r1, _080324F4 @ =0x02017800 - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080324F4: .4byte 0x02017800 - thumb_func_end sub_80324E0 - - thumb_func_start sub_80324F8 -sub_80324F8: @ 80324F8 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - adds r7, r6, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8046200 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08032568 - lsls r0, r6, 2 - ldr r3, _08032564 @ =0x02017800 - adds r4, r0, r3 - ldrb r1, [r4] - movs r5, 0x2 - movs r2, 0x2 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _080325B2 - adds r0, r6, 0 - eors r0, r5 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _0803255A - movs r0, 0x5A - bl PlaySE -_0803255A: - ldrb r0, [r4] - orrs r0, r5 - strb r0, [r4] - b _080325B2 - .align 2, 0 -_08032564: .4byte 0x02017800 -_08032568: - lsls r1, r6, 2 - ldr r4, _0803258C @ =0x02017800 - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - bne _08032590 - movs r0, 0x5A - bl m4aSongNumStop - b _080325B2 - .align 2, 0 -_0803258C: .4byte 0x02017800 -_08032590: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080325B2 - movs r0, 0x2 - eors r7, r0 - lsls r0, r7, 2 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080325B2 - movs r0, 0x5A - bl m4aSongNumStop -_080325B2: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80324F8 - - thumb_func_start sub_80325B8 -sub_80325B8: @ 80325B8 - push {r4-r6,lr} - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, r4, 2 - ldr r6, _08032600 @ =0x02017800 - adds r1, r6 - ldrb r2, [r1] - movs r5, 0x3 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080325F2 - movs r0, 0x2 - adds r1, r4, 0 - eors r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] -_080325F2: - movs r0, 0x5A - bl m4aSongNumStop - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032600: .4byte 0x02017800 - thumb_func_end sub_80325B8 - - thumb_func_start unref_sub_8032604 -unref_sub_8032604: @ 8032604 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x39 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x3A - bl GetMonData - adds r1, r0, 0 - lsls r4, 16 - asrs r4, 16 - lsls r1, 16 - asrs r1, 16 - adds r0, r4, 0 - bl sub_8046200 - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end unref_sub_8032604 - - thumb_func_start sub_8032638 -sub_8032638: @ 8032638 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _080326DC @ =gMain - ldr r1, _080326E0 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080326CE - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r5, _080326E4 @ =gUnknown_02024A6A - mov r1, r8 - lsls r0, r1, 1 - adds r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - lsls r0, r1, 1 - adds r0, r5 - ldrb r0, [r0] - bl pokemon_order_func - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0x64 - adds r0, r4, 0 - muls r0, r7 - ldr r6, _080326E8 @ =gPlayerParty - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080326AA - adds r0, r4, 0 - mov r1, r8 - bl sub_80324F8 -_080326AA: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080326CE - adds r0, r5, 0 - muls r0, r7 - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080326CE - adds r0, r4, 0 - mov r1, r9 - bl sub_80324F8 -_080326CE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080326DC: .4byte gMain -_080326E0: .4byte 0x0000043d -_080326E4: .4byte gUnknown_02024A6A -_080326E8: .4byte gPlayerParty - thumb_func_end sub_8032638 - - thumb_func_start sub_80326EC -sub_80326EC: @ 80326EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r0, _08032778 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - bge _080327B4 - movs r0, 0x3 - mov r10, r8 - mov r1, r10 - ands r1, r0 - mov r10, r1 - movs r6, 0 - movs r2, 0x3F - negs r2, r2 - mov r9, r2 -_08032718: - lsls r0, r5, 24 - lsrs r0, 24 - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _080327A8 - ldr r4, _0803277C @ =gSprites - ldr r0, _08032780 @ =gUnknown_02024BE0 - adds r3, r5, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r7, 0x4 - negs r7, r7 - adds r2, r7, 0 - ands r1, r2 - mov r2, r10 - orrs r1, r2 - strb r1, [r0, 0x1] - mov r7, r8 - cmp r7, 0 - bne _08032788 - ldr r2, _08032784 @ =0x02017810 - adds r2, r6, r2 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r2, 0x6] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x3] - mov r2, r9 - ands r1, r2 - strb r1, [r0, 0x3] - b _080327A8 - .align 2, 0 -_08032778: .4byte gUnknown_02024A68 -_0803277C: .4byte gSprites -_08032780: .4byte gUnknown_02024BE0 -_08032784: .4byte 0x02017810 -_08032788: - ldrb r0, [r3] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r4 - ldr r0, _080327C4 @ =0x02017810 - adds r0, r6, r0 - ldrb r1, [r0, 0x6] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r0, [r2, 0x3] - mov r3, r9 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x3] -_080327A8: - adds r6, 0xC - adds r5, 0x1 - ldr r0, _080327C8 @ =gUnknown_02024A68 - ldrb r0, [r0] - cmp r5, r0 - blt _08032718 -_080327B4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080327C4: .4byte 0x02017810 -_080327C8: .4byte gUnknown_02024A68 - thumb_func_end sub_80326EC - - thumb_func_start sub_80327CC -sub_80327CC: @ 80327CC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, _08032894 @ =gUnknown_081FAF24 - bl LoadCompressedObjectPic - movs r0, 0x1 - bl battle_get_side_with_given_state - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08032898 @ =gSpriteTemplate_81FAF34 - mov r8, r0 - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 8 - movs r0, 0x80 - lsls r0, 14 - adds r2, r0 - asrs r2, 16 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0xC8 - bl CreateSprite - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - ldr r6, _0803289C @ =0x02017810 - adds r1, r6 - strb r0, [r1, 0x7] - ldr r7, _080328A0 @ =gSprites - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x2E] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0803288A - movs r0, 0x3 - bl battle_get_side_with_given_state - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r5, 0 - movs r1, 0 - bl sub_8077ABC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8077ABC - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 8 - movs r0, 0x80 - lsls r0, 14 - adds r2, r0 - asrs r2, 16 - mov r0, r8 - adds r1, r4, 0 - movs r3, 0xC8 - bl CreateSprite - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 2 - adds r1, r6 - strb r0, [r1, 0x7] - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - strh r5, [r0, 0x2E] -_0803288A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032894: .4byte gUnknown_081FAF24 -_08032898: .4byte gSpriteTemplate_81FAF34 -_0803289C: .4byte 0x02017810 -_080328A0: .4byte gSprites - thumb_func_end sub_80327CC - - thumb_func_start sub_80328A4 -sub_80328A4: @ 80328A4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - movs r0, 0 - mov r8, r0 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080328E8 @ =gUnknown_02024BE0 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080328EC @ =gSprites - adds r7, r0, r1 - adds r6, r7, 0 - adds r6, 0x3E - ldrb r1, [r6] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080328E0 - adds r0, r4, 0 - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - bne _080328F4 -_080328E0: - ldr r0, _080328F0 @ =sub_8032978 - str r0, [r5, 0x1C] - b _08032964 - .align 2, 0 -_080328E8: .4byte gUnknown_02024BE0 -_080328EC: .4byte gSprites -_080328F0: .4byte sub_8032978 -_080328F4: - ldr r0, _08032910 @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _08032906 - ldrb r1, [r6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08032918 -_08032906: - movs r0, 0x1 - mov r8, r0 - lsls r4, 2 - ldr r6, _08032914 @ =0x02017800 - b _08032938 - .align 2, 0 -_08032910: .4byte gUnknown_0202F7B1 -_08032914: .4byte 0x02017800 -_08032918: - lsls r0, r4, 2 - ldr r1, _08032970 @ =0x02017800 - adds r3, r0, r1 - ldrh r2, [r3, 0x2] - adds r4, r0, 0 - adds r6, r1, 0 - cmp r2, 0 - beq _08032938 - ldr r0, _08032974 @ =gEnemyMonElevation - adds r1, r2, 0 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - bne _08032938 - movs r0, 0x1 - mov r8, r0 -_08032938: - adds r0, r4, r6 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08032948 - movs r0, 0x1 - mov r8, r0 -_08032948: - ldrh r0, [r7, 0x20] - strh r0, [r5, 0x20] - ldrh r0, [r7, 0x24] - strh r0, [r5, 0x24] - adds r2, r5, 0 - adds r2, 0x3E - mov r0, r8 - lsls r3, r0, 2 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] -_08032964: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032970: .4byte 0x02017800 -_08032974: .4byte gEnemyMonElevation - thumb_func_end sub_80328A4 - - thumb_func_start sub_8032978 -sub_8032978: @ 8032978 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8032978 - - thumb_func_start sub_8032984 -sub_8032984: @ 8032984 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - lsls r1, 16 - lsrs r5, r1, 16 - adds r0, r4, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - beq _080329FA - lsls r0, r4, 2 - ldr r3, _080329D0 @ =0x02017800 - adds r1, r0, r3 - ldrh r0, [r1, 0x2] - cmp r0, 0 - beq _080329AA - adds r5, r0, 0 -_080329AA: - ldr r0, _080329D4 @ =gEnemyMonElevation - adds r0, r5, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080329E0 - ldr r2, _080329D8 @ =gSprites - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r3, r0 - ldrb r1, [r0, 0x17] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080329DC @ =sub_80328A4 - b _080329F8 - .align 2, 0 -_080329D0: .4byte 0x02017800 -_080329D4: .4byte gEnemyMonElevation -_080329D8: .4byte gSprites -_080329DC: .4byte sub_80328A4 -_080329E0: - ldr r2, _08032A00 @ =gSprites - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r3, r0 - ldrb r1, [r0, 0x17] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08032A04 @ =sub_8032978 -_080329F8: - str r1, [r0] -_080329FA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032A00: .4byte gSprites -_08032A04: .4byte sub_8032978 - thumb_func_end sub_8032984 - - thumb_func_start sub_8032A08 -sub_8032A08: @ 8032A08 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08032A2C @ =gSprites - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _08032A30 @ =0x02017810 - adds r1, r0 - ldrb r1, [r1, 0x7] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08032A34 @ =sub_8032978 - str r1, [r0] - bx lr - .align 2, 0 -_08032A2C: .4byte gSprites -_08032A30: .4byte 0x02017810 -_08032A34: .4byte sub_8032978 - thumb_func_end sub_8032A08 - - thumb_func_start sub_8032A38 -sub_8032A38: @ 8032A38 - push {r4-r6,lr} - ldr r3, _08032AA4 @ =0x06000240 - movs r0, 0 - movs r6, 0xF0 - lsls r6, 8 -_08032A42: - adds r5, r0, 0x1 - movs r4, 0xF -_08032A46: - ldrh r1, [r3] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08032A56 - adds r0, r6, 0 - orrs r0, r1 - strh r0, [r3] -_08032A56: - ldrh r1, [r3] - movs r2, 0xF0 - lsls r2, 4 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08032A6A - adds r0, r2, 0 - orrs r0, r1 - strh r0, [r3] -_08032A6A: - ldrh r1, [r3] - movs r2, 0xF0 - movs r0, 0xF0 - ands r0, r1 - cmp r0, 0 - bne _08032A7C - adds r0, r1, 0 - orrs r0, r2 - strh r0, [r3] -_08032A7C: - ldrh r1, [r3] - movs r2, 0xF - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _08032A8E - adds r0, r1, 0 - orrs r0, r2 - strh r0, [r3] -_08032A8E: - adds r3, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08032A46 - adds r0, r5, 0 - cmp r0, 0x8 - ble _08032A42 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032AA4: .4byte 0x06000240 - thumb_func_end sub_8032A38 - - thumb_func_start sub_8032AA8 -sub_8032AA8: @ 8032AA8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - lsls r2, r4, 2 - ldr r0, _08032AD4 @ =0x02017800 - adds r2, r0 - movs r3, 0 - movs r0, 0 - strh r0, [r2, 0x2] - ldr r0, _08032AD8 @ =gUnknown_02024E84 - adds r0, r4, r0 - strb r3, [r0] - cmp r1, 0 - bne _08032ACC - adds r0, r4, 0 - bl sub_80324E0 -_08032ACC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08032AD4: .4byte 0x02017800 -_08032AD8: .4byte gUnknown_02024E84 - thumb_func_end sub_8032AA8 - - thumb_func_start nullsub_45 -nullsub_45: @ 8032ADC - bx lr - thumb_func_end nullsub_45 - - thumb_func_start sub_8032AE0 -sub_8032AE0: @ 8032AE0 - ldr r1, _08032AF0 @ =gUnknown_03004330 - ldr r0, _08032AF4 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08032AF8 @ =sub_8032AFC - str r1, [r0] - bx lr - .align 2, 0 -_08032AF0: .4byte gUnknown_03004330 -_08032AF4: .4byte gUnknown_02024A60 -_08032AF8: .4byte sub_8032AFC - thumb_func_end sub_8032AE0 - - thumb_func_start sub_8032AFC -sub_8032AFC: @ 8032AFC - push {lr} - ldr r2, _08032B30 @ =gUnknown_02024A64 - ldr r1, _08032B34 @ =gBitTable - ldr r0, _08032B38 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08032B48 - ldr r0, _08032B3C @ =gUnknown_02023A60 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _08032B44 - ldr r0, _08032B40 @ =gUnknown_081FAF5C - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08032B48 - .align 2, 0 -_08032B30: .4byte gUnknown_02024A64 -_08032B34: .4byte gBitTable -_08032B38: .4byte gUnknown_02024A60 -_08032B3C: .4byte gUnknown_02023A60 -_08032B40: .4byte gUnknown_081FAF5C -_08032B44: - bl sub_80334EC -_08032B48: - pop {r0} - bx r0 - thumb_func_end sub_8032AFC - - thumb_func_start sub_8032B4C -sub_8032B4C: @ 8032B4C - push {lr} - ldr r2, _08032B74 @ =gSprites - ldr r1, _08032B78 @ =gUnknown_02024BE0 - ldr r0, _08032B7C @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08032B80 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032B70 - bl sub_80334EC -_08032B70: - pop {r0} - bx r0 - .align 2, 0 -_08032B74: .4byte gSprites -_08032B78: .4byte gUnknown_02024BE0 -_08032B7C: .4byte gUnknown_02024A60 -_08032B80: .4byte SpriteCallbackDummy - thumb_func_end sub_8032B4C - - thumb_func_start sub_8032B84 -sub_8032B84: @ 8032B84 - push {lr} - ldr r2, _08032BAC @ =gSprites - ldr r1, _08032BB0 @ =gUnknown_02024BE0 - ldr r0, _08032BB4 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08032BB8 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032BA8 - bl sub_80334EC -_08032BA8: - pop {r0} - bx r0 - .align 2, 0 -_08032BAC: .4byte gSprites -_08032BB0: .4byte gUnknown_02024BE0 -_08032BB4: .4byte gUnknown_02024A60 -_08032BB8: .4byte SpriteCallbackDummy - thumb_func_end sub_8032B84 - - thumb_func_start sub_8032BBC -sub_8032BBC: @ 8032BBC - push {r4-r6,lr} - ldr r4, _08032C34 @ =gSprites - ldr r6, _08032C38 @ =gUnknown_02024BE0 - ldr r5, _08032C3C @ =gUnknown_02024A60 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _08032C40 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032C2C - adds r0, r2, r4 - ldrh r0, [r0, 0x6] - bl sub_8031B74 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x38] - ldr r2, _08032C44 @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _08032C48 @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - bl sub_80334EC -_08032C2C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08032C34: .4byte gSprites -_08032C38: .4byte gUnknown_02024BE0 -_08032C3C: .4byte gUnknown_02024A60 -_08032C40: .4byte SpriteCallbackDummy -_08032C44: .4byte 0x000003ff -_08032C48: .4byte 0xfffffc00 - thumb_func_end sub_8032BBC - - thumb_func_start sub_8032C4C -sub_8032C4C: @ 8032C4C - push {lr} - ldr r3, _08032C80 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _08032C84 @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08032C7C - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x9] - bl sub_80334EC -_08032C7C: - pop {r0} - bx r0 - .align 2, 0 -_08032C80: .4byte gUnknown_02024A60 -_08032C84: .4byte 0x02017810 - thumb_func_end sub_8032C4C - - thumb_func_start sub_8032C88 -sub_8032C88: @ 8032C88 - push {r4-r7,lr} - movs r6, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08032CAC - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08032CE0 - ldr r0, _08032CCC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08032CE0 -_08032CAC: - ldr r2, _08032CD0 @ =gSprites - ldr r1, _08032CD4 @ =gUnknown_03004340 - ldr r0, _08032CD8 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08032CDC @ =SpriteCallbackDummy - cmp r1, r0 - bne _08032D16 - b _08032D14 - .align 2, 0 -_08032CCC: .4byte gUnknown_020239F8 -_08032CD0: .4byte gSprites -_08032CD4: .4byte gUnknown_03004340 -_08032CD8: .4byte gUnknown_02024A60 -_08032CDC: .4byte SpriteCallbackDummy -_08032CE0: - ldr r2, _08032DC4 @ =gSprites - ldr r5, _08032DC8 @ =gUnknown_03004340 - ldr r0, _08032DCC @ =gUnknown_02024A60 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, _08032DD0 @ =SpriteCallbackDummy - cmp r4, r0 - bne _08032D16 - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _08032D16 -_08032D14: - movs r6, 0x1 -_08032D16: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _08032D22 - movs r6, 0 -_08032D22: - cmp r6, 0 - beq _08032E0E - ldr r7, _08032DCC @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r5, _08032DD4 @ =0x02017810 - adds r4, r0, r5 - ldrb r1, [r4, 0x1] - movs r3, 0x1 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032E0E - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032E0E - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, _08032DD8 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r0, _08032DDC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08032DE4 - ldr r0, _08032DE0 @ =gMPlay_BGM - bl m4aMPlayContinue - b _08032DF0 - .align 2, 0 -_08032DC4: .4byte gSprites -_08032DC8: .4byte gUnknown_03004340 -_08032DCC: .4byte gUnknown_02024A60 -_08032DD0: .4byte SpriteCallbackDummy -_08032DD4: .4byte 0x02017810 -_08032DD8: .4byte 0x000027f9 -_08032DDC: .4byte gUnknown_020239F8 -_08032DE0: .4byte gMPlay_BGM -_08032DE4: - ldr r0, _08032E14 @ =gMPlay_BGM - ldr r1, _08032E18 @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08032DF0: - ldr r2, _08032E1C @ =gUnknown_02024A60 - ldrb r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08032E20 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, _08032E24 @ =gUnknown_03004330 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08032E28 @ =sub_8032C4C - str r1, [r0] -_08032E0E: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032E14: .4byte gMPlay_BGM -_08032E18: .4byte 0x0000ffff -_08032E1C: .4byte gUnknown_02024A60 -_08032E20: .4byte 0x02017810 -_08032E24: .4byte gUnknown_03004330 -_08032E28: .4byte sub_8032C4C - thumb_func_end sub_8032C88 - - thumb_func_start sub_8032E2C -sub_8032E2C: @ 8032E2C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _08032FEC @ =gUnknown_02024A60 - mov r9, r0 - ldrb r2, [r0] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r4, _08032FF0 @ =0x02017810 - adds r0, r4 - ldrb r1, [r0] - movs r5, 0x88 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08032E64 - ldr r0, _08032FF4 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08032FF8 @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08032E64: - mov r1, r9 - ldrb r0, [r1] - movs r7, 0x2 - adds r2, r7, 0 - eors r2, r0 - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _08032E94 - ldr r0, _08032FF4 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08032FF8 @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08032E94: - mov r0, r9 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - movs r3, 0x8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032EAE - b _08032FE0 -_08032EAE: - adds r1, r7, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08032EC6 - b _08032FE0 -_08032EC6: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08032F58 - ldr r0, _08032FFC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08032F58 - ldr r1, _08033000 @ =gUnknown_0300434C - mov r2, r9 - ldrb r0, [r2] - eors r0, r7 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08033004 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r4, _08033008 @ =gUnknown_03004340 - mov r1, r9 - ldrb r0, [r1] - adds r1, r7, 0 - eors r1, r0 - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08032FF4 @ =gUnknown_02024A6A - mov r8, r2 - lsls r1, 1 - add r1, r8 - ldrh r1, [r1] - movs r6, 0x64 - muls r1, r6 - ldr r5, _08032FF8 @ =gEnemyParty - adds r1, r5 - movs r2, 0 - bl sub_8045A5C - mov r1, r9 - ldrb r0, [r1] - eors r0, r7 - bl sub_804777C - mov r2, r9 - ldrb r0, [r2] - eors r0, r7 - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - mov r1, r9 - ldrb r0, [r1] - adds r4, r7, 0 - eors r4, r0 - lsls r0, r4, 1 - add r0, r8 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 -_08032F58: - ldr r1, _08033000 @ =gUnknown_0300434C - ldr r4, _08032FEC @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08033004 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _08033008 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08032FF4 @ =gUnknown_02024A6A - mov r9, r2 - lsls r1, 1 - add r1, r9 - ldrh r1, [r1] - movs r2, 0x64 - mov r8, r2 - mov r2, r8 - muls r2, r1 - adds r1, r2, 0 - ldr r6, _08032FF8 @ =gEnemyParty - adds r1, r6 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r4] - bl sub_804777C - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r5, [r4] - lsls r0, r5, 1 - add r0, r9 - ldrh r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_8032984 - ldr r2, _0803300C @ =0x02017840 - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08033010 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08033014 @ =sub_8032C88 - str r1, [r0] -_08032FE0: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08032FEC: .4byte gUnknown_02024A60 -_08032FF0: .4byte 0x02017810 -_08032FF4: .4byte gUnknown_02024A6A -_08032FF8: .4byte gEnemyParty -_08032FFC: .4byte gUnknown_020239F8 -_08033000: .4byte gUnknown_0300434C -_08033004: .4byte gSprites -_08033008: .4byte gUnknown_03004340 -_0803300C: .4byte 0x02017840 -_08033010: .4byte gUnknown_03004330 -_08033014: .4byte sub_8032C88 - thumb_func_end sub_8032E2C - - thumb_func_start sub_8033018 -sub_8033018: @ 8033018 - push {r4-r7,lr} - ldr r2, _08033070 @ =gSprites - ldr r0, _08033074 @ =gUnknown_02024BE0 - ldr r7, _08033078 @ =gUnknown_02024A60 - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - lsrs r2, r0, 31 - cmp r2, 0x1 - bne _080330BC - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - bne _080330BC - lsls r4, r3, 1 - adds r0, r4, r3 - lsls r0, 2 - ldr r6, _0803307C @ =0x02017810 - adds r1, r0, r6 - ldrb r5, [r1] - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - bne _08033088 - ldr r0, _08033080 @ =gUnknown_02024A6A - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08033084 @ =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8141828 - b _080330BC - .align 2, 0 -_08033070: .4byte gSprites -_08033074: .4byte gUnknown_02024BE0 -_08033078: .4byte gUnknown_02024A60 -_0803307C: .4byte 0x02017810 -_08033080: .4byte gUnknown_02024A6A -_08033084: .4byte gEnemyParty -_08033088: - ldrb r0, [r1, 0x1] - ands r2, r0 - cmp r2, 0 - beq _080330BC - movs r0, 0x7F - ands r0, r5 - strb r0, [r1] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _080330C4 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - bl sub_80334EC -_080330BC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080330C4: .4byte 0x000027f9 - thumb_func_end sub_8033018 - - thumb_func_start sub_80330C8 -sub_80330C8: @ 80330C8 - push {r4-r6,lr} - ldr r6, _08033108 @ =gUnknown_02024A60 - ldrb r0, [r6] - ldr r5, _0803310C @ =gUnknown_03004340 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8045C78 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08033110 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - movs r2, 0 - bl sub_80440EC - b _08033114 - .align 2, 0 -_08033108: .4byte gUnknown_02024A60 -_0803310C: .4byte gUnknown_03004340 -_08033110: - bl sub_80334EC -_08033114: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80330C8 - - thumb_func_start sub_803311C -sub_803311C: @ 803311C - push {lr} - ldr r2, _08033150 @ =gSprites - ldr r0, _08033154 @ =gUnknown_02024BE0 - ldr r1, _08033158 @ =gUnknown_02024A60 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _0803314A - ldr r0, _0803315C @ =gUnknown_03004340 - adds r0, r3, r0 - ldrb r0, [r0] - bl sub_8043DB0 - bl sub_80334EC -_0803314A: - pop {r0} - bx r0 - .align 2, 0 -_08033150: .4byte gSprites -_08033154: .4byte gUnknown_02024BE0 -_08033158: .4byte gUnknown_02024A60 -_0803315C: .4byte gUnknown_03004340 - thumb_func_end sub_803311C - - thumb_func_start sub_8033160 -sub_8033160: @ 8033160 - push {r4-r6,lr} - ldr r6, _080331BC @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _080331C0 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080331B6 - ldr r5, _080331C4 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080331C8 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl sub_8032A08 - ldr r1, _080331CC @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl sub_80334EC -_080331B6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080331BC: .4byte gUnknown_02024A60 -_080331C0: .4byte 0x02017810 -_080331C4: .4byte gUnknown_02024BE0 -_080331C8: .4byte gSprites -_080331CC: .4byte gUnknown_03004340 - thumb_func_end sub_8033160 - - thumb_func_start sub_80331D0 -sub_80331D0: @ 80331D0 - push {lr} - ldr r0, _080331E4 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _080331DE - bl sub_80334EC -_080331DE: - pop {r0} - bx r0 - .align 2, 0 -_080331E4: .4byte gUnknown_03004210 - thumb_func_end sub_80331D0 - - thumb_func_start bx_blink_t7 -bx_blink_t7: @ 80331E8 - push {r4,lr} - ldr r1, _08033224 @ =gUnknown_02024BE0 - ldr r0, _08033228 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _0803322C @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _08033234 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _08033230 @ =gUnknown_02024E6D - strb r3, [r0] - bl sub_80334EC - b _0803325E - .align 2, 0 -_08033224: .4byte gUnknown_02024BE0 -_08033228: .4byte gUnknown_02024A60 -_0803322C: .4byte gSprites -_08033230: .4byte gUnknown_02024E6D -_08033234: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08033258 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08033258: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_0803325E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end bx_blink_t7 - - thumb_func_start sub_8033264 -sub_8033264: @ 8033264 - push {r4,lr} - ldr r2, _080332B4 @ =gSprites - ldr r0, _080332B8 @ =gUnknown_03004340 - ldr r4, _080332BC @ =gUnknown_02024A60 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080332C0 @ =SpriteCallbackDummy - cmp r1, r0 - bne _080332AC - lsls r0, r3, 2 - ldr r1, _080332C4 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080332A0 - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_080332A0: - ldr r0, _080332C8 @ =gUnknown_03004330 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _080332CC @ =sub_80332D0 - str r0, [r1] -_080332AC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080332B4: .4byte gSprites -_080332B8: .4byte gUnknown_03004340 -_080332BC: .4byte gUnknown_02024A60 -_080332C0: .4byte SpriteCallbackDummy -_080332C4: .4byte 0x02017800 -_080332C8: .4byte gUnknown_03004330 -_080332CC: .4byte sub_80332D0 - thumb_func_end sub_8033264 - - thumb_func_start sub_80332D0 -sub_80332D0: @ 80332D0 - push {lr} - ldr r0, _080332FC @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08033300 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080332F6 - ldr r0, _08033304 @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - bl sub_80334EC -_080332F6: - pop {r0} - bx r0 - .align 2, 0 -_080332FC: .4byte gUnknown_02024A60 -_08033300: .4byte 0x02017810 -_08033304: .4byte c3_0802FDF4 - thumb_func_end sub_80332D0 - - thumb_func_start sub_8033308 -sub_8033308: @ 8033308 - push {r4,r5,lr} - ldr r5, _080333AC @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _080333B0 @ =0x02017810 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080333A4 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _080333B4 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r1, _080333B8 @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080333BC @ =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - ldr r4, _080333C0 @ =gUnknown_03004340 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _080333C4 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _080333C8 @ =gEnemyParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r5] - bl sub_804777C - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r0, [r5] - bl sub_8031F88 - ldr r1, _080333CC @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080333D0 @ =sub_8033264 - str r1, [r0] -_080333A4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080333AC: .4byte gUnknown_02024A60 -_080333B0: .4byte 0x02017810 -_080333B4: .4byte 0x000027f9 -_080333B8: .4byte gUnknown_02024BE0 -_080333BC: .4byte gSprites -_080333C0: .4byte gUnknown_03004340 -_080333C4: .4byte gUnknown_02024A6A -_080333C8: .4byte gEnemyParty -_080333CC: .4byte gUnknown_03004330 -_080333D0: .4byte sub_8033264 - thumb_func_end sub_8033308 - - thumb_func_start sub_80333D4 -sub_80333D4: @ 80333D4 - push {r4-r6,lr} - ldr r5, _08033470 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r6, _08033474 @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _08033402 - ldr r0, _08033478 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _0803347C @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08033402: - ldr r4, _08033480 @ =gSprites - ldr r0, _08033484 @ =gUnknown_0300434C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _08033488 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08033468 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08033468 - adds r0, r3, r4 - bl DestroySprite - ldrb r4, [r5] - ldr r1, _08033478 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0803347C @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 - ldr r1, _0803348C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08033490 @ =sub_8033308 - str r1, [r0] -_08033468: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08033470: .4byte gUnknown_02024A60 -_08033474: .4byte 0x02017810 -_08033478: .4byte gUnknown_02024A6A -_0803347C: .4byte gEnemyParty -_08033480: .4byte gSprites -_08033484: .4byte gUnknown_0300434C -_08033488: .4byte SpriteCallbackDummy -_0803348C: .4byte gUnknown_03004330 -_08033490: .4byte sub_8033308 - thumb_func_end sub_80333D4 - - thumb_func_start sub_8033494 -sub_8033494: @ 8033494 - push {lr} - ldr r0, _080334B8 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080334BC @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080334B2 - bl sub_80334EC -_080334B2: - pop {r0} - bx r0 - .align 2, 0 -_080334B8: .4byte gUnknown_02024A60 -_080334BC: .4byte 0x02017810 - thumb_func_end sub_8033494 - - thumb_func_start sub_80334C0 -sub_80334C0: @ 80334C0 - push {lr} - ldr r0, _080334E4 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _080334E8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _080334DE - bl sub_80334EC -_080334DE: - pop {r0} - bx r0 - .align 2, 0 -_080334E4: .4byte gUnknown_02024A60 -_080334E8: .4byte 0x02017810 - thumb_func_end sub_80334C0 - - thumb_func_start sub_80334EC -sub_80334EC: @ 80334EC - ldr r1, _08033510 @ =gUnknown_03004330 - ldr r2, _08033514 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08033518 @ =sub_8032AFC - str r1, [r0] - ldr r3, _0803351C @ =gUnknown_02024A64 - ldr r1, _08033520 @ =gBitTable - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - bx lr - .align 2, 0 -_08033510: .4byte gUnknown_03004330 -_08033514: .4byte gUnknown_02024A60 -_08033518: .4byte sub_8032AFC -_0803351C: .4byte gUnknown_02024A64 -_08033520: .4byte gBitTable - thumb_func_end sub_80334EC - - thumb_func_start dp01t_00_7_getattr -dp01t_00_7_getattr: @ 8033524 - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, _08033550 @ =gUnknown_02023A60 - ldr r0, _08033554 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _0803355C - ldr r0, _08033558 @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl sub_8033598 - adds r6, r0, 0 - b _0803357E - .align 2, 0 -_08033550: .4byte gUnknown_02023A60 -_08033554: .4byte gUnknown_02024A60 -_08033558: .4byte gUnknown_02024A6A -_0803355C: - ldrb r4, [r1] - movs r5, 0 -_08033560: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08033576 - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl sub_8033598 - adds r6, r0 -_08033576: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _08033560 -_0803357E: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl sub_80334EC - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_7_getattr - - thumb_func_start sub_8033598 -sub_8033598: @ 8033598 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _080335CC @ =gUnknown_02023A60 - ldr r3, _080335D0 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _080335C2 - bl _08033D2E -_080335C2: - lsls r0, 2 - ldr r1, _080335D4 @ =_080335D8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080335CC: .4byte gUnknown_02023A60 -_080335D0: .4byte gUnknown_02024A60 -_080335D4: .4byte _080335D8 - .align 2, 0 -_080335D8: - .4byte _080336C8 - .4byte _080338EC - .4byte _080338FC - .4byte _0803390C - .4byte _08033974 - .4byte _08033974 - .4byte _08033974 - .4byte _08033974 - .4byte _08033990 - .4byte _080339CC - .4byte _080339CC - .4byte _080339CC - .4byte _080339CC - .4byte _08033D2E - .4byte _08033D2E - .4byte _08033D2E - .4byte _08033D2E - .4byte _080339E8 - .4byte _080339F8 - .4byte _08033A28 - .4byte _08033A38 - .4byte _08033A48 - .4byte _08033A58 - .4byte _08033A68 - .4byte _08033A78 - .4byte _08033A88 - .4byte _08033A98 - .4byte _08033AA8 - .4byte _08033AB8 - .4byte _08033AC8 - .4byte _08033AD8 - .4byte _08033AE8 - .4byte _08033B38 - .4byte _08033B48 - .4byte _08033B58 - .4byte _08033B68 - .4byte _08033B78 - .4byte _08033B88 - .4byte _08033B98 - .4byte _08033BA8 - .4byte _08033BB8 - .4byte _08033BEC - .4byte _08033BFC - .4byte _08033C0C - .4byte _08033C1C - .4byte _08033C2C - .4byte _08033C3C - .4byte _08033C4C - .4byte _08033C5C - .4byte _08033C7C - .4byte _08033C8C - .4byte _08033C9C - .4byte _08033CAC - .4byte _08033CBC - .4byte _08033CCC - .4byte _08033CDC - .4byte _08033CEC - .4byte _08033CFC - .4byte _08033D0C - .4byte _08033D1C -_080336C8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080338DC @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_08033714: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _08033714 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080338DC @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, _080338E0 @ =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, _080338E4 @ =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, _080338E8 @ =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_080338CC: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _080338CC - b _08033D2E - .align 2, 0 -_080338DC: .4byte gEnemyParty -_080338E0: .4byte 0xfffffc1f -_080338E4: .4byte 0xfff07fff -_080338E8: .4byte 0xfffffe0f -_080338EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080338F8 @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - b _08033C66 - .align 2, 0 -_080338F8: .4byte gEnemyParty -_080338FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033908 @ =gEnemyParty - adds r0, r1 - movs r1, 0xC - b _08033C66 - .align 2, 0 -_08033908: .4byte gEnemyParty -_0803390C: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08033970 @ =gEnemyParty - adds r4, r1, r0 - mov r8, r9 -_08033922: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _08033922 - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033970 @ =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_08033960: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _08033960 - b _08033D2E - .align 2, 0 -_08033970: .4byte gEnemyParty -_08033974: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803398C @ =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _08033C66 - .align 2, 0 -_0803398C: .4byte gEnemyParty -_08033990: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, _080339C8 @ =gEnemyParty - mov r8, r2 -_0803399C: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _0803399C - movs r0, 0x64 - muls r0, r5 - ldr r1, _080339C8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _08033D2E - .align 2, 0 -_080339C8: .4byte gEnemyParty -_080339CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080339E4 @ =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _08033D26 - .align 2, 0 -_080339E4: .4byte gEnemyParty -_080339E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080339F4 @ =gEnemyParty - adds r0, r1 - movs r1, 0x1 - b _08033A02 - .align 2, 0 -_080339F4: .4byte gEnemyParty -_080339F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A24 @ =gEnemyParty - adds r0, r1 - movs r1, 0x19 -_08033A02: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _08033D2E - .align 2, 0 -_08033A24: .4byte gEnemyParty -_08033A28: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A34 @ =gEnemyParty - adds r0, r1 - movs r1, 0x1A - b _08033D26 - .align 2, 0 -_08033A34: .4byte gEnemyParty -_08033A38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A44 @ =gEnemyParty - adds r0, r1 - movs r1, 0x1B - b _08033D26 - .align 2, 0 -_08033A44: .4byte gEnemyParty -_08033A48: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A54 @ =gEnemyParty - adds r0, r1 - movs r1, 0x1C - b _08033D26 - .align 2, 0 -_08033A54: .4byte gEnemyParty -_08033A58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A64 @ =gEnemyParty - adds r0, r1 - movs r1, 0x1D - b _08033D26 - .align 2, 0 -_08033A64: .4byte gEnemyParty -_08033A68: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A74 @ =gEnemyParty - adds r0, r1 - movs r1, 0x1E - b _08033D26 - .align 2, 0 -_08033A74: .4byte gEnemyParty -_08033A78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A84 @ =gEnemyParty - adds r0, r1 - movs r1, 0x1F - b _08033D26 - .align 2, 0 -_08033A84: .4byte gEnemyParty -_08033A88: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033A94 @ =gEnemyParty - adds r0, r1 - movs r1, 0x20 - b _08033D26 - .align 2, 0 -_08033A94: .4byte gEnemyParty -_08033A98: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033AA4 @ =gEnemyParty - adds r0, r1 - movs r1, 0x22 - b _08033D26 - .align 2, 0 -_08033AA4: .4byte gEnemyParty -_08033AA8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033AB4 @ =gEnemyParty - adds r0, r1 - movs r1, 0x23 - b _08033D26 - .align 2, 0 -_08033AB4: .4byte gEnemyParty -_08033AB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033AC4 @ =gEnemyParty - adds r0, r1 - movs r1, 0x24 - b _08033D26 - .align 2, 0 -_08033AC4: .4byte gEnemyParty -_08033AC8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033AD4 @ =gEnemyParty - adds r0, r1 - movs r1, 0x25 - b _08033D26 - .align 2, 0 -_08033AD4: .4byte gEnemyParty -_08033AD8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033AE4 @ =gEnemyParty - adds r0, r1 - movs r1, 0x26 - b _08033D26 - .align 2, 0 -_08033AE4: .4byte gEnemyParty -_08033AE8: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08033B34 @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _08033D2E - .align 2, 0 -_08033B34: .4byte gEnemyParty -_08033B38: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033B44 @ =gEnemyParty - adds r0, r1 - movs r1, 0x27 - b _08033D26 - .align 2, 0 -_08033B44: .4byte gEnemyParty -_08033B48: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033B54 @ =gEnemyParty - adds r0, r1 - movs r1, 0x28 - b _08033D26 - .align 2, 0 -_08033B54: .4byte gEnemyParty -_08033B58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033B64 @ =gEnemyParty - adds r0, r1 - movs r1, 0x29 - b _08033D26 - .align 2, 0 -_08033B64: .4byte gEnemyParty -_08033B68: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033B74 @ =gEnemyParty - adds r0, r1 - movs r1, 0x2A - b _08033D26 - .align 2, 0 -_08033B74: .4byte gEnemyParty -_08033B78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033B84 @ =gEnemyParty - adds r0, r1 - movs r1, 0x2B - b _08033D26 - .align 2, 0 -_08033B84: .4byte gEnemyParty -_08033B88: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033B94 @ =gEnemyParty - adds r0, r1 - movs r1, 0x2C - b _08033D26 - .align 2, 0 -_08033B94: .4byte gEnemyParty -_08033B98: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033BA4 @ =gEnemyParty - adds r0, r1 - movs r1, 0 - b _08033BC2 - .align 2, 0 -_08033BA4: .4byte gEnemyParty -_08033BA8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033BB4 @ =gEnemyParty - adds r0, r1 - movs r1, 0x9 - b _08033C66 - .align 2, 0 -_08033BB4: .4byte gEnemyParty -_08033BB8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033BE8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x37 -_08033BC2: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _08033D2E - .align 2, 0 -_08033BE8: .4byte gEnemyParty -_08033BEC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033BF8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x38 - b _08033D26 - .align 2, 0 -_08033BF8: .4byte gEnemyParty -_08033BFC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C08 @ =gEnemyParty - adds r0, r1 - movs r1, 0x39 - b _08033C66 - .align 2, 0 -_08033C08: .4byte gEnemyParty -_08033C0C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C18 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3A - b _08033C66 - .align 2, 0 -_08033C18: .4byte gEnemyParty -_08033C1C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C28 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3B - b _08033C66 - .align 2, 0 -_08033C28: .4byte gEnemyParty -_08033C2C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C38 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3C - b _08033C66 - .align 2, 0 -_08033C38: .4byte gEnemyParty -_08033C3C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C48 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3D - b _08033C66 - .align 2, 0 -_08033C48: .4byte gEnemyParty -_08033C4C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C58 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3E - b _08033C66 - .align 2, 0 -_08033C58: .4byte gEnemyParty -_08033C5C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C78 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3F -_08033C66: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _08033D2E - .align 2, 0 -_08033C78: .4byte gEnemyParty -_08033C7C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C88 @ =gEnemyParty - adds r0, r1 - movs r1, 0x16 - b _08033D26 - .align 2, 0 -_08033C88: .4byte gEnemyParty -_08033C8C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033C98 @ =gEnemyParty - adds r0, r1 - movs r1, 0x17 - b _08033D26 - .align 2, 0 -_08033C98: .4byte gEnemyParty -_08033C9C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033CA8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x18 - b _08033D26 - .align 2, 0 -_08033CA8: .4byte gEnemyParty -_08033CAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033CB8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x21 - b _08033D26 - .align 2, 0 -_08033CB8: .4byte gEnemyParty -_08033CBC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033CC8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x2F - b _08033D26 - .align 2, 0 -_08033CC8: .4byte gEnemyParty -_08033CCC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033CD8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x30 - b _08033D26 - .align 2, 0 -_08033CD8: .4byte gEnemyParty -_08033CDC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033CE8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x32 - b _08033D26 - .align 2, 0 -_08033CE8: .4byte gEnemyParty -_08033CEC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033CF8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x33 - b _08033D26 - .align 2, 0 -_08033CF8: .4byte gEnemyParty -_08033CFC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033D08 @ =gEnemyParty - adds r0, r1 - movs r1, 0x34 - b _08033D26 - .align 2, 0 -_08033D08: .4byte gEnemyParty -_08033D0C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033D18 @ =gEnemyParty - adds r0, r1 - movs r1, 0x35 - b _08033D26 - .align 2, 0 -_08033D18: .4byte gEnemyParty -_08033D1C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08033D40 @ =gEnemyParty - adds r0, r1 - movs r1, 0x36 -_08033D26: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_08033D2E: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08033D40: .4byte gEnemyParty - thumb_func_end sub_8033598 - - thumb_func_start dp01t_01_2_read_pokmon_data_slice -dp01t_01_2_read_pokmon_data_slice: @ 8033D44 - push {r4-r7,lr} - sub sp, 0x58 - ldr r2, _08033DBC @ =gUnknown_02024A6A - ldr r5, _08033DC0 @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r2 - ldrh r2, [r0] - movs r0, 0x64 - adds r4, r2, 0 - muls r4, r0 - ldr r3, _08033DC4 @ =gUnknown_02023A60 - lsls r1, 9 - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r2, [r0] - ldr r0, _08033DC8 @ =gEnemyParty - adds r0, r2, r0 - adds r6, r4, r0 - mov r0, sp - adds r4, r0, r2 - movs r2, 0 - adds r0, r3, 0x2 - adds r1, r0 - adds r7, r5, 0 - mov r12, r3 - ldrb r1, [r1] - cmp r2, r1 - bcs _08033D9A - adds r3, r0, 0 -_08033D80: - adds r1, r4, r2 - adds r0, r6, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r5] - lsls r0, 9 - adds r0, r3 - ldrb r0, [r0] - cmp r2, r0 - bcc _08033D80 -_08033D9A: - ldrb r0, [r7] - lsls r0, 9 - mov r1, r12 - adds r1, 0x2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - adds r2, r4, 0 - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl sub_80334EC - add sp, 0x58 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08033DBC: .4byte gUnknown_02024A6A -_08033DC0: .4byte gUnknown_02024A60 -_08033DC4: .4byte gUnknown_02023A60 -_08033DC8: .4byte gEnemyParty - thumb_func_end dp01t_01_2_read_pokmon_data_slice - - thumb_func_start dp01t_02_7_setattr -dp01t_02_7_setattr: @ 8033DCC - push {r4,r5,lr} - ldr r1, _08033DF0 @ =gUnknown_02023A60 - ldr r0, _08033DF4 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _08033DFC - ldr r0, _08033DF8 @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_8033E24 - b _08033E1A - .align 2, 0 -_08033DF0: .4byte gUnknown_02023A60 -_08033DF4: .4byte gUnknown_02024A60 -_08033DF8: .4byte gUnknown_02024A6A -_08033DFC: - ldrb r4, [r1] - movs r5, 0 -_08033E00: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08033E0E - adds r0, r5, 0 - bl sub_8033E24 -_08033E0E: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _08033E00 -_08033E1A: - bl sub_80334EC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end dp01t_02_7_setattr - - thumb_func_start sub_8033E24 -sub_8033E24: @ 8033E24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r3, _08033E5C @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r0, 9 - ldr r2, _08033E60 @ =gUnknown_02023A63 - adds r4, r0, r2 - adds r7, r4, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0x3B - bls _08033E52 - bl _08034730 -_08033E52: - lsls r0, 2 - ldr r1, _08033E64 @ =_08033E68 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08033E5C: .4byte gUnknown_02024A60 -_08033E60: .4byte gUnknown_02023A63 -_08033E64: .4byte _08033E68 - .align 2, 0 -_08033E68: - .4byte _08033F58 - .4byte _080340F0 - .4byte _0803410C - .4byte _08034128 - .4byte _0803417C - .4byte _0803417C - .4byte _0803417C - .4byte _0803417C - .4byte _0803419C - .4byte _08034204 - .4byte _08034204 - .4byte _08034204 - .4byte _08034204 - .4byte _08034730 - .4byte _08034730 - .4byte _08034730 - .4byte _08034730 - .4byte _0803422C - .4byte _08034248 - .4byte _08034264 - .4byte _08034280 - .4byte _0803429C - .4byte _080342B8 - .4byte _080342D4 - .4byte _080342F0 - .4byte _0803430C - .4byte _08034328 - .4byte _08034344 - .4byte _08034360 - .4byte _0803437C - .4byte _08034398 - .4byte _080343B4 - .4byte _08034428 - .4byte _08034444 - .4byte _08034460 - .4byte _0803447C - .4byte _08034498 - .4byte _080344B4 - .4byte _080344D0 - .4byte _080344EC - .4byte _08034508 - .4byte _08034524 - .4byte _08034540 - .4byte _0803455C - .4byte _08034578 - .4byte _08034594 - .4byte _080345B0 - .4byte _080345CC - .4byte _080345E8 - .4byte _08034604 - .4byte _08034620 - .4byte _0803463C - .4byte _08034658 - .4byte _08034674 - .4byte _08034690 - .4byte _080346AC - .4byte _080346C8 - .4byte _080346E4 - .4byte _08034700 - .4byte _0803471C -_08033F58: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080340EC @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r7, 0 - bl SetMonData - adds r2, r7, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r7 - mov r10, r0 - adds r0, r7, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r7, 0x2 - str r0, [sp, 0x4] - adds r0, r7, 0x4 - str r0, [sp, 0x8] - adds r0, r7, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r6, r7, 0 - adds r6, 0x24 - adds r4, r7, 0 - adds r4, 0xC -_08033FBE: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08033FBE - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _080340EC @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl SetMonData - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl SetMonData - ldrb r0, [r7, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r7, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl SetMonData - b _08034730 - .align 2, 0 -_080340EC: .4byte gEnemyParty -_080340F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034108 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xB - bl SetMonData - b _08034730 - .align 2, 0 -_08034108: .4byte gEnemyParty -_0803410C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034124 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xC - bl SetMonData - b _08034730 - .align 2, 0 -_08034124: .4byte gEnemyParty -_08034128: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r4 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08034178 @ =gEnemyParty - adds r7, r1, r0 - adds r6, r4, 0 - adds r6, 0x8 -_08034140: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08034140 - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034178 @ =gEnemyParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl SetMonData - b _08034730 - .align 2, 0 -_08034178: .4byte gEnemyParty -_0803417C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034194 @ =gEnemyParty - adds r0, r1 - ldr r3, _08034198 @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _0803421A - .align 2, 0 -_08034194: .4byte gEnemyParty -_08034198: .4byte gUnknown_02023A60 -_0803419C: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08034200 @ =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x11 - str r3, [sp, 0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl SetMonData - b _08034730 - .align 2, 0 -_08034200: .4byte gEnemyParty -_08034204: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034224 @ =gEnemyParty - adds r0, r1 - ldr r3, _08034228 @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_0803421A: - adds r3, 0x3 - adds r2, r3 - bl SetMonData - b _08034730 - .align 2, 0 -_08034224: .4byte gEnemyParty -_08034228: .4byte gUnknown_02023A60 -_0803422C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034244 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1 - bl SetMonData - b _08034730 - .align 2, 0 -_08034244: .4byte gEnemyParty -_08034248: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034260 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x19 - bl SetMonData - b _08034730 - .align 2, 0 -_08034260: .4byte gEnemyParty -_08034264: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803427C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1A - bl SetMonData - b _08034730 - .align 2, 0 -_0803427C: .4byte gEnemyParty -_08034280: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034298 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1B - bl SetMonData - b _08034730 - .align 2, 0 -_08034298: .4byte gEnemyParty -_0803429C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080342B4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1C - bl SetMonData - b _08034730 - .align 2, 0 -_080342B4: .4byte gEnemyParty -_080342B8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080342D0 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1D - bl SetMonData - b _08034730 - .align 2, 0 -_080342D0: .4byte gEnemyParty -_080342D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080342EC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1E - bl SetMonData - b _08034730 - .align 2, 0 -_080342EC: .4byte gEnemyParty -_080342F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034308 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1F - bl SetMonData - b _08034730 - .align 2, 0 -_08034308: .4byte gEnemyParty -_0803430C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034324 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x20 - bl SetMonData - b _08034730 - .align 2, 0 -_08034324: .4byte gEnemyParty -_08034328: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034340 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x22 - bl SetMonData - b _08034730 - .align 2, 0 -_08034340: .4byte gEnemyParty -_08034344: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803435C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x23 - bl SetMonData - b _08034730 - .align 2, 0 -_0803435C: .4byte gEnemyParty -_08034360: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034378 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x24 - bl SetMonData - b _08034730 - .align 2, 0 -_08034378: .4byte gEnemyParty -_0803437C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034394 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x25 - bl SetMonData - b _08034730 - .align 2, 0 -_08034394: .4byte gEnemyParty -_08034398: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080343B0 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x26 - bl SetMonData - b _08034730 - .align 2, 0 -_080343B0: .4byte gEnemyParty -_080343B4: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08034424 @ =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x27 - str r3, [sp, 0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _080344C2 - .align 2, 0 -_08034424: .4byte gEnemyParty -_08034428: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034440 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x27 - bl SetMonData - b _08034730 - .align 2, 0 -_08034440: .4byte gEnemyParty -_08034444: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803445C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x28 - bl SetMonData - b _08034730 - .align 2, 0 -_0803445C: .4byte gEnemyParty -_08034460: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034478 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x29 - bl SetMonData - b _08034730 - .align 2, 0 -_08034478: .4byte gEnemyParty -_0803447C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034494 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2A - bl SetMonData - b _08034730 - .align 2, 0 -_08034494: .4byte gEnemyParty -_08034498: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080344B0 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2B - bl SetMonData - b _08034730 - .align 2, 0 -_080344B0: .4byte gEnemyParty -_080344B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080344CC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 -_080344C2: - movs r1, 0x2C - bl SetMonData - b _08034730 - .align 2, 0 -_080344CC: .4byte gEnemyParty -_080344D0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080344E8 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0 - bl SetMonData - b _08034730 - .align 2, 0 -_080344E8: .4byte gEnemyParty -_080344EC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034504 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x9 - bl SetMonData - b _08034730 - .align 2, 0 -_08034504: .4byte gEnemyParty -_08034508: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034520 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x37 - bl SetMonData - b _08034730 - .align 2, 0 -_08034520: .4byte gEnemyParty -_08034524: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803453C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x38 - bl SetMonData - b _08034730 - .align 2, 0 -_0803453C: .4byte gEnemyParty -_08034540: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034558 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x39 - bl SetMonData - b _08034730 - .align 2, 0 -_08034558: .4byte gEnemyParty -_0803455C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034574 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3A - bl SetMonData - b _08034730 - .align 2, 0 -_08034574: .4byte gEnemyParty -_08034578: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034590 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3B - bl SetMonData - b _08034730 - .align 2, 0 -_08034590: .4byte gEnemyParty -_08034594: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080345AC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3C - bl SetMonData - b _08034730 - .align 2, 0 -_080345AC: .4byte gEnemyParty -_080345B0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080345C8 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3D - bl SetMonData - b _08034730 - .align 2, 0 -_080345C8: .4byte gEnemyParty -_080345CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080345E4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3E - bl SetMonData - b _08034730 - .align 2, 0 -_080345E4: .4byte gEnemyParty -_080345E8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034600 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3F - bl SetMonData - b _08034730 - .align 2, 0 -_08034600: .4byte gEnemyParty -_08034604: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803461C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x16 - bl SetMonData - b _08034730 - .align 2, 0 -_0803461C: .4byte gEnemyParty -_08034620: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034638 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x17 - bl SetMonData - b _08034730 - .align 2, 0 -_08034638: .4byte gEnemyParty -_0803463C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034654 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x18 - bl SetMonData - b _08034730 - .align 2, 0 -_08034654: .4byte gEnemyParty -_08034658: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034670 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x21 - bl SetMonData - b _08034730 - .align 2, 0 -_08034670: .4byte gEnemyParty -_08034674: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803468C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2F - bl SetMonData - b _08034730 - .align 2, 0 -_0803468C: .4byte gEnemyParty -_08034690: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080346A8 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x30 - bl SetMonData - b _08034730 - .align 2, 0 -_080346A8: .4byte gEnemyParty -_080346AC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080346C4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x32 - bl SetMonData - b _08034730 - .align 2, 0 -_080346C4: .4byte gEnemyParty -_080346C8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080346E0 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x33 - bl SetMonData - b _08034730 - .align 2, 0 -_080346E0: .4byte gEnemyParty -_080346E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080346FC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x34 - bl SetMonData - b _08034730 - .align 2, 0 -_080346FC: .4byte gEnemyParty -_08034700: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034718 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x35 - bl SetMonData - b _08034730 - .align 2, 0 -_08034718: .4byte gEnemyParty -_0803471C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08034740 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x36 - bl SetMonData -_08034730: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08034740: .4byte gEnemyParty - thumb_func_end sub_8033E24 - - thumb_func_start sub_8034744 -sub_8034744: @ 8034744 - push {r4-r7,lr} - ldr r1, _080347A8 @ =gUnknown_02024A6A - ldr r7, _080347AC @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, _080347B0 @ =gUnknown_02023A60 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _080347B4 @ =gEnemyParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _0803479C - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_0803477A: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _0803477A -_0803479C: - bl sub_80334EC - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080347A8: .4byte gUnknown_02024A6A -_080347AC: .4byte gUnknown_02024A60 -_080347B0: .4byte gUnknown_02023A60 -_080347B4: .4byte gEnemyParty - thumb_func_end sub_8034744 - - thumb_func_start sub_80347B8 -sub_80347B8: @ 80347B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r6, _080348E8 @ =gUnknown_02024A60 - ldrb r0, [r6] - lsls r0, 1 - ldr r1, _080348EC @ =gUnknown_02024A6A - adds r0, r1 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r2, _080348F0 @ =gEnemyParty - mov r10, r2 - add r0, r10 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldrb r1, [r6] - lsls r0, r1, 1 - ldr r2, _080348EC @ =gUnknown_02024A6A - adds r0, r2 - ldrh r0, [r0] - muls r0, r7 - add r0, r10 - bl sub_8031794 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080348F4 @ =gUnknown_02024E8C - mov r9, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _080348F8 @ =gUnknown_02024BE0 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, _080348FC @ =gSprites - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08034900 @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08034904 @ =gUnknown_02024E84 - adds r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldrb r4, [r6] - lsls r0, r4, 1 - ldr r2, _080348EC @ =gUnknown_02024A6A - adds r0, r2 - ldrh r0, [r0] - muls r0, r7 - add r0, r10 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 - ldr r1, _08034908 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803490C @ =sub_8033018 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080348E8: .4byte gUnknown_02024A60 -_080348EC: .4byte gUnknown_02024A6A -_080348F0: .4byte gEnemyParty -_080348F4: .4byte gUnknown_02024E8C -_080348F8: .4byte gUnknown_02024BE0 -_080348FC: .4byte gSprites -_08034900: .4byte 0x0000ff10 -_08034904: .4byte gUnknown_02024E84 -_08034908: .4byte gUnknown_03004330 -_0803490C: .4byte sub_8033018 - thumb_func_end sub_80347B8 - - thumb_func_start sub_8034910 -sub_8034910: @ 8034910 - push {r4,lr} - ldr r1, _08034948 @ =gUnknown_02024A6A - ldr r4, _0803494C @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r2, r0, 1 - adds r2, r1 - ldr r3, _08034950 @ =gUnknown_02023A60 - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, 9 - adds r3, 0x2 - adds r1, r3 - ldrb r1, [r1] - bl sub_803495C - ldr r1, _08034954 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08034958 @ =sub_80333D4 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08034948: .4byte gUnknown_02024A6A -_0803494C: .4byte gUnknown_02024A60 -_08034950: .4byte gUnknown_02023A60 -_08034954: .4byte gUnknown_03004330 -_08034958: .4byte sub_80333D4 - thumb_func_end sub_8034910 - - thumb_func_start sub_803495C -sub_803495C: @ 803495C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8032AA8 - ldr r0, _08034AB8 @ =gUnknown_02024A6A - lsls r4, r6, 1 - adds r4, r0 - ldr r0, _08034ABC @ =gUnknown_02023A60 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x64 - mov r9, r1 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - ldr r5, _08034AC0 @ =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _08034AC4 @ =sub_80312F0 - bl object_new_hidden_with_callback - ldr r1, _08034AC8 @ =gUnknown_0300434C - mov r10, r1 - add r10, r6 - mov r1, r10 - strb r0, [r1] - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r0, r5 - adds r1, r6, 0 - bl sub_8031794 - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl GetMonSpriteTemplate_803C56C - ldr r0, _08034ACC @ =gUnknown_02024E8C - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _08034AD0 @ =gUnknown_02024BE0 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _08034AD4 @ =gSprites - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08034AD8 @ =gUnknown_02024E84 - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08034ADC @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFE - bl sub_8046400 - mov r1, r10 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08034AB8: .4byte gUnknown_02024A6A -_08034ABC: .4byte gUnknown_02023A60 -_08034AC0: .4byte gEnemyParty -_08034AC4: .4byte sub_80312F0 -_08034AC8: .4byte gUnknown_0300434C -_08034ACC: .4byte gUnknown_02024E8C -_08034AD0: .4byte gUnknown_02024BE0 -_08034AD4: .4byte gSprites -_08034AD8: .4byte gUnknown_02024E84 -_08034ADC: .4byte SpriteCallbackDummy - thumb_func_end sub_803495C - - thumb_func_start sub_8034AE0 -sub_8034AE0: @ 8034AE0 - push {r4-r6,lr} - ldr r1, _08034B10 @ =gUnknown_02023A60 - ldr r6, _08034B14 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _08034B24 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _08034B18 @ =0x02017810 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, _08034B1C @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08034B20 @ =sub_8034B74 - str r1, [r0] - b _08034B60 - .align 2, 0 -_08034B10: .4byte gUnknown_02023A60 -_08034B14: .4byte gUnknown_02024A60 -_08034B18: .4byte 0x02017810 -_08034B1C: .4byte gUnknown_03004330 -_08034B20: .4byte sub_8034B74 -_08034B24: - ldr r5, _08034B68 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08034B6C @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl sub_8032A08 - ldr r1, _08034B70 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl sub_80334EC -_08034B60: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08034B68: .4byte gUnknown_02024BE0 -_08034B6C: .4byte gSprites -_08034B70: .4byte gUnknown_03004340 - thumb_func_end sub_8034AE0 - - thumb_func_start sub_8034B74 -sub_8034B74: @ 8034B74 - push {r4,r5,lr} - ldr r5, _08034B90 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _08034B94 @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _08034B98 - cmp r0, 0x1 - beq _08034BC4 - b _08034BEC - .align 2, 0 -_08034B90: .4byte gUnknown_02024A60 -_08034B94: .4byte 0x02017810 -_08034B98: - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08034BB4 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08034BB4: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08034BEC -_08034BC4: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08034BEC - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x2 - bl move_anim_start_t4 - ldr r1, _08034BF4 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08034BF8 @ =sub_8033160 - str r1, [r0] -_08034BEC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08034BF4: .4byte gUnknown_03004330 -_08034BF8: .4byte sub_8033160 - thumb_func_end sub_8034B74 - - thumb_func_start sub_8034BFC -sub_8034BFC: @ 8034BFC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r3, _08034C18 @ =gTrainerBattleOpponent - ldrh r1, [r3] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _08034C1C - bl GetSecretBaseTrainerPicIndex - b _08034C42 - .align 2, 0 -_08034C18: .4byte gTrainerBattleOpponent -_08034C1C: - ldr r0, _08034C30 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08034C34 - bl get_trainer_class_pic_index - b _08034C42 - .align 2, 0 -_08034C30: .4byte gUnknown_020239F8 -_08034C34: - movs r0, 0x80 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _08034C48 - bl sub_8135FBC -_08034C42: - lsls r0, 24 - lsrs r0, 24 - b _08034C56 -_08034C48: - ldr r2, _08034D88 @ =gTrainers - ldrh r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x3] -_08034C56: - mov r9, r0 - ldr r0, _08034D8C @ =gUnknown_02024A60 - mov r8, r0 - ldrb r1, [r0] - mov r0, r9 - bl sub_8031A6C - mov r1, r8 - ldrb r0, [r1] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r9 - bl GetMonSpriteTemplate_803C5A0 - ldr r5, _08034D90 @ =gUnknown_02024E8C - ldr r1, _08034D94 @ =gTrainerFrontPicCoords - mov r2, r9 - lsls r0, r2, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 14 - adds r4, r0 - asrs r4, 16 - mov r1, r8 - ldrb r0, [r1] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - movs r1, 0xB0 - adds r2, r4, 0 - bl CreateSprite - ldr r5, _08034D98 @ =gUnknown_02024BE0 - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - strb r0, [r1] - ldr r4, _08034D9C @ =gSprites - ldrb r0, [r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _08034DA0 @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r0, [r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable - mov r1, r9 - lsls r6, r1, 3 - adds r0, r6, r0 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - mov r1, r8 - ldrb r0, [r1] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r1, 0x38] - ldr r0, _08034DA8 @ =gTrainerFrontPicTable - adds r6, r0 - ldrh r0, [r6, 0x6] - bl GetSpriteTileStartByTag - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _08034DAC @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _08034DB0 @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - mov r1, r8 - ldrb r0, [r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r2, r9 - strh r2, [r0, 0x6] - mov r1, r8 - ldrb r0, [r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _08034DB4 @ =sub_80313A0 - str r1, [r0] - ldr r1, _08034DB8 @ =gUnknown_03004330 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08034DBC @ =sub_8032B4C - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08034D88: .4byte gTrainers -_08034D8C: .4byte gUnknown_02024A60 -_08034D90: .4byte gUnknown_02024E8C -_08034D94: .4byte gTrainerFrontPicCoords -_08034D98: .4byte gUnknown_02024BE0 -_08034D9C: .4byte gSprites -_08034DA0: .4byte 0x0000ff10 -_08034DA4: .4byte gTrainerFrontPicPaletteTable -_08034DA8: .4byte gTrainerFrontPicTable -_08034DAC: .4byte 0x000003ff -_08034DB0: .4byte 0xfffffc00 -_08034DB4: .4byte sub_80313A0 -_08034DB8: .4byte gUnknown_03004330 -_08034DBC: .4byte sub_8032B4C - thumb_func_end sub_8034BFC - - thumb_func_start sub_8034DC0 -sub_8034DC0: @ 8034DC0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r3, _08034DDC @ =gTrainerBattleOpponent - ldrh r1, [r3] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _08034DE0 - bl GetSecretBaseTrainerPicIndex - b _08034E06 - .align 2, 0 -_08034DDC: .4byte gTrainerBattleOpponent -_08034DE0: - ldr r0, _08034DF4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 1 - ands r0, r1 - cmp r0, 0 - beq _08034DF8 - bl get_trainer_class_pic_index - b _08034E06 - .align 2, 0 -_08034DF4: .4byte gUnknown_020239F8 -_08034DF8: - movs r0, 0x80 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _08034E0C - bl sub_8135FBC -_08034E06: - lsls r0, 24 - lsrs r0, 24 - b _08034E1A -_08034E0C: - ldr r2, _08034F4C @ =gTrainers - ldrh r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x3] -_08034E1A: - mov r9, r0 - ldr r0, _08034F50 @ =gUnknown_02024A60 - mov r8, r0 - ldrb r1, [r0] - mov r0, r9 - bl sub_8031A6C - mov r1, r8 - ldrb r0, [r1] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r9 - bl GetMonSpriteTemplate_803C5A0 - ldr r0, _08034F54 @ =gUnknown_02024E8C - ldr r2, _08034F58 @ =gTrainerFrontPicCoords - mov r3, r9 - lsls r1, r3, 2 - adds r1, r2 - ldrb r1, [r1] - movs r2, 0x8 - subs r2, r1 - lsls r2, 18 - movs r1, 0xA0 - lsls r1, 14 - adds r2, r1 - asrs r2, 16 - movs r1, 0xB0 - movs r3, 0x1E - bl CreateSprite - ldr r5, _08034F5C @ =gUnknown_02024BE0 - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - strb r0, [r1] - ldr r4, _08034F60 @ =gSprites - ldrb r0, [r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x60 - strh r1, [r0, 0x24] - ldrb r0, [r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x20] - adds r1, 0x20 - strh r1, [r0, 0x20] - ldrb r0, [r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _08034F64 @ =0x0000fffe - strh r1, [r0, 0x2E] - ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable - mov r3, r9 - lsls r6, r3, 3 - adds r0, r6, r0 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - mov r3, r8 - ldrb r0, [r3] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r1, 0x38] - ldr r0, _08034F6C @ =gTrainerFrontPicTable - adds r6, r0 - ldrh r0, [r6, 0x6] - bl GetSpriteTileStartByTag - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _08034F70 @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _08034F74 @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - mov r3, r8 - ldrb r0, [r3] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r1, r9 - strh r1, [r0, 0x6] - ldrb r0, [r3] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _08034F78 @ =sub_80313A0 - str r1, [r0] - ldr r1, _08034F7C @ =gUnknown_03004330 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, _08034F80 @ =sub_8032B84 - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08034F4C: .4byte gTrainers -_08034F50: .4byte gUnknown_02024A60 -_08034F54: .4byte gUnknown_02024E8C -_08034F58: .4byte gTrainerFrontPicCoords -_08034F5C: .4byte gUnknown_02024BE0 -_08034F60: .4byte gSprites -_08034F64: .4byte 0x0000fffe -_08034F68: .4byte gTrainerFrontPicPaletteTable -_08034F6C: .4byte gTrainerFrontPicTable -_08034F70: .4byte 0x000003ff -_08034F74: .4byte 0xfffffc00 -_08034F78: .4byte sub_80313A0 -_08034F7C: .4byte gUnknown_03004330 -_08034F80: .4byte sub_8032B84 - thumb_func_end sub_8034DC0 - - thumb_func_start sub_8034F84 -sub_8034F84: @ 8034F84 - push {r4-r6,lr} - ldr r6, _08035014 @ =gUnknown_02024BE0 - ldr r4, _08035018 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _0803501C @ =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08035020 @ =sub_8078B34 - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08035024 @ =SpriteCallbackDummy - bl oamt_set_x3A_32 - ldr r1, _08035028 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803502C @ =sub_8032BBC - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08035014: .4byte gUnknown_02024BE0 -_08035018: .4byte gUnknown_02024A60 -_0803501C: .4byte gSprites -_08035020: .4byte sub_8078B34 -_08035024: .4byte SpriteCallbackDummy -_08035028: .4byte gUnknown_03004330 -_0803502C: .4byte sub_8032BBC - thumb_func_end sub_8034F84 - - thumb_func_start sub_8035030 -sub_8035030: @ 8035030 - push {r4,r5,lr} - ldr r5, _08035074 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _08035078 @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _0803507C - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08035062 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08035062: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _080350B8 - .align 2, 0 -_08035074: .4byte gUnknown_02024A60 -_08035078: .4byte 0x02017810 -_0803507C: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080350B8 - strb r0, [r3, 0x4] - movs r0, 0x10 - movs r1, 0x3F - bl PlaySE12WithPanning - ldr r2, _080350C0 @ =gSprites - ldr r1, _080350C4 @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080350C8 @ =sub_8010384 - str r1, [r0] - ldr r1, _080350CC @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080350D0 @ =sub_803311C - str r1, [r0] -_080350B8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080350C0: .4byte gSprites -_080350C4: .4byte gUnknown_02024BE0 -_080350C8: .4byte sub_8010384 -_080350CC: .4byte gUnknown_03004330 -_080350D0: .4byte sub_803311C - thumb_func_end sub_8035030 - - thumb_func_start sub_80350D4 -sub_80350D4: @ 80350D4 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80350D4 - - thumb_func_start sub_80350E0 -sub_80350E0: @ 80350E0 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80350E0 - - thumb_func_start sub_80350EC -sub_80350EC: @ 80350EC - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80350EC - - thumb_func_start sub_80350F8 -sub_80350F8: @ 80350F8 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80350F8 - - thumb_func_start sub_8035104 -sub_8035104: @ 8035104 - push {r4-r6,lr} - ldr r6, _080351E8 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _08035116 - b _08035226 -_08035116: - ldr r0, _080351EC @ =gUnknown_02023A60 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, _080351F0 @ =gUnknown_0202F7C4 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _080351F4 @ =gUnknown_0202F7BC - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _080351F8 @ =gUnknown_0202F7B8 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, _080351FC @ =gUnknown_0202F7BE - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _08035200 @ =gUnknown_0202F7C0 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _08035204 @ =gUnknown_0202F7B4 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, _08035208 @ =gUnknown_02024E70 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_8031720 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0803520C - bl sub_80334EC - b _08035226 - .align 2, 0 -_080351E8: .4byte gUnknown_02024A60 -_080351EC: .4byte gUnknown_02023A60 -_080351F0: .4byte gUnknown_0202F7C4 -_080351F4: .4byte gUnknown_0202F7BC -_080351F8: .4byte gUnknown_0202F7B8 -_080351FC: .4byte gUnknown_0202F7BE -_08035200: .4byte gUnknown_0202F7C0 -_08035204: .4byte gUnknown_0202F7B4 -_08035208: .4byte gUnknown_02024E70 -_0803520C: - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0803522C @ =0x02017810 - adds r0, r1 - strb r2, [r0, 0x4] - ldr r1, _08035230 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08035234 @ =sub_8035238 - str r1, [r0] -_08035226: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803522C: .4byte 0x02017810 -_08035230: .4byte gUnknown_03004330 -_08035234: .4byte sub_8035238 - thumb_func_end sub_8035104 - - thumb_func_start sub_8035238 -sub_8035238: @ 8035238 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _0803527C @ =gUnknown_02023A60 - ldr r5, _08035280 @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r6, r2, 0x2 - mov r8, r6 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r7, [r1] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r6, _08035284 @ =0x02017810 - adds r0, r6 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _080352C6 - cmp r2, 0x1 - bgt _08035288 - cmp r2, 0 - beq _08035292 - b _08035390 - .align 2, 0 -_0803527C: .4byte gUnknown_02023A60 -_08035280: .4byte gUnknown_02024A60 -_08035284: .4byte 0x02017810 -_08035288: - cmp r2, 0x2 - beq _080352EC - cmp r2, 0x3 - beq _08035358 - b _08035390 -_08035292: - lsls r1, r3, 2 - adds r0, r6, 0 - subs r0, 0x10 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _080352B6 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_080352B6: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08035390 -_080352C6: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08035390 - movs r0, 0 - bl sub_80326EC - adds r0, r4, 0 - bl move_anim_start_t1 - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08035390 -_080352EC: - ldr r0, _08035348 @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0803534C @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _08035390 - movs r0, 0x1 - bl sub_80326EC - ldrb r2, [r5] - lsls r0, r2, 2 - adds r4, r6, 0 - subs r4, 0x10 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08035334 - cmp r7, 0x1 - bhi _08035334 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0] - movs r1, 0x9 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_08035334: - ldr r0, _08035350 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08035354 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08035390 - .align 2, 0 -_08035348: .4byte gUnknown_0202F7AC -_0803534C: .4byte gUnknown_0202F7B1 -_08035350: .4byte gUnknown_02024A60 -_08035354: .4byte 0x02017810 -_08035358: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08035390 - bl sub_8031F24 - ldrb r0, [r5] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_80324BC - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r4, [r0, 0x4] - bl sub_80334EC -_08035390: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8035238 - - thumb_func_start sub_803539C -sub_803539C: @ 803539C - push {r4,lr} - sub sp, 0x4 - ldr r0, _080353E0 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _080353E4 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r4, _080353E8 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, _080353EC @ =gUnknown_02023A62 - adds r0, r1 - ldrh r0, [r0] - bl sub_8120AA8 - ldr r0, _080353F0 @ =gUnknown_03004210 - ldr r1, _080353F4 @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _080353F8 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _080353FC @ =sub_80331D0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080353E0: .4byte gUnknown_030042A4 -_080353E4: .4byte gUnknown_030042A0 -_080353E8: .4byte gUnknown_02024A60 -_080353EC: .4byte gUnknown_02023A62 -_080353F0: .4byte gUnknown_03004210 -_080353F4: .4byte gUnknown_020238CC -_080353F8: .4byte gUnknown_03004330 -_080353FC: .4byte sub_80331D0 - thumb_func_end sub_803539C - - thumb_func_start sub_8035400 -sub_8035400: @ 8035400 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_8035400 - - thumb_func_start sub_803540C -sub_803540C: @ 803540C - push {lr} - bl sub_8036B0C - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_803540C - - thumb_func_start sub_803541C -sub_803541C: @ 803541C - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_803541C - - thumb_func_start sub_8035428 -sub_8035428: @ 8035428 - push {r4-r6,lr} - ldr r6, _0803545C @ =gUnknown_02024A60 - ldrb r0, [r6] - lsls r0, 9 - ldr r1, _08035460 @ =gUnknown_02023A64 - adds r5, r0, r1 - ldr r0, _08035464 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x93 - lsls r0, 3 - ands r0, r1 - cmp r0, 0 - beq _080354F8 - bl sub_810715C - bl sub_81072A8 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - beq _08035468 - cmp r4, 0x5 - bne _08035474 - movs r0, 0x1 - movs r1, 0x4 - b _0803546C - .align 2, 0 -_0803545C: .4byte gUnknown_02024A60 -_08035460: .4byte gUnknown_02023A64 -_08035464: .4byte gUnknown_020239F8 -_08035468: - movs r0, 0x1 - movs r1, 0x3 -_0803546C: - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - b _080354E0 -_08035474: - ldr r3, _080354E8 @ =gBattleMoves - lsls r0, r4, 1 - adds r2, r5, r0 - ldrh r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x6] - movs r0, 0x12 - ands r0, r1 - cmp r0, 0 - beq _08035494 - ldr r1, _080354EC @ =gUnknown_02024C08 - ldrb r0, [r6] - strb r0, [r1] -_08035494: - ldrh r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r1, [r0, 0x6] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080354CE - movs r0, 0 - bl battle_get_side_with_given_state - ldr r5, _080354EC @ =gUnknown_02024C08 - strb r0, [r5] - ldr r0, _080354F0 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _080354F4 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080354CE - movs r0, 0x2 - bl battle_get_side_with_given_state - strb r0, [r5] -_080354CE: - ldr r0, _080354EC @ =gUnknown_02024C08 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - movs r0, 0x1 - movs r1, 0xA - adds r2, r4, 0 - bl dp01_build_cmdbuf_x21_a_bb -_080354E0: - bl sub_80334EC - b _0803558A - .align 2, 0 -_080354E8: .4byte gBattleMoves -_080354EC: .4byte gUnknown_02024C08 -_080354F0: .4byte gUnknown_02024C0C -_080354F4: .4byte gBitTable -_080354F8: - movs r6, 0x3 -_080354FA: - bl Random - adds r4, r0, 0 - ands r4, r6 - lsls r0, r4, 1 - adds r0, r5, r0 - ldrh r2, [r0] - cmp r2, 0 - beq _080354FA - ldr r1, _08035534 @ =gBattleMoves - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x6] - movs r0, 0x12 - ands r0, r1 - cmp r0, 0 - beq _0803553C - ldr r0, _08035538 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - movs r0, 0x1 - movs r1, 0xA - adds r2, r4, 0 - bl dp01_build_cmdbuf_x21_a_bb - b _08035586 - .align 2, 0 -_08035534: .4byte gBattleMoves -_08035538: .4byte gUnknown_02024A60 -_0803553C: - ldr r0, _0803556C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08035570 - bl Random - movs r1, 0x2 - ands r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r1, 0 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 16 - orrs r2, r4 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb - b _08035586 - .align 2, 0 -_0803556C: .4byte gUnknown_020239F8 -_08035570: - movs r0, 0 - bl battle_get_side_with_given_state - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 16 - orrs r2, r4 - movs r0, 0x1 - movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb -_08035586: - bl sub_80334EC -_0803558A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8035428 - - thumb_func_start sub_8035590 -sub_8035590: @ 8035590 - push {lr} - ldr r1, _080355B4 @ =0x02000000 - ldr r0, _080355B8 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsrs r0, 1 - lsls r0, 1 - ldr r2, _080355BC @ =0x000160d4 - adds r0, r2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - bl dp01_build_cmdbuf_x23_aa_0 - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_080355B4: .4byte 0x02000000 -_080355B8: .4byte gUnknown_02024A60 -_080355BC: .4byte 0x000160d4 - thumb_func_end sub_8035590 - - thumb_func_start sub_80355C0 -sub_80355C0: @ 80355C0 - push {r4-r6,lr} - ldr r6, _08035604 @ =0x02000000 - ldr r5, _08035608 @ =gUnknown_02024A60 - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 25 - ldr r1, _0803560C @ =0x000160c8 - adds r0, r1 - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x6 - bne _08035664 - bl sub_8036CD4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bne _0803568A - ldr r0, _08035610 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08035614 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - b _08035628 - .align 2, 0 -_08035604: .4byte 0x02000000 -_08035608: .4byte gUnknown_02024A60 -_0803560C: .4byte 0x000160c8 -_08035610: .4byte gUnknown_020239F8 -_08035614: - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 -_08035628: - movs r4, 0 - b _0803562E -_0803562C: - adds r4, 0x1 -_0803562E: - cmp r4, 0x5 - bgt _0803568A - movs r0, 0x64 - muls r0, r4 - ldr r1, _0803565C @ =gEnemyParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _0803562C - ldr r1, _08035660 @ =gUnknown_02024A6A - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _0803562C - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _0803562C - b _0803568A - .align 2, 0 -_0803565C: .4byte gEnemyParty -_08035660: .4byte gUnknown_02024A6A -_08035664: - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 25 - ldr r2, _080356B0 @ =0x000160c8 - adds r0, r2 - adds r0, r6 - ldrb r4, [r0] - ldrb r0, [r5] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 25 - ldr r1, _080356B0 @ =0x000160c8 - adds r0, r1 - adds r0, r6 - movs r1, 0x6 - strb r1, [r0] -_0803568A: - ldr r1, _080356B4 @ =0x02000000 - ldr r0, _080356B8 @ =gUnknown_02024A60 - ldrb r0, [r0] - ldr r2, _080356BC @ =0x00016068 - adds r0, r2 - adds r0, r1 - strb r4, [r0] - lsls r1, r4, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x22_a_three_bytes - bl sub_80334EC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080356B0: .4byte 0x000160c8 -_080356B4: .4byte 0x02000000 -_080356B8: .4byte gUnknown_02024A60 -_080356BC: .4byte 0x00016068 - thumb_func_end sub_80355C0 - - thumb_func_start sub_80356C0 -sub_80356C0: @ 80356C0 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80356C0 - - thumb_func_start sub_80356CC -sub_80356CC: @ 80356CC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, _08035744 @ =gUnknown_02023A60 - ldr r0, _08035748 @ =gUnknown_02024A60 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x3 - adds r0, r2, r0 - ldrb r1, [r0] - lsls r1, 8 - adds r3, 0x2 - adds r2, r3 - ldrb r0, [r2] - orrs r0, r1 - lsls r0, 16 - asrs r7, r0, 16 - ldr r0, _0803574C @ =0x00007fff - cmp r7, r0 - beq _0803575C - ldr r6, _08035750 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _08035754 @ =gEnemyParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _08035758 @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_8043D84 - b _08035786 - .align 2, 0 -_08035744: .4byte gUnknown_02023A60 -_08035748: .4byte gUnknown_02024A60 -_0803574C: .4byte 0x00007fff -_08035750: .4byte gUnknown_02024A6A -_08035754: .4byte gEnemyParty -_08035758: .4byte gUnknown_03004340 -_0803575C: - ldr r1, _080357A4 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _080357A8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _080357AC @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_8043D84 -_08035786: - ldr r1, _080357B0 @ =gUnknown_03004330 - ldr r0, _080357B4 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _080357B8 @ =sub_80330C8 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080357A4: .4byte gUnknown_02024A6A -_080357A8: .4byte gEnemyParty -_080357AC: .4byte gUnknown_03004340 -_080357B0: .4byte gUnknown_03004330 -_080357B4: .4byte gUnknown_02024A60 -_080357B8: .4byte sub_80330C8 - thumb_func_end sub_80356CC - - thumb_func_start sub_80357BC -sub_80357BC: @ 80357BC - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80357BC - - thumb_func_start sub_80357C8 -sub_80357C8: @ 80357C8 - push {r4,lr} - ldr r4, _08035820 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08035818 - ldr r0, _08035824 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08035828 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _0803582C @ =gEnemyParty - adds r1, r2 - movs r2, 0x9 - bl sub_8045A5C - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _08035830 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08035834 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08035838 @ =sub_8033494 - str r1, [r0] -_08035818: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08035820: .4byte gUnknown_02024A60 -_08035824: .4byte gUnknown_03004340 -_08035828: .4byte gUnknown_02024A6A -_0803582C: .4byte gEnemyParty -_08035830: .4byte 0x02017810 -_08035834: .4byte gUnknown_03004330 -_08035838: .4byte sub_8033494 - thumb_func_end sub_80357C8 - - thumb_func_start sub_803583C -sub_803583C: @ 803583C - push {r4,r5,lr} - ldr r5, _08035894 @ =gUnknown_02024A60 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0803588C - ldr r4, _08035898 @ =gUnknown_02023A60 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, _0803589C @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080358A0 @ =sub_8033494 - str r1, [r0] -_0803588C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08035894: .4byte gUnknown_02024A60 -_08035898: .4byte gUnknown_02023A60 -_0803589C: .4byte gUnknown_03004330 -_080358A0: .4byte sub_8033494 - thumb_func_end sub_803583C - - thumb_func_start sub_80358A4 -sub_80358A4: @ 80358A4 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358A4 - - thumb_func_start sub_80358B0 -sub_80358B0: @ 80358B0 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358B0 - - thumb_func_start sub_80358BC -sub_80358BC: @ 80358BC - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358BC - - thumb_func_start sub_80358C8 -sub_80358C8: @ 80358C8 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358C8 - - thumb_func_start sub_80358D4 -sub_80358D4: @ 80358D4 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358D4 - - thumb_func_start sub_80358E0 -sub_80358E0: @ 80358E0 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358E0 - - thumb_func_start sub_80358EC -sub_80358EC: @ 80358EC - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358EC - - thumb_func_start sub_80358F8 -sub_80358F8: @ 80358F8 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_80358F8 - - thumb_func_start sub_8035904 -sub_8035904: @ 8035904 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_8035904 - - thumb_func_start sub_8035910 -sub_8035910: @ 8035910 - push {lr} - ldr r2, _08035928 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035928: .4byte gUnknown_020238C8 - thumb_func_end sub_8035910 - - thumb_func_start sub_803592C -sub_803592C: @ 803592C - push {lr} - ldr r3, _08035958 @ =gUnknown_020238C8 - ldr r1, _0803595C @ =gUnknown_02023A60 - ldr r0, _08035960 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035958: .4byte gUnknown_020238C8 -_0803595C: .4byte gUnknown_02023A60 -_08035960: .4byte gUnknown_02024A60 - thumb_func_end sub_803592C - - thumb_func_start sub_8035964 -sub_8035964: @ 8035964 - push {lr} - ldr r2, _08035978 @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035978: .4byte gUnknown_020238C8 - thumb_func_end sub_8035964 - - thumb_func_start sub_803597C -sub_803597C: @ 803597C - push {lr} - ldr r3, _080359A0 @ =gUnknown_020238C8 - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_080359A0: .4byte gUnknown_020238C8 - thumb_func_end sub_803597C - - thumb_func_start dp01t_29_7_blink -dp01t_29_7_blink: @ 80359A4 - push {r4,lr} - ldr r3, _080359CC @ =gSprites - ldr r2, _080359D0 @ =gUnknown_02024BE0 - ldr r4, _080359D4 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _080359D8 - bl sub_80334EC - b _08035A02 - .align 2, 0 -_080359CC: .4byte gSprites -_080359D0: .4byte gUnknown_02024BE0 -_080359D4: .4byte gUnknown_02024A60 -_080359D8: - ldr r1, _08035A08 @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_8047858 - ldr r1, _08035A0C @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08035A10 @ =bx_blink_t7 - str r1, [r0] -_08035A02: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08035A08: .4byte gUnknown_02024E6D -_08035A0C: .4byte gUnknown_03004330 -_08035A10: .4byte bx_blink_t7 - thumb_func_end dp01t_29_7_blink - - thumb_func_start sub_8035A14 -sub_8035A14: @ 8035A14 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_8035A14 - - thumb_func_start sub_8035A20 -sub_8035A20: @ 8035A20 - push {r4,lr} - ldr r4, _08035A5C @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _08035A34 - movs r3, 0xC0 -_08035A34: - ldr r2, _08035A60 @ =gUnknown_02023A60 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl PlaySE12WithPanning - bl sub_80334EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08035A5C: .4byte gUnknown_02024A60 -_08035A60: .4byte gUnknown_02023A60 - thumb_func_end sub_8035A20 - - thumb_func_start sub_8035A64 -sub_8035A64: @ 8035A64 - push {lr} - ldr r2, _08035A8C @ =gUnknown_02023A60 - ldr r0, _08035A90 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayFanfare - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035A8C: .4byte gUnknown_02023A60 -_08035A90: .4byte gUnknown_02024A60 - thumb_func_end sub_8035A64 - - thumb_func_start sub_8035A94 -sub_8035A94: @ 8035A94 - push {lr} - ldr r1, _08035AC4 @ =gUnknown_02024A6A - ldr r0, _08035AC8 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08035ACC @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - movs r2, 0x5 - bl PlayCry3 - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035AC4: .4byte gUnknown_02024A6A -_08035AC8: .4byte gUnknown_02024A60 -_08035ACC: .4byte gEnemyParty - thumb_func_end sub_8035A94 - - thumb_func_start dp01t_2E_7_battle_intro -dp01t_2E_7_battle_intro: @ 8035AD0 - push {lr} - ldr r1, _08035AF8 @ =gUnknown_02023A60 - ldr r0, _08035AFC @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80E43C0 - ldr r2, _08035B00 @ =gUnknown_02024DE8 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035AF8: .4byte gUnknown_02023A60 -_08035AFC: .4byte gUnknown_02024A60 -_08035B00: .4byte gUnknown_02024DE8 - thumb_func_end dp01t_2E_7_battle_intro - - thumb_func_start sub_8035B04 -sub_8035B04: @ 8035B04 - push {r4-r6,lr} - ldr r5, _08035BE0 @ =gUnknown_02024BE0 - ldr r6, _08035BE4 @ =gUnknown_02024A60 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08035BE8 @ =gSprites - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08035BEC @ =sub_8078B34 - str r1, [r0] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _08035BF0 @ =sub_8035C10 - bl oamt_set_x3A_32 - ldr r0, _08035BF4 @ =sub_8035C44 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, _08035BF8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r6] - strh r0, [r1, 0x8] - ldrb r3, [r6] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r2, _08035BFC @ =0x02017810 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08035BC2 - ldr r0, _08035C00 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, _08035C04 @ =sub_8044CA0 - str r1, [r0] -_08035BC2: - adds r2, 0x30 - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08035C08 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08035C0C @ =nullsub_45 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08035BE0: .4byte gUnknown_02024BE0 -_08035BE4: .4byte gUnknown_02024A60 -_08035BE8: .4byte gSprites -_08035BEC: .4byte sub_8078B34 -_08035BF0: .4byte sub_8035C10 -_08035BF4: .4byte sub_8035C44 -_08035BF8: .4byte gTasks -_08035BFC: .4byte 0x02017810 -_08035C00: .4byte gUnknown_02024E68 -_08035C04: .4byte sub_8044CA0 -_08035C08: .4byte gUnknown_03004330 -_08035C0C: .4byte nullsub_45 - thumb_func_end sub_8035B04 - - thumb_func_start sub_8035C10 -sub_8035C10: @ 8035C10 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x6] - bl sub_8031B74 - ldrh r0, [r4, 0x38] - ldr r1, _08035C3C @ =0x000003ff - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, _08035C40 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08035C3C: .4byte 0x000003ff -_08035C40: .4byte 0xfffffc00 - thumb_func_end sub_8035C10 - - thumb_func_start sub_8035C44 -sub_8035C44: @ 8035C44 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r7, _08035C9C @ =gUnknown_02024A60 - ldrb r0, [r7] - mov r9, r0 - ldr r1, _08035CA0 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _08035C7E - ldr r0, _08035CA4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08035CB0 -_08035C7E: - ldr r0, _08035CA8 @ =gUnknown_02023A60 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, _08035CAC @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_803495C - b _08035CF0 - .align 2, 0 -_08035C9C: .4byte gUnknown_02024A60 -_08035CA0: .4byte gTasks -_08035CA4: .4byte gUnknown_020239F8 -_08035CA8: .4byte gUnknown_02023A60 -_08035CAC: .4byte gUnknown_02024A6A -_08035CB0: - ldr r4, _08035D14 @ =gUnknown_02023A60 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r6, _08035D18 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_803495C - ldrb r0, [r7] - movs r5, 0x2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_803495C - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_08035CF0: - ldr r1, _08035D1C @ =gUnknown_03004330 - ldr r2, _08035D20 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _08035D24 @ =sub_8032E2C - str r1, [r0] - mov r0, r9 - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08035D14: .4byte gUnknown_02023A60 -_08035D18: .4byte gUnknown_02024A6A -_08035D1C: .4byte gUnknown_03004330 -_08035D20: .4byte gUnknown_02024A60 -_08035D24: .4byte sub_8032E2C - thumb_func_end sub_8035C44 - - thumb_func_start dp01t_30_7_0803D67C -dp01t_30_7_0803D67C: @ 8035D28 - push {r4-r6,lr} - ldr r1, _08035D50 @ =gUnknown_02023A60 - ldr r0, _08035D54 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08035D58 - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _08035D58 - bl sub_80334EC - b _08035E12 - .align 2, 0 -_08035D50: .4byte gUnknown_02023A60 -_08035D54: .4byte gUnknown_02024A60 -_08035D58: - ldr r3, _08035DA8 @ =gUnknown_02024A60 - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r4, _08035DAC @ =0x02017810 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldr r1, _08035DB0 @ =gUnknown_02023A60 - ldrb r2, [r3] - lsls r0, r2, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r6, r3, 0 - cmp r0, 0 - beq _08035DBC - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r2, [r3, 0x1] - lsls r1, r2, 26 - lsrs r0, r1, 27 - cmp r0, 0x1 - bhi _08035DB4 - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - b _08035E12 - .align 2, 0 -_08035DA8: .4byte gUnknown_02024A60 -_08035DAC: .4byte 0x02017810 -_08035DB0: .4byte gUnknown_02023A60 -_08035DB4: - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - strb r0, [r3, 0x1] -_08035DBC: - adds r5, r6, 0 - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, _08035E18 @ =gUnknown_02023A64 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_8044804 - ldr r2, _08035E1C @ =gUnknown_02024E68 - ldrb r1, [r5] - adds r1, r2 - movs r2, 0 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _08035E20 @ =0x02017810 - adds r0, r3 - strb r2, [r0, 0x5] - ldrb r1, [r5] - lsls r0, r1, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _08035E06 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x5D - strb r1, [r0, 0x5] -_08035E06: - ldr r0, _08035E24 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _08035E28 @ =sub_8035E2C - str r0, [r1] -_08035E12: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08035E18: .4byte gUnknown_02023A64 -_08035E1C: .4byte gUnknown_02024E68 -_08035E20: .4byte 0x02017810 -_08035E24: .4byte gUnknown_03004330 -_08035E28: .4byte sub_8035E2C - thumb_func_end dp01t_30_7_0803D67C - - thumb_func_start sub_8035E2C -sub_8035E2C: @ 8035E2C - push {r4,lr} - ldr r4, _08035E64 @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _08035E68 @ =0x02017810 - adds r0, r3 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _08035E5C - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strb r0, [r1, 0x5] - bl sub_80334EC -_08035E5C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08035E64: .4byte gUnknown_02024A60 -_08035E68: .4byte 0x02017810 - thumb_func_end sub_8035E2C - - thumb_func_start sub_8035E6C -sub_8035E6C: @ 8035E6C - push {lr} - ldr r0, _08035EA4 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r1, _08035EA8 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08035E9A - ldr r2, _08035EAC @ =gTasks - ldr r0, _08035EB0 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _08035EB4 @ =sub_8044CA0 - str r1, [r0] -_08035E9A: - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035EA4: .4byte gUnknown_02024A60 -_08035EA8: .4byte 0x02017810 -_08035EAC: .4byte gTasks -_08035EB0: .4byte gUnknown_02024E68 -_08035EB4: .4byte sub_8044CA0 - thumb_func_end sub_8035E6C - - thumb_func_start sub_8035EB8 -sub_8035EB8: @ 8035EB8 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_8035EB8 - - thumb_func_start sub_8035EC4 -sub_8035EC4: @ 8035EC4 - push {r4,lr} - ldr r4, _08035F14 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _08035F0A - ldr r3, _08035F18 @ =gSprites - ldr r0, _08035F1C @ =gUnknown_02024BE0 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, _08035F20 @ =gUnknown_02023A60 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_8031F88 -_08035F0A: - bl sub_80334EC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08035F14: .4byte gUnknown_02024A60 -_08035F18: .4byte gSprites -_08035F1C: .4byte gUnknown_02024BE0 -_08035F20: .4byte gUnknown_02023A60 - thumb_func_end sub_8035EC4 - - thumb_func_start dp01t_34_7_move_anim_start_t3 -dp01t_34_7_move_anim_start_t3: @ 8035F24 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _08035F68 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08035F7C - ldr r5, _08035F6C @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _08035F70 - bl sub_80334EC - b _08035F7C - .align 2, 0 -_08035F68: .4byte gUnknown_02024A60 -_08035F6C: .4byte gUnknown_02023A60 -_08035F70: - ldr r0, _08035F84 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _08035F88 @ =sub_80334C0 - str r0, [r1] -_08035F7C: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08035F84: .4byte gUnknown_03004330 -_08035F88: .4byte sub_80334C0 - thumb_func_end dp01t_34_7_move_anim_start_t3 - - thumb_func_start sub_8035F8C -sub_8035F8C: @ 8035F8C - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_8035F8C - - thumb_func_start sub_8035F98 -sub_8035F98: @ 8035F98 - push {lr} - bl sub_80334EC - pop {r0} - bx r0 - thumb_func_end sub_8035F98 - - thumb_func_start sub_8035FA4 -sub_8035FA4: @ 8035FA4 - push {lr} - ldr r0, _08035FD8 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0x2 - bne _08035FCE - ldr r2, _08035FDC @ =gMain - ldr r0, _08035FE0 @ =0x0000043d - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, _08035FE4 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_08035FCE: - bl sub_80334EC - pop {r0} - bx r0 - .align 2, 0 -_08035FD8: .4byte gUnknown_020239F8 -_08035FDC: .4byte gMain -_08035FE0: .4byte 0x0000043d -_08035FE4: .4byte gUnknown_030042D0 - thumb_func_end sub_8035FA4 - - thumb_func_start nullsub_46 -nullsub_46: @ 8035FE8 - bx lr - thumb_func_end nullsub_46 - - thumb_func_start ai_switch_perish_song -ai_switch_perish_song: @ 8035FEC - push {lr} - ldr r1, _08036038 @ =gUnknown_02024C98 - ldr r0, _0803603C @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0803604C - ldr r0, _08036040 @ =gUnknown_02024CA8 - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xF] - lsls r0, 28 - cmp r0, 0 - bne _0803604C - adds r0, r2, 0 - bl battle_get_per_side_status - ldr r1, _08036044 @ =0x02000000 - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036048 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _0803604E - .align 2, 0 -_08036038: .4byte gUnknown_02024C98 -_0803603C: .4byte gUnknown_02024A60 -_08036040: .4byte gUnknown_02024CA8 -_08036044: .4byte 0x02000000 -_08036048: .4byte 0x000160c8 -_0803604C: - movs r0, 0 -_0803604E: - pop {r1} - bx r1 - thumb_func_end ai_switch_perish_song - - thumb_func_start sub_8036054 -sub_8036054: @ 8036054 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, _0803606C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080360A0 - b _080361C8 - .align 2, 0 -_0803606C: .4byte gUnknown_020239F8 -_08036070: - ldr r0, _08036094 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_get_per_side_status - ldr r1, _08036098 @ =0x02000000 - lsls r0, 24 - lsrs r0, 25 - ldr r2, _0803609C @ =0x000160c8 - adds r0, r2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _080361CA - .align 2, 0 -_08036094: .4byte gUnknown_02024A60 -_08036098: .4byte 0x02000000 -_0803609C: .4byte 0x000160c8 -_080360A0: - ldr r4, _080361D8 @ =gBattleMons - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x19 - beq _080360BC - b _080361C8 -_080360BC: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r2, r0, 24 - movs r6, 0 - adds r7, r4, 0 - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r4, r0, r7 - movs r3, 0x20 - adds r3, r4 - mov r8, r3 -_080360D8: - lsls r1, r6, 1 - ldr r0, _080361DC @ =gUnknown_02024A60 - ldrb r0, [r0] - muls r0, r5 - adds r1, r0 - adds r0, r7, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08036104 - ldrh r1, [r4] - mov r3, r8 - ldrb r2, [r3] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - bne _080361C8 -_08036104: - adds r6, 0x1 - cmp r6, 0x3 - ble _080360D8 - movs r6, 0 - ldr r0, _080361E0 @ =gEnemyParty - mov r9, r0 -_08036110: - movs r0, 0x64 - adds r5, r6, 0 - muls r5, r0 - mov r2, r9 - adds r4, r5, r2 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080361C2 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080361C2 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080361C2 - ldr r1, _080361E4 @ =gUnknown_02024A6A - ldr r0, _080361DC @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080361C2 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r2, r0, 24 - movs r4, 0 - mov r8, r5 - ldr r1, _080361D8 @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_0803617C: - adds r1, r4, 0 - adds r1, 0xD - mov r0, r8 - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080361BC - ldrh r1, [r5] - ldrb r2, [r7] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080361BC - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080361BC - b _08036070 -_080361BC: - adds r4, 0x1 - cmp r4, 0x3 - ble _0803617C -_080361C2: - adds r6, 0x1 - cmp r6, 0x5 - ble _08036110 -_080361C8: - movs r0, 0 -_080361CA: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080361D8: .4byte gBattleMons -_080361DC: .4byte gUnknown_02024A60 -_080361E0: .4byte gEnemyParty -_080361E4: .4byte gUnknown_02024A6A - thumb_func_end sub_8036054 - - thumb_func_start sub_80361E8 -sub_80361E8: @ 80361E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0x1 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - beq _08036214 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08036214 - b _08036400 -_08036214: - ldr r1, _0803627C @ =gUnknown_02024C3C - ldr r5, _08036280 @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r0, r3, 1 - adds r4, r0, r1 - ldrh r1, [r4] - cmp r1, 0 - bne _08036226 - b _08036400 -_08036226: - ldr r0, _08036284 @ =0x0000ffff - cmp r1, r0 - bne _0803622E - b _08036400 -_0803622E: - ldr r2, _08036288 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08036242 - b _08036400 -_08036242: - ldr r0, _0803628C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080362AE - mov r8, r3 - mov r0, r8 - bl battle_get_per_side_status - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _08036290 @ =gUnknown_02024C0C - ldrb r1, [r1] - ldr r2, _08036294 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036298 - ldrb r7, [r5] - b _080362B2 - .align 2, 0 -_0803627C: .4byte gUnknown_02024C3C -_08036280: .4byte gUnknown_02024A60 -_08036284: .4byte 0x0000ffff -_08036288: .4byte gBattleMoves -_0803628C: .4byte gUnknown_020239F8 -_08036290: .4byte gUnknown_02024C0C -_08036294: .4byte gBitTable -_08036298: - ldrb r0, [r5] - bl battle_get_per_side_status - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r7, r0, 24 - b _080362B2 -_080362AE: - adds r7, r3, 0 - mov r8, r7 -_080362B2: - ldr r3, _080362D4 @ =gBattleMoves - ldr r1, _080362D8 @ =gUnknown_02024C3C - ldr r2, _080362DC @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - adds r1, r2, 0 - cmp r0, 0xA - bne _080362E0 - movs r0, 0x12 - b _080362F2 - .align 2, 0 -_080362D4: .4byte gBattleMoves -_080362D8: .4byte gUnknown_02024C3C -_080362DC: .4byte gUnknown_02024A60 -_080362E0: - cmp r0, 0xB - bne _080362EA - movs r2, 0xB - mov r10, r2 - b _080362F4 -_080362EA: - cmp r0, 0xD - beq _080362F0 - b _08036400 -_080362F0: - movs r0, 0xA -_080362F2: - mov r10, r0 -_080362F4: - ldr r2, _08036308 @ =gBattleMons - ldrb r1, [r1] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r10 - bne _0803633C - b _08036400 - .align 2, 0 -_08036308: .4byte gBattleMons -_0803630C: - ldr r0, _08036330 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_get_per_side_status - ldr r1, _08036334 @ =0x02000000 - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036338 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _08036402 - .align 2, 0 -_08036330: .4byte gUnknown_02024A60 -_08036334: .4byte 0x02000000 -_08036338: .4byte 0x000160c8 -_0803633C: - movs r6, 0 - ldr r0, _080363CC @ =gBaseStats - mov r9, r0 -_08036342: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _080363D0 @ =gEnemyParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080363FA - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080363FA - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080363FA - ldr r1, _080363D4 @ =gUnknown_02024A6A - mov r2, r8 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080363FA - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080363FA - ldr r1, _080363D8 @ =0x02000000 - ldr r0, _080363DC @ =0x00016068 - add r0, r8 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080363FA - ldr r2, _080363DC @ =0x00016068 - adds r0, r7, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080363FA - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _080363E0 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x17] - b _080363EA - .align 2, 0 -_080363CC: .4byte gBaseStats -_080363D0: .4byte gEnemyParty -_080363D4: .4byte gUnknown_02024A6A -_080363D8: .4byte 0x02000000 -_080363DC: .4byte 0x00016068 -_080363E0: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x16] -_080363EA: - cmp r10, r0 - bne _080363FA - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0803630C -_080363FA: - adds r6, 0x1 - cmp r6, 0x5 - ble _08036342 -_08036400: - movs r0, 0 -_08036402: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80361E8 - - thumb_func_start ai_switchout_natural_cure -ai_switchout_natural_cure: @ 8036410 - push {r4,r5,lr} - ldr r3, _08036468 @ =gBattleMons - ldr r5, _0803646C @ =gUnknown_02024A60 - ldrb r4, [r5] - movs r0, 0x58 - adds r2, r4, 0 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _080364D8 - adds r1, r2, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _080364D8 - ldrh r0, [r1, 0x2C] - ldrh r1, [r1, 0x28] - lsrs r0, 1 - cmp r1, r0 - bcc _080364D8 - ldr r1, _08036470 @ =gUnknown_02024C3C - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08036456 - ldr r0, _08036474 @ =0x0000ffff - cmp r1, r0 - bne _08036478 -_08036456: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08036478 - ldrb r0, [r5] - b _080364E0 - .align 2, 0 -_08036468: .4byte gBattleMons -_0803646C: .4byte gUnknown_02024A60 -_08036470: .4byte gUnknown_02024C3C -_08036474: .4byte 0x0000ffff -_08036478: - ldr r2, _080364A4 @ =gBattleMoves - ldr r1, _080364A8 @ =gUnknown_02024C3C - ldr r4, _080364AC @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080364B0 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080364B0 - ldrb r0, [r4] - b _080364E0 - .align 2, 0 -_080364A4: .4byte gBattleMoves -_080364A8: .4byte gUnknown_02024C3C -_080364AC: .4byte gUnknown_02024A60 -_080364B0: - movs r0, 0x8 - movs r1, 0x1 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - bne _080364FE - movs r0, 0x4 - movs r1, 0x1 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - bne _080364FE - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080364DC -_080364D8: - movs r0, 0 - b _08036500 -_080364DC: - ldr r0, _08036508 @ =gUnknown_02024A60 - ldrb r0, [r0] -_080364E0: - bl battle_get_per_side_status - ldr r1, _0803650C @ =0x02000000 - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036510 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb -_080364FE: - movs r0, 0x1 -_08036500: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08036508: .4byte gUnknown_02024A60 -_0803650C: .4byte 0x02000000 -_08036510: .4byte 0x000160c8 - thumb_func_end ai_switchout_natural_cure - - thumb_func_start ai_has_super_effective_move_on_field -ai_has_super_effective_move_on_field: @ 8036514 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _080365AC @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _080365B0 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803659C - movs r4, 0 - ldr r6, _080365B4 @ =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r0, 0x20 - adds r0, r5 - mov r9, r0 -_08036550: - lsls r1, r4, 1 - ldr r0, _080365B8 @ =gUnknown_02024A60 - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08036596 - ldrh r1, [r5] - mov r3, r9 - ldrb r2, [r3] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08036596 - mov r0, r8 - cmp r0, 0 - bne _080365C0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080365C0 -_08036596: - adds r4, 0x1 - cmp r4, 0x3 - ble _08036550 -_0803659C: - ldr r0, _080365BC @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080365C4 - b _0803663E - .align 2, 0 -_080365AC: .4byte gUnknown_02024C0C -_080365B0: .4byte gBitTable -_080365B4: .4byte gBattleMons -_080365B8: .4byte gUnknown_02024A60 -_080365BC: .4byte gUnknown_020239F8 -_080365C0: - movs r0, 0x1 - b _08036640 -_080365C4: - movs r0, 0x2 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0803664C @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08036650 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803663E - movs r4, 0 - ldr r6, _08036654 @ =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r3, 0x20 - adds r3, r5 - mov r9, r3 -_080365F2: - lsls r1, r4, 1 - ldr r0, _08036658 @ =gUnknown_02024A60 - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08036638 - ldrh r1, [r5] - mov r3, r9 - ldrb r2, [r3] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08036638 - mov r0, r8 - cmp r0, 0 - bne _080365C0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080365C0 -_08036638: - adds r4, 0x1 - cmp r4, 0x3 - ble _080365F2 -_0803663E: - movs r0, 0 -_08036640: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0803664C: .4byte gUnknown_02024C0C -_08036650: .4byte gBitTable -_08036654: .4byte gBattleMons -_08036658: .4byte gUnknown_02024A60 - thumb_func_end ai_has_super_effective_move_on_field - - thumb_func_start ai_is_too_invested_in_stat_buffs -ai_is_too_invested_in_stat_buffs: @ 803665C - push {r4,lr} - movs r4, 0 - ldr r1, _0803669C @ =gBattleMons - ldr r0, _080366A0 @ =gUnknown_02024A60 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x18 - adds r2, r0, r1 - movs r3, 0x7 -_08036670: - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x6 - ble _08036686 - subs r1, 0x6 - lsls r0, r4, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 -_08036686: - adds r2, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _08036670 - movs r0, 0 - cmp r4, 0x3 - bls _08036696 - movs r0, 0x1 -_08036696: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0803669C: .4byte gBattleMons -_080366A0: .4byte gUnknown_02024A60 - thumb_func_end ai_is_too_invested_in_stat_buffs - - thumb_func_start sub_80366A4 -sub_80366A4: @ 80366A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - ldr r1, _08036730 @ =gUnknown_02024C3C - ldr r5, _08036734 @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r0, r3, 1 - adds r4, r0, r1 - ldrh r1, [r4] - cmp r1, 0 - bne _080366CE - b _080368D8 -_080366CE: - ldr r0, _08036738 @ =0x0000ffff - cmp r1, r0 - bne _080366D6 - b _080368D8 -_080366D6: - ldr r0, _0803673C @ =gUnknown_02024C5C - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080366E2 - b _080368D8 -_080366E2: - ldr r2, _08036740 @ =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080366F6 - b _080368D8 -_080366F6: - ldr r0, _08036744 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08036798 - mov r9, r3 - mov r0, r9 - bl battle_get_per_side_status - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _08036748 @ =gUnknown_02024C0C - ldrb r1, [r1] - ldr r2, _0803674C @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036750 - ldrb r5, [r5] - mov r10, r5 - b _0803679C - .align 2, 0 -_08036730: .4byte gUnknown_02024C3C -_08036734: .4byte gUnknown_02024A60 -_08036738: .4byte 0x0000ffff -_0803673C: .4byte gUnknown_02024C5C -_08036740: .4byte gBattleMoves -_08036744: .4byte gUnknown_020239F8 -_08036748: .4byte gUnknown_02024C0C -_0803674C: .4byte gBitTable -_08036750: - ldrb r0, [r5] - bl battle_get_per_side_status - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - b _0803679C -_08036768: - ldr r0, _0803678C @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_get_per_side_status - ldr r1, _08036790 @ =0x02000000 - lsls r0, 24 - lsrs r0, 25 - ldr r2, _08036794 @ =0x000160c8 - adds r0, r2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _080368DA - .align 2, 0 -_0803678C: .4byte gUnknown_02024A60 -_08036790: .4byte 0x02000000 -_08036794: .4byte 0x000160c8 -_08036798: - mov r9, r3 - mov r10, r9 -_0803679C: - movs r6, 0 -_0803679E: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, _08036830 @ =gEnemyParty - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080367B6 - b _080368D0 -_080367B6: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - bne _080367C4 - b _080368D0 -_080367C4: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080368D0 - ldr r1, _08036834 @ =gUnknown_02024A6A - mov r2, r9 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080368D0 - mov r2, r10 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080368D0 - ldr r1, _08036838 @ =0x02000000 - ldr r0, _0803683C @ =0x00016068 - add r0, r9 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080368D0 - ldr r0, _0803683C @ =0x00016068 - add r0, r10 - adds r0, r1 - ldrb r0, [r0] - cmp r6, r0 - beq _080368D0 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08036844 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, _08036840 @ =gBaseStats - adds r0, r1 - ldrb r2, [r0, 0x17] - b _08036850 - .align 2, 0 -_08036830: .4byte gEnemyParty -_08036834: .4byte gUnknown_02024A6A -_08036838: .4byte 0x02000000 -_0803683C: .4byte 0x00016068 -_08036840: .4byte gBaseStats -_08036844: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r2, _080368EC @ =gBaseStats - adds r0, r2 - ldrb r2, [r0, 0x16] -_08036850: - ldr r1, _080368F0 @ =gUnknown_02024C3C - ldr r5, _080368F4 @ =gUnknown_02024A60 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r4, 0 - bl ai_rate_move - ldr r1, [sp] - ands r1, r0 - cmp r1, 0 - beq _080368D0 - ldr r1, _080368F8 @ =gUnknown_02024C5C - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - mov r9, r0 - movs r4, 0 - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - mov r8, r1 - ldr r1, _080368FC @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_0803688E: - ldr r0, _08036900 @ =gEnemyParty - adds r1, r4, 0 - adds r1, 0xD - add r0, r8 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080368CA - ldrh r1, [r5] - ldrb r2, [r7] - bl ai_rate_move - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080368CA - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x4] - bl __modsi3 - cmp r0, 0 - bne _080368CA - b _08036768 -_080368CA: - adds r4, 0x1 - cmp r4, 0x3 - ble _0803688E -_080368D0: - adds r6, 0x1 - cmp r6, 0x5 - bgt _080368D8 - b _0803679E -_080368D8: - movs r0, 0 -_080368DA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080368EC: .4byte gBaseStats -_080368F0: .4byte gUnknown_02024C3C -_080368F4: .4byte gUnknown_02024A60 -_080368F8: .4byte gUnknown_02024C5C -_080368FC: .4byte gBattleMons -_08036900: .4byte gEnemyParty - thumb_func_end sub_80366A4 - - thumb_func_start sub_8036904 -sub_8036904: @ 8036904 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - ldr r6, _080369E0 @ =gBattleMons - ldr r4, _080369E4 @ =gUnknown_02024A60 - ldrb r2, [r4] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _080369E8 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _0803692A - b _08036AFC -_0803692A: - ldr r0, _080369EC @ =gUnknown_02024C98 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _0803693E - b _08036AFC -_0803693E: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08036956 - b _08036AFC -_08036956: - ldrb r1, [r4] - str r0, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0803696E - b _08036AFC -_0803696E: - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x2A - movs r3, 0 - bl sub_8018324 - lsls r0, 24 - cmp r0, 0 - beq _080369A0 - ldrb r0, [r4] - muls r0, r5 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - bne _08036994 - b _08036AFC -_08036994: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080369A0 - b _08036AFC -_080369A0: - movs r0, 0 - mov r8, r0 - ldr r0, _080369F0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08036A12 - ldr r4, _080369E4 @ =gUnknown_02024A60 - ldrb r7, [r4] - adds r0, r7, 0 - bl battle_get_per_side_status - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _080369F4 @ =gUnknown_02024C0C - ldrb r1, [r1] - ldr r2, _080369F8 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080369FC - ldrb r6, [r4] - b _08036A18 - .align 2, 0 -_080369E0: .4byte gBattleMons -_080369E4: .4byte gUnknown_02024A60 -_080369E8: .4byte 0x0400e000 -_080369EC: .4byte gUnknown_02024C98 -_080369F0: .4byte gUnknown_020239F8 -_080369F4: .4byte gUnknown_02024C0C -_080369F8: .4byte gBitTable -_080369FC: - ldrb r0, [r4] - bl battle_get_per_side_status - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - b _08036A18 -_08036A12: - ldr r0, _08036AE8 @ =gUnknown_02024A60 - ldrb r6, [r0] - adds r7, r6, 0 -_08036A18: - movs r5, 0 -_08036A1A: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08036AEC @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036A7E - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08036A7E - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08036A7E - ldr r1, _08036AF0 @ =gUnknown_02024A6A - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _08036A7E - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _08036A7E - ldr r1, _08036AF4 @ =0x02000000 - ldr r2, _08036AF8 @ =0x00016068 - adds r0, r7, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r5, r0 - beq _08036A7E - adds r0, r6, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r5, r0 - beq _08036A7E - movs r0, 0x1 - add r8, r0 -_08036A7E: - adds r5, 0x1 - cmp r5, 0x5 - ble _08036A1A - mov r2, r8 - cmp r2, 0 - beq _08036AFC - bl ai_switch_perish_song - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - bl sub_8036054 - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - bl sub_80361E8 - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - bl ai_switchout_natural_cure - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - movs r0, 0 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - bne _08036AFC - bl ai_is_too_invested_in_stat_buffs - lsls r0, 24 - cmp r0, 0 - bne _08036AFC - movs r0, 0x8 - movs r1, 0x2 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - bne _08036AE4 - movs r0, 0x4 - movs r1, 0x3 - bl sub_80366A4 - lsls r0, 24 - cmp r0, 0 - beq _08036AFC -_08036AE4: - movs r0, 0x1 - b _08036AFE - .align 2, 0 -_08036AE8: .4byte gUnknown_02024A60 -_08036AEC: .4byte gEnemyParty -_08036AF0: .4byte gUnknown_02024A6A -_08036AF4: .4byte 0x02000000 -_08036AF8: .4byte 0x00016068 -_08036AFC: - movs r0, 0 -_08036AFE: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8036904 - - thumb_func_start sub_8036B0C -sub_8036B0C: @ 8036B0C - push {r4-r6,lr} - ldr r5, _08036B68 @ =gUnknown_020239F8 - ldrh r1, [r5] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08036B1C - b _08036C2E -_08036B1C: - bl sub_8036904 - lsls r0, 24 - cmp r0, 0 - bne _08036B28 - b _08036C24 -_08036B28: - ldr r4, _08036B6C @ =0x02000000 - ldr r0, _08036B70 @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 25 - ldr r1, _08036B74 @ =0x000160c8 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x6 - bne _08036BEA - bl sub_8036CD4 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bne _08036BD4 - ldrh r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08036B78 - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - b _08036B8C - .align 2, 0 -_08036B68: .4byte gUnknown_020239F8 -_08036B6C: .4byte 0x02000000 -_08036B70: .4byte gUnknown_02024A60 -_08036B74: .4byte 0x000160c8 -_08036B78: - movs r0, 0x1 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x3 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r5, r0, 24 -_08036B8C: - movs r4, 0 -_08036B8E: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08036C0C @ =gEnemyParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036BCE - ldr r1, _08036C10 @ =gUnknown_02024A6A - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08036BCE - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _08036BCE - ldr r1, _08036C14 @ =0x02000000 - ldr r2, _08036C18 @ =0x00016068 - adds r0, r6, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r4, r0 - beq _08036BCE - adds r0, r5, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r4, r0 - bne _08036BD4 -_08036BCE: - adds r4, 0x1 - cmp r4, 0x5 - ble _08036B8E -_08036BD4: - ldr r0, _08036C1C @ =gUnknown_02024A60 - ldrb r0, [r0] - bl battle_get_per_side_status - ldr r1, _08036C14 @ =0x02000000 - lsls r0, 24 - lsrs r0, 25 - ldr r3, _08036C20 @ =0x000160c8 - adds r0, r3 - adds r0, r1 - strb r4, [r0] -_08036BEA: - ldr r4, _08036C1C @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_get_per_side_status - ldr r2, _08036C14 @ =0x02000000 - ldrb r1, [r4] - ldr r3, _08036C18 @ =0x00016068 - adds r1, r3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 25 - adds r3, 0x60 - adds r0, r3 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - b _08036C40 - .align 2, 0 -_08036C0C: .4byte gEnemyParty -_08036C10: .4byte gUnknown_02024A6A -_08036C14: .4byte 0x02000000 -_08036C18: .4byte 0x00016068 -_08036C1C: .4byte gUnknown_02024A60 -_08036C20: .4byte 0x000160c8 -_08036C24: - bl sub_803708C - lsls r0, 24 - cmp r0, 0 - bne _08036C40 -_08036C2E: - ldr r0, _08036C48 @ =gUnknown_02024A60 - ldrb r0, [r0] - movs r2, 0x1 - eors r2, r0 - lsls r2, 8 - movs r0, 0x1 - movs r1, 0 - bl dp01_build_cmdbuf_x21_a_bb -_08036C40: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08036C48: .4byte gUnknown_02024A60 - thumb_func_end sub_8036B0C - - thumb_func_start sub_8036C4C -sub_8036C4C: @ 8036C4C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r7, 0 - ldr r0, _08036CD0 @ =gTypeEffectiveness - mov r10, r0 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08036CBE - mov r5, r10 -_08036C7A: - ldrb r0, [r5] - cmp r0, 0xFE - beq _08036CB0 - ldr r1, [sp] - cmp r0, r1 - bne _08036CB0 - ldrb r4, [r5, 0x1] - cmp r4, r9 - bne _08036C9A - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08036C9A: - cmp r4, r8 - bne _08036CB0 - cmp r9, r8 - beq _08036CB0 - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08036CB0: - adds r5, 0x3 - adds r7, 0x3 - mov r1, r10 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08036C7A -_08036CBE: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08036CD0: .4byte gTypeEffectiveness - thumb_func_end sub_8036C4C - - thumb_func_start sub_8036CD4 -sub_8036CD4: @ 8036CD4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _08036D1C @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08036D78 - ldr r4, _08036D20 @ =gUnknown_02024A60 - ldrb r0, [r4] - str r0, [sp, 0xC] - bl battle_get_per_side_status - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - ldr r1, _08036D24 @ =gUnknown_02024C0C - ldrb r1, [r1] - ldr r2, _08036D28 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036D2C - ldrb r4, [r4] - str r4, [sp, 0x10] - b _08036D42 - .align 2, 0 -_08036D1C: .4byte gUnknown_020239F8 -_08036D20: .4byte gUnknown_02024A60 -_08036D24: .4byte gUnknown_02024C0C -_08036D28: .4byte gBitTable -_08036D2C: - ldrb r0, [r4] - bl battle_get_per_side_status - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x10] -_08036D42: - bl Random - movs r3, 0x2 - ands r0, r3 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _08036D70 @ =gUnknown_02024C0C - ldrb r1, [r0] - ldr r2, _08036D74 @ =gBitTable - mov r4, r10 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08036D8C - eors r4, r3 - lsls r0, r4, 24 - lsrs r0, 24 - mov r10, r0 - b _08036D8C - .align 2, 0 -_08036D70: .4byte gUnknown_02024C0C -_08036D74: .4byte gBitTable -_08036D78: - movs r0, 0 - bl battle_get_side_with_given_state - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r0, _08036E5C @ =gUnknown_02024A60 - ldrb r0, [r0] - str r0, [sp, 0x10] - str r0, [sp, 0xC] -_08036D8C: - movs r0, 0 - mov r9, r0 - mov r1, sp - str r1, [sp, 0x14] -_08036D94: - movs r2, 0 - str r2, [sp, 0x4] - movs r3, 0x6 - str r3, [sp, 0x8] - movs r7, 0 - ldr r4, _08036E60 @ =gBitTable - mov r8, r4 -_08036DA2: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, _08036E64 @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08036E7C - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036E7C - mov r1, r8 - ldr r0, [r1] - mov r2, r9 - ands r0, r2 - cmp r0, 0 - bne _08036E7C - ldr r1, _08036E68 @ =gUnknown_02024A6A - ldr r3, [sp, 0xC] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036E7C - ldr r4, [sp, 0x10] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036E7C - ldr r1, _08036E6C @ =0x02000000 - ldr r2, _08036E70 @ =0x00016068 - adds r0, r3, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036E7C - adds r0, r4, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036E7C - ldr r1, _08036E74 @ =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x6] - ldrb r6, [r0, 0x7] - movs r0, 0xA - ldr r3, [sp, 0x14] - strb r0, [r3] - movs r0, 0x58 - mov r4, r10 - muls r4, r0 - ldr r0, _08036E78 @ =gBattleMons - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x21 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8036C4C - adds r4, 0x22 - ldrb r0, [r4] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8036C4C - ldr r2, [sp, 0x4] - ldr r1, [sp, 0x14] - ldrb r1, [r1] - cmp r2, r1 - bcs _08036E8A - ldr r2, [sp, 0x14] - ldrb r2, [r2] - str r2, [sp, 0x4] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - b _08036E8A - .align 2, 0 -_08036E5C: .4byte gUnknown_02024A60 -_08036E60: .4byte gBitTable -_08036E64: .4byte gEnemyParty -_08036E68: .4byte gUnknown_02024A6A -_08036E6C: .4byte 0x02000000 -_08036E70: .4byte 0x00016068 -_08036E74: .4byte gBaseStats -_08036E78: .4byte gBattleMons -_08036E7C: - mov r3, r8 - ldr r0, [r3] - mov r4, r9 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r0, 24 - mov r9, r0 -_08036E8A: - movs r0, 0x4 - add r8, r0 - adds r7, 0x1 - cmp r7, 0x5 - ble _08036DA2 - ldr r1, [sp, 0x8] - cmp r1, 0x6 - beq _08036EF8 - movs r7, 0 - movs r0, 0x64 - adds r5, r1, 0 - muls r5, r0 - ldr r6, _08036EEC @ =gEnemyParty -_08036EA4: - adds r1, r7, 0 - adds r1, 0xD - adds r0, r5, r6 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08036ECA - ldr r0, _08036EF0 @ =gUnknown_02024A60 - ldrb r1, [r0] - adds r0, r4, 0 - mov r2, r10 - bl move_effectiveness_something - movs r1, 0x2 - ands r1, r0 - cmp r1, 0 - bne _08036ED0 -_08036ECA: - adds r7, 0x1 - cmp r7, 0x3 - ble _08036EA4 -_08036ED0: - cmp r7, 0x4 - beq _08036ED6 - b _08036FEE -_08036ED6: - ldr r2, [sp, 0x8] - lsls r0, r2, 2 - ldr r3, _08036EF4 @ =gBitTable - adds r0, r3 - ldr r0, [r0] - mov r4, r9 - orrs r4, r0 - lsls r0, r4, 24 - lsrs r0, 24 - b _08036EFA - .align 2, 0 -_08036EEC: .4byte gEnemyParty -_08036EF0: .4byte gUnknown_02024A60 -_08036EF4: .4byte gBitTable -_08036EF8: - movs r0, 0x3F -_08036EFA: - mov r9, r0 - mov r1, r9 - cmp r1, 0x3F - beq _08036F04 - b _08036D94 -_08036F04: - ldr r0, _08037000 @ =gUnknown_02024DEC - movs r2, 0 - strh r2, [r0] - ldr r0, _08037004 @ =0x02000000 - ldr r3, _08037008 @ =0x0001601c - adds r1, r0, r3 - strb r2, [r1] - ldr r4, _0803700C @ =0x0001601f - adds r0, r4 - movs r1, 0x1 - strb r1, [r0] - ldr r0, _08037010 @ =gUnknown_02024C68 - strb r2, [r0] - ldr r0, _08037014 @ =gCritMultiplier - strb r1, [r0] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0x6 - str r1, [sp, 0x8] - movs r7, 0 -_08036F2C: - movs r0, 0x64 - adds r6, r7, 0 - muls r6, r0 - ldr r2, _08037018 @ =gEnemyParty - adds r4, r6, r2 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - adds r3, r7, 0x1 - str r3, [sp, 0x18] - cmp r0, 0 - beq _08036FE8 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08036FE8 - ldr r1, _0803701C @ =gUnknown_02024A6A - ldr r4, [sp, 0xC] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036FE8 - ldr r2, [sp, 0x10] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08036FE8 - ldr r1, _08037004 @ =0x02000000 - ldr r3, _08037020 @ =0x00016068 - adds r0, r4, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036FE8 - adds r0, r2, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r7, r0 - beq _08036FE8 - movs r5, 0 - mov r9, r6 - ldr r4, _08037024 @ =gUnknown_02024BEC - mov r8, r4 - ldr r6, _08037028 @ =gUnknown_02024A60 -_08036F90: - adds r1, r5, 0 - adds r1, 0xD - ldr r0, _08037018 @ =gEnemyParty - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - mov r1, r8 - str r0, [r1] - cmp r4, 0 - beq _08036FCC - ldr r0, _0803702C @ =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - beq _08036FCC - ldrb r0, [r6] - mov r1, r10 - bl sub_801CAF8 - ldrb r1, [r6] - adds r0, r4, 0 - mov r2, r10 - bl move_effectiveness_something -_08036FCC: - mov r2, r8 - ldr r0, [r2] - ldr r3, [sp, 0x4] - cmp r3, r0 - bge _08036FE2 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0x8] -_08036FE2: - adds r5, 0x1 - cmp r5, 0x3 - ble _08036F90 -_08036FE8: - ldr r7, [sp, 0x18] - cmp r7, 0x5 - ble _08036F2C -_08036FEE: - ldr r0, [sp, 0x8] - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08037000: .4byte gUnknown_02024DEC -_08037004: .4byte 0x02000000 -_08037008: .4byte 0x0001601c -_0803700C: .4byte 0x0001601f -_08037010: .4byte gUnknown_02024C68 -_08037014: .4byte gCritMultiplier -_08037018: .4byte gEnemyParty -_0803701C: .4byte gUnknown_02024A6A -_08037020: .4byte 0x00016068 -_08037024: .4byte gUnknown_02024BEC -_08037028: .4byte gUnknown_02024A60 -_0803702C: .4byte gBattleMoves - thumb_func_end sub_8036CD4 - - thumb_func_start ai_identify_item_effect -ai_identify_item_effect: @ 8037030 - push {r4,lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bne _08037040 - movs r0, 0x1 - b _08037086 -_08037040: - ldrb r1, [r2, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0803704E - movs r0, 0x2 - b _08037086 -_0803704E: - ldrb r4, [r2, 0x3] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r4 - cmp r0, 0 - beq _0803705E - movs r0, 0x3 - b _08037086 -_0803705E: - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08037074 - ldrb r0, [r2, 0x1] - cmp r0, 0 - bne _08037074 - ldrb r0, [r2, 0x2] - cmp r0, 0 - beq _08037078 -_08037074: - movs r0, 0x4 - b _08037086 -_08037078: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - bne _08037084 - movs r0, 0x6 - b _08037086 -_08037084: - movs r0, 0x5 -_08037086: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ai_identify_item_effect - - thumb_func_start sub_803708C -sub_803708C: @ 803708C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0 - str r0, [sp] - mov r8, r0 - mov r9, r0 -_080370A0: - movs r0, 0x64 - mov r1, r9 - muls r1, r0 - ldr r0, _08037170 @ =gEnemyParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080370DC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080370DC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080370DC - ldr r0, [sp] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_080370DC: - movs r1, 0x1 - add r9, r1 - mov r2, r9 - cmp r2, 0x5 - ble _080370A0 - movs r3, 0 - mov r9, r3 -_080370EA: - ldr r4, _08037174 @ =0x02016a00 - mov r0, r9 - cmp r0, 0 - beq _08037106 - adds r0, r4, 0 - adds r0, 0x2C - ldrb r0, [r0] - mov r1, r9 - subs r0, r1 - adds r0, 0x1 - ldr r2, [sp] - cmp r2, r0 - ble _08037106 - b _080374EC -_08037106: - mov r3, r9 - lsls r1, r3, 1 - adds r0, r4, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldrh r0, [r0] - mov r10, r0 - str r1, [sp, 0x4] - cmp r0, 0 - bne _0803711C - b _080374EC -_0803711C: - ldr r1, _08037178 @ =gItemEffectTable - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - cmp r1, 0 - bne _0803712C - b _080374EC -_0803712C: - adds r5, r1, 0 - mov r0, r10 - cmp r0, 0xAF - bne _08037136 - ldr r5, _0803717C @ =gSaveBlock1 + 0x3676 -_08037136: - mov r1, r10 - lsls r0, r1, 24 - lsrs r0, 24 - adds r1, r5, 0 - bl ai_identify_item_effect - ldr r2, _08037180 @ =0xfffe9600 - adds r4, r2 - ldr r3, _08037184 @ =gUnknown_02024A60 - ldrb r1, [r3] - lsrs r1, 1 - ldr r2, _08037188 @ =0x000160d8 - adds r1, r2 - adds r1, r4 - strb r0, [r1] - ldrb r0, [r3] - lsrs r0, 1 - adds r0, r2 - adds r0, r4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x5 - bls _08037166 - b _080374A8 -_08037166: - lsls r0, 2 - ldr r1, _0803718C @ =_08037190 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08037170: .4byte gEnemyParty -_08037174: .4byte 0x02016a00 -_08037178: .4byte gItemEffectTable -_0803717C: .4byte gSaveBlock1 + 0x3676 -_08037180: .4byte 0xfffe9600 -_08037184: .4byte gUnknown_02024A60 -_08037188: .4byte 0x000160d8 -_0803718C: .4byte _08037190 - .align 2, 0 -_08037190: - .4byte _080371A8 - .4byte _080371D0 - .4byte _0803721C - .4byte _08037388 - .4byte _08037468 - .4byte _080374F8 -_080371A8: - ldr r2, _080371C8 @ =gBattleMons - ldr r0, _080371CC @ =gUnknown_02024A60 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x2C] - ldrh r0, [r0, 0x28] - lsrs r1, 2 - cmp r0, r1 - bcc _080371C0 - b _080374A8 -_080371C0: - cmp r0, 0 - bne _080371C6 - b _080374A8 -_080371C6: - b _08037450 - .align 2, 0 -_080371C8: .4byte gBattleMons -_080371CC: .4byte gUnknown_02024A60 -_080371D0: - mov r0, r10 - movs r1, 0x4 - movs r2, 0x4 - bl sub_803F1DC - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080371E4 - b _080374A8 -_080371E4: - ldr r2, _08037214 @ =gBattleMons - ldr r0, _08037218 @ =gUnknown_02024A60 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - ldrh r2, [r1, 0x28] - cmp r2, 0 - bne _080371F8 - b _080374A8 -_080371F8: - ldrh r3, [r1, 0x2C] - lsrs r0, r3, 2 - cmp r2, r0 - bcs _08037202 - b _08037496 -_08037202: - adds r0, r2, 0 - subs r0, r3, r0 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bgt _08037210 - b _080374A8 -_08037210: - b _08037496 - .align 2, 0 -_08037214: .4byte gBattleMons -_08037218: .4byte gUnknown_02024A60 -_0803721C: - ldr r2, _08037378 @ =0x02000000 - ldr r3, _0803737C @ =gUnknown_02024A60 - ldrb r0, [r3] - lsrs r0, 1 - ldr r6, _08037380 @ =0x000160da - adds r0, r6 - adds r0, r2 - movs r1, 0 - mov r12, r1 - movs r1, 0 - strb r1, [r0] - ldrb r1, [r5, 0x3] - movs r7, 0x20 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08037264 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08037264 - lsrs r1, r4, 1 - adds r1, r6 - adds r1, r2 - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - movs r0, 0x1 - mov r8, r0 -_08037264: - ldrb r1, [r5, 0x3] - movs r6, 0x10 - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080372A0 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0803728E - movs r0, 0x80 - ands r1, r0 - cmp r1, 0 - beq _080372A0 -_0803728E: - lsrs r1, r4, 1 - ldr r0, _08037380 @ =0x000160da - adds r1, r0 - adds r1, r2 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r1, 0x1 - mov r8, r1 -_080372A0: - ldrb r1, [r5, 0x3] - movs r6, 0x8 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080372D4 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080372D4 - lsrs r0, r4, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r0, 0x1 - mov r8, r0 -_080372D4: - ldrb r1, [r5, 0x3] - movs r6, 0x4 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08037308 - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08037308 - lsrs r0, r4, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r0, 0x1 - mov r8, r0 -_08037308: - ldrb r1, [r5, 0x3] - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0803733C - ldr r1, _08037384 @ =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0803733C - lsrs r0, r4, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r6 - strb r1, [r0] - movs r0, 0x1 - mov r8, r0 -_0803733C: - ldrb r1, [r5, 0x3] - movs r4, 0x1 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0803734A - b _080374A8 -_0803734A: - ldr r1, _08037384 @ =gBattleMons - ldrb r3, [r3] - movs r0, 0x58 - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _08037362 - b _080374A8 -_08037362: - lsrs r0, r3, 1 - ldr r1, _08037380 @ =0x000160da - adds r0, r1 - adds r0, r2 - ldrb r1, [r0] - orrs r1, r4 - strb r1, [r0] - movs r2, 0x1 - mov r8, r2 - b _080374AE - .align 2, 0 -_08037378: .4byte 0x02000000 -_0803737C: .4byte gUnknown_02024A60 -_08037380: .4byte 0x000160da -_08037384: .4byte gBattleMons -_08037388: - ldr r6, _08037458 @ =0x02000000 - ldr r4, _0803745C @ =gUnknown_02024A60 - ldrb r0, [r4] - lsrs r0, 1 - ldr r3, _08037460 @ =0x000160da - adds r0, r3 - adds r0, r6 - movs r1, 0 - mov r12, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, _08037464 @ =gUnknown_02024CA8 - ldrb r2, [r4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _080374A8 - ldrb r1, [r5] - movs r7, 0xF - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080373CA - lsrs r0, r2, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_080373CA: - ldrb r1, [r5, 0x1] - movs r2, 0xF0 - mov r8, r2 - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _080373E8 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_080373E8: - ldrb r1, [r5, 0x1] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _08037402 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_08037402: - ldrb r1, [r5, 0x2] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0803741C - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_0803741C: - ldrb r1, [r5, 0x2] - mov r0, r8 - ands r0, r1 - cmp r0, 0 - beq _08037436 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] -_08037436: - ldrb r1, [r5] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - beq _08037450 - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r6 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] -_08037450: - movs r3, 0x1 - mov r8, r3 - b _080374AE - .align 2, 0 -_08037458: .4byte 0x02000000 -_0803745C: .4byte gUnknown_02024A60 -_08037460: .4byte 0x000160da -_08037464: .4byte gUnknown_02024CA8 -_08037468: - ldr r4, _0803749C @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, _080374A0 @ =gUnknown_02024CA8 - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _080374A8 - ldr r0, _080374A4 @ =gUnknown_02024C80 - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _080374A8 -_08037496: - movs r0, 0x1 - mov r8, r0 - b _080374AE - .align 2, 0 -_0803749C: .4byte gUnknown_02024A60 -_080374A0: .4byte gUnknown_02024CA8 -_080374A4: .4byte gUnknown_02024C80 -_080374A8: - mov r1, r8 - cmp r1, 0 - beq _080374EC -_080374AE: - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - ldr r1, _080374DC @ =0x02000000 - ldr r0, _080374E0 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsrs r0, 1 - lsls r0, 1 - ldr r2, _080374E4 @ =0x000160d4 - adds r0, r2 - adds r0, r1 - movs r2, 0 - mov r3, r10 - strb r3, [r0] - ldr r0, _080374E8 @ =0x00016a24 - adds r1, r0 - ldr r3, [sp, 0x4] - adds r1, r3, r1 - strh r2, [r1] - mov r0, r8 - b _080374FA - .align 2, 0 -_080374DC: .4byte 0x02000000 -_080374E0: .4byte gUnknown_02024A60 -_080374E4: .4byte 0x000160d4 -_080374E8: .4byte 0x00016a24 -_080374EC: - movs r0, 0x1 - add r9, r0 - mov r1, r9 - cmp r1, 0x3 - bgt _080374F8 - b _080370EA -_080374F8: - movs r0, 0 -_080374FA: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_803708C - - thumb_func_start nullsub_47 -nullsub_47: @ 803750C - bx lr - thumb_func_end nullsub_47 - - thumb_func_start sub_8037510 -sub_8037510: @ 8037510 - ldr r1, _08037520 @ =gUnknown_03004330 - ldr r0, _08037524 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08037528 @ =sub_803752C - str r1, [r0] - bx lr - .align 2, 0 -_08037520: .4byte gUnknown_03004330 -_08037524: .4byte gUnknown_02024A60 -_08037528: .4byte sub_803752C - thumb_func_end sub_8037510 - - thumb_func_start sub_803752C -sub_803752C: @ 803752C - push {lr} - ldr r2, _08037560 @ =gUnknown_02024A64 - ldr r1, _08037564 @ =gBitTable - ldr r0, _08037568 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08037578 - ldr r0, _0803756C @ =gUnknown_02023A60 - lsls r1, r3, 9 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x38 - bhi _08037574 - ldr r0, _08037570 @ =gUnknown_081FB048 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 - b _08037578 - .align 2, 0 -_08037560: .4byte gUnknown_02024A64 -_08037564: .4byte gBitTable -_08037568: .4byte gUnknown_02024A60 -_0803756C: .4byte gUnknown_02023A60 -_08037570: .4byte gUnknown_081FB048 -_08037574: - bl dp01_tbl4_exec_completed -_08037578: - pop {r0} - bx r0 - thumb_func_end sub_803752C - - thumb_func_start sub_803757C -sub_803757C: @ 803757C - push {lr} - ldr r2, _080375A4 @ =gSprites - ldr r1, _080375A8 @ =gUnknown_02024BE0 - ldr r0, _080375AC @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080375B0 @ =SpriteCallbackDummy - cmp r1, r0 - bne _080375A0 - bl dp01_tbl4_exec_completed -_080375A0: - pop {r0} - bx r0 - .align 2, 0 -_080375A4: .4byte gSprites -_080375A8: .4byte gUnknown_02024BE0 -_080375AC: .4byte gUnknown_02024A60 -_080375B0: .4byte SpriteCallbackDummy - thumb_func_end sub_803757C - - thumb_func_start sub_80375B4 -sub_80375B4: @ 80375B4 - push {r4-r6,lr} - ldr r4, _0803762C @ =gSprites - ldr r6, _08037630 @ =gUnknown_02024BE0 - ldr r5, _08037634 @ =gUnknown_02024A60 - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r2, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _08037638 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08037624 - adds r0, r2, r4 - ldrh r0, [r0, 0x6] - bl sub_8031B74 - ldrb r0, [r5] - adds r0, r6 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x38] - ldr r2, _0803763C @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _08037640 @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r5] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - bl dp01_tbl4_exec_completed -_08037624: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803762C: .4byte gSprites -_08037630: .4byte gUnknown_02024BE0 -_08037634: .4byte gUnknown_02024A60 -_08037638: .4byte SpriteCallbackDummy -_0803763C: .4byte 0x000003ff -_08037640: .4byte 0xfffffc00 - thumb_func_end sub_80375B4 - - thumb_func_start sub_8037644 -sub_8037644: @ 8037644 - push {lr} - ldr r3, _08037678 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r2, _0803767C @ =0x02017810 - adds r1, r2 - ldrb r0, [r1, 0x9] - subs r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08037674 - ldrb r0, [r3] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x9] - bl dp01_tbl4_exec_completed -_08037674: - pop {r0} - bx r0 - .align 2, 0 -_08037678: .4byte gUnknown_02024A60 -_0803767C: .4byte 0x02017810 - thumb_func_end sub_8037644 - - thumb_func_start sub_8037680 -sub_8037680: @ 8037680 - push {r4-r7,lr} - movs r6, 0 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080376A4 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080376D8 - ldr r0, _080376C4 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080376D8 -_080376A4: - ldr r2, _080376C8 @ =gSprites - ldr r1, _080376CC @ =gUnknown_03004340 - ldr r0, _080376D0 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _080376D4 @ =SpriteCallbackDummy - cmp r1, r0 - bne _0803770E - b _0803770C - .align 2, 0 -_080376C4: .4byte gUnknown_020239F8 -_080376C8: .4byte gSprites -_080376CC: .4byte gUnknown_03004340 -_080376D0: .4byte gUnknown_02024A60 -_080376D4: .4byte SpriteCallbackDummy -_080376D8: - ldr r2, _080377D8 @ =gSprites - ldr r5, _080377DC @ =gUnknown_03004340 - ldr r0, _080377E0 @ =gUnknown_02024A60 - ldrb r3, [r0] - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r4, [r0] - ldr r0, _080377E4 @ =SpriteCallbackDummy - cmp r4, r0 - bne _0803770E - movs r0, 0x2 - eors r3, r0 - adds r0, r3, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - cmp r0, r4 - bne _0803770E -_0803770C: - movs r6, 0x1 -_0803770E: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - beq _0803771A - movs r6, 0 -_0803771A: - cmp r6, 0 - bne _08037720 - b _08037822 -_08037720: - ldr r7, _080377E0 @ =gUnknown_02024A60 - ldrb r0, [r7] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bne _080377B4 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r5, _080377E8 @ =0x02017810 - adds r4, r0, r5 - ldrb r1, [r4, 0x1] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08037822 - movs r6, 0x2 - adds r1, r6, 0 - eors r1, r2 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08037822 - ldrb r1, [r4] - movs r3, 0x7F - adds r0, r3, 0 - ands r0, r1 - strb r0, [r4] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x1] - movs r4, 0x2 - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x1] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - ands r3, r1 - strb r3, [r0] - ldrb r0, [r7] - adds r1, r6, 0 - eors r1, r0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x1] - ands r4, r1 - strb r4, [r0, 0x1] - ldr r4, _080377EC @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag -_080377B4: - ldr r0, _080377F0 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080377F8 - ldrb r0, [r7] - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08037804 - ldr r0, _080377F4 @ =gMPlay_BGM - bl m4aMPlayContinue - b _08037804 - .align 2, 0 -_080377D8: .4byte gSprites -_080377DC: .4byte gUnknown_03004340 -_080377E0: .4byte gUnknown_02024A60 -_080377E4: .4byte SpriteCallbackDummy -_080377E8: .4byte 0x02017810 -_080377EC: .4byte 0x000027f9 -_080377F0: .4byte gUnknown_020239F8 -_080377F4: .4byte gMPlay_BGM -_080377F8: - ldr r0, _08037828 @ =gMPlay_BGM - ldr r1, _0803782C @ =0x0000ffff - movs r2, 0x80 - lsls r2, 1 - bl m4aMPlayVolumeControl -_08037804: - ldr r2, _08037830 @ =gUnknown_02024A60 - ldrb r1, [r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08037834 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x9] - ldr r1, _08037838 @ =gUnknown_03004330 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803783C @ =sub_8037644 - str r1, [r0] -_08037822: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08037828: .4byte gMPlay_BGM -_0803782C: .4byte 0x0000ffff -_08037830: .4byte gUnknown_02024A60 -_08037834: .4byte 0x02017810 -_08037838: .4byte gUnknown_03004330 -_0803783C: .4byte sub_8037644 - thumb_func_end sub_8037680 - - thumb_func_start sub_8037840 -sub_8037840: @ 8037840 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r6, _08037A48 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r5, _08037A4C @ =0x02017810 - adds r0, r5 - ldrb r1, [r0] - movs r4, 0x88 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _08037878 - ldr r0, _08037A50 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08037A54 @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08037878: - ldrb r0, [r6] - movs r7, 0x2 - adds r2, r7, 0 - eors r2, r0 - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080378A6 - ldr r0, _08037A50 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08037A54 @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_080378A6: - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - movs r3, 0x8 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _080378BE - b _08037A3A -_080378BE: - adds r1, r2, 0 - eors r1, r7 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080378DA - b _08037A3A -_080378DA: - ldr r0, _08037A58 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0803791A - adds r0, r2, 0 - bl battle_get_per_side_status - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0803791A - ldrb r0, [r6] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - ldrb r0, [r1, 0x9] - adds r0, 0x1 - strb r0, [r1, 0x9] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0803790E - b _08037A3A -_0803790E: - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strb r4, [r0, 0x9] -_0803791A: - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080379B2 - ldr r0, _08037A58 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080379B2 - ldr r1, _08037A5C @ =gUnknown_0300434C - ldr r5, _08037A48 @ =gUnknown_02024A60 - ldrb r0, [r5] - movs r4, 0x2 - eors r0, r4 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08037A60 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r0, _08037A64 @ =gUnknown_03004340 - mov r8, r0 - ldrb r0, [r5] - adds r1, r4, 0 - eors r1, r0 - mov r2, r8 - adds r0, r1, r2 - ldrb r0, [r0] - ldr r2, _08037A50 @ =gUnknown_02024A6A - mov r10, r2 - lsls r1, 1 - add r1, r10 - ldrh r1, [r1] - movs r2, 0x64 - mov r9, r2 - mov r2, r9 - muls r2, r1 - adds r1, r2, 0 - ldr r6, _08037A54 @ =gEnemyParty - adds r1, r6 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r5] - eors r0, r4 - bl sub_804777C - ldrb r0, [r5] - eors r0, r4 - add r0, r8 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r0, [r5] - eors r4, r0 - lsls r0, r4, 1 - add r0, r10 - ldrh r0, [r0] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 -_080379B2: - ldr r1, _08037A5C @ =gUnknown_0300434C - ldr r4, _08037A48 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08037A60 @ =gSprites - adds r0, r1 - bl DestroySprite - ldr r5, _08037A64 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r5 - ldrb r0, [r0] - ldr r2, _08037A50 @ =gUnknown_02024A6A - mov r9, r2 - lsls r1, 1 - add r1, r9 - ldrh r1, [r1] - movs r2, 0x64 - mov r8, r2 - mov r2, r8 - muls r2, r1 - adds r1, r2, 0 - ldr r6, _08037A54 @ =gEnemyParty - adds r1, r6 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r4] - bl sub_804777C - ldrb r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r5, [r4] - lsls r0, r5, 1 - add r0, r9 - ldrh r0, [r0] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl sub_8032984 - ldr r2, _08037A68 @ =0x02017840 - ldrb r1, [r2, 0x9] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2, 0x9] - ldr r1, _08037A6C @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08037A70 @ =sub_8037680 - str r1, [r0] -_08037A3A: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08037A48: .4byte gUnknown_02024A60 -_08037A4C: .4byte 0x02017810 -_08037A50: .4byte gUnknown_02024A6A -_08037A54: .4byte gEnemyParty -_08037A58: .4byte gUnknown_020239F8 -_08037A5C: .4byte gUnknown_0300434C -_08037A60: .4byte gSprites -_08037A64: .4byte gUnknown_03004340 -_08037A68: .4byte 0x02017840 -_08037A6C: .4byte gUnknown_03004330 -_08037A70: .4byte sub_8037680 - thumb_func_end sub_8037840 - - thumb_func_start sub_8037A74 -sub_8037A74: @ 8037A74 - push {r4-r7,lr} - ldr r2, _08037ACC @ =gSprites - ldr r0, _08037AD0 @ =gUnknown_02024BE0 - ldr r7, _08037AD4 @ =gUnknown_02024A60 - ldrb r3, [r7] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 27 - lsrs r2, r0, 31 - cmp r2, 0x1 - bne _08037B18 - movs r4, 0x24 - ldrsh r0, [r1, r4] - cmp r0, 0 - bne _08037B18 - lsls r4, r3, 1 - adds r0, r4, r3 - lsls r0, 2 - ldr r6, _08037AD8 @ =0x02017810 - adds r1, r0, r6 - ldrb r5, [r1] - movs r0, 0x80 - ands r0, r5 - cmp r0, 0 - bne _08037AE4 - ldr r0, _08037ADC @ =gUnknown_02024A6A - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08037AE0 @ =gEnemyParty - adds r1, r0 - adds r0, r3, 0 - bl sub_8141828 - b _08037B18 - .align 2, 0 -_08037ACC: .4byte gSprites -_08037AD0: .4byte gUnknown_02024BE0 -_08037AD4: .4byte gUnknown_02024A60 -_08037AD8: .4byte 0x02017810 -_08037ADC: .4byte gUnknown_02024A6A -_08037AE0: .4byte gEnemyParty -_08037AE4: - ldrb r0, [r1, 0x1] - ands r2, r0 - cmp r2, 0 - beq _08037B18 - movs r0, 0x7F - ands r0, r5 - strb r0, [r1] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _08037B20 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - bl dp01_tbl4_exec_completed -_08037B18: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08037B20: .4byte 0x000027f9 - thumb_func_end sub_8037A74 - - thumb_func_start sub_8037B24 -sub_8037B24: @ 8037B24 - push {r4-r6,lr} - ldr r6, _08037B64 @ =gUnknown_02024A60 - ldrb r0, [r6] - ldr r5, _08037B68 @ =gUnknown_03004340 - adds r1, r0, r5 - ldrb r1, [r1] - movs r2, 0 - movs r3, 0 - bl sub_8045C78 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl sub_8043DFC - lsls r4, 16 - asrs r1, r4, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08037B6C - ldrb r0, [r6] - adds r0, r5 - ldrb r0, [r0] - movs r2, 0 - bl sub_80440EC - b _08037B70 - .align 2, 0 -_08037B64: .4byte gUnknown_02024A60 -_08037B68: .4byte gUnknown_03004340 -_08037B6C: - bl dp01_tbl4_exec_completed -_08037B70: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8037B24 - - thumb_func_start sub_8037B78 -sub_8037B78: @ 8037B78 - push {lr} - ldr r2, _08037BAC @ =gSprites - ldr r0, _08037BB0 @ =gUnknown_02024BE0 - ldr r1, _08037BB4 @ =gUnknown_02024A60 - ldrb r3, [r1] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08037BA6 - ldr r0, _08037BB8 @ =gUnknown_03004340 - adds r0, r3, r0 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl4_exec_completed -_08037BA6: - pop {r0} - bx r0 - .align 2, 0 -_08037BAC: .4byte gSprites -_08037BB0: .4byte gUnknown_02024BE0 -_08037BB4: .4byte gUnknown_02024A60 -_08037BB8: .4byte gUnknown_03004340 - thumb_func_end sub_8037B78 - - thumb_func_start sub_8037BBC -sub_8037BBC: @ 8037BBC - push {r4-r6,lr} - ldr r6, _08037C18 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _08037C1C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08037C12 - ldr r5, _08037C20 @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08037C24 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl sub_8032A08 - ldr r1, _08037C28 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl4_exec_completed -_08037C12: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08037C18: .4byte gUnknown_02024A60 -_08037C1C: .4byte 0x02017810 -_08037C20: .4byte gUnknown_02024BE0 -_08037C24: .4byte gSprites -_08037C28: .4byte gUnknown_03004340 - thumb_func_end sub_8037BBC - - thumb_func_start sub_8037C2C -sub_8037C2C: @ 8037C2C - push {lr} - ldr r0, _08037C40 @ =gUnknown_03004210 - ldrh r0, [r0, 0x16] - cmp r0, 0 - bne _08037C3A - bl dp01_tbl4_exec_completed -_08037C3A: - pop {r0} - bx r0 - .align 2, 0 -_08037C40: .4byte gUnknown_03004210 - thumb_func_end sub_8037C2C - - thumb_func_start dp01t_0F_4_move_anim -dp01t_0F_4_move_anim: @ 8037C44 - push {r4,lr} - ldr r1, _08037C80 @ =gUnknown_02024BE0 - ldr r0, _08037C84 @ =gUnknown_02024A60 - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - ldr r2, _08037C88 @ =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x20 - bne _08037C90 - movs r3, 0 - movs r0, 0 - strh r0, [r4, 0x30] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - ldr r0, _08037C8C @ =gUnknown_02024E6D - strb r3, [r0] - bl dp01_tbl4_exec_completed - b _08037CBA - .align 2, 0 -_08037C80: .4byte gUnknown_02024BE0 -_08037C84: .4byte gUnknown_02024A60 -_08037C88: .4byte gSprites -_08037C8C: .4byte gUnknown_02024E6D -_08037C90: - ldrh r0, [r4, 0x30] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08037CB4 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] -_08037CB4: - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] -_08037CBA: - pop {r4} - pop {r0} - bx r0 - thumb_func_end dp01t_0F_4_move_anim - - thumb_func_start sub_8037CC0 -sub_8037CC0: @ 8037CC0 - push {r4,lr} - ldr r2, _08037D10 @ =gSprites - ldr r0, _08037D14 @ =gUnknown_03004340 - ldr r4, _08037D18 @ =gUnknown_02024A60 - ldrb r3, [r4] - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, [r0] - ldr r0, _08037D1C @ =SpriteCallbackDummy - cmp r1, r0 - bne _08037D08 - lsls r0, r3, 2 - ldr r1, _08037D20 @ =0x02017800 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08037CFC - adds r0, r3, 0 - adds r1, r3, 0 - adds r2, r3, 0 - movs r3, 0x6 - bl move_anim_start_t4 -_08037CFC: - ldr r0, _08037D24 @ =gUnknown_03004330 - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, _08037D28 @ =sub_8037D2C - str r0, [r1] -_08037D08: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08037D10: .4byte gSprites -_08037D14: .4byte gUnknown_03004340 -_08037D18: .4byte gUnknown_02024A60 -_08037D1C: .4byte SpriteCallbackDummy -_08037D20: .4byte 0x02017800 -_08037D24: .4byte gUnknown_03004330 -_08037D28: .4byte sub_8037D2C - thumb_func_end sub_8037CC0 - - thumb_func_start sub_8037D2C -sub_8037D2C: @ 8037D2C - push {lr} - ldr r0, _08037D58 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08037D5C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08037D52 - ldr r0, _08037D60 @ =c3_0802FDF4 - movs r1, 0xA - bl CreateTask - bl dp01_tbl4_exec_completed -_08037D52: - pop {r0} - bx r0 - .align 2, 0 -_08037D58: .4byte gUnknown_02024A60 -_08037D5C: .4byte 0x02017810 -_08037D60: .4byte c3_0802FDF4 - thumb_func_end sub_8037D2C - - thumb_func_start sub_8037D64 -sub_8037D64: @ 8037D64 - push {r4,r5,lr} - ldr r5, _08037E08 @ =gUnknown_02024A60 - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _08037E0C @ =0x02017810 - adds r2, r0, r3 - ldrb r1, [r2, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08037E00 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r2, [r1, 0x1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - ldr r4, _08037E10 @ =0x000027f9 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldr r1, _08037E14 @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08037E18 @ =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - ldr r4, _08037E1C @ =gUnknown_03004340 - ldrb r1, [r5] - adds r0, r1, r4 - ldrb r0, [r0] - ldr r2, _08037E20 @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08037E24 @ =gEnemyParty - adds r1, r2 - movs r2, 0 - bl sub_8045A5C - ldrb r0, [r5] - bl sub_804777C - ldrb r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl sub_8043DFC - ldrb r0, [r5] - bl sub_8031F88 - ldr r1, _08037E28 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08037E2C @ =sub_8037CC0 - str r1, [r0] -_08037E00: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08037E08: .4byte gUnknown_02024A60 -_08037E0C: .4byte 0x02017810 -_08037E10: .4byte 0x000027f9 -_08037E14: .4byte gUnknown_02024BE0 -_08037E18: .4byte gSprites -_08037E1C: .4byte gUnknown_03004340 -_08037E20: .4byte gUnknown_02024A6A -_08037E24: .4byte gEnemyParty -_08037E28: .4byte gUnknown_03004330 -_08037E2C: .4byte sub_8037CC0 - thumb_func_end sub_8037D64 - - thumb_func_start sub_8037E30 -sub_8037E30: @ 8037E30 - push {r4-r6,lr} - ldr r5, _08037ECC @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r3, r2, 1 - adds r0, r3, r2 - lsls r0, 2 - ldr r6, _08037ED0 @ =0x02017810 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x88 - ands r0, r1 - cmp r0, 0 - bne _08037E5E - ldr r0, _08037ED4 @ =gUnknown_02024A6A - adds r0, r3, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, _08037ED8 @ =gEnemyParty - adds r1, r0 - adds r0, r2, 0 - bl sub_8141828 -_08037E5E: - ldr r4, _08037EDC @ =gSprites - ldr r0, _08037EE0 @ =gUnknown_0300434C - ldrb r2, [r5] - adds r0, r2, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r3, r0, 2 - adds r0, r4, 0 - adds r0, 0x1C - adds r0, r3, r0 - ldr r1, [r0] - ldr r0, _08037EE4 @ =SpriteCallbackDummy - cmp r1, r0 - bne _08037EC4 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r6 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08037EC4 - adds r0, r3, r4 - bl DestroySprite - ldrb r4, [r5] - ldr r1, _08037ED4 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08037ED8 @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 - ldr r1, _08037EE8 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08037EEC @ =sub_8037D64 - str r1, [r0] -_08037EC4: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08037ECC: .4byte gUnknown_02024A60 -_08037ED0: .4byte 0x02017810 -_08037ED4: .4byte gUnknown_02024A6A -_08037ED8: .4byte gEnemyParty -_08037EDC: .4byte gSprites -_08037EE0: .4byte gUnknown_0300434C -_08037EE4: .4byte SpriteCallbackDummy -_08037EE8: .4byte gUnknown_03004330 -_08037EEC: .4byte sub_8037D64 - thumb_func_end sub_8037E30 - - thumb_func_start sub_8037EF0 -sub_8037EF0: @ 8037EF0 - push {lr} - ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08037F1C - movs r0, 0x5A - bl m4aSongNumStop - ldr r3, _08037F24 @ =gMain - ldr r0, _08037F28 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08037F2C @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r3] - ldr r0, _08037F30 @ =c2_8011A1C - bl SetMainCallback2 -_08037F1C: - pop {r0} - bx r0 - .align 2, 0 -_08037F20: .4byte gReceivedRemoteLinkPlayers -_08037F24: .4byte gMain -_08037F28: .4byte 0x0000043d -_08037F2C: .4byte gUnknown_030042D0 -_08037F30: .4byte c2_8011A1C - thumb_func_end sub_8037EF0 - - thumb_func_start sub_8037F34 -sub_8037F34: @ 8037F34 - push {lr} - ldr r0, _08037F64 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08037F9A - ldr r0, _08037F68 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08037F78 - bl sub_800832C - ldr r1, _08037F6C @ =gUnknown_03004330 - ldr r0, _08037F70 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08037F74 @ =sub_8037EF0 - str r1, [r0] - b _08037F9A - .align 2, 0 -_08037F64: .4byte gPaletteFade -_08037F68: .4byte gUnknown_020239F8 -_08037F6C: .4byte gUnknown_03004330 -_08037F70: .4byte gUnknown_02024A60 -_08037F74: .4byte sub_8037EF0 -_08037F78: - movs r0, 0x5A - bl m4aSongNumStop - ldr r2, _08037FA0 @ =gMain - ldr r0, _08037FA4 @ =0x0000043d - adds r3, r2, r0 - ldrb r1, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldr r0, _08037FA8 @ =gUnknown_030042D0 - ldr r0, [r0] - str r0, [r2] - ldr r0, [r2, 0x8] - bl SetMainCallback2 -_08037F9A: - pop {r0} - bx r0 - .align 2, 0 -_08037FA0: .4byte gMain -_08037FA4: .4byte 0x0000043d -_08037FA8: .4byte gUnknown_030042D0 - thumb_func_end sub_8037F34 - - thumb_func_start sub_8037FAC -sub_8037FAC: @ 8037FAC - push {lr} - ldr r0, _08037FD0 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08037FD4 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08037FCA - bl dp01_tbl4_exec_completed -_08037FCA: - pop {r0} - bx r0 - .align 2, 0 -_08037FD0: .4byte gUnknown_02024A60 -_08037FD4: .4byte 0x02017810 - thumb_func_end sub_8037FAC - - thumb_func_start sub_8037FD8 -sub_8037FD8: @ 8037FD8 - push {lr} - ldr r0, _08037FFC @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08038000 @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _08037FF6 - bl dp01_tbl4_exec_completed -_08037FF6: - pop {r0} - bx r0 - .align 2, 0 -_08037FFC: .4byte gUnknown_02024A60 -_08038000: .4byte 0x02017810 - thumb_func_end sub_8037FD8 - - thumb_func_start dp01_tbl4_exec_completed -dp01_tbl4_exec_completed: @ 8038004 - push {r4,lr} - sub sp, 0x4 - ldr r1, _08038044 @ =gUnknown_03004330 - ldr r4, _08038048 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803804C @ =sub_803752C - str r1, [r0] - ldr r0, _08038050 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08038058 - bl GetMultiplayerId - mov r1, sp - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - mov r2, sp - bl dp01_prepare_buffer_wireless_probably - ldr r1, _08038054 @ =gUnknown_02023A60 - ldrb r0, [r4] - lsls r0, 9 - adds r0, r1 - movs r1, 0x38 - strb r1, [r0] - b _0803806A - .align 2, 0 -_08038044: .4byte gUnknown_03004330 -_08038048: .4byte gUnknown_02024A60 -_0803804C: .4byte sub_803752C -_08038050: .4byte gUnknown_020239F8 -_08038054: .4byte gUnknown_02023A60 -_08038058: - ldr r2, _08038074 @ =gUnknown_02024A64 - ldr r1, _08038078 @ =gBitTable - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - ldr r0, [r2] - bics r0, r1 - str r0, [r2] -_0803806A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08038074: .4byte gUnknown_02024A64 -_08038078: .4byte gBitTable - thumb_func_end dp01_tbl4_exec_completed - - thumb_func_start dp01t_00_4_getattr -dp01t_00_4_getattr: @ 803807C - push {r4-r6,lr} - sub sp, 0x100 - movs r6, 0 - ldr r1, _080380A8 @ =gUnknown_02023A60 - ldr r0, _080380AC @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _080380B4 - ldr r0, _080380B0 @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - mov r1, sp - bl dp01_getattr_by_ch1_for_player_pokemon__ - adds r6, r0, 0 - b _080380D6 - .align 2, 0 -_080380A8: .4byte gUnknown_02023A60 -_080380AC: .4byte gUnknown_02024A60 -_080380B0: .4byte gUnknown_02024A6A -_080380B4: - ldrb r4, [r1] - movs r5, 0 -_080380B8: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080380CE - lsls r0, r5, 24 - lsrs r0, 24 - mov r2, sp - adds r1, r2, r6 - bl dp01_getattr_by_ch1_for_player_pokemon__ - adds r6, r0 -_080380CE: - lsrs r4, 1 - adds r5, 0x1 - cmp r5, 0x5 - ble _080380B8 -_080380D6: - lsls r1, r6, 16 - lsrs r1, 16 - movs r0, 0x1 - mov r2, sp - bl dp01_build_cmdbuf_x1D_1D_numargs_varargs - bl dp01_tbl4_exec_completed - add sp, 0x100 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end dp01t_00_4_getattr - - thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__ -dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x90 - adds r7, r1, 0 - lsls r0, 24 - lsrs r5, r0, 24 - movs r6, 0 - ldr r2, _08038124 @ =gUnknown_02023A60 - ldr r3, _08038128 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3B - bls _0803811A - bl _08038886 -_0803811A: - lsls r0, 2 - ldr r1, _0803812C @ =_08038130 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038124: .4byte gUnknown_02023A60 -_08038128: .4byte gUnknown_02024A60 -_0803812C: .4byte _08038130 - .align 2, 0 -_08038130: - .4byte _08038220 - .4byte _08038444 - .4byte _08038454 - .4byte _08038464 - .4byte _080384CC - .4byte _080384CC - .4byte _080384CC - .4byte _080384CC - .4byte _080384E8 - .4byte _08038524 - .4byte _08038524 - .4byte _08038524 - .4byte _08038524 - .4byte _08038886 - .4byte _08038886 - .4byte _08038886 - .4byte _08038886 - .4byte _08038540 - .4byte _08038550 - .4byte _08038580 - .4byte _08038590 - .4byte _080385A0 - .4byte _080385B0 - .4byte _080385C0 - .4byte _080385D0 - .4byte _080385E0 - .4byte _080385F0 - .4byte _08038600 - .4byte _08038610 - .4byte _08038620 - .4byte _08038630 - .4byte _08038640 - .4byte _08038690 - .4byte _080386A0 - .4byte _080386B0 - .4byte _080386C0 - .4byte _080386D0 - .4byte _080386E0 - .4byte _080386F0 - .4byte _08038700 - .4byte _08038710 - .4byte _08038744 - .4byte _08038754 - .4byte _08038764 - .4byte _08038774 - .4byte _08038784 - .4byte _08038794 - .4byte _080387A4 - .4byte _080387B4 - .4byte _080387D4 - .4byte _080387E4 - .4byte _080387F4 - .4byte _08038804 - .4byte _08038814 - .4byte _08038824 - .4byte _08038834 - .4byte _08038844 - .4byte _08038854 - .4byte _08038864 - .4byte _08038874 -_08038220: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08038434 @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - mov r1, sp - strh r0, [r1] - adds r0, r4, 0 - movs r1, 0xC - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2E] - movs r6, 0 - add r0, sp, 0x24 - mov r9, r0 - movs r1, 0x3B - add r1, sp - mov r10, r1 - mov r2, sp - adds r2, 0x2B - str r2, [sp, 0x80] - mov r0, sp - adds r0, 0x2A - str r0, [sp, 0x7C] - mov r1, sp - adds r1, 0x68 - str r1, [sp, 0x8C] - adds r2, 0x5 - str r2, [sp, 0x84] - adds r0, 0x12 - str r0, [sp, 0x88] - mov r8, r4 - add r4, sp, 0xC -_0803826C: - adds r1, r6, 0 - adds r1, 0xD - mov r0, r8 - bl GetMonData - strh r0, [r4] - adds r1, r6, 0 - adds r1, 0x11 - mov r0, r8 - bl GetMonData - mov r2, r9 - adds r1, r2, r6 - strb r0, [r1] - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0803826C - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08038434 @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl GetMonData - mov r1, r10 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - bl GetMonData - ldr r2, [sp, 0x80] - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x19 - bl GetMonData - str r0, [sp, 0x44] - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - mov r3, sp - movs r5, 0x1F - ands r0, r5 - ldrb r2, [r3, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - mov r3, sp - movs r6, 0x1F - ands r0, r6 - lsls r0, 5 - ldrh r2, [r3, 0x14] - ldr r1, _08038438 @ =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 2 - ldrb r2, [r3, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [sp, 0x14] - ldr r2, _0803843C @ =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [sp, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - mov r3, sp - ands r0, r6 - lsls r0, 4 - ldrh r2, [r3, 0x16] - ldr r1, _08038440 @ =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r3, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - mov r3, sp - ands r0, r5 - lsls r0, 1 - ldrb r2, [r3, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [sp, 0x48] - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - str r0, [sp, 0x4C] - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r1, [sp, 0x7C] - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - mov r1, sp - strh r0, [r1, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - bl GetMonData - mov r1, sp - strh r0, [r1, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - bl GetMonData - mov r1, sp - strh r0, [r1, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - bl GetMonData - mov r1, sp - strh r0, [r1, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - bl GetMonData - mov r1, sp - strh r0, [r1, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - bl GetMonData - mov r1, sp - strh r0, [r1, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - mov r3, sp - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r3, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r3, sp - lsls r0, 7 - ldrb r2, [r3, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [sp, 0x54] - adds r0, r4, 0 - movs r1, 0x2 - ldr r2, [sp, 0x8C] - bl GetMonData - ldr r0, [sp, 0x84] - ldr r1, [sp, 0x8C] - bl StringCopy10 - adds r0, r4, 0 - movs r1, 0x7 - ldr r2, [sp, 0x88] - bl GetMonData - mov r2, sp - movs r6, 0 -_08038424: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0x57 - bls _08038424 - b _08038886 - .align 2, 0 -_08038434: .4byte gEnemyParty -_08038438: .4byte 0xfffffc1f -_0803843C: .4byte 0xfff07fff -_08038440: .4byte 0xfffffe0f -_08038444: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038450 @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - b _080387BE - .align 2, 0 -_08038450: .4byte gEnemyParty -_08038454: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038460 @ =gEnemyParty - adds r0, r1 - movs r1, 0xC - b _080387BE - .align 2, 0 -_08038460: .4byte gEnemyParty -_08038464: - movs r6, 0 - add r2, sp, 0x58 - mov r9, r2 - add r0, sp, 0x60 - mov r10, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _080384C8 @ =gEnemyParty - adds r4, r1, r0 - mov r8, r9 -_0803847A: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r4, 0 - bl GetMonData - mov r1, r8 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r4, 0 - bl GetMonData - mov r2, r10 - adds r1, r2, r6 - strb r0, [r1] - movs r0, 0x2 - add r8, r0 - adds r6, 0x1 - cmp r6, 0x3 - ble _0803847A - movs r0, 0x64 - muls r0, r5 - ldr r1, _080384C8 @ =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - mov r1, r9 - strb r0, [r1, 0xC] - mov r2, r9 - movs r6, 0 -_080384B8: - adds r0, r7, r6 - adds r1, r2, r6 - ldrb r1, [r1] - strb r1, [r0] - adds r6, 0x1 - cmp r6, 0xF - bls _080384B8 - b _08038886 - .align 2, 0 -_080384C8: .4byte gEnemyParty -_080384CC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080384E4 @ =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x9 - b _080387BE - .align 2, 0 -_080384E4: .4byte gEnemyParty -_080384E8: - movs r6, 0 - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r2, _08038520 @ =gEnemyParty - mov r8, r2 -_080384F4: - adds r1, r6, 0 - adds r1, 0x11 - mov r2, r8 - adds r0, r4, r2 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - cmp r6, 0x3 - ble _080384F4 - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038520 @ =gEnemyParty - adds r0, r1 - movs r1, 0x15 - bl GetMonData - adds r1, r7, r6 - strb r0, [r1] - adds r6, 0x1 - b _08038886 - .align 2, 0 -_08038520: .4byte gEnemyParty -_08038524: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803853C @ =gEnemyParty - adds r0, r1 - ldrb r1, [r3] - lsls r1, 9 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r1, 0x8 - b _0803887E - .align 2, 0 -_0803853C: .4byte gEnemyParty -_08038540: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803854C @ =gEnemyParty - adds r0, r1 - movs r1, 0x1 - b _0803855A - .align 2, 0 -_0803854C: .4byte gEnemyParty -_08038550: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803857C @ =gEnemyParty - adds r0, r1 - movs r1, 0x19 -_0803855A: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - movs r6, 0x3 - b _08038886 - .align 2, 0 -_0803857C: .4byte gEnemyParty -_08038580: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803858C @ =gEnemyParty - adds r0, r1 - movs r1, 0x1A - b _0803887E - .align 2, 0 -_0803858C: .4byte gEnemyParty -_08038590: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803859C @ =gEnemyParty - adds r0, r1 - movs r1, 0x1B - b _0803887E - .align 2, 0 -_0803859C: .4byte gEnemyParty -_080385A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080385AC @ =gEnemyParty - adds r0, r1 - movs r1, 0x1C - b _0803887E - .align 2, 0 -_080385AC: .4byte gEnemyParty -_080385B0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080385BC @ =gEnemyParty - adds r0, r1 - movs r1, 0x1D - b _0803887E - .align 2, 0 -_080385BC: .4byte gEnemyParty -_080385C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080385CC @ =gEnemyParty - adds r0, r1 - movs r1, 0x1E - b _0803887E - .align 2, 0 -_080385CC: .4byte gEnemyParty -_080385D0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080385DC @ =gEnemyParty - adds r0, r1 - movs r1, 0x1F - b _0803887E - .align 2, 0 -_080385DC: .4byte gEnemyParty -_080385E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080385EC @ =gEnemyParty - adds r0, r1 - movs r1, 0x20 - b _0803887E - .align 2, 0 -_080385EC: .4byte gEnemyParty -_080385F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080385FC @ =gEnemyParty - adds r0, r1 - movs r1, 0x22 - b _0803887E - .align 2, 0 -_080385FC: .4byte gEnemyParty -_08038600: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803860C @ =gEnemyParty - adds r0, r1 - movs r1, 0x23 - b _0803887E - .align 2, 0 -_0803860C: .4byte gEnemyParty -_08038610: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803861C @ =gEnemyParty - adds r0, r1 - movs r1, 0x24 - b _0803887E - .align 2, 0 -_0803861C: .4byte gEnemyParty -_08038620: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803862C @ =gEnemyParty - adds r0, r1 - movs r1, 0x25 - b _0803887E - .align 2, 0 -_0803862C: .4byte gEnemyParty -_08038630: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803863C @ =gEnemyParty - adds r0, r1 - movs r1, 0x26 - b _0803887E - .align 2, 0 -_0803863C: .4byte gEnemyParty -_08038640: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _0803868C @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x27 - bl GetMonData - strb r0, [r7] - adds r0, r4, 0 - movs r1, 0x28 - bl GetMonData - strb r0, [r7, 0x1] - adds r0, r4, 0 - movs r1, 0x29 - bl GetMonData - strb r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x2A - bl GetMonData - strb r0, [r7, 0x3] - adds r0, r4, 0 - movs r1, 0x2B - bl GetMonData - strb r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x2C - bl GetMonData - strb r0, [r7, 0x5] - movs r6, 0x6 - b _08038886 - .align 2, 0 -_0803868C: .4byte gEnemyParty -_08038690: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803869C @ =gEnemyParty - adds r0, r1 - movs r1, 0x27 - b _0803887E - .align 2, 0 -_0803869C: .4byte gEnemyParty -_080386A0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080386AC @ =gEnemyParty - adds r0, r1 - movs r1, 0x28 - b _0803887E - .align 2, 0 -_080386AC: .4byte gEnemyParty -_080386B0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080386BC @ =gEnemyParty - adds r0, r1 - movs r1, 0x29 - b _0803887E - .align 2, 0 -_080386BC: .4byte gEnemyParty -_080386C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080386CC @ =gEnemyParty - adds r0, r1 - movs r1, 0x2A - b _0803887E - .align 2, 0 -_080386CC: .4byte gEnemyParty -_080386D0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080386DC @ =gEnemyParty - adds r0, r1 - movs r1, 0x2B - b _0803887E - .align 2, 0 -_080386DC: .4byte gEnemyParty -_080386E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080386EC @ =gEnemyParty - adds r0, r1 - movs r1, 0x2C - b _0803887E - .align 2, 0 -_080386EC: .4byte gEnemyParty -_080386F0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080386FC @ =gEnemyParty - adds r0, r1 - movs r1, 0 - b _0803871A - .align 2, 0 -_080386FC: .4byte gEnemyParty -_08038700: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803870C @ =gEnemyParty - adds r0, r1 - movs r1, 0x9 - b _080387BE - .align 2, 0 -_0803870C: .4byte gEnemyParty -_08038710: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038740 @ =gEnemyParty - adds r0, r1 - movs r1, 0x37 -_0803871A: - bl GetMonData - adds r1, r0, 0 - strb r1, [r7] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r0, 16 - strb r0, [r7, 0x2] - lsrs r0, r1, 24 - strb r0, [r7, 0x3] - movs r6, 0x4 - b _08038886 - .align 2, 0 -_08038740: .4byte gEnemyParty -_08038744: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038750 @ =gEnemyParty - adds r0, r1 - movs r1, 0x38 - b _0803887E - .align 2, 0 -_08038750: .4byte gEnemyParty -_08038754: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038760 @ =gEnemyParty - adds r0, r1 - movs r1, 0x39 - b _080387BE - .align 2, 0 -_08038760: .4byte gEnemyParty -_08038764: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038770 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3A - b _080387BE - .align 2, 0 -_08038770: .4byte gEnemyParty -_08038774: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038780 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3B - b _080387BE - .align 2, 0 -_08038780: .4byte gEnemyParty -_08038784: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038790 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3C - b _080387BE - .align 2, 0 -_08038790: .4byte gEnemyParty -_08038794: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080387A0 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3D - b _080387BE - .align 2, 0 -_080387A0: .4byte gEnemyParty -_080387A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080387B0 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3E - b _080387BE - .align 2, 0 -_080387B0: .4byte gEnemyParty -_080387B4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080387D0 @ =gEnemyParty - adds r0, r1 - movs r1, 0x3F -_080387BE: - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - strb r0, [r7] - lsrs r0, 8 - strb r0, [r7, 0x1] - movs r6, 0x2 - b _08038886 - .align 2, 0 -_080387D0: .4byte gEnemyParty -_080387D4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080387E0 @ =gEnemyParty - adds r0, r1 - movs r1, 0x16 - b _0803887E - .align 2, 0 -_080387E0: .4byte gEnemyParty -_080387E4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080387F0 @ =gEnemyParty - adds r0, r1 - movs r1, 0x17 - b _0803887E - .align 2, 0 -_080387F0: .4byte gEnemyParty -_080387F4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038800 @ =gEnemyParty - adds r0, r1 - movs r1, 0x18 - b _0803887E - .align 2, 0 -_08038800: .4byte gEnemyParty -_08038804: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038810 @ =gEnemyParty - adds r0, r1 - movs r1, 0x21 - b _0803887E - .align 2, 0 -_08038810: .4byte gEnemyParty -_08038814: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038820 @ =gEnemyParty - adds r0, r1 - movs r1, 0x2F - b _0803887E - .align 2, 0 -_08038820: .4byte gEnemyParty -_08038824: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038830 @ =gEnemyParty - adds r0, r1 - movs r1, 0x30 - b _0803887E - .align 2, 0 -_08038830: .4byte gEnemyParty -_08038834: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038840 @ =gEnemyParty - adds r0, r1 - movs r1, 0x32 - b _0803887E - .align 2, 0 -_08038840: .4byte gEnemyParty -_08038844: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038850 @ =gEnemyParty - adds r0, r1 - movs r1, 0x33 - b _0803887E - .align 2, 0 -_08038850: .4byte gEnemyParty -_08038854: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038860 @ =gEnemyParty - adds r0, r1 - movs r1, 0x34 - b _0803887E - .align 2, 0 -_08038860: .4byte gEnemyParty -_08038864: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038870 @ =gEnemyParty - adds r0, r1 - movs r1, 0x35 - b _0803887E - .align 2, 0 -_08038870: .4byte gEnemyParty -_08038874: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038898 @ =gEnemyParty - adds r0, r1 - movs r1, 0x36 -_0803887E: - bl GetMonData - strb r0, [r7] - movs r6, 0x1 -_08038886: - adds r0, r6, 0 - add sp, 0x90 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08038898: .4byte gEnemyParty - thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__ - - thumb_func_start sub_803889C -sub_803889C: @ 803889C - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_803889C - - thumb_func_start sub_80388A8 -sub_80388A8: @ 80388A8 - push {r4,r5,lr} - ldr r1, _080388CC @ =gUnknown_02023A60 - ldr r0, _080388D0 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0 - bne _080388D8 - ldr r0, _080388D4 @ =gUnknown_02024A6A - lsls r1, r2, 1 - adds r1, r0 - ldrb r0, [r1] - bl sub_8038900 - b _080388F6 - .align 2, 0 -_080388CC: .4byte gUnknown_02023A60 -_080388D0: .4byte gUnknown_02024A60 -_080388D4: .4byte gUnknown_02024A6A -_080388D8: - ldrb r4, [r1] - movs r5, 0 -_080388DC: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _080388EA - adds r0, r5, 0 - bl sub_8038900 -_080388EA: - lsrs r4, 1 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x5 - bls _080388DC -_080388F6: - bl dp01_tbl4_exec_completed - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80388A8 - - thumb_func_start sub_8038900 -sub_8038900: @ 8038900 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r3, _08038938 @ =gUnknown_02024A60 - ldrb r0, [r3] - lsls r0, 9 - ldr r2, _0803893C @ =gUnknown_02023A63 - adds r4, r0, r2 - adds r7, r4, 0 - subs r1, r2, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r6, r3, 0 - adds r3, r2, 0 - cmp r0, 0x3B - bls _0803892E - bl _0803920C -_0803892E: - lsls r0, 2 - ldr r1, _08038940 @ =_08038944 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08038938: .4byte gUnknown_02024A60 -_0803893C: .4byte gUnknown_02023A63 -_08038940: .4byte _08038944 - .align 2, 0 -_08038944: - .4byte _08038A34 - .4byte _08038BCC - .4byte _08038BE8 - .4byte _08038C04 - .4byte _08038C58 - .4byte _08038C58 - .4byte _08038C58 - .4byte _08038C58 - .4byte _08038C78 - .4byte _08038CE0 - .4byte _08038CE0 - .4byte _08038CE0 - .4byte _08038CE0 - .4byte _0803920C - .4byte _0803920C - .4byte _0803920C - .4byte _0803920C - .4byte _08038D08 - .4byte _08038D24 - .4byte _08038D40 - .4byte _08038D5C - .4byte _08038D78 - .4byte _08038D94 - .4byte _08038DB0 - .4byte _08038DCC - .4byte _08038DE8 - .4byte _08038E04 - .4byte _08038E20 - .4byte _08038E3C - .4byte _08038E58 - .4byte _08038E74 - .4byte _08038E90 - .4byte _08038F04 - .4byte _08038F20 - .4byte _08038F3C - .4byte _08038F58 - .4byte _08038F74 - .4byte _08038F90 - .4byte _08038FAC - .4byte _08038FC8 - .4byte _08038FE4 - .4byte _08039000 - .4byte _0803901C - .4byte _08039038 - .4byte _08039054 - .4byte _08039070 - .4byte _0803908C - .4byte _080390A8 - .4byte _080390C4 - .4byte _080390E0 - .4byte _080390FC - .4byte _08039118 - .4byte _08039134 - .4byte _08039150 - .4byte _0803916C - .4byte _08039188 - .4byte _080391A4 - .4byte _080391C0 - .4byte _080391DC - .4byte _080391F8 -_08038A34: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08038BC8 @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - adds r2, r7, 0 - bl SetMonData - adds r2, r7, 0 - adds r2, 0x2E - adds r0, r4, 0 - movs r1, 0xC - bl SetMonData - movs r0, 0 - mov r8, r0 - movs r0, 0x3B - adds r0, r7 - mov r10, r0 - adds r0, r7, 0 - adds r0, 0x2B - str r0, [sp, 0x20] - adds r0, 0x19 - str r0, [sp, 0x28] - adds r0, 0x4 - str r0, [sp, 0x2C] - adds r0, 0x4 - str r0, [sp, 0x30] - subs r0, 0x22 - str r0, [sp, 0x1C] - subs r0, 0x2 - str r0, [sp, 0x18] - adds r0, 0x4 - str r0, [sp, 0x24] - adds r0, r7, 0x2 - str r0, [sp, 0x4] - adds r0, r7, 0x4 - str r0, [sp, 0x8] - adds r0, r7, 0x6 - str r0, [sp, 0xC] - adds r0, 0x2 - str r0, [sp, 0x10] - adds r0, 0x2 - str r0, [sp, 0x14] - mov r9, r4 - adds r6, r7, 0 - adds r6, 0x24 - adds r4, r7, 0 - adds r4, 0xC -_08038A9A: - mov r1, r8 - adds r1, 0xD - mov r0, r9 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - mov r0, r9 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08038A9A - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08038BC8 @ =gEnemyParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - mov r2, r10 - bl SetMonData - adds r0, r4, 0 - movs r1, 0x20 - ldr r2, [sp, 0x20] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x19 - ldr r2, [sp, 0x28] - bl SetMonData - ldrb r0, [r7, 0x14] - lsls r0, 27 - lsrs r0, 27 - mov r1, sp - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, 0x14] - lsls r0, 22 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x28 - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, 0x15] - lsls r0, 25 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x29 - mov r2, sp - bl SetMonData - mov r1, sp - ldr r0, [r7, 0x14] - lsls r0, 12 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2A - mov r2, sp - bl SetMonData - mov r1, sp - ldrh r0, [r7, 0x16] - lsls r0, 23 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2B - mov r2, sp - bl SetMonData - mov r1, sp - ldrb r0, [r7, 0x17] - lsls r0, 26 - lsrs r0, 27 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2C - mov r2, sp - bl SetMonData - adds r0, r4, 0 - movs r1, 0 - ldr r2, [sp, 0x2C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x37 - ldr r2, [sp, 0x30] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x38 - ldr r2, [sp, 0x1C] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x39 - ldr r2, [sp, 0x18] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3A - ldr r2, [sp, 0x24] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3B - ldr r2, [sp, 0x4] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3C - ldr r2, [sp, 0x8] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3D - ldr r2, [sp, 0xC] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3E - ldr r2, [sp, 0x10] - bl SetMonData - adds r0, r4, 0 - movs r1, 0x3F - ldr r2, [sp, 0x14] - bl SetMonData - b _0803920C - .align 2, 0 -_08038BC8: .4byte gEnemyParty -_08038BCC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038BE4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xB - bl SetMonData - b _0803920C - .align 2, 0 -_08038BE4: .4byte gEnemyParty -_08038BE8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038C00 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0xC - bl SetMonData - b _0803920C - .align 2, 0 -_08038C00: .4byte gEnemyParty -_08038C04: - movs r0, 0 - mov r8, r0 - movs r0, 0xC - adds r0, r4 - mov r9, r0 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08038C54 @ =gEnemyParty - adds r7, r1, r0 - adds r6, r4, 0 - adds r6, 0x8 -_08038C1C: - mov r1, r8 - adds r1, 0xD - adds r0, r7, 0 - adds r2, r4, 0 - bl SetMonData - mov r1, r8 - adds r1, 0x11 - adds r0, r7, 0 - adds r2, r6, 0 - bl SetMonData - adds r6, 0x1 - adds r4, 0x2 - movs r0, 0x1 - add r8, r0 - mov r0, r8 - cmp r0, 0x3 - ble _08038C1C - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038C54 @ =gEnemyParty - adds r0, r1 - movs r1, 0x15 - mov r2, r9 - bl SetMonData - b _0803920C - .align 2, 0 -_08038C54: .4byte gEnemyParty -_08038C58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038C70 @ =gEnemyParty - adds r0, r1 - ldr r3, _08038C74 @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x9 - b _08038CF6 - .align 2, 0 -_08038C70: .4byte gEnemyParty -_08038C74: .4byte gUnknown_02023A60 -_08038C78: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08038CDC @ =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x11 - str r3, [sp, 0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x12 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x13 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x14 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x15 - bl SetMonData - b _0803920C - .align 2, 0 -_08038CDC: .4byte gEnemyParty -_08038CE0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038D00 @ =gEnemyParty - adds r0, r1 - ldr r3, _08038D04 @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r2, 9 - adds r1, r3, 0x1 - adds r1, r2, r1 - ldrb r1, [r1] - adds r1, 0x8 -_08038CF6: - adds r3, 0x3 - adds r2, r3 - bl SetMonData - b _0803920C - .align 2, 0 -_08038D00: .4byte gEnemyParty -_08038D04: .4byte gUnknown_02023A60 -_08038D08: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038D20 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1 - bl SetMonData - b _0803920C - .align 2, 0 -_08038D20: .4byte gEnemyParty -_08038D24: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038D3C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x19 - bl SetMonData - b _0803920C - .align 2, 0 -_08038D3C: .4byte gEnemyParty -_08038D40: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038D58 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1A - bl SetMonData - b _0803920C - .align 2, 0 -_08038D58: .4byte gEnemyParty -_08038D5C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038D74 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1B - bl SetMonData - b _0803920C - .align 2, 0 -_08038D74: .4byte gEnemyParty -_08038D78: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038D90 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1C - bl SetMonData - b _0803920C - .align 2, 0 -_08038D90: .4byte gEnemyParty -_08038D94: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038DAC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1D - bl SetMonData - b _0803920C - .align 2, 0 -_08038DAC: .4byte gEnemyParty -_08038DB0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038DC8 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1E - bl SetMonData - b _0803920C - .align 2, 0 -_08038DC8: .4byte gEnemyParty -_08038DCC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038DE4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x1F - bl SetMonData - b _0803920C - .align 2, 0 -_08038DE4: .4byte gEnemyParty -_08038DE8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038E00 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x20 - bl SetMonData - b _0803920C - .align 2, 0 -_08038E00: .4byte gEnemyParty -_08038E04: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038E1C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x22 - bl SetMonData - b _0803920C - .align 2, 0 -_08038E1C: .4byte gEnemyParty -_08038E20: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038E38 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x23 - bl SetMonData - b _0803920C - .align 2, 0 -_08038E38: .4byte gEnemyParty -_08038E3C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038E54 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x24 - bl SetMonData - b _0803920C - .align 2, 0 -_08038E54: .4byte gEnemyParty -_08038E58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038E70 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x25 - bl SetMonData - b _0803920C - .align 2, 0 -_08038E70: .4byte gEnemyParty -_08038E74: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038E8C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x26 - bl SetMonData - b _0803920C - .align 2, 0 -_08038E8C: .4byte gEnemyParty -_08038E90: - movs r0, 0x64 - adds r4, r5, 0 - muls r4, r0 - ldr r0, _08038F00 @ =gEnemyParty - adds r4, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - adds r0, r4, 0 - movs r1, 0x27 - str r3, [sp, 0x34] - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x1 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x28 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x2 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x29 - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x3 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2A - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x4 - adds r2, r0 - adds r0, r4, 0 - movs r1, 0x2B - bl SetMonData - ldrb r2, [r6] - lsls r2, 9 - ldr r3, [sp, 0x34] - adds r0, r3, 0x5 - adds r2, r0 - adds r0, r4, 0 - b _08038F9E - .align 2, 0 -_08038F00: .4byte gEnemyParty -_08038F04: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038F1C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x27 - bl SetMonData - b _0803920C - .align 2, 0 -_08038F1C: .4byte gEnemyParty -_08038F20: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038F38 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x28 - bl SetMonData - b _0803920C - .align 2, 0 -_08038F38: .4byte gEnemyParty -_08038F3C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038F54 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x29 - bl SetMonData - b _0803920C - .align 2, 0 -_08038F54: .4byte gEnemyParty -_08038F58: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038F70 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2A - bl SetMonData - b _0803920C - .align 2, 0 -_08038F70: .4byte gEnemyParty -_08038F74: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038F8C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2B - bl SetMonData - b _0803920C - .align 2, 0 -_08038F8C: .4byte gEnemyParty -_08038F90: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038FA8 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 -_08038F9E: - movs r1, 0x2C - bl SetMonData - b _0803920C - .align 2, 0 -_08038FA8: .4byte gEnemyParty -_08038FAC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038FC4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0 - bl SetMonData - b _0803920C - .align 2, 0 -_08038FC4: .4byte gEnemyParty -_08038FC8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038FE0 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x9 - bl SetMonData - b _0803920C - .align 2, 0 -_08038FE0: .4byte gEnemyParty -_08038FE4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08038FFC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x37 - bl SetMonData - b _0803920C - .align 2, 0 -_08038FFC: .4byte gEnemyParty -_08039000: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039018 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x38 - bl SetMonData - b _0803920C - .align 2, 0 -_08039018: .4byte gEnemyParty -_0803901C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039034 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x39 - bl SetMonData - b _0803920C - .align 2, 0 -_08039034: .4byte gEnemyParty -_08039038: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039050 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3A - bl SetMonData - b _0803920C - .align 2, 0 -_08039050: .4byte gEnemyParty -_08039054: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803906C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3B - bl SetMonData - b _0803920C - .align 2, 0 -_0803906C: .4byte gEnemyParty -_08039070: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039088 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3C - bl SetMonData - b _0803920C - .align 2, 0 -_08039088: .4byte gEnemyParty -_0803908C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080390A4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3D - bl SetMonData - b _0803920C - .align 2, 0 -_080390A4: .4byte gEnemyParty -_080390A8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080390C0 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3E - bl SetMonData - b _0803920C - .align 2, 0 -_080390C0: .4byte gEnemyParty -_080390C4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080390DC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x3F - bl SetMonData - b _0803920C - .align 2, 0 -_080390DC: .4byte gEnemyParty -_080390E0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080390F8 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x16 - bl SetMonData - b _0803920C - .align 2, 0 -_080390F8: .4byte gEnemyParty -_080390FC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039114 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x17 - bl SetMonData - b _0803920C - .align 2, 0 -_08039114: .4byte gEnemyParty -_08039118: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039130 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x18 - bl SetMonData - b _0803920C - .align 2, 0 -_08039130: .4byte gEnemyParty -_08039134: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803914C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x21 - bl SetMonData - b _0803920C - .align 2, 0 -_0803914C: .4byte gEnemyParty -_08039150: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039168 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x2F - bl SetMonData - b _0803920C - .align 2, 0 -_08039168: .4byte gEnemyParty -_0803916C: - movs r0, 0x64 - muls r0, r5 - ldr r1, _08039184 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x30 - bl SetMonData - b _0803920C - .align 2, 0 -_08039184: .4byte gEnemyParty -_08039188: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080391A0 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x32 - bl SetMonData - b _0803920C - .align 2, 0 -_080391A0: .4byte gEnemyParty -_080391A4: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080391BC @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x33 - bl SetMonData - b _0803920C - .align 2, 0 -_080391BC: .4byte gEnemyParty -_080391C0: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080391D8 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x34 - bl SetMonData - b _0803920C - .align 2, 0 -_080391D8: .4byte gEnemyParty -_080391DC: - movs r0, 0x64 - muls r0, r5 - ldr r1, _080391F4 @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x35 - bl SetMonData - b _0803920C - .align 2, 0 -_080391F4: .4byte gEnemyParty -_080391F8: - movs r0, 0x64 - muls r0, r5 - ldr r1, _0803921C @ =gEnemyParty - adds r0, r1 - ldrb r2, [r6] - lsls r2, 9 - adds r2, r3 - movs r1, 0x36 - bl SetMonData -_0803920C: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803921C: .4byte gEnemyParty - thumb_func_end sub_8038900 - - thumb_func_start sub_8039220 -sub_8039220: @ 8039220 - push {r4-r7,lr} - ldr r1, _08039284 @ =gUnknown_02024A6A - ldr r7, _08039288 @ =gUnknown_02024A60 - ldrb r2, [r7] - lsls r0, r2, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - adds r3, r1, 0 - muls r3, r0 - ldr r4, _0803928C @ =gUnknown_02023A60 - lsls r2, 9 - adds r0, r4, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - ldr r1, _08039290 @ =gEnemyParty - adds r0, r1 - adds r5, r3, r0 - movs r3, 0 - adds r0, r4, 0x2 - adds r2, r0 - ldrb r2, [r2] - cmp r3, r2 - bcs _08039278 - adds r6, r4, 0 - adds r2, r7, 0 - adds r4, r0, 0 -_08039256: - adds r1, r5, r3 - ldrb r0, [r2] - lsls r0, 9 - adds r0, 0x3 - adds r0, r3, r0 - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r2] - lsls r0, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r3, r0 - bcc _08039256 -_08039278: - bl dp01_tbl4_exec_completed - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08039284: .4byte gUnknown_02024A6A -_08039288: .4byte gUnknown_02024A60 -_0803928C: .4byte gUnknown_02023A60 -_08039290: .4byte gEnemyParty - thumb_func_end sub_8039220 - - thumb_func_start sub_8039294 -sub_8039294: @ 8039294 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r7, _080393BC @ =gUnknown_02024A6A - ldr r6, _080393C0 @ =gUnknown_02024A60 - ldrb r0, [r6] - lsls r0, 1 - adds r0, r7 - ldrh r0, [r0] - movs r1, 0x64 - mov r10, r1 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - ldr r1, _080393C4 @ =gEnemyParty - mov r9, r1 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - bl sub_8031794 - ldrb r0, [r6] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080393C8 @ =gUnknown_02024E8C - mov r8, r0 - ldrb r0, [r6] - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldrb r0, [r6] - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldrb r0, [r6] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r8 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _080393CC @ =gUnknown_02024BE0 - ldrb r1, [r6] - adds r1, r4 - strb r0, [r1] - ldr r5, _080393D0 @ =gSprites - ldrb r0, [r6] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _080393D4 @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r2, [r6] - adds r0, r2, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r2, [r0, 0x2E] - ldrb r3, [r6] - adds r0, r3, r4 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r2, [r6] - adds r4, r2, r4 - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _080393D8 @ =gUnknown_02024E84 - adds r2, r1 - ldrb r1, [r2] - bl StartSpriteAnim - ldrb r4, [r6] - lsls r0, r4, 1 - adds r0, r7 - ldrh r0, [r0] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_8032984 - ldr r1, _080393DC @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _080393E0 @ =sub_8037A74 - str r1, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080393BC: .4byte gUnknown_02024A6A -_080393C0: .4byte gUnknown_02024A60 -_080393C4: .4byte gEnemyParty -_080393C8: .4byte gUnknown_02024E8C -_080393CC: .4byte gUnknown_02024BE0 -_080393D0: .4byte gSprites -_080393D4: .4byte 0x0000ff10 -_080393D8: .4byte gUnknown_02024E84 -_080393DC: .4byte gUnknown_03004330 -_080393E0: .4byte sub_8037A74 - thumb_func_end sub_8039294 - - thumb_func_start sub_80393E4 -sub_80393E4: @ 80393E4 - push {r4,lr} - ldr r1, _0803941C @ =gUnknown_02024A6A - ldr r4, _08039420 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r2, r0, 1 - adds r2, r1 - ldr r3, _08039424 @ =gUnknown_02023A60 - lsls r0, 9 - adds r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strh r0, [r2] - ldrb r0, [r4] - lsls r1, r0, 9 - adds r3, 0x2 - adds r1, r3 - ldrb r1, [r1] - bl sub_8039430 - ldr r1, _08039428 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803942C @ =sub_8037E30 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803941C: .4byte gUnknown_02024A6A -_08039420: .4byte gUnknown_02024A60 -_08039424: .4byte gUnknown_02023A60 -_08039428: .4byte gUnknown_03004330 -_0803942C: .4byte sub_8037E30 - thumb_func_end sub_80393E4 - - thumb_func_start sub_8039430 -sub_8039430: @ 8039430 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8032AA8 - ldr r0, _0803958C @ =gUnknown_02024A6A - lsls r4, r6, 1 - adds r4, r0 - ldr r0, _08039590 @ =gUnknown_02023A60 - lsls r1, r6, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - strh r0, [r4] - ldrh r0, [r4] - movs r1, 0x64 - mov r9, r1 - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - ldr r5, _08039594 @ =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - mov r8, r0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - ldr r0, _08039598 @ =sub_80312F0 - bl object_new_hidden_with_callback - ldr r1, _0803959C @ =gUnknown_0300434C - mov r10, r1 - add r10, r6 - mov r1, r10 - strb r0, [r1] - ldrh r0, [r4] - mov r1, r9 - muls r1, r0 - adds r0, r1, 0 - adds r0, r5 - adds r1, r6, 0 - bl sub_8031794 - adds r0, r6, 0 - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r8 - bl GetMonSpriteTemplate_803C56C - ldr r0, _080395A0 @ =gUnknown_02024E8C - mov r9, r0 - adds r0, r6, 0 - movs r1, 0x2 - bl sub_8077ABC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - adds r0, r6, 0 - bl sub_8077F68 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - mov r0, r9 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r4, _080395A4 @ =gUnknown_02024BE0 - adds r4, r6, r4 - strb r0, [r4] - ldr r5, _080395A8 @ =gSprites - mov r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r4] - strh r1, [r0, 0x30] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r6, [r0, 0x2E] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r1, r8 - strh r1, [r0, 0x32] - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r6, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _080395AC @ =gUnknown_02024E84 - adds r6, r1 - ldrb r1, [r6] - bl StartSpriteAnim - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _080395B0 @ =SpriteCallbackDummy - str r1, [r0] - movs r0, 0 - movs r1, 0xFE - bl sub_8046400 - mov r1, r10 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x2E] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803958C: .4byte gUnknown_02024A6A -_08039590: .4byte gUnknown_02023A60 -_08039594: .4byte gEnemyParty -_08039598: .4byte sub_80312F0 -_0803959C: .4byte gUnknown_0300434C -_080395A0: .4byte gUnknown_02024E8C -_080395A4: .4byte gUnknown_02024BE0 -_080395A8: .4byte gSprites -_080395AC: .4byte gUnknown_02024E84 -_080395B0: .4byte SpriteCallbackDummy - thumb_func_end sub_8039430 - - thumb_func_start sub_80395B4 -sub_80395B4: @ 80395B4 - push {r4-r6,lr} - ldr r1, _080395E4 @ =gUnknown_02023A60 - ldr r6, _080395E8 @ =gUnknown_02024A60 - ldrb r2, [r6] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r3, [r0] - cmp r3, 0 - bne _080395F8 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r1, _080395EC @ =0x02017810 - adds r0, r1 - strb r3, [r0, 0x4] - ldr r1, _080395F0 @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _080395F4 @ =sub_8039648 - str r1, [r0] - b _08039634 - .align 2, 0 -_080395E4: .4byte gUnknown_02023A60 -_080395E8: .4byte gUnknown_02024A60 -_080395EC: .4byte 0x02017810 -_080395F0: .4byte gUnknown_03004330 -_080395F4: .4byte sub_8039648 -_080395F8: - ldr r5, _0803963C @ =gUnknown_02024BE0 - adds r0, r2, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _08039640 @ =gSprites - adds r0, r4 - bl FreeSpriteOamMatrix - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl DestroySprite - ldrb r0, [r6] - bl sub_8032A08 - ldr r1, _08039644 @ =gUnknown_03004340 - ldrb r0, [r6] - adds r0, r1 - ldrb r0, [r0] - bl sub_8043DB0 - bl dp01_tbl4_exec_completed -_08039634: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803963C: .4byte gUnknown_02024BE0 -_08039640: .4byte gSprites -_08039644: .4byte gUnknown_03004340 - thumb_func_end sub_80395B4 - - thumb_func_start sub_8039648 -sub_8039648: @ 8039648 - push {r4,r5,lr} - ldr r5, _08039664 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _08039668 @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - beq _0803966C - cmp r0, 0x1 - beq _08039698 - b _080396C0 - .align 2, 0 -_08039664: .4byte gUnknown_02024A60 -_08039668: .4byte 0x02017810 -_0803966C: - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08039688 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08039688: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _080396C0 -_08039698: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080396C0 - strb r0, [r3, 0x4] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x2 - bl move_anim_start_t4 - ldr r1, _080396C8 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080396CC @ =sub_8037BBC - str r1, [r0] -_080396C0: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080396C8: .4byte gUnknown_03004330 -_080396CC: .4byte sub_8037BBC - thumb_func_end sub_8039648 - - thumb_func_start sub_80396D0 -sub_80396D0: @ 80396D0 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - ldr r0, _08039704 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08039714 - ldr r6, _08039708 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl battle_get_per_side_status - movs r1, 0x2 - ands r1, r0 - movs r5, 0x10 - cmp r1, 0 - beq _080396F8 - ldr r5, _0803970C @ =0x0000fff0 -_080396F8: - ldr r4, _08039710 @ =gLinkPlayers - ldrb r0, [r6] - bl sub_803FC34 - b _08039724 - .align 2, 0 -_08039704: .4byte gUnknown_020239F8 -_08039708: .4byte gUnknown_02024A60 -_0803970C: .4byte 0x0000fff0 -_08039710: .4byte gLinkPlayers -_08039714: - movs r5, 0 - ldr r4, _0803986C @ =gLinkPlayers - bl GetMultiplayerId - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 -_08039724: - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x13] - mov r9, r0 - ldr r0, _08039870 @ =gUnknown_02024A60 - mov r8, r0 - ldrb r1, [r0] - mov r0, r9 - bl sub_8031A6C - mov r1, r8 - ldrb r0, [r1] - bl battle_get_per_side_status - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, r9 - bl GetMonSpriteTemplate_803C5A0 - ldr r6, _08039874 @ =gUnknown_02024E8C - lsls r5, 16 - movs r2, 0xB0 - lsls r2, 16 - adds r5, r2 - asrs r5, 16 - ldr r1, _08039878 @ =gTrainerFrontPicCoords - mov r2, r9 - lsls r0, r2, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 14 - adds r4, r0 - asrs r4, 16 - mov r1, r8 - ldrb r0, [r1] - bl sub_8079E90 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl CreateSprite - ldr r5, _0803987C @ =gUnknown_02024BE0 - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - strb r0, [r1] - ldr r4, _08039880 @ =gSprites - ldrb r0, [r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _08039884 @ =0x0000ff10 - strh r1, [r0, 0x24] - ldrb r0, [r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x2 - strh r1, [r0, 0x2E] - ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable - mov r1, r9 - lsls r6, r1, 3 - adds r0, r6, r0 - ldrh r0, [r0, 0x4] - bl IndexOfSpritePaletteTag - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - ldrb r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r4 - lsls r0, 4 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - orrs r1, r0 - strb r1, [r2, 0x5] - mov r1, r8 - ldrb r0, [r1] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x4] - lsls r0, 22 - lsrs r0, 22 - strh r0, [r1, 0x38] - ldr r0, _0803988C @ =gTrainerFrontPicTable - adds r6, r0 - ldrh r0, [r6, 0x6] - bl GetSpriteTileStartByTag - mov r2, r8 - ldrb r1, [r2] - adds r1, r5 - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldr r2, _08039890 @ =0x000003ff - ands r2, r0 - ldrh r3, [r1, 0x4] - ldr r0, _08039894 @ =0xfffffc00 - ands r0, r3 - orrs r0, r2 - strh r0, [r1, 0x4] - mov r1, r8 - ldrb r0, [r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - mov r2, r9 - strh r2, [r0, 0x6] - mov r1, r8 - ldrb r0, [r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _08039898 @ =sub_80313A0 - str r1, [r0] - ldr r1, _0803989C @ =gUnknown_03004330 - mov r2, r8 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080398A0 @ =sub_803757C - str r1, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803986C: .4byte gLinkPlayers -_08039870: .4byte gUnknown_02024A60 -_08039874: .4byte gUnknown_02024E8C -_08039878: .4byte gTrainerFrontPicCoords -_0803987C: .4byte gUnknown_02024BE0 -_08039880: .4byte gSprites -_08039884: .4byte 0x0000ff10 -_08039888: .4byte gTrainerFrontPicPaletteTable -_0803988C: .4byte gTrainerFrontPicTable -_08039890: .4byte 0x000003ff -_08039894: .4byte 0xfffffc00 -_08039898: .4byte sub_80313A0 -_0803989C: .4byte gUnknown_03004330 -_080398A0: .4byte sub_803757C - thumb_func_end sub_80396D0 - - thumb_func_start sub_80398A4 -sub_80398A4: @ 80398A4 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_80398A4 - - thumb_func_start sub_80398B0 -sub_80398B0: @ 80398B0 - push {r4-r6,lr} - ldr r6, _08039940 @ =gUnknown_02024BE0 - ldr r4, _08039944 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, _08039948 @ =gSprites - adds r0, r5 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0803994C @ =sub_8078B34 - str r1, [r0] - ldrb r0, [r4] - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, _08039950 @ =SpriteCallbackDummy - bl oamt_set_x3A_32 - ldr r1, _08039954 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08039958 @ =sub_80375B4 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08039940: .4byte gUnknown_02024BE0 -_08039944: .4byte gUnknown_02024A60 -_08039948: .4byte gSprites -_0803994C: .4byte sub_8078B34 -_08039950: .4byte SpriteCallbackDummy -_08039954: .4byte gUnknown_03004330 -_08039958: .4byte sub_80375B4 - thumb_func_end sub_80398B0 - - thumb_func_start sub_803995C -sub_803995C: @ 803995C - push {r4,r5,lr} - ldr r5, _080399A0 @ =gUnknown_02024A60 - ldrb r2, [r5] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - ldr r4, _080399A4 @ =0x02017810 - adds r3, r0, r4 - ldrb r0, [r3, 0x4] - cmp r0, 0 - bne _080399A8 - lsls r0, r2, 2 - adds r1, r4, 0 - subs r1, 0x10 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0803998E - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_0803998E: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _080399E4 - .align 2, 0 -_080399A0: .4byte gUnknown_02024A60 -_080399A4: .4byte 0x02017810 -_080399A8: - ldrb r1, [r3] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080399E4 - strb r0, [r3, 0x4] - movs r0, 0x10 - movs r1, 0x3F - bl PlaySE12WithPanning - ldr r2, _080399EC @ =gSprites - ldr r1, _080399F0 @ =gUnknown_02024BE0 - ldrb r0, [r5] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080399F4 @ =sub_8010384 - str r1, [r0] - ldr r1, _080399F8 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _080399FC @ =sub_8037B78 - str r1, [r0] -_080399E4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080399EC: .4byte gSprites -_080399F0: .4byte gUnknown_02024BE0 -_080399F4: .4byte sub_8010384 -_080399F8: .4byte gUnknown_03004330 -_080399FC: .4byte sub_8037B78 - thumb_func_end sub_803995C - - thumb_func_start sub_8039A00 -sub_8039A00: @ 8039A00 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039A00 - - thumb_func_start sub_8039A0C -sub_8039A0C: @ 8039A0C - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039A0C - - thumb_func_start sub_8039A18 -sub_8039A18: @ 8039A18 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039A18 - - thumb_func_start sub_8039A24 -sub_8039A24: @ 8039A24 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039A24 - - thumb_func_start sub_8039A30 -sub_8039A30: @ 8039A30 - push {r4-r6,lr} - ldr r6, _08039B14 @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - beq _08039A42 - b _08039B52 -_08039A42: - ldr r0, _08039B18 @ =gUnknown_02023A60 - mov r12, r0 - ldrb r2, [r6] - lsls r2, 9 - adds r0, 0x1 - adds r0, r2, r0 - ldrb r0, [r0] - mov r1, r12 - adds r1, 0x2 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - ldr r5, _08039B1C @ =gUnknown_0202F7C4 - mov r1, r12 - adds r1, 0x3 - adds r2, r1 - ldrb r1, [r2] - strb r1, [r5] - ldr r4, _08039B20 @ =gUnknown_0202F7BC - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x4 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x5 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r4, _08039B24 @ =gUnknown_0202F7B8 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x6 - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0x7 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 8 - orrs r3, r1 - mov r1, r12 - adds r1, 0x8 - adds r1, r2, r1 - ldrb r1, [r1] - lsls r1, 16 - orrs r3, r1 - mov r1, r12 - adds r1, 0x9 - adds r2, r1 - ldrb r1, [r2] - lsls r1, 24 - orrs r3, r1 - str r3, [r4] - ldr r3, _08039B28 @ =gUnknown_0202F7BE - ldrb r1, [r6] - lsls r1, 9 - mov r2, r12 - adds r2, 0xA - adds r1, r2 - ldrb r1, [r1] - strb r1, [r3] - ldr r4, _08039B2C @ =gUnknown_0202F7C0 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0xC - adds r1, r2, r1 - ldrb r3, [r1] - mov r1, r12 - adds r1, 0xD - adds r2, r1 - ldrb r1, [r2] - lsls r1, 8 - orrs r3, r1 - strh r3, [r4] - ldr r3, _08039B30 @ =gUnknown_0202F7B4 - ldrb r2, [r6] - lsls r2, 9 - mov r1, r12 - adds r1, 0x10 - adds r2, r1 - str r2, [r3] - ldr r3, _08039B34 @ =gUnknown_02024E70 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r3 - ldr r2, [r2] - str r2, [r1] - ldrb r1, [r5] - bl sub_8031720 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _08039B38 - bl dp01_tbl4_exec_completed - b _08039B52 - .align 2, 0 -_08039B14: .4byte gUnknown_02024A60 -_08039B18: .4byte gUnknown_02023A60 -_08039B1C: .4byte gUnknown_0202F7C4 -_08039B20: .4byte gUnknown_0202F7BC -_08039B24: .4byte gUnknown_0202F7B8 -_08039B28: .4byte gUnknown_0202F7BE -_08039B2C: .4byte gUnknown_0202F7C0 -_08039B30: .4byte gUnknown_0202F7B4 -_08039B34: .4byte gUnknown_02024E70 -_08039B38: - ldrb r1, [r6] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08039B58 @ =0x02017810 - adds r0, r1 - strb r2, [r0, 0x4] - ldr r1, _08039B5C @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _08039B60 @ =sub_8039B64 - str r1, [r0] -_08039B52: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08039B58: .4byte 0x02017810 -_08039B5C: .4byte gUnknown_03004330 -_08039B60: .4byte sub_8039B64 - thumb_func_end sub_8039A30 - - thumb_func_start sub_8039B64 -sub_8039B64: @ 8039B64 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, _08039BA8 @ =gUnknown_02023A60 - ldr r5, _08039BAC @ =gUnknown_02024A60 - ldrb r3, [r5] - lsls r1, r3, 9 - adds r0, r2, 0x1 - mov r9, r0 - adds r0, r1, r0 - ldrb r4, [r0] - adds r6, r2, 0x2 - mov r8, r6 - adds r0, r1, r6 - ldrb r0, [r0] - lsls r0, 8 - orrs r4, r0 - adds r2, 0xB - adds r1, r2 - ldrb r7, [r1] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r6, _08039BB0 @ =0x02017810 - adds r0, r6 - ldrb r2, [r0, 0x4] - cmp r2, 0x1 - beq _08039BF2 - cmp r2, 0x1 - bgt _08039BB4 - cmp r2, 0 - beq _08039BBE - b _08039CBC - .align 2, 0 -_08039BA8: .4byte gUnknown_02023A60 -_08039BAC: .4byte gUnknown_02024A60 -_08039BB0: .4byte 0x02017810 -_08039BB4: - cmp r2, 0x2 - beq _08039C18 - cmp r2, 0x3 - beq _08039C84 - b _08039CBC -_08039BBE: - lsls r1, r3, 2 - adds r0, r6, 0 - subs r0, 0x10 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0xC - ands r0, r2 - cmp r0, 0x4 - bne _08039BE2 - movs r0, 0x8 - orrs r0, r2 - strb r0, [r1] - ldrb r2, [r5] - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x5 - bl move_anim_start_t4 -_08039BE2: - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x1 - strb r0, [r1, 0x4] - b _08039CBC -_08039BF2: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08039CBC - movs r0, 0 - bl sub_80326EC - adds r0, r4, 0 - bl move_anim_start_t1 - ldrb r0, [r5] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0x2 - strb r0, [r1, 0x4] - b _08039CBC -_08039C18: - ldr r0, _08039C74 @ =gUnknown_0202F7AC - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _08039C78 @ =gUnknown_0202F7B1 - ldrb r0, [r0] - cmp r0, 0 - bne _08039CBC - movs r0, 0x1 - bl sub_80326EC - ldrb r2, [r5] - lsls r0, r2, 2 - adds r4, r6, 0 - subs r4, 0x10 - adds r0, r4 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08039C60 - cmp r7, 0x1 - bhi _08039C60 - adds r0, r2, 0 - adds r1, r2, 0 - movs r3, 0x6 - bl move_anim_start_t4 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r4 - ldrb r2, [r0] - movs r1, 0x9 - negs r1, r1 - ands r1, r2 - strb r1, [r0] -_08039C60: - ldr r0, _08039C7C @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _08039C80 @ =0x02017810 - adds r0, r1 - movs r1, 0x3 - strb r1, [r0, 0x4] - b _08039CBC - .align 2, 0 -_08039C74: .4byte gUnknown_0202F7AC -_08039C78: .4byte gUnknown_0202F7B1 -_08039C7C: .4byte gUnknown_02024A60 -_08039C80: .4byte 0x02017810 -_08039C84: - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08039CBC - bl sub_8031F24 - ldrb r0, [r5] - lsls r2, r0, 9 - mov r3, r9 - adds r1, r2, r3 - ldrb r1, [r1] - add r2, r8 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - bl sub_80324BC - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - strb r4, [r0, 0x4] - bl dp01_tbl4_exec_completed -_08039CBC: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8039B64 - - thumb_func_start sub_8039CC8 -sub_8039CC8: @ 8039CC8 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08039D0C @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08039D10 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r4, _08039D14 @ =gUnknown_02024A60 - ldrb r0, [r4] - lsls r0, 9 - ldr r1, _08039D18 @ =gUnknown_02023A62 - adds r0, r1 - ldrh r0, [r0] - bl sub_8120AA8 - ldr r0, _08039D1C @ =gUnknown_03004210 - ldr r1, _08039D20 @ =gUnknown_020238CC - movs r2, 0xF - str r2, [sp] - movs r2, 0x90 - movs r3, 0x2 - bl sub_8002EB0 - ldr r1, _08039D24 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08039D28 @ =sub_8037C2C - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08039D0C: .4byte gUnknown_030042A4 -_08039D10: .4byte gUnknown_030042A0 -_08039D14: .4byte gUnknown_02024A60 -_08039D18: .4byte gUnknown_02023A62 -_08039D1C: .4byte gUnknown_03004210 -_08039D20: .4byte gUnknown_020238CC -_08039D24: .4byte gUnknown_03004330 -_08039D28: .4byte sub_8037C2C - thumb_func_end sub_8039CC8 - - thumb_func_start sub_8039D2C -sub_8039D2C: @ 8039D2C - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039D2C - - thumb_func_start sub_8039D38 -sub_8039D38: @ 8039D38 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039D38 - - thumb_func_start sub_8039D44 -sub_8039D44: @ 8039D44 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039D44 - - thumb_func_start sub_8039D50 -sub_8039D50: @ 8039D50 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039D50 - - thumb_func_start sub_8039D5C -sub_8039D5C: @ 8039D5C - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039D5C - - thumb_func_start sub_8039D68 -sub_8039D68: @ 8039D68 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039D68 - - thumb_func_start sub_8039D74 -sub_8039D74: @ 8039D74 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039D74 - - thumb_func_start sub_8039D80 -sub_8039D80: @ 8039D80 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r0, 0 - bl load_gfxc_health_bar - ldr r3, _08039DF8 @ =gUnknown_02023A60 - ldr r0, _08039DFC @ =gUnknown_02024A60 - mov r9, r0 - ldrb r4, [r0] - lsls r2, r4, 9 - adds r0, r3, 0x2 - adds r0, r2, r0 - ldrb r1, [r0] - adds r3, 0x3 - adds r2, r3 - ldrb r0, [r2] - lsls r0, 8 - orrs r1, r0 - lsls r1, 16 - asrs r7, r1, 16 - ldr r0, _08039E00 @ =0x00007fff - cmp r7, r0 - beq _08039E10 - ldr r6, _08039E04 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r6 - ldrh r0, [r0] - movs r5, 0x64 - muls r0, r5 - ldr r4, _08039E08 @ =gEnemyParty - adds r0, r4 - movs r1, 0x3A - bl GetMonData - mov r8, r0 - mov r1, r9 - ldrb r0, [r1] - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - muls r0, r5 - adds r0, r4 - movs r1, 0x39 - bl GetMonData - adds r3, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _08039E0C @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - mov r2, r8 - bl sub_8043D84 - b _08039E3A - .align 2, 0 -_08039DF8: .4byte gUnknown_02023A60 -_08039DFC: .4byte gUnknown_02024A60 -_08039E00: .4byte 0x00007fff -_08039E04: .4byte gUnknown_02024A6A -_08039E08: .4byte gEnemyParty -_08039E0C: .4byte gUnknown_03004340 -_08039E10: - ldr r1, _08039E58 @ =gUnknown_02024A6A - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _08039E5C @ =gEnemyParty - adds r0, r1 - movs r1, 0x3A - bl GetMonData - adds r2, r0, 0 - mov r1, r9 - ldrb r0, [r1] - ldr r1, _08039E60 @ =gUnknown_03004340 - adds r1, r0, r1 - ldrb r1, [r1] - str r7, [sp] - movs r3, 0 - bl sub_8043D84 -_08039E3A: - ldr r1, _08039E64 @ =gUnknown_03004330 - ldr r0, _08039E68 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _08039E6C @ =sub_8037B24 - str r1, [r0] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08039E58: .4byte gUnknown_02024A6A -_08039E5C: .4byte gEnemyParty -_08039E60: .4byte gUnknown_03004340 -_08039E64: .4byte gUnknown_03004330 -_08039E68: .4byte gUnknown_02024A60 -_08039E6C: .4byte sub_8037B24 - thumb_func_end sub_8039D80 - - thumb_func_start sub_8039E70 -sub_8039E70: @ 8039E70 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039E70 - - thumb_func_start sub_8039E7C -sub_8039E7C: @ 8039E7C - push {r4,lr} - ldr r4, _08039ED4 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08039ECC - ldr r0, _08039ED8 @ =gUnknown_03004340 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - ldr r2, _08039EDC @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, _08039EE0 @ =gEnemyParty - adds r1, r2 - movs r2, 0x9 - bl sub_8045A5C - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - ldr r0, _08039EE4 @ =0x02017810 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, _08039EE8 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _08039EEC @ =sub_8037FAC - str r1, [r0] -_08039ECC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08039ED4: .4byte gUnknown_02024A60 -_08039ED8: .4byte gUnknown_03004340 -_08039EDC: .4byte gUnknown_02024A6A -_08039EE0: .4byte gEnemyParty -_08039EE4: .4byte 0x02017810 -_08039EE8: .4byte gUnknown_03004330 -_08039EEC: .4byte sub_8037FAC - thumb_func_end sub_8039E7C - - thumb_func_start sub_8039EF0 -sub_8039EF0: @ 8039EF0 - push {r4,r5,lr} - ldr r5, _08039F48 @ =gUnknown_02024A60 - ldrb r0, [r5] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _08039F40 - ldr r4, _08039F4C @ =gUnknown_02023A60 - ldrb r3, [r5] - lsls r3, 9 - adds r0, r4, 0x1 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0x2 - adds r1, r3, r1 - ldrb r1, [r1] - adds r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 8 - orrs r1, r2 - adds r2, r4, 0x4 - adds r2, r3, r2 - ldrb r2, [r2] - lsls r2, 16 - orrs r1, r2 - adds r4, 0x5 - adds r3, r4 - ldrb r2, [r3] - lsls r2, 24 - orrs r1, r2 - bl move_anim_start_t2_for_situation - ldr r1, _08039F50 @ =gUnknown_03004330 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, _08039F54 @ =sub_8037FAC - str r1, [r0] -_08039F40: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08039F48: .4byte gUnknown_02024A60 -_08039F4C: .4byte gUnknown_02023A60 -_08039F50: .4byte gUnknown_03004330 -_08039F54: .4byte sub_8037FAC - thumb_func_end sub_8039EF0 - - thumb_func_start sub_8039F58 -sub_8039F58: @ 8039F58 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039F58 - - thumb_func_start sub_8039F64 -sub_8039F64: @ 8039F64 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039F64 - - thumb_func_start sub_8039F70 -sub_8039F70: @ 8039F70 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039F70 - - thumb_func_start sub_8039F7C -sub_8039F7C: @ 8039F7C - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039F7C - - thumb_func_start sub_8039F88 -sub_8039F88: @ 8039F88 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039F88 - - thumb_func_start sub_8039F94 -sub_8039F94: @ 8039F94 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039F94 - - thumb_func_start sub_8039FA0 -sub_8039FA0: @ 8039FA0 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039FA0 - - thumb_func_start sub_8039FAC -sub_8039FAC: @ 8039FAC - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039FAC - - thumb_func_start sub_8039FB8 -sub_8039FB8: @ 8039FB8 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_8039FB8 - - thumb_func_start sub_8039FC4 -sub_8039FC4: @ 8039FC4 - push {lr} - ldr r2, _08039FDC @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x80 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_08039FDC: .4byte gUnknown_020238C8 - thumb_func_end sub_8039FC4 - - thumb_func_start sub_8039FE0 -sub_8039FE0: @ 8039FE0 - push {lr} - ldr r3, _0803A00C @ =gUnknown_020238C8 - ldr r1, _0803A010 @ =gUnknown_02023A60 - ldr r0, _0803A014 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x7F - ands r1, r0 - ldrb r2, [r3] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0803A00C: .4byte gUnknown_020238C8 -_0803A010: .4byte gUnknown_02023A60 -_0803A014: .4byte gUnknown_02024A60 - thumb_func_end sub_8039FE0 - - thumb_func_start sub_803A018 -sub_803A018: @ 803A018 - push {lr} - ldr r2, _0803A02C @ =gUnknown_020238C8 - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0803A02C: .4byte gUnknown_020238C8 - thumb_func_end sub_803A018 - - thumb_func_start sub_803A030 -sub_803A030: @ 803A030 - push {lr} - ldr r3, _0803A054 @ =gUnknown_020238C8 - ldr r1, [r3] - lsls r1, 24 - lsrs r1, 31 - movs r0, 0x1 - eors r1, r0 - lsls r1, 7 - ldrb r2, [r3] - movs r0, 0x7F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0803A054: .4byte gUnknown_020238C8 - thumb_func_end sub_803A030 - - thumb_func_start dp01t_29_4_blink -dp01t_29_4_blink: @ 803A058 - push {r4,lr} - ldr r3, _0803A080 @ =gSprites - ldr r2, _0803A084 @ =gUnknown_02024BE0 - ldr r4, _0803A088 @ =gUnknown_02024A60 - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 29 - cmp r0, 0 - bge _0803A08C - bl dp01_tbl4_exec_completed - b _0803A0B6 - .align 2, 0 -_0803A080: .4byte gSprites -_0803A084: .4byte gUnknown_02024BE0 -_0803A088: .4byte gUnknown_02024A60 -_0803A08C: - ldr r1, _0803A0BC @ =gUnknown_02024E6D - movs r0, 0x1 - strb r0, [r1] - ldrb r0, [r4] - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0 - strh r1, [r0, 0x30] - ldrb r0, [r4] - bl sub_8047858 - ldr r1, _0803A0C0 @ =gUnknown_03004330 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim - str r1, [r0] -_0803A0B6: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803A0BC: .4byte gUnknown_02024E6D -_0803A0C0: .4byte gUnknown_03004330 -_0803A0C4: .4byte dp01t_0F_4_move_anim - thumb_func_end dp01t_29_4_blink - - thumb_func_start sub_803A0C8 -sub_803A0C8: @ 803A0C8 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_803A0C8 - - thumb_func_start sub_803A0D4 -sub_803A0D4: @ 803A0D4 - push {r4,lr} - ldr r4, _0803A110 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl battle_side_get_owner - lsls r0, 24 - movs r3, 0x3F - cmp r0, 0 - bne _0803A0E8 - movs r3, 0xC0 -_0803A0E8: - ldr r2, _0803A114 @ =gUnknown_02023A60 - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - lsls r1, r3, 24 - asrs r1, 24 - bl PlaySE12WithPanning - bl dp01_tbl4_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803A110: .4byte gUnknown_02024A60 -_0803A114: .4byte gUnknown_02023A60 - thumb_func_end sub_803A0D4 - - thumb_func_start sub_803A118 -sub_803A118: @ 803A118 - push {lr} - ldr r2, _0803A140 @ =gUnknown_02023A60 - ldr r0, _0803A144 @ =gUnknown_02024A60 - ldrb r1, [r0] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r1, [r1] - lsls r1, 8 - orrs r0, r1 - bl PlayFanfare - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0803A140: .4byte gUnknown_02023A60 -_0803A144: .4byte gUnknown_02024A60 - thumb_func_end sub_803A118 - - thumb_func_start sub_803A148 -sub_803A148: @ 803A148 - push {lr} - ldr r1, _0803A178 @ =gUnknown_02024A6A - ldr r0, _0803A17C @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, _0803A180 @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x19 - movs r2, 0x5 - bl PlayCry3 - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0803A178: .4byte gUnknown_02024A6A -_0803A17C: .4byte gUnknown_02024A60 -_0803A180: .4byte gEnemyParty - thumb_func_end sub_803A148 - - thumb_func_start dp01t_2E_4_battle_intro -dp01t_2E_4_battle_intro: @ 803A184 - push {lr} - ldr r1, _0803A1AC @ =gUnknown_02023A60 - ldr r0, _0803A1B0 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - bl sub_80E43C0 - ldr r2, _0803A1B4 @ =gUnknown_02024DE8 - ldrh r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strh r0, [r2] - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0803A1AC: .4byte gUnknown_02023A60 -_0803A1B0: .4byte gUnknown_02024A60 -_0803A1B4: .4byte gUnknown_02024DE8 - thumb_func_end dp01t_2E_4_battle_intro - - thumb_func_start sub_803A1B8 -sub_803A1B8: @ 803A1B8 - push {r4-r6,lr} - ldr r5, _0803A294 @ =gUnknown_02024BE0 - ldr r6, _0803A298 @ =gUnknown_02024A60 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0803A29C @ =gSprites - adds r0, r4 - bl oamt_add_pos2_onto_pos1 - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x23 - strh r1, [r0, 0x2E] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x8C - lsls r1, 1 - strh r1, [r0, 0x32] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x22] - strh r1, [r0, 0x36] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, _0803A2A0 @ =sub_8078B34 - str r1, [r0] - ldrb r0, [r6] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _0803A2A4 @ =sub_803A3A8 - bl oamt_set_x3A_32 - ldr r0, _0803A2A8 @ =sub_803A2C4 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r4, _0803A2AC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4 - ldrb r0, [r6] - strh r0, [r1, 0x8] - ldrb r3, [r6] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r2, _0803A2B0 @ =0x02017810 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0803A276 - ldr r0, _0803A2B4 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r4 - ldr r1, _0803A2B8 @ =sub_8044CA0 - str r1, [r0] -_0803A276: - adds r2, 0x30 - ldrb r0, [r2, 0x9] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - ldr r1, _0803A2BC @ =gUnknown_03004330 - ldrb r0, [r6] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803A2C0 @ =nullsub_47 - str r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803A294: .4byte gUnknown_02024BE0 -_0803A298: .4byte gUnknown_02024A60 -_0803A29C: .4byte gSprites -_0803A2A0: .4byte sub_8078B34 -_0803A2A4: .4byte sub_803A3A8 -_0803A2A8: .4byte sub_803A2C4 -_0803A2AC: .4byte gTasks -_0803A2B0: .4byte 0x02017810 -_0803A2B4: .4byte gUnknown_02024E68 -_0803A2B8: .4byte sub_8044CA0 -_0803A2BC: .4byte gUnknown_03004330 -_0803A2C0: .4byte nullsub_47 - thumb_func_end sub_803A1B8 - - thumb_func_start sub_803A2C4 -sub_803A2C4: @ 803A2C4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldr r7, _0803A31C @ =gUnknown_02024A60 - ldrb r0, [r7] - mov r9, r0 - ldr r1, _0803A320 @ =gTasks - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x8] - strb r0, [r7] - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _0803A2FE - ldr r0, _0803A324 @ =gUnknown_020239F8 - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0803A330 -_0803A2FE: - ldr r0, _0803A328 @ =gUnknown_02023A60 - ldrb r1, [r7] - lsls r2, r1, 9 - adds r0, 0x1 - adds r2, r0 - ldr r0, _0803A32C @ =gUnknown_02024A6A - lsls r1, 1 - adds r1, r0 - ldrh r0, [r1] - strb r0, [r2] - ldrb r0, [r7] - movs r1, 0 - bl sub_8039430 - b _0803A370 - .align 2, 0 -_0803A31C: .4byte gUnknown_02024A60 -_0803A320: .4byte gTasks -_0803A324: .4byte gUnknown_020239F8 -_0803A328: .4byte gUnknown_02023A60 -_0803A32C: .4byte gUnknown_02024A6A -_0803A330: - ldr r4, _0803A394 @ =gUnknown_02023A60 - ldrb r0, [r7] - lsls r1, r0, 9 - adds r4, 0x1 - adds r1, r4 - ldr r6, _0803A398 @ =gUnknown_02024A6A - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_8039430 - ldrb r0, [r7] - movs r5, 0x2 - eors r0, r5 - strb r0, [r7] - ldrb r0, [r7] - lsls r1, r0, 9 - adds r1, r4 - lsls r0, 1 - adds r0, r6 - ldrh r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r1, 0 - bl sub_8039430 - ldrb r0, [r7] - eors r0, r5 - strb r0, [r7] -_0803A370: - ldr r1, _0803A39C @ =gUnknown_03004330 - ldr r2, _0803A3A0 @ =gUnknown_02024A60 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803A3A4 @ =sub_8037840 - str r1, [r0] - mov r0, r9 - strb r0, [r2] - mov r0, r8 - bl DestroyTask - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0803A394: .4byte gUnknown_02023A60 -_0803A398: .4byte gUnknown_02024A6A -_0803A39C: .4byte gUnknown_03004330 -_0803A3A0: .4byte gUnknown_02024A60 -_0803A3A4: .4byte sub_8037840 - thumb_func_end sub_803A2C4 - - thumb_func_start sub_803A3A8 -sub_803A3A8: @ 803A3A8 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x6] - bl sub_8031B74 - ldrh r0, [r4, 0x38] - ldr r1, _0803A3D4 @ =0x000003ff - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, _0803A3D8 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803A3D4: .4byte 0x000003ff -_0803A3D8: .4byte 0xfffffc00 - thumb_func_end sub_803A3A8 - - thumb_func_start sub_803A3DC -sub_803A3DC: @ 803A3DC - push {r4-r6,lr} - ldr r1, _0803A404 @ =gUnknown_02023A60 - ldr r0, _0803A408 @ =gUnknown_02024A60 - ldrb r2, [r0] - lsls r0, r2, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0803A40C - adds r0, r2, 0 - bl battle_side_get_owner - lsls r0, 24 - cmp r0, 0 - bne _0803A40C - bl dp01_tbl4_exec_completed - b _0803A4C6 - .align 2, 0 -_0803A404: .4byte gUnknown_02023A60 -_0803A408: .4byte gUnknown_02024A60 -_0803A40C: - ldr r3, _0803A45C @ =gUnknown_02024A60 - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r4, _0803A460 @ =0x02017810 - adds r0, r4 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0803A464 @ =gUnknown_02023A60 - ldrb r2, [r3] - lsls r0, r2, 9 - adds r1, 0x2 - adds r0, r1 - ldrb r0, [r0] - adds r6, r3, 0 - cmp r0, 0 - beq _0803A470 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r2, [r3, 0x1] - lsls r1, r2, 26 - lsrs r0, r1, 27 - cmp r0, 0x1 - bhi _0803A468 - adds r0, 0x1 - movs r1, 0x1F - ands r0, r1 - lsls r0, 1 - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0x1] - b _0803A4C6 - .align 2, 0 -_0803A45C: .4byte gUnknown_02024A60 -_0803A460: .4byte 0x02017810 -_0803A464: .4byte gUnknown_02023A60 -_0803A468: - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - strb r0, [r3, 0x1] -_0803A470: - adds r5, r6, 0 - ldrb r0, [r5] - lsls r3, r0, 9 - ldr r4, _0803A4CC @ =gUnknown_02023A64 - adds r1, r3, r4 - subs r2, r4, 0x3 - adds r2, r3, r2 - ldrb r2, [r2] - subs r4, 0x2 - adds r3, r4 - ldrb r3, [r3] - bl sub_8044804 - ldr r2, _0803A4D0 @ =gUnknown_02024E68 - ldrb r1, [r5] - adds r1, r2 - movs r2, 0 - strb r0, [r1] - ldrb r1, [r5] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _0803A4D4 @ =0x02017810 - adds r0, r3 - strb r2, [r0, 0x5] - ldrb r1, [r5] - lsls r0, r1, 9 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0803A4BA - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - movs r1, 0x5D - strb r1, [r0, 0x5] -_0803A4BA: - ldr r0, _0803A4D8 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _0803A4DC @ =sub_803A4E0 - str r0, [r1] -_0803A4C6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803A4CC: .4byte gUnknown_02023A64 -_0803A4D0: .4byte gUnknown_02024E68 -_0803A4D4: .4byte 0x02017810 -_0803A4D8: .4byte gUnknown_03004330 -_0803A4DC: .4byte sub_803A4E0 - thumb_func_end sub_803A3DC - - thumb_func_start sub_803A4E0 -sub_803A4E0: @ 803A4E0 - push {r4,lr} - ldr r4, _0803A518 @ =gUnknown_02024A60 - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r3, _0803A51C @ =0x02017810 - adds r0, r3 - ldrb r1, [r0, 0x5] - adds r2, r1, 0x1 - strb r2, [r0, 0x5] - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x5C - bls _0803A510 - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r0, 0 - strb r0, [r1, 0x5] - bl dp01_tbl4_exec_completed -_0803A510: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803A518: .4byte gUnknown_02024A60 -_0803A51C: .4byte 0x02017810 - thumb_func_end sub_803A4E0 - - thumb_func_start sub_803A520 -sub_803A520: @ 803A520 - push {lr} - ldr r0, _0803A558 @ =gUnknown_02024A60 - ldrb r3, [r0] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - ldr r1, _0803A55C @ =0x02017810 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0803A54E - ldr r2, _0803A560 @ =gTasks - ldr r0, _0803A564 @ =gUnknown_02024E68 - adds r0, r3, r0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldr r1, _0803A568 @ =sub_8044CA0 - str r1, [r0] -_0803A54E: - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - .align 2, 0 -_0803A558: .4byte gUnknown_02024A60 -_0803A55C: .4byte 0x02017810 -_0803A560: .4byte gTasks -_0803A564: .4byte gUnknown_02024E68 -_0803A568: .4byte sub_8044CA0 - thumb_func_end sub_803A520 - - thumb_func_start sub_803A56C -sub_803A56C: @ 803A56C - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_803A56C - - thumb_func_start sub_803A578 -sub_803A578: @ 803A578 - push {r4,lr} - ldr r4, _0803A5C8 @ =gUnknown_02024A60 - ldrb r0, [r4] - bl sub_8078874 - lsls r0, 24 - cmp r0, 0 - beq _0803A5BE - ldr r3, _0803A5CC @ =gSprites - ldr r0, _0803A5D0 @ =gUnknown_02024BE0 - ldrb r1, [r4] - adds r0, r1, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldr r0, _0803A5D4 @ =gUnknown_02023A60 - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - adds r2, 0x3E - movs r0, 0x1 - ldrb r1, [r1] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r4] - bl sub_8031F88 -_0803A5BE: - bl dp01_tbl4_exec_completed - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0803A5C8: .4byte gUnknown_02024A60 -_0803A5CC: .4byte gSprites -_0803A5D0: .4byte gUnknown_02024BE0 -_0803A5D4: .4byte gUnknown_02023A60 - thumb_func_end sub_803A578 - - thumb_func_start bx_exec_buffer_A_ch0_tbl4 -bx_exec_buffer_A_ch0_tbl4: @ 803A5D8 - push {r4-r6,lr} - sub sp, 0x4 - ldr r6, _0803A61C @ =gUnknown_02024A60 - ldrb r0, [r6] - bl mplay_80342A4 - lsls r0, 24 - cmp r0, 0 - bne _0803A630 - ldr r5, _0803A620 @ =gUnknown_02023A60 - ldrb r2, [r6] - lsls r1, r2, 9 - adds r0, r5, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r0, r5, 0x2 - adds r0, r1, r0 - ldrb r4, [r0] - adds r5, 0x3 - adds r1, r5 - ldrb r0, [r1] - lsls r0, 8 - orrs r4, r0 - str r4, [sp] - adds r0, r2, 0 - adds r1, r2, 0 - bl move_anim_start_t3 - lsls r0, 24 - cmp r0, 0 - beq _0803A624 - bl dp01_tbl4_exec_completed - b _0803A630 - .align 2, 0 -_0803A61C: .4byte gUnknown_02024A60 -_0803A620: .4byte gUnknown_02023A60 -_0803A624: - ldr r0, _0803A638 @ =gUnknown_03004330 - ldrb r1, [r6] - lsls r1, 2 - adds r1, r0 - ldr r0, _0803A63C @ =sub_8037FD8 - str r0, [r1] -_0803A630: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803A638: .4byte gUnknown_03004330 -_0803A63C: .4byte sub_8037FD8 - thumb_func_end bx_exec_buffer_A_ch0_tbl4 - - thumb_func_start sub_803A640 -sub_803A640: @ 803A640 - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_803A640 - - thumb_func_start sub_803A64C -sub_803A64C: @ 803A64C - push {lr} - bl dp01_tbl4_exec_completed - pop {r0} - bx r0 - thumb_func_end sub_803A64C - - thumb_func_start sub_803A658 -sub_803A658: @ 803A658 - push {lr} - ldr r1, _0803A674 @ =gUnknown_02023A60 - ldr r0, _0803A678 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r2, [r0] - cmp r2, 0x3 - bne _0803A680 - ldr r0, _0803A67C @ =gUnknown_02024D26 - strb r2, [r0] - b _0803A688 - .align 2, 0 -_0803A674: .4byte gUnknown_02023A60 -_0803A678: .4byte gUnknown_02024A60 -_0803A67C: .4byte gUnknown_02024D26 -_0803A680: - ldr r0, _0803A6AC @ =gUnknown_02024D26 - movs r1, 0x3 - eors r1, r2 - strb r1, [r0] -_0803A688: - movs r0, 0x5 - bl FadeOutMapMusic - movs r0, 0x3 - bl BeginFastPaletteFade - bl dp01_tbl4_exec_completed - ldr r1, _0803A6B0 @ =gUnknown_03004330 - ldr r0, _0803A6B4 @ =gUnknown_02024A60 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r1, _0803A6B8 @ =sub_8037F34 - str r1, [r0] - pop {r0} - bx r0 - .align 2, 0 -_0803A6AC: .4byte gUnknown_02024D26 -_0803A6B0: .4byte gUnknown_03004330 -_0803A6B4: .4byte gUnknown_02024A60 -_0803A6B8: .4byte sub_8037F34 - thumb_func_end sub_803A658 - - thumb_func_start nullsub_48 -nullsub_48: @ 803A6BC - bx lr - thumb_func_end nullsub_48 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_800D42C.s b/asm/rom_800D42C.s new file mode 100644 index 000000000..65b0279ed --- /dev/null +++ b/asm/rom_800D42C.s @@ -0,0 +1,88931 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start unref_sub_800D42C +unref_sub_800D42C: @ 800D42C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + mov r9, r0 + str r1, [sp] + str r2, [sp, 0x4] + adds r5, r3, 0 + movs r0, 0x1 + mov r1, r9 + ands r0, r1 + cmp r0, 0 + bne _0800D44C + b _0800D5E4 +_0800D44C: + asrs r0, r1, 1 + adds r0, 0x4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + movs r0, 0 + ldr r2, [sp] + cmp r0, r2 + blt _0800D460 + b _0800D674 +_0800D460: + movs r4, 0x8 + subs r1, r4, r1 + str r1, [sp, 0x10] +_0800D466: + movs r7, 0 + adds r0, 0x1 + str r0, [sp, 0x14] + ldr r0, [sp, 0x10] + cmp r7, r0 + bge _0800D4E2 + ldr r1, [sp, 0x8] + lsls r1, 8 + str r1, [sp, 0x18] + movs r2, 0 + mov r10, r2 + mov r0, r9 + movs r4, 0x8 + subs r0, r4, r0 + str r0, [sp, 0xC] +_0800D484: + movs r3, 0 + asrs r0, r7, 1 + adds r1, r7, 0 + movs r2, 0x1 + ands r1, r2 + str r1, [sp, 0x20] + lsls r0, 8 + mov r8, r0 + mov r12, r5 +_0800D496: + lsls r1, r3, 5 + ldr r4, [sp, 0x18] + adds r0, r5, r4 + adds r0, r1 + mov r1, r8 + adds r2, r0, r1 + mov r1, r12 + add r1, r8 + movs r6, 0xF +_0800D4A8: + ldr r4, [sp, 0x20] + cmp r4, 0 + bne _0800D4B8 + strb r4, [r1] + add r4, sp, 0x20 + ldrb r4, [r4] + strb r4, [r2, 0x10] + b _0800D4C6 +_0800D4B8: + mov r0, r10 + strb r0, [r1, 0x10] + movs r4, 0x80 + lsls r4, 1 + adds r4, r2, r4 + str r4, [sp, 0x1C] + strb r0, [r4] +_0800D4C6: + adds r2, 0x1 + adds r1, 0x1 + subs r6, 0x1 + cmp r6, 0 + bge _0800D4A8 + movs r0, 0x20 + add r12, r0 + adds r3, 0x1 + cmp r3, 0x7 + ble _0800D496 + adds r7, 0x1 + ldr r1, [sp, 0xC] + cmp r7, r1 + blt _0800D484 +_0800D4E2: + movs r7, 0 + movs r2, 0 +_0800D4E6: + movs r6, 0 + adds r4, r7, 0x1 + mov r8, r4 + lsls r4, r7, 5 +_0800D4EE: + adds r0, r6, 0x1 + mov r10, r0 + lsls r1, r6, 8 + adds r0, r1, 0 + adds r0, 0xC0 + adds r0, r5, r0 + adds r0, r4 + adds r1, r5, r1 + adds r1, r4 + movs r3, 0x1F +_0800D502: + strb r2, [r1] + strb r2, [r0] + adds r0, 0x1 + adds r1, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _0800D502 + mov r6, r10 + cmp r6, 0x7 + ble _0800D4EE + mov r7, r8 + cmp r7, 0x1 + ble _0800D4E6 + mov r1, r9 + cmp r1, 0x5 + bne _0800D528 + movs r2, 0x90 + lsls r2, 1 + adds r5, r2 +_0800D528: + movs r7, 0 + cmp r7, r9 + bge _0800D5BE +_0800D52E: + movs r3, 0 + adds r7, 0x1 + mov r8, r7 + cmp r3, r9 + bge _0800D59E +_0800D538: + adds r3, 0x1 + mov r10, r3 + ldr r4, [sp, 0x4] + adds r4, 0x20 + adds r7, r5, 0 + adds r7, 0x20 + movs r0, 0x12 + adds r0, r5 + mov r12, r0 + ldr r2, [sp, 0x4] + adds r3, r5, 0 + movs r6, 0x3 +_0800D550: + ldrb r0, [r2] + mov r1, r12 + strb r0, [r1] + ldrb r0, [r2, 0x1] + strb r0, [r1, 0x1] + ldrb r0, [r2, 0x2] + strb r0, [r1, 0x1E] + ldrb r0, [r2, 0x3] + strb r0, [r1, 0x1F] + movs r0, 0x81 + lsls r0, 1 + adds r1, r3, r0 + ldrb r0, [r2, 0x10] + strb r0, [r1] + ldr r0, _0800D5A8 @ =0x00000103 + adds r1, r3, r0 + ldrb r0, [r2, 0x11] + strb r0, [r1] + movs r0, 0x90 + lsls r0, 1 + adds r1, r3, r0 + ldrb r0, [r2, 0x12] + strb r0, [r1] + ldr r0, _0800D5AC @ =0x00000121 + adds r1, r3, r0 + ldrb r0, [r2, 0x13] + strb r0, [r1] + movs r1, 0x4 + add r12, r1 + adds r2, 0x4 + adds r3, 0x4 + subs r6, 0x1 + cmp r6, 0 + bge _0800D550 + str r4, [sp, 0x4] + adds r5, r7, 0 + mov r3, r10 + cmp r3, r9 + blt _0800D538 +_0800D59E: + mov r2, r9 + cmp r2, 0x7 + bne _0800D5B0 + adds r5, 0x20 + b _0800D5B8 + .align 2, 0 +_0800D5A8: .4byte 0x00000103 +_0800D5AC: .4byte 0x00000121 +_0800D5B0: + mov r4, r9 + cmp r4, 0x5 + bne _0800D5B8 + adds r5, 0x60 +_0800D5B8: + mov r7, r8 + cmp r7, r9 + blt _0800D52E +_0800D5BE: + mov r0, r9 + cmp r0, 0x7 + bne _0800D5CC + movs r1, 0x80 + lsls r1, 1 + adds r5, r1 + b _0800D5D8 +_0800D5CC: + mov r2, r9 + cmp r2, 0x5 + bne _0800D5D8 + movs r4, 0xF0 + lsls r4, 1 + adds r5, r4 +_0800D5D8: + ldr r0, [sp, 0x14] + ldr r1, [sp] + cmp r0, r1 + bge _0800D5E2 + b _0800D466 +_0800D5E2: + b _0800D674 +_0800D5E4: + movs r6, 0 + ldr r2, [sp] + cmp r6, r2 + bge _0800D674 +_0800D5EC: + adds r6, 0x1 + mov r10, r6 + mov r4, r9 + cmp r4, 0x6 + bne _0800D604 + movs r0, 0 + movs r3, 0xFF +_0800D5FA: + strb r0, [r5] + adds r5, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _0800D5FA +_0800D604: + movs r7, 0 + cmp r7, r9 + bge _0800D658 +_0800D60A: + adds r7, 0x1 + mov r8, r7 + mov r1, r9 + lsls r0, r1, 5 + cmp r1, 0x6 + bne _0800D624 + movs r1, 0 + movs r3, 0x1F +_0800D61A: + strb r1, [r5] + adds r5, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _0800D61A +_0800D624: + adds r1, r0, 0 + cmp r1, 0 + ble _0800D63E + adds r3, r1, 0 +_0800D62C: + ldr r2, [sp, 0x4] + ldrb r0, [r2] + strb r0, [r5] + adds r2, 0x1 + str r2, [sp, 0x4] + adds r5, 0x1 + subs r3, 0x1 + cmp r3, 0 + bne _0800D62C +_0800D63E: + mov r4, r9 + cmp r4, 0x6 + bne _0800D652 + movs r0, 0 + movs r3, 0x1F +_0800D648: + strb r0, [r5] + adds r5, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _0800D648 +_0800D652: + mov r7, r8 + cmp r7, r9 + blt _0800D60A +_0800D658: + mov r0, r9 + cmp r0, 0x6 + bne _0800D66C + movs r0, 0 + movs r3, 0xFF +_0800D662: + strb r0, [r5] + adds r5, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _0800D662 +_0800D66C: + mov r6, r10 + ldr r1, [sp] + cmp r6, r1 + blt _0800D5EC +_0800D674: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end unref_sub_800D42C + + thumb_func_start unref_sub_800D684 +unref_sub_800D684: @ 800D684 + push {lr} + bl ResetSpriteData + ldr r0, _0800D6B8 @ =gSpriteTemplate_81F96D0 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl CreateSprite + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0800D6BC @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + adds r1, 0x3E + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r0, _0800D6C0 @ =sub_800D6C4 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0800D6B8: .4byte gSpriteTemplate_81F96D0 +_0800D6BC: .4byte gSprites +_0800D6C0: .4byte sub_800D6C4 + thumb_func_end unref_sub_800D684 + + thumb_func_start sub_800D6C4 +sub_800D6C4: @ 800D6C4 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + pop {r0} + bx r0 + thumb_func_end sub_800D6C4 + + thumb_func_start sub_800D6D4 +sub_800D6D4: @ 800D6D4 + push {r4,r5,lr} + ldr r3, _0800D72C @ =0x04000208 + ldrh r2, [r3] + movs r5, 0 + strh r5, [r3] + ldr r4, _0800D730 @ =0x04000200 + ldrh r0, [r4] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r4] + strh r2, [r3] + ldr r1, _0800D734 @ =REG_DISPSTAT + movs r0, 0x8 + strh r0, [r1] + adds r1, 0x4 + movs r2, 0x98 + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0800D738 @ =0x00009c04 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0800D73C @ =0x00005e05 + adds r0, r2, 0 + strh r0, [r1] + adds r1, 0x2 + ldr r2, _0800D740 @ =0x00005a0b + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0800D744 @ =REG_BLDCNT + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + adds r0, 0x2 + strh r5, [r0] + subs r1, 0xE + ldr r2, _0800D748 @ =0x0000bf40 + adds r0, r2, 0 + strh r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800D72C: .4byte 0x04000208 +_0800D730: .4byte 0x04000200 +_0800D734: .4byte REG_DISPSTAT +_0800D738: .4byte 0x00009c04 +_0800D73C: .4byte 0x00005e05 +_0800D740: .4byte 0x00005a0b +_0800D744: .4byte REG_BLDCNT +_0800D748: .4byte 0x0000bf40 + thumb_func_end sub_800D6D4 + + thumb_func_start sub_800D74C +sub_800D74C: @ 800D74C + push {r4,lr} + movs r0, 0x12 + bl SetTextWindowBaseTileNum + ldr r4, _0800D79C @ =gUnknown_03004210 + adds r0, r4, 0 + movs r1, 0x1 + bl LoadTextWindowGraphics_OverridePalSlot + movs r0, 0x22 + bl SetTextWindowBaseTileNum + adds r0, r4, 0 + movs r1, 0x1 + bl LoadTextWindowGraphics_OverridePalSlot + ldr r3, _0800D7A0 @ =gPlttBufferUnfaded + adds r0, r3, 0 + adds r0, 0xB8 + ldr r1, _0800D7A4 @ =0x00007fe0 + strh r1, [r0] + adds r2, r3, 0 + adds r2, 0xBA + ldr r1, _0800D7A8 @ =0x00002529 + strh r1, [r2] + adds r2, 0x2 + ldr r1, _0800D7AC @ =0x00007fff + strh r1, [r2] + adds r2, 0x2 + ldr r1, _0800D7B0 @ =0x0000675a + strh r1, [r2] + ldr r1, _0800D7B4 @ =gPlttBufferFaded + 0xB8 + movs r2, 0x4 + bl CpuSet + bl sub_8032A38 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800D79C: .4byte gUnknown_03004210 +_0800D7A0: .4byte gPlttBufferUnfaded +_0800D7A4: .4byte 0x00007fe0 +_0800D7A8: .4byte 0x00002529 +_0800D7AC: .4byte 0x00007fff +_0800D7B0: .4byte 0x0000675a +_0800D7B4: .4byte gPlttBufferFaded + 0xB8 + thumb_func_end sub_800D74C + + thumb_func_start sub_800D7B8 +sub_800D7B8: @ 800D7B8 + push {r4,r5,lr} + ldr r0, _0800D7DC @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0800D7E0 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + beq _0800D7F8 + ldr r0, _0800D7E4 @ =gBattleTerrainTiles_Building + ldr r1, _0800D7E8 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D7EC @ =gBattleTerrainTilemap_Building + ldr r1, _0800D7F0 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D7F4 @ =gBattleTerrainPalette_BattleTower + b _0800DA66 + .align 2, 0 +_0800D7DC: .4byte gUnknown_020239F8 +_0800D7E0: .4byte 0x00000902 +_0800D7E4: .4byte gBattleTerrainTiles_Building +_0800D7E8: .4byte 0x06008000 +_0800D7EC: .4byte gBattleTerrainTilemap_Building +_0800D7F0: .4byte 0x0600d000 +_0800D7F4: .4byte gBattleTerrainPalette_BattleTower +_0800D7F8: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _0800D860 + ldr r0, _0800D820 @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + bne _0800D838 + ldr r0, _0800D824 @ =gBattleTerrainTiles_Cave + ldr r1, _0800D828 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D82C @ =gBattleTerrainTilemap_Cave + ldr r1, _0800D830 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D834 @ =gBattleTerrainPalette_Groudon + b _0800DA66 + .align 2, 0 +_0800D820: .4byte gGameVersion +_0800D824: .4byte gBattleTerrainTiles_Cave +_0800D828: .4byte 0x06008000 +_0800D82C: .4byte gBattleTerrainTilemap_Cave +_0800D830: .4byte 0x0600d000 +_0800D834: .4byte gBattleTerrainPalette_Groudon +_0800D838: + ldr r0, _0800D84C @ =gBattleTerrainTiles_Water + ldr r1, _0800D850 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D854 @ =gBattleTerrainTilemap_Water + ldr r1, _0800D858 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D85C @ =gBattleTerrainPalette_Kyogre + b _0800DA66 + .align 2, 0 +_0800D84C: .4byte gBattleTerrainTiles_Water +_0800D850: .4byte 0x06008000 +_0800D854: .4byte gBattleTerrainTilemap_Water +_0800D858: .4byte 0x0600d000 +_0800D85C: .4byte gBattleTerrainPalette_Kyogre +_0800D860: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0800D8D8 + ldr r2, _0800D890 @ =gTrainers + ldr r0, _0800D894 @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0x19 + bne _0800D8AC + ldr r0, _0800D898 @ =gBattleTerrainTiles_Building + ldr r1, _0800D89C @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D8A0 @ =gBattleTerrainTilemap_Building + ldr r1, _0800D8A4 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D8A8 @ =gBattleTerrainPalette_BuildingLeader + b _0800DA66 + .align 2, 0 +_0800D890: .4byte gTrainers +_0800D894: .4byte gTrainerBattleOpponent +_0800D898: .4byte gBattleTerrainTiles_Building +_0800D89C: .4byte 0x06008000 +_0800D8A0: .4byte gBattleTerrainTilemap_Building +_0800D8A4: .4byte 0x0600d000 +_0800D8A8: .4byte gBattleTerrainPalette_BuildingLeader +_0800D8AC: + cmp r0, 0x20 + bne _0800D8D8 + ldr r0, _0800D8C4 @ =gBattleTerrainTiles_Stadium + ldr r1, _0800D8C8 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D8CC @ =gBattleTerrainTilemap_Stadium + ldr r1, _0800D8D0 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D8D4 @ =gBattleTerrainPalette_StadiumSteven + b _0800DA66 + .align 2, 0 +_0800D8C4: .4byte gBattleTerrainTiles_Stadium +_0800D8C8: .4byte 0x06008000 +_0800D8CC: .4byte gBattleTerrainTilemap_Stadium +_0800D8D0: .4byte 0x0600d000 +_0800D8D4: .4byte gBattleTerrainPalette_StadiumSteven +_0800D8D8: + bl sav1_map_get_battletype + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _0800D8E6 + b _0800DA9E +_0800D8E6: + lsls r0, 2 + ldr r1, _0800D8F0 @ =_0800D8F4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800D8F0: .4byte _0800D8F4 + .align 2, 0 +_0800D8F4: + .4byte _0800D918 + .4byte _0800D964 + .4byte _0800D98C + .4byte _0800D9B4 + .4byte _0800D9DC + .4byte _0800DA04 + .4byte _0800DA2C + .4byte _0800DA54 + .4byte _0800DA84 +_0800D918: + ldr r4, _0800D954 @ =gBattleTerrainTable + ldr r5, _0800D958 @ =gUnknown_0300428C + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldr r1, _0800D95C @ =0x06008000 + bl LZDecompressVram + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0x4 + adds r0, r1 + ldr r0, [r0] + ldr r1, _0800D960 @ =0x0600d000 + bl LZDecompressVram + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r4, 0x10 + adds r0, r4 + ldr r0, [r0] + b _0800DA66 + .align 2, 0 +_0800D954: .4byte gBattleTerrainTable +_0800D958: .4byte gUnknown_0300428C +_0800D95C: .4byte 0x06008000 +_0800D960: .4byte 0x0600d000 +_0800D964: + ldr r0, _0800D978 @ =gBattleTerrainTiles_Building + ldr r1, _0800D97C @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D980 @ =gBattleTerrainTilemap_Building + ldr r1, _0800D984 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D988 @ =gBattleTerrainPalette_BuildingGym + b _0800DA66 + .align 2, 0 +_0800D978: .4byte gBattleTerrainTiles_Building +_0800D97C: .4byte 0x06008000 +_0800D980: .4byte gBattleTerrainTilemap_Building +_0800D984: .4byte 0x0600d000 +_0800D988: .4byte gBattleTerrainPalette_BuildingGym +_0800D98C: + ldr r0, _0800D9A0 @ =gBattleTerrainTiles_Stadium + ldr r1, _0800D9A4 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D9A8 @ =gBattleTerrainTilemap_Stadium + ldr r1, _0800D9AC @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D9B0 @ =gBattleTerrainPalette_StadiumMagma + b _0800DA66 + .align 2, 0 +_0800D9A0: .4byte gBattleTerrainTiles_Stadium +_0800D9A4: .4byte 0x06008000 +_0800D9A8: .4byte gBattleTerrainTilemap_Stadium +_0800D9AC: .4byte 0x0600d000 +_0800D9B0: .4byte gBattleTerrainPalette_StadiumMagma +_0800D9B4: + ldr r0, _0800D9C8 @ =gBattleTerrainTiles_Stadium + ldr r1, _0800D9CC @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D9D0 @ =gBattleTerrainTilemap_Stadium + ldr r1, _0800D9D4 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800D9D8 @ =gBattleTerrainPalette_StadiumAqua + b _0800DA66 + .align 2, 0 +_0800D9C8: .4byte gBattleTerrainTiles_Stadium +_0800D9CC: .4byte 0x06008000 +_0800D9D0: .4byte gBattleTerrainTilemap_Stadium +_0800D9D4: .4byte 0x0600d000 +_0800D9D8: .4byte gBattleTerrainPalette_StadiumAqua +_0800D9DC: + ldr r0, _0800D9F0 @ =gBattleTerrainTiles_Stadium + ldr r1, _0800D9F4 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800D9F8 @ =gBattleTerrainTilemap_Stadium + ldr r1, _0800D9FC @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800DA00 @ =gBattleTerrainPalette_StadiumSidney + b _0800DA66 + .align 2, 0 +_0800D9F0: .4byte gBattleTerrainTiles_Stadium +_0800D9F4: .4byte 0x06008000 +_0800D9F8: .4byte gBattleTerrainTilemap_Stadium +_0800D9FC: .4byte 0x0600d000 +_0800DA00: .4byte gBattleTerrainPalette_StadiumSidney +_0800DA04: + ldr r0, _0800DA18 @ =gBattleTerrainTiles_Stadium + ldr r1, _0800DA1C @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800DA20 @ =gBattleTerrainTilemap_Stadium + ldr r1, _0800DA24 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800DA28 @ =gBattleTerrainPalette_StadiumPhoebe + b _0800DA66 + .align 2, 0 +_0800DA18: .4byte gBattleTerrainTiles_Stadium +_0800DA1C: .4byte 0x06008000 +_0800DA20: .4byte gBattleTerrainTilemap_Stadium +_0800DA24: .4byte 0x0600d000 +_0800DA28: .4byte gBattleTerrainPalette_StadiumPhoebe +_0800DA2C: + ldr r0, _0800DA40 @ =gBattleTerrainTiles_Stadium + ldr r1, _0800DA44 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800DA48 @ =gBattleTerrainTilemap_Stadium + ldr r1, _0800DA4C @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800DA50 @ =gBattleTerrainPalette_StadiumGlacia + b _0800DA66 + .align 2, 0 +_0800DA40: .4byte gBattleTerrainTiles_Stadium +_0800DA44: .4byte 0x06008000 +_0800DA48: .4byte gBattleTerrainTilemap_Stadium +_0800DA4C: .4byte 0x0600d000 +_0800DA50: .4byte gBattleTerrainPalette_StadiumGlacia +_0800DA54: + ldr r0, _0800DA70 @ =gBattleTerrainTiles_Stadium + ldr r1, _0800DA74 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800DA78 @ =gBattleTerrainTilemap_Stadium + ldr r1, _0800DA7C @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800DA80 @ =gBattleTerrainPalette_StadiumDrake +_0800DA66: + movs r1, 0x20 + movs r2, 0x60 + bl LoadCompressedPalette + b _0800DA9E + .align 2, 0 +_0800DA70: .4byte gBattleTerrainTiles_Stadium +_0800DA74: .4byte 0x06008000 +_0800DA78: .4byte gBattleTerrainTilemap_Stadium +_0800DA7C: .4byte 0x0600d000 +_0800DA80: .4byte gBattleTerrainPalette_StadiumDrake +_0800DA84: + ldr r0, _0800DAA4 @ =gBattleTerrainTiles_Building + ldr r1, _0800DAA8 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0800DAAC @ =gBattleTerrainTilemap_Building + ldr r1, _0800DAB0 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0800DAB4 @ =gBattleTerrainPalette_BattleTower + movs r1, 0x20 + movs r2, 0x60 + bl LoadCompressedPalette +_0800DA9E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800DAA4: .4byte gBattleTerrainTiles_Building +_0800DAA8: .4byte 0x06008000 +_0800DAAC: .4byte gBattleTerrainTilemap_Building +_0800DAB0: .4byte 0x0600d000 +_0800DAB4: .4byte gBattleTerrainPalette_BattleTower + thumb_func_end sub_800D7B8 + + thumb_func_start sub_800DAB8 +sub_800DAB8: @ 800DAB8 + push {lr} + ldr r0, _0800DAE8 @ =gUnknown_08D00000 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + ldr r0, _0800DAEC @ =gUnknown_08D00524 + ldr r1, _0800DAF0 @ =0x0600c000 + movs r2, 0x80 + lsls r2, 4 + bl CpuSet + ldr r0, _0800DAF4 @ =gUnknown_08D004E0 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + bl sub_800D74C + bl sub_800D7B8 + pop {r0} + bx r0 + .align 2, 0 +_0800DAE8: .4byte gUnknown_08D00000 +_0800DAEC: .4byte gUnknown_08D00524 +_0800DAF0: .4byte 0x0600c000 +_0800DAF4: .4byte gUnknown_08D004E0 + thumb_func_end sub_800DAB8 + + thumb_func_start sub_800DAF8 +sub_800DAF8: @ 800DAF8 + push {r4-r7,lr} + sub sp, 0xC + adds r7, r2, 0 + lsls r0, 24 + lsrs r2, r0, 24 + adds r5, r2, 0 + lsls r1, 24 + lsrs r3, r1, 24 + movs r4, 0 + ldr r0, _0800DB38 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0800DBB4 + ldr r0, _0800DB3C @ =gTasks + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 3 + adds r1, r0 + movs r2, 0x12 + ldrsh r0, [r1, r2] + cmp r0, 0 + beq _0800DB52 + cmp r3, 0x1 + beq _0800DB7A + cmp r3, 0x1 + bgt _0800DB40 + cmp r3, 0 + beq _0800DB4A + b _0800DB84 + .align 2, 0 +_0800DB38: .4byte gUnknown_020239F8 +_0800DB3C: .4byte gTasks +_0800DB40: + cmp r3, 0x2 + beq _0800DB4E + cmp r3, 0x3 + beq _0800DB6E + b _0800DB84 +_0800DB4A: + ldrh r0, [r1, 0xE] + b _0800DB70 +_0800DB4E: + ldrh r1, [r1, 0xE] + b _0800DB7C +_0800DB52: + cmp r3, 0x1 + beq _0800DB6E + cmp r3, 0x1 + bgt _0800DB60 + cmp r3, 0 + beq _0800DB6A + b _0800DB84 +_0800DB60: + cmp r3, 0x2 + beq _0800DB76 + cmp r3, 0x3 + beq _0800DB7A + b _0800DB84 +_0800DB6A: + ldrh r0, [r1, 0xE] + b _0800DB70 +_0800DB6E: + ldrh r0, [r1, 0x10] +_0800DB70: + movs r4, 0x3F + ands r4, r0 + b _0800DB84 +_0800DB76: + ldrh r1, [r1, 0xE] + b _0800DB7C +_0800DB7A: + ldrh r1, [r1, 0x10] +_0800DB7C: + movs r0, 0xFC + lsls r0, 4 + ands r0, r1 + lsrs r4, r0, 6 +_0800DB84: + movs r3, 0 + movs r6, 0x3 + ldr r0, _0800DBB0 @ =0x00006001 + adds r5, r0, 0 + mov r2, sp +_0800DB8E: + lsls r1, r3, 1 + adds r0, r6, 0 + lsls r0, r1 + ands r0, r4 + asrs r0, r1 + adds r0, r5 + strh r0, [r2] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x2 + ble _0800DB8E + mov r0, sp + adds r1, r7, 0 + movs r2, 0x3 + bl CpuSet + b _0800DC12 + .align 2, 0 +_0800DBB0: .4byte 0x00006001 +_0800DBB4: + ldr r0, _0800DBD0 @ =0x02000000 + ldr r1, _0800DBD4 @ =0x000160cb + adds r0, r1 + ldrb r0, [r0] + cmp r3, r0 + bne _0800DBDC + ldr r1, _0800DBD8 @ =gTasks + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + adds r0, r1 + ldrh r4, [r0, 0xE] + b _0800DBE8 + .align 2, 0 +_0800DBD0: .4byte 0x02000000 +_0800DBD4: .4byte 0x000160cb +_0800DBD8: .4byte gTasks +_0800DBDC: + ldr r1, _0800DC1C @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrh r4, [r0, 0x10] +_0800DBE8: + movs r3, 0 + movs r6, 0x3 + ldr r2, _0800DC20 @ =0x00006001 + adds r5, r2, 0 + mov r2, sp +_0800DBF2: + lsls r1, r3, 1 + adds r0, r6, 0 + lsls r0, r1 + ands r0, r4 + asrs r0, r1 + adds r0, r5 + strh r0, [r2] + adds r2, 0x2 + adds r3, 0x1 + cmp r3, 0x5 + ble _0800DBF2 + mov r0, sp + adds r1, r7, 0 + movs r2, 0x6 + bl CpuSet +_0800DC12: + add sp, 0xC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800DC1C: .4byte gTasks +_0800DC20: .4byte 0x00006001 + thumb_func_end sub_800DAF8 + + thumb_func_start sub_800DC24 +sub_800DC24: @ 800DC24 + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _0800DC40 @ =gUnknown_02024D26 + ldrb r2, [r0] + cmp r2, 0x3 + bne _0800DC4C + ldr r4, _0800DC44 @ =gUnknown_03004210 + ldr r1, _0800DC48 @ =gUnknown_08400E57 + movs r0, 0x2 + str r0, [sp] + adds r0, r4, 0 + movs r2, 0xA0 + movs r3, 0xD + b _0800DDCA + .align 2, 0 +_0800DC40: .4byte gUnknown_02024D26 +_0800DC44: .4byte gUnknown_03004210 +_0800DC48: .4byte gUnknown_08400E57 +_0800DC4C: + ldr r0, _0800DC80 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0800DD38 + cmp r2, 0x1 + bne _0800DCCC + ldr r2, _0800DC84 @ =gLinkPlayers + ldr r0, _0800DC88 @ =0x02000000 + ldr r1, _0800DC8C @ =0x000160cb + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x18] + cmp r0, 0x1 + beq _0800DC9C + cmp r0, 0x1 + bgt _0800DC90 + cmp r0, 0 + bne _0800DC7E + b _0800DDA8 +_0800DC7E: + b _0800DE1C + .align 2, 0 +_0800DC80: .4byte gUnknown_020239F8 +_0800DC84: .4byte gLinkPlayers +_0800DC88: .4byte 0x02000000 +_0800DC8C: .4byte 0x000160cb +_0800DC90: + cmp r0, 0x2 + bne _0800DC96 + b _0800DDA8 +_0800DC96: + cmp r0, 0x3 + beq _0800DC9C + b _0800DE1C +_0800DC9C: + ldr r4, _0800DCC0 @ =gUnknown_03004210 + ldr r1, _0800DCC4 @ =gUnknown_08400E48 + movs r5, 0x2 + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA0 + movs r3, 0x15 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _0800DCC8 @ =gUnknown_08400E4F + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA8 + movs r3, 0x6 + b _0800DDCA + .align 2, 0 +_0800DCC0: .4byte gUnknown_03004210 +_0800DCC4: .4byte gUnknown_08400E48 +_0800DCC8: .4byte gUnknown_08400E4F +_0800DCCC: + ldr r2, _0800DCF0 @ =gLinkPlayers + ldr r0, _0800DCF4 @ =0x02000000 + ldr r1, _0800DCF8 @ =0x000160cb + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x18] + cmp r0, 0x1 + beq _0800DDA8 + cmp r0, 0x1 + bgt _0800DCFC + cmp r0, 0 + beq _0800DD08 + b _0800DE1C + .align 2, 0 +_0800DCF0: .4byte gLinkPlayers +_0800DCF4: .4byte 0x02000000 +_0800DCF8: .4byte 0x000160cb +_0800DCFC: + cmp r0, 0x2 + beq _0800DD08 + cmp r0, 0x3 + beq _0800DD06 + b _0800DE1C +_0800DD06: + b _0800DDA8 +_0800DD08: + ldr r4, _0800DD2C @ =gUnknown_03004210 + ldr r1, _0800DD30 @ =gUnknown_08400E48 + movs r5, 0x2 + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA0 + movs r3, 0x15 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _0800DD34 @ =gUnknown_08400E4F + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA8 + movs r3, 0x6 + b _0800DDCA + .align 2, 0 +_0800DD2C: .4byte gUnknown_03004210 +_0800DD30: .4byte gUnknown_08400E48 +_0800DD34: .4byte gUnknown_08400E4F +_0800DD38: + cmp r2, 0x1 + bne _0800DD90 + ldr r2, _0800DD78 @ =gLinkPlayers + ldr r0, _0800DD7C @ =0x02000000 + ldr r1, _0800DD80 @ =0x000160cb + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x18] + cmp r0, 0 + beq _0800DDA8 + ldr r4, _0800DD84 @ =gUnknown_03004210 + ldr r1, _0800DD88 @ =gUnknown_08400E48 + movs r5, 0x2 + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA0 + movs r3, 0x15 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _0800DD8C @ =gUnknown_08400E4F + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA8 + movs r3, 0x6 + b _0800DDCA + .align 2, 0 +_0800DD78: .4byte gLinkPlayers +_0800DD7C: .4byte 0x02000000 +_0800DD80: .4byte 0x000160cb +_0800DD84: .4byte gUnknown_03004210 +_0800DD88: .4byte gUnknown_08400E48 +_0800DD8C: .4byte gUnknown_08400E4F +_0800DD90: + ldr r2, _0800DDD8 @ =gLinkPlayers + ldr r0, _0800DDDC @ =0x02000000 + ldr r1, _0800DDE0 @ =0x000160cb + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x18] + cmp r0, 0 + beq _0800DDF0 +_0800DDA8: + ldr r4, _0800DDE4 @ =gUnknown_03004210 + ldr r1, _0800DDE8 @ =gUnknown_08400E48 + movs r5, 0x2 + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA0 + movs r3, 0x6 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _0800DDEC @ =gUnknown_08400E4F + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA8 + movs r3, 0x15 +_0800DDCA: + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + b _0800DE1C + .align 2, 0 +_0800DDD8: .4byte gLinkPlayers +_0800DDDC: .4byte 0x02000000 +_0800DDE0: .4byte 0x000160cb +_0800DDE4: .4byte gUnknown_03004210 +_0800DDE8: .4byte gUnknown_08400E48 +_0800DDEC: .4byte gUnknown_08400E4F +_0800DDF0: + ldr r4, _0800DE24 @ =gUnknown_03004210 + ldr r1, _0800DE28 @ =gUnknown_08400E48 + movs r5, 0x2 + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA0 + movs r3, 0x15 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _0800DE2C @ =gUnknown_08400E4F + str r5, [sp] + adds r0, r4, 0 + movs r2, 0xA8 + movs r3, 0x6 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 +_0800DE1C: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800DE24: .4byte gUnknown_03004210 +_0800DE28: .4byte gUnknown_08400E48 +_0800DE2C: .4byte gUnknown_08400E4F + thumb_func_end sub_800DC24 + + thumb_func_start sub_800DE30 +sub_800DE30: @ 800DE30 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _0800DE64 @ =gTasks + lsls r0, 2 + mov r10, r0 + add r0, r9 + lsls r0, 3 + adds r6, r0, r1 + movs r1, 0x8 + ldrsh r0, [r6, r1] + cmp r0, 0x1 + bne _0800DE58 + b _0800DF9C +_0800DE58: + cmp r0, 0x1 + bgt _0800DE68 + cmp r0, 0 + beq _0800DE70 + b _0800E212 + .align 2, 0 +_0800DE64: .4byte gTasks +_0800DE68: + cmp r0, 0x2 + bne _0800DE6E + b _0800E03C +_0800DE6E: + b _0800E212 +_0800DE70: + ldr r0, _0800DED0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0800DEE0 + ldr r0, _0800DED4 @ =gLinkPlayers + ldr r2, _0800DED8 @ =gUnknown_081F9680 + mov r8, r2 + adds r7, r0, 0 + adds r7, 0x8 + movs r5, 0x3 +_0800DE88: + ldrb r0, [r7, 0x10] + movs r1, 0x3 + ands r1, r0 + str r1, [sp, 0x8] + lsls r4, r1, 1 + adds r4, r1 + lsls r4, 2 + mov r2, r8 + adds r0, r4, r2 + ldr r1, [r0] + str r1, [sp, 0xC] + ldrh r2, [r0, 0x4] + ldrb r3, [r0, 0x6] + ldrb r0, [r0, 0x7] + str r0, [sp] + movs r0, 0x1 + str r0, [sp, 0x4] + adds r0, r1, 0 + adds r1, r7, 0 + bl sub_8002E4C + ldr r0, [sp, 0xC] + bl sub_8002F44 + ldr r2, _0800DEDC @ =gUnknown_081F9680 + 0x8 + adds r4, r2 + ldr r2, [r4] + mov r0, r9 + ldr r1, [sp, 0x8] + bl sub_800DAF8 + adds r7, 0x1C + subs r5, 0x1 + cmp r5, 0 + bge _0800DE88 + b _0800DF70 + .align 2, 0 +_0800DED0: .4byte gUnknown_020239F8 +_0800DED4: .4byte gLinkPlayers +_0800DED8: .4byte gUnknown_081F9680 +_0800DEDC: .4byte gUnknown_081F9680 + 0x8 +_0800DEE0: + ldr r0, _0800DF84 @ =0x02000000 + ldr r5, _0800DF88 @ =0x000160cb + adds r0, r5 + ldrb r7, [r0] + movs r0, 0x1 + adds r6, r7, 0 + eors r6, r0 + adds r1, r6, 0 + ldr r2, _0800DF8C @ =gLinkPlayers + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r2 + ldrh r0, [r0, 0x18] + cmp r0, 0 + beq _0800DF04 + adds r6, r7, 0 + adds r7, r1, 0 +_0800DF04: + ldr r0, _0800DF90 @ =gUnknown_081F9680 + mov r8, r0 + adds r0, 0x30 + mov r1, r8 + ldr r4, [r1, 0x30] + lsls r1, r7, 3 + subs r1, r7 + lsls r1, 2 + ldr r2, _0800DF94 @ =gLinkPlayers + 0x8 + adds r1, r2 + ldrh r2, [r0, 0x4] + ldrb r3, [r0, 0x6] + ldrb r0, [r0, 0x7] + str r0, [sp] + movs r5, 0x1 + str r5, [sp, 0x4] + adds r0, r4, 0 + bl sub_8002E4C + adds r0, r4, 0 + bl sub_8002F44 + mov r0, r8 + ldr r2, [r0, 0x38] + mov r0, r9 + adds r1, r7, 0 + bl sub_800DAF8 + mov r0, r8 + adds r0, 0x3C + mov r1, r8 + ldr r4, [r1, 0x3C] + lsls r1, r6, 3 + subs r1, r6 + lsls r1, 2 + ldr r2, _0800DF94 @ =gLinkPlayers + 0x8 + adds r1, r2 + ldrh r2, [r0, 0x4] + ldrb r3, [r0, 0x6] + ldrb r0, [r0, 0x7] + str r0, [sp] + str r5, [sp, 0x4] + adds r0, r4, 0 + bl sub_8002E4C + adds r0, r4, 0 + bl sub_8002F44 + mov r5, r8 + ldr r2, [r5, 0x44] + mov r0, r9 + adds r1, r6, 0 + bl sub_800DAF8 +_0800DF70: + ldr r0, _0800DF98 @ =gTasks + mov r1, r10 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldrh r0, [r1, 0x8] + adds r0, 0x1 + strh r0, [r1, 0x8] + b _0800E212 + .align 2, 0 +_0800DF84: .4byte 0x02000000 +_0800DF88: .4byte 0x000160cb +_0800DF8C: .4byte gLinkPlayers +_0800DF90: .4byte gUnknown_081F9680 +_0800DF94: .4byte gLinkPlayers + 0x8 +_0800DF98: .4byte gTasks +_0800DF9C: + ldr r0, _0800E010 @ =0x00002710 + bl AllocSpritePalette + lsls r0, 24 + ldr r2, _0800E014 @ =gPlttBufferUnfaded + lsrs r0, 19 + ldr r1, _0800E018 @ =0x0000021e + adds r0, r1 + adds r2, r0, r2 + ldr r1, _0800E01C @ =gPlttBufferFaded + adds r0, r1 + ldr r1, _0800E020 @ =0x00007fff + strh r1, [r0] + strh r1, [r2] + ldr r0, _0800E024 @ =gSpriteTemplate_81F9574 + movs r1, 0x6C + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + ldr r4, _0800E028 @ =0x02000000 + ldr r2, _0800E02C @ =0x0001608a + adds r7, r4, r2 + strb r0, [r7] + ldr r0, _0800E030 @ =gSpriteTemplate_81F958C + movs r1, 0x84 + movs r2, 0x50 + movs r3, 0 + bl CreateSprite + ldr r5, _0800E034 @ =0x0001608b + adds r4, r5 + strb r0, [r4] + ldr r3, _0800E038 @ =gSprites + ldrb r1, [r7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r1, [r0] + orrs r1, r2 + strb r1, [r0] + ldrh r0, [r6, 0x8] + adds r0, 0x1 + strh r0, [r6, 0x8] + b _0800E212 + .align 2, 0 +_0800E010: .4byte 0x00002710 +_0800E014: .4byte gPlttBufferUnfaded +_0800E018: .4byte 0x0000021e +_0800E01C: .4byte gPlttBufferFaded +_0800E020: .4byte 0x00007fff +_0800E024: .4byte gSpriteTemplate_81F9574 +_0800E028: .4byte 0x02000000 +_0800E02C: .4byte 0x0001608a +_0800E030: .4byte gSpriteTemplate_81F958C +_0800E034: .4byte 0x0001608b +_0800E038: .4byte gSprites +_0800E03C: + movs r1, 0x12 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _0800E0A4 + ldr r4, _0800E090 @ =gUnknown_030042C0 + ldrh r0, [r6, 0xA] + bl Sin2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _0800E056 + adds r0, 0x1F +_0800E056: + asrs r1, r0, 5 + movs r2, 0x14 + negs r2, r2 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4] + ldr r4, _0800E094 @ =gUnknown_03004288 + ldrh r0, [r6, 0xC] + bl Sin2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _0800E074 + adds r0, 0x1F +_0800E074: + asrs r1, r0, 5 + movs r5, 0x8C + negs r5, r5 + adds r0, r5, 0 + subs r0, r1 + strh r0, [r4] + ldr r0, _0800E098 @ =gUnknown_030041B4 + ldr r2, _0800E09C @ =0x0000ffdc + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _0800E0A0 @ =gUnknown_03004280 + strh r1, [r0] + b _0800E110 + .align 2, 0 +_0800E090: .4byte gUnknown_030042C0 +_0800E094: .4byte gUnknown_03004288 +_0800E098: .4byte gUnknown_030041B4 +_0800E09C: .4byte 0x0000ffdc +_0800E0A0: .4byte gUnknown_03004280 +_0800E0A4: + ldr r4, _0800E134 @ =gUnknown_030042C0 + ldrh r0, [r6, 0xA] + bl Sin2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _0800E0B6 + adds r0, 0x1F +_0800E0B6: + asrs r1, r0, 5 + movs r5, 0x14 + negs r5, r5 + adds r0, r5, 0 + subs r0, r1 + strh r0, [r4] + ldr r4, _0800E138 @ =gUnknown_030041B4 + ldrh r0, [r6, 0xA] + bl Cos2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _0800E0D4 + adds r0, 0x1F +_0800E0D4: + asrs r0, 5 + subs r0, 0xA4 + strh r0, [r4] + ldr r4, _0800E13C @ =gUnknown_03004288 + ldrh r0, [r6, 0xC] + bl Sin2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _0800E0EC + adds r0, 0x1F +_0800E0EC: + asrs r1, r0, 5 + movs r2, 0x8C + negs r2, r2 + adds r0, r2, 0 + subs r0, r1 + strh r0, [r4] + ldr r4, _0800E140 @ =gUnknown_03004280 + ldrh r0, [r6, 0xC] + bl Cos2 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + bge _0800E10A + adds r0, 0x1F +_0800E10A: + asrs r0, 5 + subs r0, 0xA4 + strh r0, [r4] +_0800E110: + ldr r1, _0800E144 @ =gTasks + mov r5, r9 + lsls r0, r5, 2 + add r0, r9 + lsls r0, 3 + adds r1, r0, r1 + ldrh r0, [r1, 0xC] + movs r2, 0xC + ldrsh r7, [r1, r2] + cmp r7, 0 + beq _0800E148 + subs r0, 0x2 + strh r0, [r1, 0xC] + ldrh r0, [r1, 0xA] + adds r0, 0x2 + strh r0, [r1, 0xA] + b _0800E212 + .align 2, 0 +_0800E134: .4byte gUnknown_030042C0 +_0800E138: .4byte gUnknown_030041B4 +_0800E13C: .4byte gUnknown_03004288 +_0800E140: .4byte gUnknown_03004280 +_0800E144: .4byte gTasks +_0800E148: + movs r5, 0x12 + ldrsh r0, [r1, r5] + cmp r0, 0 + beq _0800E154 + bl sub_800DC24 +_0800E154: + movs r0, 0x78 + bl PlaySE + mov r0, r9 + bl DestroyTask + ldr r4, _0800E224 @ =gSprites + ldr r0, _0800E228 @ =0x02000000 + mov r8, r0 + ldr r1, _0800E22C @ =0x0001608a + add r1, r8 + mov r9, r1 + ldrb r0, [r1] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + adds r1, 0x3E + ldrb r3, [r1] + movs r2, 0x5 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + strb r0, [r1] + ldr r5, _0800E230 @ =0x0001608b + add r8, r5 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + adds r0, 0x3E + ldrb r1, [r0] + ands r2, r1 + strb r2, [r0] + mov r1, r8 + ldrb r0, [r1] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldrh r3, [r2, 0x4] + lsls r1, r3, 22 + lsrs r1, 22 + adds r1, 0x40 + ldr r5, _0800E234 @ =0x000003ff + adds r0, r5, 0 + ands r1, r0 + ldr r0, _0800E238 @ =0xfffffc00 + ands r0, r3 + orrs r0, r1 + strh r0, [r2, 0x4] + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x2E] + mov r2, r8 + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + strh r1, [r0, 0x2E] + mov r5, r9 + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x30] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x20] + strh r1, [r0, 0x30] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x32] + ldrb r1, [r2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + strh r7, [r0, 0x32] +_0800E212: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800E224: .4byte gSprites +_0800E228: .4byte 0x02000000 +_0800E22C: .4byte 0x0001608a +_0800E230: .4byte 0x0001608b +_0800E234: .4byte 0x000003ff +_0800E238: .4byte 0xfffffc00 + thumb_func_end sub_800DE30 + + thumb_func_start sub_800E23C +sub_800E23C: @ 800E23C + push {r4,r5,lr} + ldr r0, _0800E29C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0800E2DC + ldr r0, _0800E2A0 @ =gVersusFrameGfx + ldr r1, _0800E2A4 @ =0x06004000 + bl LZDecompressVram + ldr r4, _0800E2A8 @ =gVersusFrameTilemap + ldr r1, _0800E2AC @ =0x0600e000 + adds r0, r4, 0 + bl LZDecompressVram + ldr r1, _0800E2B0 @ =0x0600f000 + adds r0, r4, 0 + bl LZDecompressVram + ldr r0, _0800E2B4 @ =gUnknown_08E5DC2C + ldr r1, _0800E2B8 @ =0x06010000 + bl LZDecompressVram + ldr r0, _0800E2BC @ =gVersusFramePal + movs r1, 0x60 + movs r2, 0x20 + bl LoadCompressedPalette + ldr r1, _0800E2C0 @ =REG_BG1CNT + ldr r2, _0800E2C4 @ =0x00005c04 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0800E2C8 @ =REG_WININ + movs r1, 0x36 + strh r1, [r0] + adds r0, 0x2 + strh r1, [r0] + ldr r0, _0800E2CC @ =gUnknown_030041B4 + ldr r2, _0800E2D0 @ =0x0000ff5c + adds r1, r2, 0 + strh r1, [r0] + ldr r0, _0800E2D4 @ =gUnknown_03004280 + strh r1, [r0] + ldr r0, _0800E2D8 @ =gUnknown_081F95A4 + bl LoadCompressedObjectPic + b _0800E3FC + .align 2, 0 +_0800E29C: .4byte gUnknown_020239F8 +_0800E2A0: .4byte gVersusFrameGfx +_0800E2A4: .4byte 0x06004000 +_0800E2A8: .4byte gVersusFrameTilemap +_0800E2AC: .4byte 0x0600e000 +_0800E2B0: .4byte 0x0600f000 +_0800E2B4: .4byte gUnknown_08E5DC2C +_0800E2B8: .4byte 0x06010000 +_0800E2BC: .4byte gVersusFramePal +_0800E2C0: .4byte REG_BG1CNT +_0800E2C4: .4byte 0x00005c04 +_0800E2C8: .4byte REG_WININ +_0800E2CC: .4byte gUnknown_030041B4 +_0800E2D0: .4byte 0x0000ff5c +_0800E2D4: .4byte gUnknown_03004280 +_0800E2D8: .4byte gUnknown_081F95A4 +_0800E2DC: + ldr r0, _0800E2F0 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + beq _0800E300 + ldr r0, _0800E2F4 @ =gBattleTerrainAnimTiles_Building + ldr r1, _0800E2F8 @ =0x06004000 + bl LZDecompressVram + ldr r0, _0800E2FC @ =gBattleTerrainAnimTilemap_Building + b _0800E3D2 + .align 2, 0 +_0800E2F0: .4byte 0x00000902 +_0800E2F4: .4byte gBattleTerrainAnimTiles_Building +_0800E2F8: .4byte 0x06004000 +_0800E2FC: .4byte gBattleTerrainAnimTilemap_Building +_0800E300: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _0800E348 + ldr r0, _0800E320 @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + bne _0800E330 + ldr r0, _0800E324 @ =gBattleTerrainAnimTiles_Cave + ldr r1, _0800E328 @ =0x06004000 + bl LZDecompressVram + ldr r0, _0800E32C @ =gBattleTerrainAnimTilemap_Cave + b _0800E3D2 + .align 2, 0 +_0800E320: .4byte gGameVersion +_0800E324: .4byte gBattleTerrainAnimTiles_Cave +_0800E328: .4byte 0x06004000 +_0800E32C: .4byte gBattleTerrainAnimTilemap_Cave +_0800E330: + ldr r0, _0800E33C @ =gBattleTerrainAnimTiles_Underwater + ldr r1, _0800E340 @ =0x06004000 + bl LZDecompressVram + ldr r0, _0800E344 @ =gBattleTerrainAnimTilemap_Underwater + b _0800E3D2 + .align 2, 0 +_0800E33C: .4byte gBattleTerrainAnimTiles_Underwater +_0800E340: .4byte 0x06004000 +_0800E344: .4byte gBattleTerrainAnimTilemap_Underwater +_0800E348: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0800E3A0 + ldr r2, _0800E370 @ =gTrainers + ldr r0, _0800E374 @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0x19 + bne _0800E384 + ldr r0, _0800E378 @ =gBattleTerrainAnimTiles_Building + ldr r1, _0800E37C @ =0x06004000 + bl LZDecompressVram + ldr r0, _0800E380 @ =gBattleTerrainAnimTilemap_Building + b _0800E3D2 + .align 2, 0 +_0800E370: .4byte gTrainers +_0800E374: .4byte gTrainerBattleOpponent +_0800E378: .4byte gBattleTerrainAnimTiles_Building +_0800E37C: .4byte 0x06004000 +_0800E380: .4byte gBattleTerrainAnimTilemap_Building +_0800E384: + cmp r0, 0x20 + bne _0800E3A0 + ldr r0, _0800E394 @ =gBattleTerrainAnimTiles_Building + ldr r1, _0800E398 @ =0x06004000 + bl LZDecompressVram + ldr r0, _0800E39C @ =gBattleTerrainAnimTilemap_Building + b _0800E3D2 + .align 2, 0 +_0800E394: .4byte gBattleTerrainAnimTiles_Building +_0800E398: .4byte 0x06004000 +_0800E39C: .4byte gBattleTerrainAnimTilemap_Building +_0800E3A0: + bl sav1_map_get_battletype + lsls r0, 24 + cmp r0, 0 + bne _0800E3EC + ldr r4, _0800E3DC @ =gBattleTerrainTable + ldr r5, _0800E3E0 @ =gUnknown_0300428C + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x8 + adds r0, r1 + ldr r0, [r0] + ldr r1, _0800E3E4 @ =0x06004000 + bl LZDecompressVram + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r4, 0xC + adds r0, r4 + ldr r0, [r0] +_0800E3D2: + ldr r1, _0800E3E8 @ =0x0600e000 + bl LZDecompressVram + b _0800E3FC + .align 2, 0 +_0800E3DC: .4byte gBattleTerrainTable +_0800E3E0: .4byte gUnknown_0300428C +_0800E3E4: .4byte 0x06004000 +_0800E3E8: .4byte 0x0600e000 +_0800E3EC: + ldr r0, _0800E404 @ =gBattleTerrainAnimTiles_Building + ldr r1, _0800E408 @ =0x06004000 + bl LZDecompressVram + ldr r0, _0800E40C @ =gBattleTerrainAnimTilemap_Building + ldr r1, _0800E410 @ =0x0600e000 + bl LZDecompressVram +_0800E3FC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800E404: .4byte gBattleTerrainAnimTiles_Building +_0800E408: .4byte 0x06004000 +_0800E40C: .4byte gBattleTerrainAnimTilemap_Building +_0800E410: .4byte 0x0600e000 + thumb_func_end sub_800E23C + + thumb_func_start sub_800E414 +sub_800E414: @ 800E414 + push {r4,lr} + lsls r0, 24 + lsrs r0, 24 + movs r4, 0 + cmp r0, 0x6 + bls _0800E422 + b _0800E7BA +_0800E422: + lsls r0, 2 + ldr r1, _0800E42C @ =_0800E430 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800E42C: .4byte _0800E430 + .align 2, 0 +_0800E430: + .4byte _0800E44C + .4byte _0800E45C + .4byte _0800E474 + .4byte _0800E484 + .4byte _0800E590 + .4byte _0800E69C + .4byte _0800E7B4 +_0800E44C: + ldr r0, _0800E458 @ =gUnknown_08D00000 + movs r1, 0xC0 + lsls r1, 19 + bl LZDecompressVram + b _0800E7BC + .align 2, 0 +_0800E458: .4byte gUnknown_08D00000 +_0800E45C: + ldr r0, _0800E46C @ =gUnknown_08D00524 + ldr r1, _0800E470 @ =0x0600c000 + movs r2, 0x80 + lsls r2, 4 + bl CpuSet + b _0800E7BC + .align 2, 0 +_0800E46C: .4byte gUnknown_08D00524 +_0800E470: .4byte 0x0600c000 +_0800E474: + ldr r0, _0800E480 @ =gUnknown_08D004E0 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + b _0800E7BC + .align 2, 0 +_0800E480: .4byte gUnknown_08D004E0 +_0800E484: + ldr r0, _0800E4A8 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0800E4AC @ =0x00000902 + ands r0, r1 + cmp r0, 0 + beq _0800E492 + b _0800E57C +_0800E492: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _0800E4C0 + ldr r0, _0800E4B0 @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + bne _0800E4B8 + ldr r0, _0800E4B4 @ =gBattleTerrainTiles_Cave + b _0800E57E + .align 2, 0 +_0800E4A8: .4byte gUnknown_020239F8 +_0800E4AC: .4byte 0x00000902 +_0800E4B0: .4byte gGameVersion +_0800E4B4: .4byte gBattleTerrainTiles_Cave +_0800E4B8: + ldr r0, _0800E4BC @ =gBattleTerrainTiles_Water + b _0800E57E + .align 2, 0 +_0800E4BC: .4byte gBattleTerrainTiles_Water +_0800E4C0: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0800E4F0 + ldr r2, _0800E4E4 @ =gTrainers + ldr r0, _0800E4E8 @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0x19 + beq _0800E57C + cmp r0, 0x20 + bne _0800E4F0 + ldr r0, _0800E4EC @ =gBattleTerrainTiles_Stadium + b _0800E57E + .align 2, 0 +_0800E4E4: .4byte gTrainers +_0800E4E8: .4byte gTrainerBattleOpponent +_0800E4EC: .4byte gBattleTerrainTiles_Stadium +_0800E4F0: + bl sav1_map_get_battletype + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _0800E4FE + b _0800E7BC +_0800E4FE: + lsls r0, 2 + ldr r1, _0800E508 @ =_0800E50C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800E508: .4byte _0800E50C + .align 2, 0 +_0800E50C: + .4byte _0800E530 + .4byte _0800E57C + .4byte _0800E54C + .4byte _0800E554 + .4byte _0800E55C + .4byte _0800E564 + .4byte _0800E56C + .4byte _0800E574 + .4byte _0800E57C +_0800E530: + ldr r2, _0800E544 @ =gBattleTerrainTable + ldr r0, _0800E548 @ =gUnknown_0300428C + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + b _0800E57E + .align 2, 0 +_0800E544: .4byte gBattleTerrainTable +_0800E548: .4byte gUnknown_0300428C +_0800E54C: + ldr r0, _0800E550 @ =gBattleTerrainTiles_Stadium + b _0800E57E + .align 2, 0 +_0800E550: .4byte gBattleTerrainTiles_Stadium +_0800E554: + ldr r0, _0800E558 @ =gBattleTerrainTiles_Stadium + b _0800E57E + .align 2, 0 +_0800E558: .4byte gBattleTerrainTiles_Stadium +_0800E55C: + ldr r0, _0800E560 @ =gBattleTerrainTiles_Stadium + b _0800E57E + .align 2, 0 +_0800E560: .4byte gBattleTerrainTiles_Stadium +_0800E564: + ldr r0, _0800E568 @ =gBattleTerrainTiles_Stadium + b _0800E57E + .align 2, 0 +_0800E568: .4byte gBattleTerrainTiles_Stadium +_0800E56C: + ldr r0, _0800E570 @ =gBattleTerrainTiles_Stadium + b _0800E57E + .align 2, 0 +_0800E570: .4byte gBattleTerrainTiles_Stadium +_0800E574: + ldr r0, _0800E578 @ =gBattleTerrainTiles_Stadium + b _0800E57E + .align 2, 0 +_0800E578: .4byte gBattleTerrainTiles_Stadium +_0800E57C: + ldr r0, _0800E588 @ =gBattleTerrainTiles_Building +_0800E57E: + ldr r1, _0800E58C @ =0x06008000 + bl LZDecompressVram + b _0800E7BC + .align 2, 0 +_0800E588: .4byte gBattleTerrainTiles_Building +_0800E58C: .4byte 0x06008000 +_0800E590: + ldr r0, _0800E5B4 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0800E5B8 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + beq _0800E59E + b _0800E688 +_0800E59E: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _0800E5CC + ldr r0, _0800E5BC @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + bne _0800E5C4 + ldr r0, _0800E5C0 @ =gBattleTerrainTilemap_Cave + b _0800E68A + .align 2, 0 +_0800E5B4: .4byte gUnknown_020239F8 +_0800E5B8: .4byte 0x00000902 +_0800E5BC: .4byte gGameVersion +_0800E5C0: .4byte gBattleTerrainTilemap_Cave +_0800E5C4: + ldr r0, _0800E5C8 @ =gBattleTerrainTilemap_Water + b _0800E68A + .align 2, 0 +_0800E5C8: .4byte gBattleTerrainTilemap_Water +_0800E5CC: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0800E5FC + ldr r2, _0800E5F0 @ =gTrainers + ldr r0, _0800E5F4 @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0x19 + beq _0800E688 + cmp r0, 0x20 + bne _0800E5FC + ldr r0, _0800E5F8 @ =gBattleTerrainTilemap_Stadium + b _0800E68A + .align 2, 0 +_0800E5F0: .4byte gTrainers +_0800E5F4: .4byte gTrainerBattleOpponent +_0800E5F8: .4byte gBattleTerrainTilemap_Stadium +_0800E5FC: + bl sav1_map_get_battletype + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _0800E60A + b _0800E7BC +_0800E60A: + lsls r0, 2 + ldr r1, _0800E614 @ =_0800E618 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800E614: .4byte _0800E618 + .align 2, 0 +_0800E618: + .4byte _0800E63C + .4byte _0800E688 + .4byte _0800E658 + .4byte _0800E660 + .4byte _0800E668 + .4byte _0800E670 + .4byte _0800E678 + .4byte _0800E680 + .4byte _0800E688 +_0800E63C: + ldr r2, _0800E650 @ =gBattleTerrainTable + ldr r0, _0800E654 @ =gUnknown_0300428C + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r0, r2 + ldr r0, [r0] + b _0800E68A + .align 2, 0 +_0800E650: .4byte gBattleTerrainTable +_0800E654: .4byte gUnknown_0300428C +_0800E658: + ldr r0, _0800E65C @ =gBattleTerrainTilemap_Stadium + b _0800E68A + .align 2, 0 +_0800E65C: .4byte gBattleTerrainTilemap_Stadium +_0800E660: + ldr r0, _0800E664 @ =gBattleTerrainTilemap_Stadium + b _0800E68A + .align 2, 0 +_0800E664: .4byte gBattleTerrainTilemap_Stadium +_0800E668: + ldr r0, _0800E66C @ =gBattleTerrainTilemap_Stadium + b _0800E68A + .align 2, 0 +_0800E66C: .4byte gBattleTerrainTilemap_Stadium +_0800E670: + ldr r0, _0800E674 @ =gBattleTerrainTilemap_Stadium + b _0800E68A + .align 2, 0 +_0800E674: .4byte gBattleTerrainTilemap_Stadium +_0800E678: + ldr r0, _0800E67C @ =gBattleTerrainTilemap_Stadium + b _0800E68A + .align 2, 0 +_0800E67C: .4byte gBattleTerrainTilemap_Stadium +_0800E680: + ldr r0, _0800E684 @ =gBattleTerrainTilemap_Stadium + b _0800E68A + .align 2, 0 +_0800E684: .4byte gBattleTerrainTilemap_Stadium +_0800E688: + ldr r0, _0800E694 @ =gBattleTerrainTilemap_Building +_0800E68A: + ldr r1, _0800E698 @ =0x0600d000 + bl LZDecompressVram + b _0800E7BC + .align 2, 0 +_0800E694: .4byte gBattleTerrainTilemap_Building +_0800E698: .4byte 0x0600d000 +_0800E69C: + ldr r0, _0800E6C0 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0800E6C4 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + beq _0800E6AA + b _0800E7A4 +_0800E6AA: + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _0800E6D8 + ldr r0, _0800E6C8 @ =gGameVersion + ldrb r0, [r0] + cmp r0, 0x2 + bne _0800E6D0 + ldr r0, _0800E6CC @ =gBattleTerrainPalette_Groudon + b _0800E7A6 + .align 2, 0 +_0800E6C0: .4byte gUnknown_020239F8 +_0800E6C4: .4byte 0x00000902 +_0800E6C8: .4byte gGameVersion +_0800E6CC: .4byte gBattleTerrainPalette_Groudon +_0800E6D0: + ldr r0, _0800E6D4 @ =gBattleTerrainPalette_Kyogre + b _0800E7A6 + .align 2, 0 +_0800E6D4: .4byte gBattleTerrainPalette_Kyogre +_0800E6D8: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0800E710 + ldr r2, _0800E6F8 @ =gTrainers + ldr r0, _0800E6FC @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0x19 + bne _0800E704 + ldr r0, _0800E700 @ =gBattleTerrainPalette_BuildingLeader + b _0800E7A6 + .align 2, 0 +_0800E6F8: .4byte gTrainers +_0800E6FC: .4byte gTrainerBattleOpponent +_0800E700: .4byte gBattleTerrainPalette_BuildingLeader +_0800E704: + cmp r0, 0x20 + bne _0800E710 + ldr r0, _0800E70C @ =gBattleTerrainPalette_StadiumSteven + b _0800E7A6 + .align 2, 0 +_0800E70C: .4byte gBattleTerrainPalette_StadiumSteven +_0800E710: + bl sav1_map_get_battletype + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x8 + bhi _0800E7BC + lsls r0, 2 + ldr r1, _0800E728 @ =_0800E72C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800E728: .4byte _0800E72C + .align 2, 0 +_0800E72C: + .4byte _0800E750 + .4byte _0800E76C + .4byte _0800E774 + .4byte _0800E77C + .4byte _0800E784 + .4byte _0800E78C + .4byte _0800E794 + .4byte _0800E79C + .4byte _0800E7A4 +_0800E750: + ldr r2, _0800E764 @ =gBattleTerrainTable + ldr r0, _0800E768 @ =gUnknown_0300428C + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x10 + adds r0, r2 + ldr r0, [r0] + b _0800E7A6 + .align 2, 0 +_0800E764: .4byte gBattleTerrainTable +_0800E768: .4byte gUnknown_0300428C +_0800E76C: + ldr r0, _0800E770 @ =gBattleTerrainPalette_BuildingGym + b _0800E7A6 + .align 2, 0 +_0800E770: .4byte gBattleTerrainPalette_BuildingGym +_0800E774: + ldr r0, _0800E778 @ =gBattleTerrainPalette_StadiumMagma + b _0800E7A6 + .align 2, 0 +_0800E778: .4byte gBattleTerrainPalette_StadiumMagma +_0800E77C: + ldr r0, _0800E780 @ =gBattleTerrainPalette_StadiumAqua + b _0800E7A6 + .align 2, 0 +_0800E780: .4byte gBattleTerrainPalette_StadiumAqua +_0800E784: + ldr r0, _0800E788 @ =gBattleTerrainPalette_StadiumSidney + b _0800E7A6 + .align 2, 0 +_0800E788: .4byte gBattleTerrainPalette_StadiumSidney +_0800E78C: + ldr r0, _0800E790 @ =gBattleTerrainPalette_StadiumPhoebe + b _0800E7A6 + .align 2, 0 +_0800E790: .4byte gBattleTerrainPalette_StadiumPhoebe +_0800E794: + ldr r0, _0800E798 @ =gBattleTerrainPalette_StadiumGlacia + b _0800E7A6 + .align 2, 0 +_0800E798: .4byte gBattleTerrainPalette_StadiumGlacia +_0800E79C: + ldr r0, _0800E7A0 @ =gBattleTerrainPalette_StadiumDrake + b _0800E7A6 + .align 2, 0 +_0800E7A0: .4byte gBattleTerrainPalette_StadiumDrake +_0800E7A4: + ldr r0, _0800E7B0 @ =gBattleTerrainPalette_BattleTower +_0800E7A6: + movs r1, 0x20 + movs r2, 0x60 + bl LoadCompressedPalette + b _0800E7BC + .align 2, 0 +_0800E7B0: .4byte gBattleTerrainPalette_BattleTower +_0800E7B4: + bl sub_800D74C + b _0800E7BC +_0800E7BA: + movs r4, 0x1 +_0800E7BC: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_800E414 + + thumb_func_start sub_800E7C4 +sub_800E7C4: @ 800E7C4 + push {lr} + ldr r0, _0800E7E4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0800E7F0 + bl sub_800B858 + ldr r0, _0800E7E8 @ =sub_800F104 + bl SetMainCallback2 + ldr r1, _0800E7EC @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1] + b _0800E7F4 + .align 2, 0 +_0800E7E4: .4byte gUnknown_020239F8 +_0800E7E8: .4byte sub_800F104 +_0800E7EC: .4byte gUnknown_02024D1E +_0800E7F0: + bl sub_800E7F8 +_0800E7F4: + pop {r0} + bx r0 + thumb_func_end sub_800E7C4 + + thumb_func_start sub_800E7F8 +sub_800E7F8: @ 800E7F8 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r4, 0 + str r4, [sp] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, _0800E90C @ =0x05006000 + mov r0, sp + bl CpuSet + ldr r0, _0800E910 @ =REG_MOSAIC + strh r4, [r0] + subs r0, 0xC + movs r2, 0xF0 + strh r2, [r0] + adds r0, 0x4 + ldr r3, _0800E914 @ =0x00005051 + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x4 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r0, _0800E918 @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _0800E91C @ =gUnknown_03004240 + strh r1, [r0] + bl dp12_8087EA4 + ldr r0, _0800E920 @ =gUnknown_03004DE0 + movs r3, 0xF0 + movs r5, 0xF0 + lsls r5, 3 + adds r2, r0, r5 + movs r1, 0x4F +_0800E84A: + strh r3, [r0] + strh r3, [r2] + adds r2, 0x2 + adds r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _0800E84A + movs r1, 0x50 + ldr r4, _0800E924 @ =gUnknown_081F9674 + ldr r0, _0800E920 @ =gUnknown_03004DE0 + ldr r3, _0800E928 @ =0x0000ff10 + movs r5, 0x82 + lsls r5, 4 + adds r2, r0, r5 + adds r0, 0xA0 +_0800E868: + strh r3, [r0] + strh r3, [r2] + adds r2, 0x2 + adds r0, 0x2 + adds r1, 0x1 + cmp r1, 0x9F + ble _0800E868 + ldr r0, [r4] + ldr r1, [r4, 0x4] + ldr r2, [r4, 0x8] + bl sub_80895F8 + ldr r4, _0800E92C @ =gWindowConfig_81E6C58 + adds r0, r4, 0 + bl SetUpWindowConfig + bl ResetPaletteFade + ldr r0, _0800E930 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _0800E934 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r0, _0800E938 @ =gUnknown_030042C0 + strh r1, [r0] + ldr r0, _0800E93C @ =gUnknown_030041B4 + strh r1, [r0] + ldr r0, _0800E940 @ =gUnknown_03004288 + strh r1, [r0] + ldr r0, _0800E944 @ =gUnknown_03004280 + strh r1, [r0] + ldr r0, _0800E948 @ =gUnknown_030041B0 + strh r1, [r0] + ldr r0, _0800E94C @ =gUnknown_030041B8 + strh r1, [r0] + bl sub_8081D3C + ldr r1, _0800E950 @ =gUnknown_0300428C + strb r0, [r1] + ldr r0, _0800E954 @ =gUnknown_03004210 + adds r1, r4, 0 + bl InitWindowFromConfig + ldr r0, _0800E958 @ =gUnknown_030041D0 + ldr r1, _0800E95C @ =gWindowConfig_81E71D0 + bl InitWindowFromConfig + ldr r0, _0800E960 @ =gUnknown_03004250 + ldr r1, _0800E964 @ =gWindowConfig_81E71EC + bl InitWindowFromConfig + bl sub_800D6D4 + bl sub_800DAB8 + bl ResetSpriteData + bl ResetTasks + bl sub_800E23C + bl FreeAllSpritePalettes + ldr r1, _0800E968 @ =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + ldr r0, _0800E96C @ =sub_800FCFC + bl SetVBlankCallback + bl sub_800B884 + ldr r0, _0800E970 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0800E978 + ldr r0, _0800E974 @ =sub_800F298 + bl SetMainCallback2 + b _0800E97E + .align 2, 0 +_0800E90C: .4byte 0x05006000 +_0800E910: .4byte REG_MOSAIC +_0800E914: .4byte 0x00005051 +_0800E918: .4byte gUnknown_030042C4 +_0800E91C: .4byte gUnknown_03004240 +_0800E920: .4byte gUnknown_03004DE0 +_0800E924: .4byte gUnknown_081F9674 +_0800E928: .4byte 0x0000ff10 +_0800E92C: .4byte gWindowConfig_81E6C58 +_0800E930: .4byte gUnknown_030042A4 +_0800E934: .4byte gUnknown_030042A0 +_0800E938: .4byte gUnknown_030042C0 +_0800E93C: .4byte gUnknown_030041B4 +_0800E940: .4byte gUnknown_03004288 +_0800E944: .4byte gUnknown_03004280 +_0800E948: .4byte gUnknown_030041B0 +_0800E94C: .4byte gUnknown_030041B8 +_0800E950: .4byte gUnknown_0300428C +_0800E954: .4byte gUnknown_03004210 +_0800E958: .4byte gUnknown_030041D0 +_0800E95C: .4byte gWindowConfig_81E71D0 +_0800E960: .4byte gUnknown_03004250 +_0800E964: .4byte gWindowConfig_81E71EC +_0800E968: .4byte gReservedSpritePaletteCount +_0800E96C: .4byte sub_800FCFC +_0800E970: .4byte gUnknown_020239F8 +_0800E974: .4byte sub_800F298 +_0800E978: + ldr r0, _0800E9CC @ =sub_800EC9C + bl SetMainCallback2 +_0800E97E: + ldr r0, _0800E9D0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0800E998 + ldr r0, _0800E9D4 @ =gEnemyParty + ldr r1, _0800E9D8 @ =gTrainerBattleOpponent + ldrh r1, [r1] + bl sub_800F8E8 + bl sub_8040C38 +_0800E998: + ldr r0, _0800E9DC @ =gMain + ldr r1, _0800E9E0 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldr r4, _0800E9E4 @ =gPlayerParty + movs r3, 0xFA + lsls r3, 1 + adds r5, r4, r3 +_0800E9AE: + adds r0, r4, 0 + movs r1, 0x3 + bl AdjustFriendship + adds r4, 0x64 + cmp r4, r5 + ble _0800E9AE + movs r1, 0 + ldr r0, _0800E9E8 @ =gUnknown_02024D1E + strb r1, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800E9CC: .4byte sub_800EC9C +_0800E9D0: .4byte gUnknown_020239F8 +_0800E9D4: .4byte gEnemyParty +_0800E9D8: .4byte gTrainerBattleOpponent +_0800E9DC: .4byte gMain +_0800E9E0: .4byte 0x0000043d +_0800E9E4: .4byte gPlayerParty +_0800E9E8: .4byte gUnknown_02024D1E + thumb_func_end sub_800E7F8 + + thumb_func_start sub_800E9EC +sub_800E9EC: @ 800E9EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + mov r9, r6 + movs r0, 0xCE + lsls r0, 1 + mov r10, r0 + mov r8, r6 +_0800EA02: + movs r0, 0x64 + mov r4, r9 + muls r4, r0 + ldr r0, _0800EAA4 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + adds r1, r0, 0 + cmp r5, 0 + beq _0800EA7E + cmp r5, r10 + beq _0800EA4A + cmp r7, 0 + beq _0800EA4A + cmp r1, 0 + bne _0800EA4A + movs r0, 0x1 + mov r2, r8 + lsls r0, r2 + orrs r6, r0 + lsls r0, r6, 16 + lsrs r6, r0, 16 +_0800EA4A: + cmp r5, 0 + beq _0800EA7E + cmp r7, 0 + beq _0800EA66 + cmp r5, r10 + beq _0800EA5A + cmp r1, 0 + beq _0800EA66 +_0800EA5A: + movs r0, 0x2 + mov r1, r8 + lsls r0, r1 + orrs r6, r0 + lsls r0, r6, 16 + lsrs r6, r0, 16 +_0800EA66: + cmp r5, 0 + beq _0800EA7E + cmp r5, r10 + beq _0800EA7E + cmp r7, 0 + bne _0800EA7E + movs r0, 0x3 + mov r2, r8 + lsls r0, r2 + orrs r6, r0 + lsls r0, r6, 16 + lsrs r6, r0, 16 +_0800EA7E: + movs r0, 0x2 + add r8, r0 + movs r1, 0x1 + add r9, r1 + mov r2, r9 + cmp r2, 0x5 + ble _0800EA02 + ldr r1, _0800EAA8 @ =0x02000000 + strb r6, [r1, 0x2] + lsrs r0, r6, 8 + strb r0, [r1, 0x3] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800EAA4: .4byte gPlayerParty +_0800EAA8: .4byte 0x02000000 + thumb_func_end sub_800E9EC + + thumb_func_start sub_800EAAC +sub_800EAAC: @ 800EAAC + push {r4-r6,lr} + ldr r4, _0800EAF4 @ =0x02000004 + movs r2, 0 + ldr r6, _0800EAF8 @ =gSaveBlock1 + ldr r0, _0800EAFC @ =0x00003160 + adds r3, r6, r0 +_0800EAB8: + adds r0, r4, r2 + adds r1, r2, r3 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x6 + ble _0800EAB8 + movs r2, 0 + adds r3, r4, 0 + adds r3, 0x8 + ldr r5, _0800EB00 @ =gSaveBlock1 + 0x3676 +_0800EACE: + adds r0, r3, r2 + adds r1, r2, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x11 + ble _0800EACE + ldr r1, _0800EB04 @ =0x00003688 + adds r0, r6, r1 + ldrb r0, [r0] + strb r0, [r4, 0x7] + adds r1, 0x1 + adds r0, r6, r1 + ldrb r0, [r0] + strb r0, [r4, 0x1A] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800EAF4: .4byte 0x02000004 +_0800EAF8: .4byte gSaveBlock1 +_0800EAFC: .4byte 0x00003160 +_0800EB00: .4byte gSaveBlock1 + 0x3676 +_0800EB04: .4byte 0x00003688 + thumb_func_end sub_800EAAC + + thumb_func_start sub_800EB08 +sub_800EB08: @ 800EB08 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _0800EB84 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0800EBA4 + movs r3, 0 + ldr r5, _0800EB88 @ =gEnigmaBerries + ldr r0, _0800EB8C @ =gSaveBlock1 + mov r12, r0 + adds r7, r5, 0 + ldr r6, _0800EB90 @ =0x00003160 + add r6, r12 + adds r4, r5, 0 + adds r4, 0x38 +_0800EB30: + adds r1, r3, r7 + adds r2, r3, r6 + ldrb r0, [r2] + strb r0, [r1] + adds r1, r3, r4 + ldrb r0, [r2] + strb r0, [r1] + adds r3, 0x1 + cmp r3, 0x6 + ble _0800EB30 + movs r3, 0 + ldr r4, _0800EB94 @ =gUnknown_02024DF8 + ldr r7, _0800EB98 @ =gSaveBlock1 + 0x3676 + adds r6, r4, 0 + adds r6, 0x38 +_0800EB4E: + adds r1, r3, r4 + adds r2, r3, r7 + ldrb r0, [r2] + strb r0, [r1] + adds r1, r3, r6 + ldrb r0, [r2] + strb r0, [r1] + adds r3, 0x1 + cmp r3, 0x11 + ble _0800EB4E + ldr r1, _0800EB9C @ =0x00003688 + add r1, r12 + ldrb r0, [r1] + strb r0, [r5, 0x7] + ldrb r0, [r1] + adds r1, r5, 0 + adds r1, 0x3F + strb r0, [r1] + ldr r1, _0800EBA0 @ =0x00003689 + add r1, r12 + ldrb r0, [r1] + strb r0, [r5, 0x1A] + ldrb r1, [r1] + adds r0, r5, 0 + adds r0, 0x52 + strb r1, [r0] + b _0800EC28 + .align 2, 0 +_0800EB84: .4byte gUnknown_020239F8 +_0800EB88: .4byte gEnigmaBerries +_0800EB8C: .4byte gSaveBlock1 +_0800EB90: .4byte 0x00003160 +_0800EB94: .4byte gUnknown_02024DF8 +_0800EB98: .4byte gSaveBlock1 + 0x3676 +_0800EB9C: .4byte 0x00003688 +_0800EBA0: .4byte 0x00003689 +_0800EBA4: + movs r0, 0x40 + ands r0, r1 + movs r1, 0x2 + mov r8, r1 + cmp r0, 0 + beq _0800EBB4 + movs r0, 0x4 + mov r8, r0 +_0800EBB4: + movs r3, 0 + cmp r3, r8 + bge _0800EC28 + ldr r1, _0800EC38 @ =gEnigmaBerries + mov r12, r1 + ldr r0, _0800EC3C @ =gBlockRecvBuffer + 0x4 + mov r10, r0 + movs r1, 0x8 + add r1, r12 + mov r9, r1 +_0800EBC8: + lsls r0, r3, 8 + mov r1, r10 + adds r5, r0, r1 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + ldr r1, _0800EC40 @ =gLinkPlayers + adds r0, r1 + ldrb r4, [r0, 0x18] + movs r2, 0 + adds r7, r3, 0x1 + lsls r1, r4, 3 + subs r0, r1, r4 + adds r6, r1, 0 + lsls r0, 2 + mov r1, r12 + adds r3, r0, r1 +_0800EBEA: + adds r0, r5, r2 + ldrb r0, [r0] + strb r0, [r3] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x6 + ble _0800EBEA + movs r2, 0 + subs r0, r6, r4 + lsls r0, 2 + mov r1, r9 + adds r3, r0, r1 + adds r1, r5, 0 + adds r1, 0x8 +_0800EC06: + adds r0, r1, r2 + ldrb r0, [r0] + strb r0, [r3] + adds r3, 0x1 + adds r2, 0x1 + cmp r2, 0x11 + ble _0800EC06 + subs r0, r6, r4 + lsls r0, 2 + add r0, r12 + ldrb r1, [r5, 0x7] + strb r1, [r0, 0x7] + ldrb r1, [r5, 0x1A] + strb r1, [r0, 0x1A] + adds r3, r7, 0 + cmp r3, r8 + blt _0800EBC8 +_0800EC28: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800EC38: .4byte gEnigmaBerries +_0800EC3C: .4byte gBlockRecvBuffer + 0x4 +_0800EC40: .4byte gLinkPlayers + thumb_func_end sub_800EB08 + + thumb_func_start shedinja_something +shedinja_something: @ 800EC44 + push {r4,r5,lr} + sub sp, 0x10 + adds r4, r0, 0 + add r5, sp, 0xC + movs r0, 0x1 + strb r0, [r5] + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldr r1, _0800EC94 @ =0x0000012f + cmp r0, r1 + bne _0800EC8C + adds r0, r4, 0 + movs r1, 0x3 + bl GetMonData + ldrb r1, [r5] + cmp r0, r1 + beq _0800EC8C + adds r0, r4, 0 + movs r1, 0x2 + mov r2, sp + bl GetMonData + ldr r1, _0800EC98 @ =gUnknown_081F96C8 + mov r0, sp + bl StringCompareWithoutExtCtrlCodes + cmp r0, 0 + bne _0800EC8C + adds r0, r4, 0 + movs r1, 0x3 + adds r2, r5, 0 + bl SetMonData +_0800EC8C: + add sp, 0x10 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800EC94: .4byte 0x0000012f +_0800EC98: .4byte gUnknown_081F96C8 + thumb_func_end shedinja_something + + thumb_func_start sub_800EC9C +sub_800EC9C: @ 800EC9C + push {r4-r7,lr} + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + bl GetMultiplayerId + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0800ECD4 @ =0x02000000 + ldr r1, _0800ECD8 @ =0x000160cb + adds r0, r1 + strb r4, [r0] + movs r0, 0x1 + adds r5, r4, 0 + eors r5, r0 + ldr r0, _0800ECDC @ =gUnknown_02024D1E + ldrb r0, [r0] + cmp r0, 0x9 + bls _0800ECCA + b _0800F008 +_0800ECCA: + lsls r0, 2 + ldr r1, _0800ECE0 @ =_0800ECE4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800ECD4: .4byte 0x02000000 +_0800ECD8: .4byte 0x000160cb +_0800ECDC: .4byte gUnknown_02024D1E +_0800ECE0: .4byte _0800ECE4 + .align 2, 0 +_0800ECE4: + .4byte _0800ED0C + .4byte _0800ED7C + .4byte _0800EE88 + .4byte _0800EEAC + .4byte _0800EED8 + .4byte _0800EEFC + .4byte _0800EF28 + .4byte _0800EF48 + .4byte _0800EFB4 + .4byte _0800EFCC +_0800ED0C: + ldr r2, _0800ED54 @ =gUnknown_020239F8 + ldrh r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0800ED64 + ldr r0, _0800ED58 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _0800ED22 + b _0800F008 +_0800ED22: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0800ED2E + b _0800F008 +_0800ED2E: + ldr r4, _0800ED5C @ =0x02000000 + movs r5, 0x1 + strb r5, [r4] + strb r5, [r4, 0x1] + bl sub_800E9EC + bl sub_800EAAC + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + movs r2, 0x20 + bl SendBlock + ldr r0, _0800ED60 @ =gUnknown_02024D1E + strb r5, [r0] + b _0800F008 + .align 2, 0 +_0800ED54: .4byte gUnknown_020239F8 +_0800ED58: .4byte gReceivedRemoteLinkPlayers +_0800ED5C: .4byte 0x02000000 +_0800ED60: .4byte gUnknown_02024D1E +_0800ED64: + movs r0, 0x4 + orrs r0, r1 + strh r0, [r2] + ldr r1, _0800ED78 @ =gUnknown_02024D1E + movs r0, 0x8 + strb r0, [r1] + bl sub_800EB08 + b _0800F008 + .align 2, 0 +_0800ED78: .4byte gUnknown_02024D1E +_0800ED7C: + bl GetBlockRecievedStatus + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x3 + beq _0800ED8A + b _0800F008 +_0800ED8A: + bl ResetBlockReceivedFlags + movs r3, 0 + ldr r0, _0800EDA8 @ =gBlockRecvBuffer + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bne _0800EDBC + cmp r4, 0 + bne _0800EDB0 + ldr r0, _0800EDAC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0xC + b _0800EDB6 + .align 2, 0 +_0800EDA8: .4byte gBlockRecvBuffer +_0800EDAC: .4byte gUnknown_020239F8 +_0800EDB0: + ldr r0, _0800EDE0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0x8 +_0800EDB6: + orrs r1, r2 + strh r1, [r0] + adds r3, 0x1 +_0800EDBC: + lsls r7, r5, 8 + cmp r3, 0 + bne _0800EE38 + ldr r0, _0800EDE4 @ =gBlockRecvBuffer + movs r1, 0x80 + lsls r1, 1 + adds r2, r0, r1 + ldrh r1, [r0] + adds r6, r0, 0 + ldrh r2, [r2] + cmp r1, r2 + bne _0800EDF4 + cmp r4, 0 + bne _0800EDE8 + ldr r0, _0800EDE0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0xC + b _0800EDEE + .align 2, 0 +_0800EDE0: .4byte gUnknown_020239F8 +_0800EDE4: .4byte gBlockRecvBuffer +_0800EDE8: + ldr r0, _0800EE04 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0x8 +_0800EDEE: + orrs r1, r2 + strh r1, [r0] + adds r3, 0x1 +_0800EDF4: + lsls r7, r5, 8 + cmp r3, 0 + bne _0800EE38 + ldrh r1, [r6] + ldr r0, _0800EE08 @ =0x00000101 + ldr r2, _0800EE04 @ =gUnknown_020239F8 + b _0800EE1A + .align 2, 0 +_0800EE04: .4byte gUnknown_020239F8 +_0800EE08: .4byte 0x00000101 +_0800EE0C: + adds r3, 0x1 + cmp r3, 0x1 + bgt _0800EE22 + lsls r0, r3, 8 + adds r0, r6 + ldrh r1, [r0] + ldr r0, _0800EE2C @ =0x00000101 +_0800EE1A: + cmp r1, r0 + bls _0800EE0C + cmp r3, r4 + beq _0800EE0C +_0800EE22: + cmp r3, 0x2 + bne _0800EE30 + ldrh r0, [r2] + movs r1, 0xC + b _0800EE34 + .align 2, 0 +_0800EE2C: .4byte 0x00000101 +_0800EE30: + ldrh r0, [r2] + movs r1, 0x8 +_0800EE34: + orrs r0, r1 + strh r0, [r2] +_0800EE38: + bl sub_800EB08 + ldr r0, _0800EE78 @ =sub_800DE30 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0800EE7C @ =gTasks + lsls r2, r0, 2 + adds r2, r0 + lsls r2, 3 + adds r2, r1 + movs r1, 0 + movs r0, 0x87 + lsls r0, 1 + strh r0, [r2, 0xA] + movs r0, 0x5A + strh r0, [r2, 0xC] + strh r1, [r2, 0x12] + ldr r0, _0800EE80 @ =0x02000000 + ldrb r1, [r0, 0x2] + ldrb r0, [r0, 0x3] + lsls r0, 8 + orrs r1, r0 + strh r1, [r2, 0xE] + ldr r0, _0800EE84 @ =gBlockRecvBuffer + adds r0, 0x2 + adds r0, r7, r0 + ldrh r0, [r0] + strh r0, [r2, 0x10] + b _0800EF96 + .align 2, 0 +_0800EE78: .4byte sub_800DE30 +_0800EE7C: .4byte gTasks +_0800EE80: .4byte 0x02000000 +_0800EE84: .4byte gBlockRecvBuffer +_0800EE88: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0800EE94 + b _0800F008 +_0800EE94: + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0800EEA8 @ =gPlayerParty + movs r2, 0xC8 + bl SendBlock + b _0800EF96 + .align 2, 0 +_0800EEA8: .4byte gPlayerParty +_0800EEAC: + bl GetBlockRecievedStatus + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x3 + beq _0800EEBA + b _0800F008 +_0800EEBA: + bl ResetBlockReceivedFlags + ldr r0, _0800EED0 @ =gEnemyParty + lsls r1, r5, 8 + ldr r2, _0800EED4 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0xC8 + bl memcpy + b _0800EF96 + .align 2, 0 +_0800EED0: .4byte gEnemyParty +_0800EED4: .4byte gBlockRecvBuffer +_0800EED8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0800EEE4 + b _0800F008 +_0800EEE4: + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0800EEF8 @ =gUnknown_03004428 + movs r2, 0xC8 + bl SendBlock + b _0800EF96 + .align 2, 0 +_0800EEF8: .4byte gUnknown_03004428 +_0800EEFC: + bl GetBlockRecievedStatus + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x3 + beq _0800EF0A + b _0800F008 +_0800EF0A: + bl ResetBlockReceivedFlags + ldr r0, _0800EF20 @ =gUnknown_03004688 + lsls r1, r5, 8 + ldr r2, _0800EF24 @ =gBlockRecvBuffer + adds r1, r2 + movs r2, 0xC8 + bl memcpy + b _0800EF96 + .align 2, 0 +_0800EF20: .4byte gUnknown_03004688 +_0800EF24: .4byte gBlockRecvBuffer +_0800EF28: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + beq _0800F008 + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0800EF44 @ =gUnknown_030044F0 + movs r2, 0xC8 + bl SendBlock + b _0800EF96 + .align 2, 0 +_0800EF44: .4byte gUnknown_030044F0 +_0800EF48: + bl GetBlockRecievedStatus + movs r1, 0x3 + ands r1, r0 + cmp r1, 0x3 + bne _0800F008 + bl ResetBlockReceivedFlags + ldr r4, _0800EFA0 @ =gUnknown_03004750 + lsls r1, r5, 8 + ldr r0, _0800EFA4 @ =gBlockRecvBuffer + adds r1, r0 + adds r0, r4, 0 + movs r2, 0xC8 + bl memcpy + ldr r1, _0800EFA8 @ =0xfffffe70 + adds r0, r4, r1 + bl shedinja_something + ldr r1, _0800EFAC @ =0xfffffed4 + adds r0, r4, r1 + bl shedinja_something + adds r0, r4, 0 + subs r0, 0xC8 + bl shedinja_something + adds r0, r4, 0 + subs r0, 0x64 + bl shedinja_something + adds r0, r4, 0 + bl shedinja_something + adds r0, r4, 0 + adds r0, 0x64 + bl shedinja_something +_0800EF96: + ldr r1, _0800EFB0 @ =gUnknown_02024D1E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0800F008 + .align 2, 0 +_0800EFA0: .4byte gUnknown_03004750 +_0800EFA4: .4byte gBlockRecvBuffer +_0800EFA8: .4byte 0xfffffe70 +_0800EFAC: .4byte 0xfffffed4 +_0800EFB0: .4byte gUnknown_02024D1E +_0800EFB4: + bl sub_800B950 + ldr r0, _0800EFC8 @ =gUnknown_02024D1E + ldrb r1, [r0] + adds r1, 0x1 + movs r2, 0 + strb r1, [r0] + strb r2, [r0, 0x1] + strb r2, [r0, 0x2] + b _0800F008 + .align 2, 0 +_0800EFC8: .4byte gUnknown_02024D1E +_0800EFCC: + ldr r0, _0800F010 @ =gUnknown_02024D1F + adds r1, r0, 0x1 + bl battle_load_something + lsls r0, 24 + cmp r0, 0 + beq _0800F008 + ldr r2, _0800F014 @ =gUnknown_030042D0 + ldr r1, _0800F018 @ =gMain + ldr r0, [r1] + str r0, [r2] + ldr r0, _0800F01C @ =sub_8010824 + str r0, [r1] + ldr r0, _0800F020 @ =sub_800F808 + bl SetMainCallback2 + ldr r3, _0800F024 @ =gUnknown_020239F8 + ldrh r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0800F008 + ldr r1, _0800F028 @ =gTrainerBattleOpponent + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + strh r0, [r1] + movs r0, 0x20 + orrs r0, r2 + strh r0, [r3] +_0800F008: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800F010: .4byte gUnknown_02024D1F +_0800F014: .4byte gUnknown_030042D0 +_0800F018: .4byte gMain +_0800F01C: .4byte sub_8010824 +_0800F020: .4byte sub_800F808 +_0800F024: .4byte gUnknown_020239F8 +_0800F028: .4byte gTrainerBattleOpponent + thumb_func_end sub_800EC9C + + thumb_func_start sub_800F02C +sub_800F02C: @ 800F02C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r8, r0 + ldr r7, _0800F0F8 @ =gUnknown_02023A04 + mov r10, r7 +_0800F03E: + mov r1, r8 + lsls r6, r1, 5 + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + ldr r0, _0800F0FC @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + movs r1, 0x4 + negs r1, r1 + add r1, r10 + mov r9, r1 + adds r5, r6, r1 + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + strh r0, [r5, 0x2] + adds r0, r4, 0 + movs r1, 0x2 + adds r2, r7, 0 + bl GetMonData + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + strb r0, [r5, 0xF] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r5, 0x10] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + strh r0, [r5, 0x12] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + mov r1, r10 + adds r1, 0x10 + adds r6, r1 + str r0, [r6] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [r7, 0x14] + adds r0, r4, 0 + bl GetMonGender + strb r0, [r5, 0x1C] + adds r0, r7, 0 + bl StripExtCtrlCodes + adds r0, r4, 0 + movs r1, 0x3 + bl GetMonData + strb r0, [r5, 0x1D] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0800F0D4 + adds r0, r7, 0 + movs r1, 0 + bl sub_814A518 +_0800F0D4: + adds r7, 0x20 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x2 + ble _0800F03E + ldr r0, _0800F100 @ =0x02000000 + mov r1, r9 + movs r2, 0x60 + bl memcpy + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800F0F8: .4byte gUnknown_02023A04 +_0800F0FC: .4byte gPlayerParty +_0800F100: .4byte 0x02000000 + thumb_func_end sub_800F02C + + thumb_func_start sub_800F104 +sub_800F104: @ 800F104 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + bl GetMultiplayerId + lsls r0, 24 + lsrs r6, r0, 24 + ldr r4, _0800F148 @ =0x02000000 + ldr r1, _0800F14C @ =0x000160cb + adds r0, r4, r1 + strb r6, [r0] + ldr r2, _0800F150 @ =0x000160c4 + adds r2, r4 + mov r9, r2 + ldr r0, _0800F154 @ =0x000160c2 + adds r0, r4 + mov r8, r0 + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r5, _0800F158 @ =gUnknown_02024D1E + ldrb r0, [r5] + cmp r0, 0x1 + beq _0800F1A0 + cmp r0, 0x1 + bgt _0800F15C + cmp r0, 0 + beq _0800F168 + b _0800F27A + .align 2, 0 +_0800F148: .4byte 0x02000000 +_0800F14C: .4byte 0x000160cb +_0800F150: .4byte 0x000160c4 +_0800F154: .4byte 0x000160c2 +_0800F158: .4byte gUnknown_02024D1E +_0800F15C: + cmp r0, 0x2 + beq _0800F240 + cmp r0, 0x3 + bne _0800F166 + b _0800F25C +_0800F166: + b _0800F27A +_0800F168: + ldr r0, _0800F19C @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _0800F172 + b _0800F27A +_0800F172: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0800F17E + b _0800F27A +_0800F17E: + bl sub_800F02C + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + movs r2, 0x60 + bl SendBlock + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0800F27A + .align 2, 0 +_0800F19C: .4byte gReceivedRemoteLinkPlayers +_0800F1A0: + bl GetBlockRecievedStatus + movs r1, 0xF + ands r1, r0 + cmp r1, 0xF + bne _0800F27A + bl ResetBlockReceivedFlags + movs r4, 0 + lsls r0, r6, 3 + subs r0, r6 + lsls r5, r0, 2 + movs r7, 0 +_0800F1BA: + cmp r4, r6 + beq _0800F1FA + ldr r2, _0800F1DC @ =gLinkPlayers + adds r0, r7, r2 + ldrh r1, [r0, 0x18] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0800F1E0 + adds r0, r5, r2 + ldrh r1, [r0, 0x18] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0800F1EC + b _0800F1FA + .align 2, 0 +_0800F1DC: .4byte gLinkPlayers +_0800F1E0: + adds r0, r5, r2 + ldrh r1, [r0, 0x18] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0800F1FA +_0800F1EC: + lsls r1, r4, 8 + ldr r0, _0800F228 @ =gBlockRecvBuffer + adds r1, r0 + ldr r0, _0800F22C @ =gUnknown_02023A00 + movs r2, 0x60 + bl memcpy +_0800F1FA: + adds r7, 0x1C + adds r4, 0x1 + cmp r4, 0x3 + ble _0800F1BA + ldr r1, _0800F230 @ =gUnknown_02024D1E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, _0800F234 @ =gMain + ldr r0, [r1, 0x8] + mov r2, r9 + str r0, [r2] + ldr r0, _0800F238 @ =gUnknown_020239F8 + ldrh r0, [r0] + mov r2, r8 + strh r0, [r2] + ldr r0, _0800F23C @ =sub_800F104 + str r0, [r1, 0x8] + movs r0, 0x5 + movs r1, 0 + bl OpenPartyMenu + b _0800F27A + .align 2, 0 +_0800F228: .4byte gBlockRecvBuffer +_0800F22C: .4byte gUnknown_02023A00 +_0800F230: .4byte gUnknown_02024D1E +_0800F234: .4byte gMain +_0800F238: .4byte gUnknown_020239F8 +_0800F23C: .4byte sub_800F104 +_0800F240: + ldr r0, _0800F258 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0800F27A + movs r0, 0x3 + strb r0, [r5] + bl sub_800832C + b _0800F27A + .align 2, 0 +_0800F258: .4byte gPaletteFade +_0800F25C: + ldr r0, _0800F288 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _0800F27A + ldr r1, _0800F28C @ =gUnknown_020239F8 + mov r2, r8 + ldrh r0, [r2] + strh r0, [r1] + ldr r1, _0800F290 @ =gMain + mov r2, r9 + ldr r0, [r2] + str r0, [r1, 0x8] + ldr r0, _0800F294 @ =sub_800E7F8 + bl SetMainCallback2 +_0800F27A: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800F288: .4byte gReceivedRemoteLinkPlayers +_0800F28C: .4byte gUnknown_020239F8 +_0800F290: .4byte gMain +_0800F294: .4byte sub_800E7F8 + thumb_func_end sub_800F104 + + thumb_func_start sub_800F298 +sub_800F298: @ 800F298 + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl GetMultiplayerId + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _0800F2D0 @ =0x02000000 + ldr r1, _0800F2D4 @ =0x000160cb + adds r0, r1 + strb r6, [r0] + bl RunTasks + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _0800F2D8 @ =gUnknown_02024D1E + ldrb r0, [r0] + cmp r0, 0x7 + bls _0800F2C4 + b _0800F7E0 +_0800F2C4: + lsls r0, 2 + ldr r1, _0800F2DC @ =_0800F2E0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800F2D0: .4byte 0x02000000 +_0800F2D4: .4byte 0x000160cb +_0800F2D8: .4byte gUnknown_02024D1E +_0800F2DC: .4byte _0800F2E0 + .align 2, 0 +_0800F2E0: + .4byte _0800F300 + .4byte _0800F340 + .4byte _0800F4DE + .4byte _0800F504 + .4byte _0800F5F8 + .4byte _0800F61C + .4byte _0800F78C + .4byte _0800F7A4 +_0800F300: + ldr r0, _0800F338 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _0800F30A + b _0800F7E0 +_0800F30A: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0800F316 + b _0800F7E0 +_0800F316: + ldr r4, _0800F33C @ =0x02000000 + movs r0, 0x1 + strb r0, [r4] + strb r0, [r4, 0x1] + bl sub_800E9EC + bl sub_800EAAC + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + adds r1, r4, 0 + movs r2, 0x20 + bl SendBlock + b _0800F770 + .align 2, 0 +_0800F338: .4byte gReceivedRemoteLinkPlayers +_0800F33C: .4byte 0x02000000 +_0800F340: + bl GetBlockRecievedStatus + movs r1, 0xF + ands r1, r0 + cmp r1, 0xF + beq _0800F34E + b _0800F7E0 +_0800F34E: + bl ResetBlockReceivedFlags + movs r4, 0 + ldr r0, _0800F36C @ =gBlockRecvBuffer + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 1 + cmp r1, r0 + bne _0800F380 + cmp r6, 0 + bne _0800F374 + ldr r0, _0800F370 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0xC + b _0800F37A + .align 2, 0 +_0800F36C: .4byte gBlockRecvBuffer +_0800F370: .4byte gUnknown_020239F8 +_0800F374: + ldr r0, _0800F3B0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0x8 +_0800F37A: + orrs r1, r2 + strh r1, [r0] + adds r4, 0x1 +_0800F380: + cmp r4, 0 + bne _0800F41C + movs r2, 0 + ldr r1, _0800F3B4 @ =gBlockRecvBuffer + adds r5, r1, 0 + movs r3, 0x80 + lsls r3, 1 +_0800F38E: + adds r1, r3 + adds r2, 0x1 + cmp r2, 0x3 + bgt _0800F39E + ldrh r0, [r5] + ldrh r7, [r1] + cmp r0, r7 + beq _0800F38E +_0800F39E: + cmp r2, 0x4 + bne _0800F3C4 + cmp r6, 0 + bne _0800F3B8 + ldr r0, _0800F3B0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0xC + b _0800F3BE + .align 2, 0 +_0800F3B0: .4byte gUnknown_020239F8 +_0800F3B4: .4byte gBlockRecvBuffer +_0800F3B8: + ldr r0, _0800F408 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0x8 +_0800F3BE: + orrs r1, r2 + strh r1, [r0] + adds r4, 0x1 +_0800F3C4: + cmp r4, 0 + bne _0800F41C + ldr r0, _0800F40C @ =gBlockRecvBuffer + ldrh r2, [r0] + ldr r1, _0800F410 @ =0x00000101 + adds r3, r0, 0 + ldr r5, _0800F408 @ =gUnknown_020239F8 + cmp r2, r1 + beq _0800F3F6 +_0800F3D6: + lsls r0, r4, 8 + adds r0, r3 + ldrh r0, [r0] + ldr r1, _0800F410 @ =0x00000101 + cmp r0, r1 + bls _0800F3E6 + cmp r4, r6 + bne _0800F3FE +_0800F3E6: + adds r4, 0x1 + cmp r4, 0x3 + bgt _0800F3FE + lsls r0, r4, 8 + adds r0, r3 + ldrh r0, [r0] + cmp r0, r1 + bne _0800F3D6 +_0800F3F6: + cmp r4, r6 + beq _0800F3D6 + cmp r4, r6 + bge _0800F3D6 +_0800F3FE: + cmp r4, 0x4 + bne _0800F414 + ldrh r0, [r5] + movs r1, 0xC + b _0800F418 + .align 2, 0 +_0800F408: .4byte gUnknown_020239F8 +_0800F40C: .4byte gBlockRecvBuffer +_0800F410: .4byte 0x00000101 +_0800F414: + ldrh r0, [r5] + movs r1, 0x8 +_0800F418: + orrs r0, r1 + strh r0, [r5] +_0800F41C: + bl sub_800EB08 + ldr r0, _0800F474 @ =0x0201d000 + ldr r1, _0800F478 @ =gPlayerParty + movs r2, 0x96 + lsls r2, 1 + bl memcpy + ldr r0, _0800F47C @ =sub_800DE30 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0800F480 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0 + movs r0, 0x87 + lsls r0, 1 + strh r0, [r1, 0xA] + movs r0, 0x5A + strh r0, [r1, 0xC] + strh r2, [r1, 0x12] + strh r2, [r1, 0xE] + strh r2, [r1, 0x10] + adds r2, r1, 0 + ldr r0, _0800F484 @ =gBlockRecvBuffer + adds r3, r0, 0x2 + ldr r6, _0800F488 @ =gLinkPlayers + movs r5, 0x3F + movs r7, 0x80 + lsls r7, 1 + movs r4, 0x3 +_0800F464: + ldrh r0, [r6, 0x18] + cmp r0, 0x1 + beq _0800F49E + cmp r0, 0x1 + bgt _0800F48C + cmp r0, 0 + beq _0800F496 + b _0800F4C4 + .align 2, 0 +_0800F474: .4byte 0x0201d000 +_0800F478: .4byte gPlayerParty +_0800F47C: .4byte sub_800DE30 +_0800F480: .4byte gTasks +_0800F484: .4byte gBlockRecvBuffer +_0800F488: .4byte gLinkPlayers +_0800F48C: + cmp r0, 0x2 + beq _0800F4A6 + cmp r0, 0x3 + beq _0800F4B6 + b _0800F4C4 +_0800F496: + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + b _0800F4AE +_0800F49E: + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + b _0800F4BE +_0800F4A6: + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + lsls r1, 6 +_0800F4AE: + ldrh r0, [r2, 0xE] + orrs r1, r0 + strh r1, [r2, 0xE] + b _0800F4C4 +_0800F4B6: + ldrh r0, [r3] + adds r1, r5, 0 + ands r1, r0 + lsls r1, 6 +_0800F4BE: + ldrh r0, [r2, 0x10] + orrs r1, r0 + strh r1, [r2, 0x10] +_0800F4C4: + adds r3, r7 + adds r6, 0x1C + subs r4, 0x1 + cmp r4, 0 + bge _0800F464 + bl ZeroPlayerPartyMons + bl ZeroEnemyPartyMons + ldr r1, _0800F4FC @ =gUnknown_02024D1E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0800F4DE: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0800F4EA + b _0800F7E0 +_0800F4EA: + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0800F500 @ =0x0201d000 + movs r2, 0xC8 + bl SendBlock + b _0800F770 + .align 2, 0 +_0800F4FC: .4byte gUnknown_02024D1E +_0800F500: .4byte 0x0201d000 +_0800F504: + bl GetBlockRecievedStatus + movs r1, 0xF + ands r1, r0 + cmp r1, 0xF + beq _0800F512 + b _0800F7E0 +_0800F512: + bl ResetBlockReceivedFlags + movs r4, 0 + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + mov r8, r0 + ldr r5, _0800F53C @ =gBlockRecvBuffer + movs r7, 0 +_0800F524: + cmp r4, r6 + bne _0800F558 + ldr r0, _0800F540 @ =gLinkPlayers + adds r0, r7, r0 + ldrh r0, [r0, 0x18] + cmp r0, 0x2 + bgt _0800F544 + cmp r0, 0x1 + bge _0800F550 + cmp r0, 0 + beq _0800F548 + b _0800F5E2 + .align 2, 0 +_0800F53C: .4byte gBlockRecvBuffer +_0800F540: .4byte gLinkPlayers +_0800F544: + cmp r0, 0x3 + bne _0800F5E2 +_0800F548: + ldr r0, _0800F54C @ =gPlayerParty + b _0800F5C8 + .align 2, 0 +_0800F54C: .4byte gPlayerParty +_0800F550: + ldr r0, _0800F554 @ =gUnknown_0300448C + b _0800F5C8 + .align 2, 0 +_0800F554: .4byte gUnknown_0300448C +_0800F558: + ldr r2, _0800F578 @ =gLinkPlayers + adds r0, r7, r2 + ldrh r1, [r0, 0x18] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0800F57C + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, 0x18] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0800F58A + b _0800F5B0 + .align 2, 0 +_0800F578: .4byte gLinkPlayers +_0800F57C: + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, 0x18] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0800F5B0 +_0800F58A: + adds r0, r7, r2 + ldrh r2, [r0, 0x18] + cmp r2, 0x2 + bgt _0800F59C + cmp r2, 0x1 + bge _0800F5A8 + cmp r2, 0 + beq _0800F5A0 + b _0800F5E2 +_0800F59C: + cmp r2, 0x3 + bne _0800F5E2 +_0800F5A0: + ldr r0, _0800F5A4 @ =gPlayerParty + b _0800F5C8 + .align 2, 0 +_0800F5A4: .4byte gPlayerParty +_0800F5A8: + ldr r0, _0800F5AC @ =gUnknown_0300448C + b _0800F5C8 + .align 2, 0 +_0800F5AC: .4byte gUnknown_0300448C +_0800F5B0: + adds r0, r7, r2 + ldrh r2, [r0, 0x18] + cmp r2, 0x2 + bgt _0800F5C2 + cmp r2, 0x1 + bge _0800F5D8 + cmp r2, 0 + beq _0800F5C6 + b _0800F5E2 +_0800F5C2: + cmp r2, 0x3 + bne _0800F5E2 +_0800F5C6: + ldr r0, _0800F5D4 @ =gEnemyParty +_0800F5C8: + adds r1, r5, 0 + movs r2, 0xC8 + bl memcpy + b _0800F5E2 + .align 2, 0 +_0800F5D4: .4byte gEnemyParty +_0800F5D8: + ldr r0, _0800F5F4 @ =gUnknown_030046EC + adds r1, r5, 0 + movs r2, 0xC8 + bl memcpy +_0800F5E2: + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 + adds r7, 0x1C + adds r4, 0x1 + cmp r4, 0x3 + ble _0800F524 + b _0800F770 + .align 2, 0 +_0800F5F4: .4byte gUnknown_030046EC +_0800F5F8: + bl sub_8007ECC + lsls r0, 24 + cmp r0, 0 + bne _0800F604 + b _0800F7E0 +_0800F604: + bl bitmask_all_link_players_but_self + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0800F618 @ =0x0201d0c8 + movs r2, 0x64 + bl SendBlock + b _0800F770 + .align 2, 0 +_0800F618: .4byte 0x0201d0c8 +_0800F61C: + bl GetBlockRecievedStatus + movs r1, 0xF + ands r1, r0 + cmp r1, 0xF + beq _0800F62A + b _0800F7E0 +_0800F62A: + bl ResetBlockReceivedFlags + movs r4, 0 + lsls r0, r6, 3 + subs r0, r6 + lsls r0, 2 + mov r8, r0 + ldr r5, _0800F654 @ =gBlockRecvBuffer + movs r7, 0 +_0800F63C: + cmp r4, r6 + bne _0800F670 + ldr r0, _0800F658 @ =gLinkPlayers + adds r0, r7, r0 + ldrh r0, [r0, 0x18] + cmp r0, 0x2 + bgt _0800F65C + cmp r0, 0x1 + bge _0800F668 + cmp r0, 0 + beq _0800F660 + b _0800F6FA + .align 2, 0 +_0800F654: .4byte gBlockRecvBuffer +_0800F658: .4byte gLinkPlayers +_0800F65C: + cmp r0, 0x3 + bne _0800F6FA +_0800F660: + ldr r0, _0800F664 @ =gUnknown_03004428 + b _0800F6E0 + .align 2, 0 +_0800F664: .4byte gUnknown_03004428 +_0800F668: + ldr r0, _0800F66C @ =gUnknown_03004554 + b _0800F6E0 + .align 2, 0 +_0800F66C: .4byte gUnknown_03004554 +_0800F670: + ldr r2, _0800F690 @ =gLinkPlayers + adds r0, r7, r2 + ldrh r1, [r0, 0x18] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0800F694 + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, 0x18] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0800F6A2 + b _0800F6C8 + .align 2, 0 +_0800F690: .4byte gLinkPlayers +_0800F694: + mov r1, r8 + adds r0, r1, r2 + ldrh r1, [r0, 0x18] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0800F6C8 +_0800F6A2: + adds r0, r7, r2 + ldrh r2, [r0, 0x18] + cmp r2, 0x2 + bgt _0800F6B4 + cmp r2, 0x1 + bge _0800F6C0 + cmp r2, 0 + beq _0800F6B8 + b _0800F6FA +_0800F6B4: + cmp r2, 0x3 + bne _0800F6FA +_0800F6B8: + ldr r0, _0800F6BC @ =gUnknown_03004428 + b _0800F6E0 + .align 2, 0 +_0800F6BC: .4byte gUnknown_03004428 +_0800F6C0: + ldr r0, _0800F6C4 @ =gUnknown_03004554 + b _0800F6E0 + .align 2, 0 +_0800F6C4: .4byte gUnknown_03004554 +_0800F6C8: + adds r0, r7, r2 + ldrh r2, [r0, 0x18] + cmp r2, 0x2 + bgt _0800F6DA + cmp r2, 0x1 + bge _0800F6F0 + cmp r2, 0 + beq _0800F6DE + b _0800F6FA +_0800F6DA: + cmp r2, 0x3 + bne _0800F6FA +_0800F6DE: + ldr r0, _0800F6EC @ =gUnknown_03004688 +_0800F6E0: + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy + b _0800F6FA + .align 2, 0 +_0800F6EC: .4byte gUnknown_03004688 +_0800F6F0: + ldr r0, _0800F77C @ =gUnknown_030047B4 + adds r1, r5, 0 + movs r2, 0x64 + bl memcpy +_0800F6FA: + movs r0, 0x80 + lsls r0, 1 + adds r5, r0 + adds r7, 0x1C + adds r4, 0x1 + cmp r4, 0x3 + ble _0800F63C + ldr r4, _0800F780 @ =gPlayerParty + adds r0, r4, 0 + bl shedinja_something + adds r0, r4, 0 + adds r0, 0x64 + bl shedinja_something + adds r0, r4, 0 + adds r0, 0xC8 + bl shedinja_something + movs r1, 0x96 + lsls r1, 1 + adds r0, r4, r1 + bl shedinja_something + movs r7, 0xC8 + lsls r7, 1 + adds r0, r4, r7 + bl shedinja_something + movs r1, 0xFA + lsls r1, 1 + adds r0, r4, r1 + bl shedinja_something + ldr r4, _0800F784 @ =gEnemyParty + adds r0, r4, 0 + bl shedinja_something + adds r0, r4, 0 + adds r0, 0x64 + bl shedinja_something + adds r0, r4, 0 + adds r0, 0xC8 + bl shedinja_something + subs r7, 0x64 + adds r0, r4, r7 + bl shedinja_something + movs r1, 0xC8 + lsls r1, 1 + adds r0, r4, r1 + bl shedinja_something + adds r7, 0xC8 + adds r0, r4, r7 + bl shedinja_something +_0800F770: + ldr r1, _0800F788 @ =gUnknown_02024D1E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0800F7E0 + .align 2, 0 +_0800F77C: .4byte gUnknown_030047B4 +_0800F780: .4byte gPlayerParty +_0800F784: .4byte gEnemyParty +_0800F788: .4byte gUnknown_02024D1E +_0800F78C: + bl sub_800B950 + ldr r0, _0800F7A0 @ =gUnknown_02024D1E + ldrb r1, [r0] + adds r1, 0x1 + movs r2, 0 + strb r1, [r0] + strb r2, [r0, 0x1] + strb r2, [r0, 0x2] + b _0800F7E0 + .align 2, 0 +_0800F7A0: .4byte gUnknown_02024D1E +_0800F7A4: + ldr r0, _0800F7EC @ =gUnknown_02024D1F + adds r1, r0, 0x1 + bl battle_load_something + lsls r0, 24 + cmp r0, 0 + beq _0800F7E0 + ldr r2, _0800F7F0 @ =gUnknown_030042D0 + ldr r1, _0800F7F4 @ =gMain + ldr r0, [r1] + str r0, [r2] + ldr r0, _0800F7F8 @ =sub_8010824 + str r0, [r1] + ldr r0, _0800F7FC @ =sub_800F808 + bl SetMainCallback2 + ldr r3, _0800F800 @ =gUnknown_020239F8 + ldrh r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0800F7E0 + ldr r1, _0800F804 @ =gTrainerBattleOpponent + movs r4, 0x80 + lsls r4, 4 + adds r0, r4, 0 + strh r0, [r1] + movs r0, 0x20 + orrs r0, r2 + strh r0, [r3] +_0800F7E0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0800F7EC: .4byte gUnknown_02024D1F +_0800F7F0: .4byte gUnknown_030042D0 +_0800F7F4: .4byte gMain +_0800F7F8: .4byte sub_8010824 +_0800F7FC: .4byte sub_800F808 +_0800F800: .4byte gUnknown_020239F8 +_0800F804: .4byte gTrainerBattleOpponent + thumb_func_end sub_800F298 + + thumb_func_start sub_800F808 +sub_800F808: @ 800F808 + push {lr} + bl AnimateSprites + bl BuildOamBuffer + ldr r0, _0800F824 @ =gUnknown_03004210 + bl sub_800374C + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + .align 2, 0 +_0800F824: .4byte gUnknown_03004210 + thumb_func_end sub_800F808 + + thumb_func_start sub_800F828 +sub_800F828: @ 800F828 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r1, _0800F834 @ =sub_800F838 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_0800F834: .4byte sub_800F838 + thumb_func_end sub_800F828 + + thumb_func_start sub_800F838 +sub_800F838: @ 800F838 + push {r4,r5,lr} + adds r3, r0, 0 + ldr r5, _0800F850 @ =0x02000000 + movs r0, 0x2E + ldrsh r1, [r3, r0] + cmp r1, 0x1 + beq _0800F86C + cmp r1, 0x1 + bgt _0800F854 + cmp r1, 0 + beq _0800F85A + b _0800F8DC + .align 2, 0 +_0800F850: .4byte 0x02000000 +_0800F854: + cmp r1, 0x2 + beq _0800F8C8 + b _0800F8DC +_0800F85A: + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + strh r1, [r3, 0x30] + ldr r0, _0800F8C4 @ =0x00000281 + strh r0, [r3, 0x32] + strh r1, [r3, 0x34] + movs r0, 0x1 + strh r0, [r3, 0x36] +_0800F86C: + ldrh r0, [r3, 0x36] + subs r0, 0x1 + strh r0, [r3, 0x36] + lsls r0, 16 + cmp r0, 0 + bne _0800F8DC + movs r0, 0x2 + strh r0, [r3, 0x36] + movs r4, 0x30 + ldrsh r2, [r3, r4] + movs r0, 0x34 + ldrsh r1, [r3, r0] + lsls r1, 5 + adds r2, r1 + movs r4, 0x32 + ldrsh r0, [r3, r4] + subs r0, r1 + movs r4, 0x3D + lsls r0, 1 + adds r0, r5 + lsls r2, 1 + adds r2, r5 + movs r1, 0x1C +_0800F89A: + strh r4, [r2] + strh r4, [r0] + adds r0, 0x4 + adds r2, 0x4 + subs r1, 0x2 + cmp r1, 0 + bge _0800F89A + ldrh r0, [r3, 0x34] + adds r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x15 + bne _0800F8DC + ldrh r0, [r3, 0x2E] + adds r0, 0x1 + strh r0, [r3, 0x2E] + movs r0, 0x20 + strh r0, [r3, 0x30] + b _0800F8DC + .align 2, 0 +_0800F8C4: .4byte 0x00000281 +_0800F8C8: + ldrh r0, [r3, 0x30] + subs r0, 0x1 + strh r0, [r3, 0x30] + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x14 + bne _0800F8DC + ldr r0, _0800F8E4 @ =sub_800E7C4 + bl SetMainCallback2 +_0800F8DC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800F8E4: .4byte sub_800E7C4 + thumb_func_end sub_800F838 + + thumb_func_start sub_800F8E8 +sub_800F8E8: @ 800F8E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + str r0, [sp, 0x10] + lsls r1, 16 + lsrs r1, 16 + str r1, [sp, 0x14] + movs r0, 0 + mov r9, r0 + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _0800F90C + movs r0, 0 + b _0800FCB4 +_0800F90C: + ldr r0, _0800F93C @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0800F940 @ =0x00000908 + ands r0, r1 + ldr r1, [sp, 0x14] + lsls r1, 2 + str r1, [sp, 0x20] + cmp r0, 0x8 + beq _0800F920 + b _0800FCA4 +_0800F920: + bl ZeroEnemyPartyMons + movs r2, 0 + str r2, [sp, 0x18] + ldr r2, _0800F944 @ =gTrainers + ldr r1, [sp, 0x20] + ldr r3, [sp, 0x14] + adds r0, r1, r3 + lsls r0, 3 + adds r0, r2 + adds r0, 0x20 + ldr r4, [sp, 0x18] + b _0800FC86 + .align 2, 0 +_0800F93C: .4byte gUnknown_020239F8 +_0800F940: .4byte 0x00000908 +_0800F944: .4byte gTrainers +_0800F948: + ldr r3, [sp, 0x14] + adds r0, r1, r3 + lsls r0, 3 + adds r1, r0, r2 + ldrb r0, [r1, 0x18] + cmp r0, 0x1 + bne _0800F95C + movs r4, 0x80 + mov r10, r4 + b _0800F96E +_0800F95C: + ldrb r1, [r1, 0x2] + movs r0, 0x80 + ands r0, r1 + movs r1, 0x88 + mov r10, r1 + cmp r0, 0 + beq _0800F96E + movs r2, 0x78 + mov r10, r2 +_0800F96E: + movs r6, 0 + ldr r0, _0800F9C4 @ =gTrainers + ldr r2, [sp, 0x20] + ldr r3, [sp, 0x14] + adds r1, r2, r3 + lsls r1, 3 + adds r3, r0, 0x4 + adds r1, r3 + ldrb r1, [r1] + adds r4, r0, 0 + ldr r0, [sp, 0x18] + adds r0, 0x1 + str r0, [sp, 0x1C] + cmp r1, 0xFF + beq _0800F9A6 +_0800F98C: + ldr r0, [sp, 0x14] + adds r1, r2, r0 + lsls r1, 3 + adds r0, r6, r1 + adds r0, r3 + ldrb r0, [r0] + add r9, r0 + adds r6, 0x1 + adds r1, r6, r1 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0800F98C +_0800F9A6: + adds r2, r4, 0 + ldr r1, [sp, 0x20] + ldr r3, [sp, 0x14] + adds r0, r1, r3 + lsls r1, r0, 3 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0800FA5C + cmp r0, 0x1 + bgt _0800F9C8 + cmp r0, 0 + beq _0800F9D6 + b _0800FC74 + .align 2, 0 +_0800F9C4: .4byte gTrainers +_0800F9C8: + cmp r0, 0x2 + bne _0800F9CE + b _0800FB1C +_0800F9CE: + cmp r0, 0x3 + bne _0800F9D4 + b _0800FBB0 +_0800F9D4: + b _0800FC74 +_0800F9D6: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r1, r0 + ldr r4, [r0] + movs r6, 0 + ldr r0, [sp, 0x18] + lsls r2, r0, 3 + adds r0, r2, r4 + ldrh r1, [r0, 0x4] + movs r0, 0xB + muls r0, r1 + ldr r1, _0800FA58 @ =gSpeciesNames + adds r0, r1 + ldrb r0, [r0] + adds r5, r2, 0 + cmp r0, 0xFF + beq _0800FA18 + adds r3, r1, 0 + movs r7, 0xB +_0800F9FC: + adds r0, r2, r4 + ldrh r0, [r0, 0x4] + adds r1, r0, 0 + muls r1, r7 + adds r0, r6, r1 + adds r0, r3 + ldrb r0, [r0] + add r9, r0 + adds r6, 0x1 + adds r1, r6, r1 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0800F9FC +_0800FA18: + mov r2, r9 + lsls r0, r2, 8 + add r10, r0 + adds r4, r5, r4 + ldrh r1, [r4] + lsls r0, r1, 5 + subs r0, r1 + movs r1, 0xFF + bl __divsi3 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, [sp, 0x18] + movs r1, 0x64 + adds r0, r3, 0 + muls r0, r1 + ldr r2, [sp, 0x10] + adds r0, r2, r0 + ldrh r1, [r4, 0x4] + ldrb r2, [r4, 0x2] + movs r3, 0x1 + str r3, [sp] + mov r3, r10 + str r3, [sp, 0x4] + movs r3, 0x2 + str r3, [sp, 0x8] + movs r3, 0 + str r3, [sp, 0xC] + adds r3, r6, 0 + bl CreateMon + b _0800FC74 + .align 2, 0 +_0800FA58: .4byte gSpeciesNames +_0800FA5C: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r1, r0 + ldr r7, [r0] + movs r6, 0 + ldr r4, [sp, 0x18] + lsls r2, r4, 4 + adds r0, r2, r7 + ldrh r1, [r0, 0x4] + movs r0, 0xB + muls r0, r1 + ldr r1, _0800FB14 @ =gSpeciesNames + adds r0, r1 + ldrb r0, [r0] + mov r8, r2 + cmp r0, 0xFF + beq _0800FA9E + adds r3, r1, 0 + movs r4, 0xB +_0800FA82: + adds r0, r2, r7 + ldrh r0, [r0, 0x4] + adds r1, r0, 0 + muls r1, r4 + adds r0, r6, r1 + adds r0, r3 + ldrb r0, [r0] + add r9, r0 + adds r6, 0x1 + adds r1, r6, r1 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0800FA82 +_0800FA9E: + mov r2, r9 + lsls r0, r2, 8 + add r10, r0 + mov r3, r8 + adds r4, r3, r7 + ldrh r1, [r4] + lsls r0, r1, 5 + subs r0, r1 + movs r1, 0xFF + bl __divsi3 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [sp, 0x18] + movs r1, 0x64 + adds r5, r0, 0 + muls r5, r1 + ldr r2, [sp, 0x10] + adds r5, r2, r5 + ldrh r1, [r4, 0x4] + ldrb r2, [r4, 0x2] + movs r0, 0x1 + str r0, [sp] + mov r3, r10 + str r3, [sp, 0x4] + movs r0, 0x2 + str r0, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + adds r0, r5, 0 + adds r3, r6, 0 + bl CreateMon + movs r6, 0 + mov r0, r8 + adds r0, 0x6 + adds r4, r7, r0 +_0800FAE8: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r5, 0 + adds r2, r4, 0 + bl SetMonData + adds r1, r6, 0 + adds r1, 0x11 + ldrh r0, [r4] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + ldr r0, _0800FB18 @ =gBattleMoves + 0x4 @ PP offset + adds r2, r0 + adds r0, r5, 0 + bl SetMonData + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0800FAE8 + b _0800FC74 + .align 2, 0 +_0800FB14: .4byte gSpeciesNames +_0800FB18: .4byte gBattleMoves + 0x4 @ PP offset +_0800FB1C: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r1, r0 + ldr r4, [r0] + movs r6, 0 + ldr r0, [sp, 0x18] + lsls r2, r0, 3 + adds r0, r2, r4 + ldrh r1, [r0, 0x4] + movs r0, 0xB + muls r0, r1 + ldr r1, _0800FBAC @ =gSpeciesNames + adds r0, r1 + ldrb r0, [r0] + adds r5, r2, 0 + cmp r0, 0xFF + beq _0800FB5E + adds r3, r1, 0 + movs r7, 0xB +_0800FB42: + adds r0, r2, r4 + ldrh r0, [r0, 0x4] + adds r1, r0, 0 + muls r1, r7 + adds r0, r6, r1 + adds r0, r3 + ldrb r0, [r0] + add r9, r0 + adds r6, 0x1 + adds r1, r6, r1 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0800FB42 +_0800FB5E: + mov r2, r9 + lsls r0, r2, 8 + add r10, r0 + adds r5, r4 + ldrh r1, [r5] + lsls r0, r1, 5 + subs r0, r1 + movs r1, 0xFF + bl __divsi3 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r3, [sp, 0x18] + movs r0, 0x64 + adds r4, r3, 0 + muls r4, r0 + ldr r1, [sp, 0x10] + adds r4, r1, r4 + ldrh r1, [r5, 0x4] + ldrb r2, [r5, 0x2] + movs r0, 0x1 + str r0, [sp] + mov r3, r10 + str r3, [sp, 0x4] + movs r0, 0x2 + str r0, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + adds r0, r4, 0 + adds r3, r6, 0 + bl CreateMon + adds r5, 0x6 + adds r0, r4, 0 + movs r1, 0xC + adds r2, r5, 0 + bl SetMonData + b _0800FC74 + .align 2, 0 +_0800FBAC: .4byte gSpeciesNames +_0800FBB0: + adds r0, r4, 0 + adds r0, 0x24 + adds r0, r1, r0 + ldr r7, [r0] + movs r6, 0 + ldr r4, [sp, 0x18] + lsls r2, r4, 4 + adds r0, r2, r7 + ldrh r1, [r0, 0x4] + movs r0, 0xB + muls r0, r1 + ldr r1, _0800FCC4 @ =gSpeciesNames + adds r0, r1 + ldrb r0, [r0] + mov r8, r2 + cmp r0, 0xFF + beq _0800FBF2 + adds r3, r1, 0 + movs r4, 0xB +_0800FBD6: + adds r0, r2, r7 + ldrh r0, [r0, 0x4] + adds r1, r0, 0 + muls r1, r4 + adds r0, r6, r1 + adds r0, r3 + ldrb r0, [r0] + add r9, r0 + adds r6, 0x1 + adds r1, r6, r1 + adds r1, r3 + ldrb r0, [r1] + cmp r0, 0xFF + bne _0800FBD6 +_0800FBF2: + mov r2, r9 + lsls r0, r2, 8 + add r10, r0 + mov r3, r8 + adds r5, r3, r7 + ldrh r1, [r5] + lsls r0, r1, 5 + subs r0, r1 + movs r1, 0xFF + bl __divsi3 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, [sp, 0x18] + movs r1, 0x64 + adds r4, r0, 0 + muls r4, r1 + ldr r2, [sp, 0x10] + adds r4, r2, r4 + ldrh r1, [r5, 0x4] + ldrb r2, [r5, 0x2] + movs r0, 0x1 + str r0, [sp] + mov r3, r10 + str r3, [sp, 0x4] + movs r0, 0x2 + str r0, [sp, 0x8] + movs r0, 0 + str r0, [sp, 0xC] + adds r0, r4, 0 + adds r3, r6, 0 + bl CreateMon + adds r5, 0x6 + adds r0, r4, 0 + movs r1, 0xC + adds r2, r5, 0 + bl SetMonData + movs r6, 0 + adds r5, r4, 0 + mov r0, r8 + adds r0, 0x8 + adds r4, r7, r0 +_0800FC4A: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r5, 0 + adds r2, r4, 0 + bl SetMonData + adds r1, r6, 0 + adds r1, 0x11 + ldrh r0, [r4] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + ldr r0, _0800FCC8 @ =gBattleMoves + 0x4 @ PP offset + adds r2, r0 + adds r0, r5, 0 + bl SetMonData + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0800FC4A +_0800FC74: + ldr r4, [sp, 0x1C] + str r4, [sp, 0x18] + ldr r2, _0800FCCC @ =gTrainers + ldr r1, [sp, 0x20] + ldr r3, [sp, 0x14] + adds r0, r1, r3 + lsls r0, 3 + adds r0, r2 + adds r0, 0x20 +_0800FC86: + ldrb r0, [r0] + cmp r4, r0 + bge _0800FC8E + b _0800F948 +_0800FC8E: + ldr r2, _0800FCD0 @ =gUnknown_020239F8 + ldr r1, _0800FCCC @ =gTrainers + ldr r4, [sp, 0x20] + ldr r3, [sp, 0x14] + adds r0, r4, r3 + lsls r0, 3 + adds r0, r1 + ldrb r0, [r0, 0x18] + ldrh r1, [r2] + orrs r0, r1 + strh r0, [r2] +_0800FCA4: + ldr r0, _0800FCCC @ =gTrainers + ldr r4, [sp, 0x20] + ldr r2, [sp, 0x14] + adds r1, r4, r2 + lsls r1, 3 + adds r1, r0 + adds r1, 0x20 + ldrb r0, [r1] +_0800FCB4: + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0800FCC4: .4byte gSpeciesNames +_0800FCC8: .4byte gBattleMoves + 0x4 @ PP offset +_0800FCCC: .4byte gTrainers +_0800FCD0: .4byte gUnknown_020239F8 + thumb_func_end sub_800F8E8 + + thumb_func_start sub_800FCD4 +sub_800FCD4: @ 800FCD4 + push {lr} + ldr r0, _0800FCF4 @ =REG_VCOUNT + ldrh r0, [r0] + subs r0, 0x6F + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x30 + bhi _0800FCEE + ldr r1, _0800FCF8 @ =REG_BG0CNT + movs r2, 0x98 + lsls r2, 8 + adds r0, r2, 0 + strh r0, [r1] +_0800FCEE: + pop {r0} + bx r0 + .align 2, 0 +_0800FCF4: .4byte REG_VCOUNT +_0800FCF8: .4byte REG_BG0CNT + thumb_func_end sub_800FCD4 + + thumb_func_start sub_800FCFC +sub_800FCFC: @ 800FCFC + push {lr} + bl Random + ldr r1, _0800FD78 @ =REG_BG0HOFS + ldr r0, _0800FD7C @ =gUnknown_030042A4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0800FD80 @ =gUnknown_030042A0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0800FD84 @ =gUnknown_030042C0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0800FD88 @ =gUnknown_030041B4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0800FD8C @ =gUnknown_03004288 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0800FD90 @ =gUnknown_03004280 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0800FD94 @ =gUnknown_030041B0 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x2 + ldr r0, _0800FD98 @ =gUnknown_030041B8 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x22 + ldr r0, _0800FD9C @ =gUnknown_030042C4 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _0800FDA0 @ =gUnknown_03004240 + ldrh r0, [r0] + strh r0, [r1] + subs r1, 0x2 + ldr r0, _0800FDA4 @ =gUnknown_03004200 + ldrh r0, [r0] + strh r0, [r1] + adds r1, 0x4 + ldr r0, _0800FDA8 @ =gUnknown_03004244 + ldrh r0, [r0] + strh r0, [r1] + bl LoadOam + bl ProcessSpriteCopyRequests + bl TransferPlttBuffer + bl sub_8089668 + pop {r0} + bx r0 + .align 2, 0 +_0800FD78: .4byte REG_BG0HOFS +_0800FD7C: .4byte gUnknown_030042A4 +_0800FD80: .4byte gUnknown_030042A0 +_0800FD84: .4byte gUnknown_030042C0 +_0800FD88: .4byte gUnknown_030041B4 +_0800FD8C: .4byte gUnknown_03004288 +_0800FD90: .4byte gUnknown_03004280 +_0800FD94: .4byte gUnknown_030041B0 +_0800FD98: .4byte gUnknown_030041B8 +_0800FD9C: .4byte gUnknown_030042C4 +_0800FDA0: .4byte gUnknown_03004240 +_0800FDA4: .4byte gUnknown_03004200 +_0800FDA8: .4byte gUnknown_03004244 + thumb_func_end sub_800FCFC + + thumb_func_start nullsub_36 +nullsub_36: @ 800FDAC + bx lr + thumb_func_end nullsub_36 + + thumb_func_start sub_800FDB0 +sub_800FDB0: @ 800FDB0 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x2E + ldrsh r0, [r5, r1] + cmp r0, 0 + beq _0800FDD0 + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + lsrs r0, 8 + ldrh r1, [r5, 0x30] + adds r0, r1 + strh r0, [r5, 0x20] + b _0800FDE2 +_0800FDD0: + movs r1, 0x32 + ldrsh r0, [r5, r1] + movs r1, 0xFF + lsls r1, 8 + ands r0, r1 + asrs r0, 8 + ldrh r1, [r5, 0x30] + subs r1, r0 + strh r1, [r5, 0x20] +_0800FDE2: + movs r1, 0xC0 + lsls r1, 1 + adds r0, r1, 0 + ldrh r1, [r5, 0x32] + adds r0, r1 + strh r0, [r5, 0x32] + adds r0, r5, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0800FE16 + ldr r4, _0800FE1C @ =0x00002710 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + adds r0, r5, 0 + bl FreeSpriteOamMatrix + adds r0, r5, 0 + bl DestroySprite +_0800FE16: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0800FE1C: .4byte 0x00002710 + thumb_func_end sub_800FDB0 + + thumb_func_start sub_800FE20 +sub_800FE20: @ 800FE20 + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + ldr r0, _0800FE3C @ =sub_800FDB0 + str r0, [r4, 0x1C] + movs r0, 0x68 + bl PlaySE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0800FE3C: .4byte sub_800FDB0 + thumb_func_end sub_800FE20 + + thumb_func_start sub_800FE40 +sub_800FE40: @ 800FE40 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + movs r1, 0 + str r1, [sp, 0x8] + ldr r0, _0800FE88 @ =0x02000000 + ldr r2, _0800FE8C @ =0x000160cb + adds r0, r2 + ldrb r2, [r0] + ldr r0, _0800FE90 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0800FEB4 + ldr r1, _0800FE94 @ =gLinkPlayers + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x18] + cmp r0, 0x1 + beq _0800FEA0 + cmp r0, 0x1 + bgt _0800FE98 + cmp r0, 0 + beq _0800FEB4 + b _0800FEBC + .align 2, 0 +_0800FE88: .4byte 0x02000000 +_0800FE8C: .4byte 0x000160cb +_0800FE90: .4byte gUnknown_020239F8 +_0800FE94: .4byte gLinkPlayers +_0800FE98: + cmp r0, 0x2 + beq _0800FEB4 + cmp r0, 0x3 + bne _0800FEBC +_0800FEA0: + ldr r1, _0800FEAC @ =gEnemyParty + str r1, [sp, 0x4] + ldr r2, _0800FEB0 @ =gPlayerParty + str r2, [sp, 0x8] + b _0800FEBC + .align 2, 0 +_0800FEAC: .4byte gEnemyParty +_0800FEB0: .4byte gPlayerParty +_0800FEB4: + ldr r3, _08010008 @ =gPlayerParty + str r3, [sp, 0x4] + ldr r0, _0801000C @ =gEnemyParty + str r0, [sp, 0x8] +_0800FEBC: + movs r7, 0 + movs r1, 0 + mov r8, r1 + ldr r2, [sp] + lsls r2, 2 + str r2, [sp, 0xC] + movs r3, 0xCE + lsls r3, 1 + mov r10, r3 + mov r9, r1 +_0800FED0: + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + ldr r0, [sp, 0x4] + adds r4, r0, r4 + adds r0, r4, 0 + movs r1, 0x41 + 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 + adds r1, r0, 0 + cmp r5, 0 + beq _0800FF40 + cmp r5, r10 + beq _0800FF14 + cmp r6, 0 + beq _0800FF14 + cmp r1, 0 + bne _0800FF14 + movs r0, 0x1 + mov r2, r9 + lsls r0, r2 + orrs r7, r0 +_0800FF14: + cmp r5, 0 + beq _0800FF40 + cmp r6, 0 + beq _0800FF2C + cmp r5, r10 + beq _0800FF24 + cmp r1, 0 + beq _0800FF2C +_0800FF24: + movs r0, 0x2 + mov r3, r9 + lsls r0, r3 + orrs r7, r0 +_0800FF2C: + cmp r5, 0 + beq _0800FF40 + cmp r5, r10 + beq _0800FF40 + cmp r6, 0 + bne _0800FF40 + movs r0, 0x3 + mov r1, r9 + lsls r0, r1 + orrs r7, r0 +_0800FF40: + movs r2, 0x2 + add r9, r2 + movs r3, 0x1 + add r8, r3 + mov r0, r8 + cmp r0, 0x5 + ble _0800FED0 + ldr r1, _08010010 @ =gTasks + ldr r2, [sp, 0xC] + ldr r3, [sp] + adds r0, r2, r3 + lsls r0, 3 + adds r0, r1 + strh r7, [r0, 0xE] + movs r7, 0 + movs r0, 0 + mov r8, r0 + movs r1, 0xCE + lsls r1, 1 + mov r10, r1 + mov r9, r0 +_0800FF6A: + movs r0, 0x64 + mov r4, r8 + muls r4, r0 + ldr r2, [sp, 0x8] + adds r4, r2, r4 + adds r0, r4, 0 + movs r1, 0x41 + 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 + adds r1, r0, 0 + cmp r5, 0 + beq _0800FFDA + cmp r5, r10 + beq _0800FFAE + cmp r6, 0 + beq _0800FFAE + cmp r1, 0 + bne _0800FFAE + movs r0, 0x1 + mov r3, r9 + lsls r0, r3 + orrs r7, r0 +_0800FFAE: + cmp r5, 0 + beq _0800FFDA + cmp r6, 0 + beq _0800FFC6 + cmp r5, r10 + beq _0800FFBE + cmp r1, 0 + beq _0800FFC6 +_0800FFBE: + movs r0, 0x2 + mov r1, r9 + lsls r0, r1 + orrs r7, r0 +_0800FFC6: + cmp r5, 0 + beq _0800FFDA + cmp r5, r10 + beq _0800FFDA + cmp r6, 0 + bne _0800FFDA + movs r0, 0x3 + mov r2, r9 + lsls r0, r2 + orrs r7, r0 +_0800FFDA: + movs r3, 0x2 + add r9, r3 + movs r0, 0x1 + add r8, r0 + mov r1, r8 + cmp r1, 0x5 + ble _0800FF6A + ldr r1, _08010010 @ =gTasks + ldr r2, [sp, 0xC] + ldr r3, [sp] + adds r0, r2, r3 + lsls r0, 3 + adds r0, r1 + strh r7, [r0, 0x10] + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08010008: .4byte gPlayerParty +_0801000C: .4byte gEnemyParty +_08010010: .4byte gTasks + thumb_func_end sub_800FE40 + + thumb_func_start c2_8011A1C +c2_8011A1C: @ 8010014 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0 + bl SetHBlankCallback + movs r0, 0 + bl SetVBlankCallback + movs r4, 0 + str r4, [sp] + movs r1, 0xC0 + lsls r1, 19 + ldr r2, _08010144 @ =0x05006000 + mov r0, sp + bl CpuSet + ldr r0, _08010148 @ =REG_MOSAIC + strh r4, [r0] + subs r0, 0xC + movs r2, 0xF0 + strh r2, [r0] + adds r0, 0x4 + ldr r3, _0801014C @ =0x00005051 + adds r1, r3, 0 + strh r1, [r0] + adds r0, 0x4 + strh r4, [r0] + adds r0, 0x2 + strh r4, [r0] + ldr r0, _08010150 @ =gUnknown_030042C4 + strh r2, [r0] + ldr r0, _08010154 @ =gUnknown_03004240 + strh r1, [r0] + bl dp12_8087EA4 + ldr r0, _08010158 @ =gUnknown_03004DE0 + movs r3, 0xF0 + movs r4, 0xF0 + lsls r4, 3 + adds r2, r0, r4 + movs r1, 0x4F +_08010066: + strh r3, [r0] + strh r3, [r2] + adds r2, 0x2 + adds r0, 0x2 + subs r1, 0x1 + cmp r1, 0 + bge _08010066 + movs r1, 0x50 + ldr r5, _0801015C @ =gWindowConfig_81E6C58 + ldr r0, _08010158 @ =gUnknown_03004DE0 + ldr r3, _08010160 @ =0x0000ff10 + movs r4, 0x82 + lsls r4, 4 + adds r2, r0, r4 + adds r0, 0xA0 +_08010084: + strh r3, [r0] + strh r3, [r2] + adds r2, 0x2 + adds r0, 0x2 + adds r1, 0x1 + cmp r1, 0x9F + ble _08010084 + adds r0, r5, 0 + bl SetUpWindowConfig + bl ResetPaletteFade + ldr r0, _08010164 @ =gUnknown_030042A4 + movs r4, 0 + strh r4, [r0] + ldr r0, _08010168 @ =gUnknown_030042A0 + strh r4, [r0] + ldr r0, _0801016C @ =gUnknown_030042C0 + strh r4, [r0] + ldr r0, _08010170 @ =gUnknown_030041B4 + strh r4, [r0] + ldr r0, _08010174 @ =gUnknown_03004288 + strh r4, [r0] + ldr r0, _08010178 @ =gUnknown_03004280 + strh r4, [r0] + ldr r0, _0801017C @ =gUnknown_030041B0 + strh r4, [r0] + ldr r0, _08010180 @ =gUnknown_030041B8 + strh r4, [r0] + ldr r0, _08010184 @ =gUnknown_03004210 + adds r1, r5, 0 + bl InitWindowFromConfig + ldr r0, _08010188 @ =gUnknown_030041D0 + ldr r1, _0801018C @ =gWindowConfig_81E71D0 + bl InitWindowFromConfig + ldr r0, _08010190 @ =gUnknown_03004250 + ldr r1, _08010194 @ =gWindowConfig_81E71EC + bl InitWindowFromConfig + bl sub_800D6D4 + ldr r0, _08010198 @ =gUnknown_08D004E0 + movs r1, 0 + movs r2, 0x40 + bl LoadCompressedPalette + bl sub_800D74C + bl ResetSpriteData + bl ResetTasks + bl sub_800E23C + ldr r1, _0801019C @ =REG_WINOUT + movs r0, 0x37 + strh r0, [r1] + bl FreeAllSpritePalettes + ldr r1, _080101A0 @ =gReservedSpritePaletteCount + movs r0, 0x4 + strb r0, [r1] + ldr r0, _080101A4 @ =sub_800FCFC + bl SetVBlankCallback + ldr r0, _080101A8 @ =sub_800DE30 + movs r1, 0 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080101AC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + movs r2, 0x87 + lsls r2, 1 + strh r2, [r1, 0xA] + movs r2, 0x5A + strh r2, [r1, 0xC] + movs r2, 0x1 + strh r2, [r1, 0x12] + bl sub_800FE40 + ldr r0, _080101B0 @ =sub_80101B8 + bl SetMainCallback2 + ldr r0, _080101B4 @ =gUnknown_02024D1E + strb r4, [r0] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08010144: .4byte 0x05006000 +_08010148: .4byte REG_MOSAIC +_0801014C: .4byte 0x00005051 +_08010150: .4byte gUnknown_030042C4 +_08010154: .4byte gUnknown_03004240 +_08010158: .4byte gUnknown_03004DE0 +_0801015C: .4byte gWindowConfig_81E6C58 +_08010160: .4byte 0x0000ff10 +_08010164: .4byte gUnknown_030042A4 +_08010168: .4byte gUnknown_030042A0 +_0801016C: .4byte gUnknown_030042C0 +_08010170: .4byte gUnknown_030041B4 +_08010174: .4byte gUnknown_03004288 +_08010178: .4byte gUnknown_03004280 +_0801017C: .4byte gUnknown_030041B0 +_08010180: .4byte gUnknown_030041B8 +_08010184: .4byte gUnknown_03004210 +_08010188: .4byte gUnknown_030041D0 +_0801018C: .4byte gWindowConfig_81E71D0 +_08010190: .4byte gUnknown_03004250 +_08010194: .4byte gWindowConfig_81E71EC +_08010198: .4byte gUnknown_08D004E0 +_0801019C: .4byte REG_WINOUT +_080101A0: .4byte gReservedSpritePaletteCount +_080101A4: .4byte sub_800FCFC +_080101A8: .4byte sub_800DE30 +_080101AC: .4byte gTasks +_080101B0: .4byte sub_80101B8 +_080101B4: .4byte gUnknown_02024D1E + thumb_func_end c2_8011A1C + + thumb_func_start sub_80101B8 +sub_80101B8: @ 80101B8 + push {lr} + bl c2_081284E0 + bl AnimateSprites + bl BuildOamBuffer + bl UpdatePaletteFade + bl RunTasks + pop {r0} + bx r0 + thumb_func_end sub_80101B8 + + thumb_func_start c2_081284E0 +c2_081284E0: @ 80101D4 + push {r4,lr} + sub sp, 0x4 + ldr r4, _080101EC @ =gUnknown_02024D1E + ldrb r0, [r4] + cmp r0, 0x1 + beq _080101FC + cmp r0, 0x1 + bgt _080101F0 + cmp r0, 0 + beq _080101F6 + b _08010236 + .align 2, 0 +_080101EC: .4byte gUnknown_02024D1E +_080101F0: + cmp r0, 0x2 + beq _08010222 + b _08010236 +_080101F6: + movs r0, 0xFF + strb r0, [r4, 0x1] + b _0801021A +_080101FC: + ldrb r0, [r4, 0x1] + subs r0, 0x1 + strb r0, [r4, 0x1] + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08010236 + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade +_0801021A: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08010236 +_08010222: + ldr r0, _08010240 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08010236 + ldr r0, _08010244 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_08010236: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08010240: .4byte gPaletteFade +_08010244: .4byte gMain + thumb_func_end c2_081284E0 + + thumb_func_start oac_poke_opponent +oac_poke_opponent: @ 8010248 + push {lr} + sub sp, 0x4 + ldr r1, _08010270 @ =sub_8010278 + str r1, [r0, 0x1C] + movs r1, 0 + bl StartSpriteAnimIfDifferent + movs r0, 0x80 + lsls r0, 10 + ldr r1, _08010274 @ =0x00003def + str r1, [sp] + movs r1, 0 + movs r2, 0xA + movs r3, 0xA + bl BeginNormalPaletteFade + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08010270: .4byte sub_8010278 +_08010274: .4byte 0x00003def + thumb_func_end oac_poke_opponent + + thumb_func_start sub_8010278 +sub_8010278: @ 8010278 + push {lr} + adds r2, r0, 0 + ldr r0, _080102A4 @ =gUnknown_02024DE8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080102A0 + ldrh r0, [r2, 0x24] + adds r0, 0x2 + strh r0, [r2, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080102A0 + ldr r0, _080102A8 @ =sub_80102AC + str r0, [r2, 0x1C] + ldrh r0, [r2, 0x32] + movs r1, 0x19 + bl PlayCry1 +_080102A0: + pop {r0} + bx r0 + .align 2, 0 +_080102A4: .4byte gUnknown_02024DE8 +_080102A8: .4byte sub_80102AC + thumb_func_end sub_8010278 + + thumb_func_start sub_80102AC +sub_80102AC: @ 80102AC + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080102F4 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r0, 24 + bl sub_804777C + ldr r1, _080102FC @ =gUnknown_03004340 + movs r2, 0x2E + ldrsh r0, [r4, r2] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DFC + ldr r0, _08010300 @ =nullsub_37 + str r0, [r4, 0x1C] + adds r0, r4, 0 + movs r1, 0 + bl StartSpriteAnimIfDifferent + movs r0, 0x80 + lsls r0, 10 + ldr r1, _08010304 @ =0x00003def + str r1, [sp] + movs r1, 0 + movs r2, 0xA + movs r3, 0 + bl BeginNormalPaletteFade +_080102F4: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080102FC: .4byte gUnknown_03004340 +_08010300: .4byte nullsub_37 +_08010304: .4byte 0x00003def + thumb_func_end sub_80102AC + + thumb_func_start nullsub_37 +nullsub_37: @ 8010308 + bx lr + thumb_func_end nullsub_37 + + thumb_func_start unref_sub_801030C +unref_sub_801030C: @ 801030C + movs r1, 0x6 + strh r1, [r0, 0x34] + movs r1, 0x1 + strh r1, [r0, 0x36] + ldr r1, _0801031C @ =sub_8010320 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_0801031C: .4byte sub_8010320 + thumb_func_end unref_sub_801030C + + thumb_func_start sub_8010320 +sub_8010320: @ 8010320 + push {r4,lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x36] + subs r0, 0x1 + strh r0, [r3, 0x36] + lsls r0, 16 + cmp r0, 0 + bne _08010374 + movs r0, 0x8 + strh r0, [r3, 0x36] + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r4, 0x5 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + ldrh r0, [r3, 0x34] + subs r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + asrs r2, r0, 16 + cmp r2, 0 + bne _08010374 + ldrb r1, [r1] + adds r0, r4, 0 + ands r0, r1 + mov r1, r12 + strb r0, [r1] + ldr r0, _0801037C @ =nullsub_37 + str r0, [r3, 0x1C] + ldr r0, _08010380 @ =gUnknown_03004284 + str r2, [r0] +_08010374: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801037C: .4byte nullsub_37 +_08010380: .4byte gUnknown_03004284 + thumb_func_end sub_8010320 + + thumb_func_start sub_8010384 +sub_8010384: @ 8010384 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r9, r0 + ldrh r0, [r0, 0x2E] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, r6, 2 + ldr r0, _080103A4 @ =0x02017800 + adds r1, r0 + ldrh r0, [r1, 0x2] + cmp r0, 0 + beq _080103A8 + adds r4, r0, 0 + b _080103AC + .align 2, 0 +_080103A4: .4byte 0x02017800 +_080103A8: + mov r0, r9 + ldrh r4, [r0, 0x32] +_080103AC: + ldr r1, _08010414 @ =gUnknown_02024A6A + lsls r0, r6, 1 + adds r5, r0, r1 + ldrh r0, [r5] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r7, _08010418 @ =gEnemyParty + adds r0, r7 + movs r1, 0 + bl GetMonData + cmp r4, SPECIES_UNOWN + bne _08010430 + ldrh r0, [r5] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + movs r1, 0 + bl GetMonData + adds r2, r0, 0 + movs r0, 0xC0 + lsls r0, 18 + ands r0, r2 + lsrs r0, 18 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r2 + lsrs r1, 12 + orrs r0, r1 + movs r1, 0xC0 + lsls r1, 2 + ands r1, r2 + lsrs r1, 6 + orrs r0, r1 + movs r1, 0x3 + ands r1, r2 + orrs r0, r1 + movs r1, 0x1C + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + bne _0801041C + movs r0, SPECIES_UNOWN + b _08010426 + .align 2, 0 +_08010414: .4byte gUnknown_02024A6A +_08010418: .4byte gEnemyParty +_0801041C: + movs r1, 0xCE + lsls r1, 1 + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 +_08010426: + ldr r1, _0801042C @ =gMonFrontPicCoords + lsls r0, 2 + b _08010468 + .align 2, 0 +_0801042C: .4byte gMonFrontPicCoords +_08010430: + ldr r0, _08010448 @ =SPECIES_CASTFORM + cmp r4, r0 @ Check if pokemon species is Castform + bne _08010454 + ldr r0, _0801044C @ =gUnknownCastformCoords_0837F598 + ldr r1, _08010450 @ =gUnknown_02024E84 + adds r1, r6, r1 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + b _0801046C + .align 2, 0 +_08010448: .4byte SPECIES_CASTFORM +_0801044C: .4byte gUnknownCastformCoords_0837F598 +_08010450: .4byte gUnknown_02024E84 +_08010454: + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bls _08010464 + ldr r0, _08010460 @ =gMonFrontPicCoords + b _0801046A + .align 2, 0 +_08010460: .4byte gMonFrontPicCoords +_08010464: + ldr r1, _0801048C @ =gMonFrontPicCoords + lsls r0, r4, 2 +_08010468: + adds r0, r1 +_0801046A: + ldrb r0, [r0, 0x1] +_0801046C: + lsrs r1, r0, 3 + movs r0, 0x8 + subs r0, r1 + mov r1, r9 + strh r0, [r1, 0x34] + movs r0, 0x1 + strh r0, [r1, 0x36] + ldr r0, _08010490 @ =sub_8010494 + str r0, [r1, 0x1C] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801048C: .4byte gMonFrontPicCoords +_08010490: .4byte sub_8010494 + thumb_func_end sub_8010384 + + thumb_func_start sub_8010494 +sub_8010494: @ 8010494 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x36] + subs r0, 0x1 + strh r0, [r4, 0x36] + lsls r0, 16 + cmp r0, 0 + bne _08010510 + movs r0, 0x2 + strh r0, [r4, 0x36] + ldrh r0, [r4, 0x26] + adds r0, 0x8 + strh r0, [r4, 0x26] + ldrh r0, [r4, 0x34] + subs r0, 0x1 + strh r0, [r4, 0x34] + lsls r0, 16 + cmp r0, 0 + bge _080104C8 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + b _08010510 +_080104C8: + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r0, 24 + bl battle_get_per_side_status + ldr r1, _08010518 @ =gUnknown_081FAF4C + lsls r0, 24 + lsrs r0, 22 + adds r0, r1 + ldr r2, _0801051C @ =gUnknown_02024E84 + movs r3, 0x2E + ldrsh r1, [r4, r3] + adds r1, r2 + ldrb r1, [r1] + lsls r1, 11 + ldr r2, [r0] + adds r2, r1 + movs r1, 0x34 + ldrsh r0, [r4, r1] + lsls r0, 8 + adds r2, r0 + movs r1, 0 + movs r0, 0xFF +_080104F6: + strb r1, [r2] + adds r2, 0x1 + subs r0, 0x1 + cmp r0, 0 + bge _080104F6 + ldr r0, _0801051C @ =gUnknown_02024E84 + movs r2, 0x2E + ldrsh r1, [r4, r2] + adds r1, r0 + ldrb r1, [r1] + adds r0, r4, 0 + bl StartSpriteAnim +_08010510: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08010518: .4byte gUnknown_081FAF4C +_0801051C: .4byte gUnknown_02024E84 + thumb_func_end sub_8010494 + + thumb_func_start sub_8010520 +sub_8010520: @ 8010520 + movs r1, 0x8 + strh r1, [r0, 0x34] + adds r1, r0, 0 + adds r1, 0x3E + ldrb r1, [r1] + lsls r1, 29 + lsrs r1, 31 + strh r1, [r0, 0x36] + ldr r1, _08010538 @ =sub_801053C + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_08010538: .4byte sub_801053C + thumb_func_end sub_8010520 + + thumb_func_start sub_801053C +sub_801053C: @ 801053C + push {lr} + adds r3, r0, 0 + ldrh r0, [r3, 0x34] + subs r0, 0x1 + strh r0, [r3, 0x34] + lsls r0, 16 + cmp r0, 0 + bne _0801056E + movs r0, 0x3E + adds r0, r3 + mov r12, r0 + ldrb r2, [r0] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + mov r1, r12 + strb r0, [r1] + movs r0, 0x8 + strh r0, [r3, 0x34] +_0801056E: + pop {r0} + bx r0 + thumb_func_end sub_801053C + + thumb_func_start sub_8010574 +sub_8010574: @ 8010574 + movs r1, 0x3E + adds r1, r0 + mov r12, r1 + movs r1, 0x1 + ldrh r2, [r0, 0x36] + ands r2, r1 + lsls r2, 2 + mov r1, r12 + ldrb r3, [r1] + movs r1, 0x5 + negs r1, r1 + ands r1, r3 + orrs r1, r2 + mov r2, r12 + strb r1, [r2] + movs r1, 0 + strh r1, [r0, 0x36] + ldr r1, _0801059C @ =nullsub_37 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_0801059C: .4byte nullsub_37 + thumb_func_end sub_8010574 + + thumb_func_start sub_80105A0 +sub_80105A0: @ 80105A0 + ldr r1, _080105A8 @ =oac_poke_ally_ + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080105A8: .4byte oac_poke_ally_ + thumb_func_end sub_80105A0 + + thumb_func_start oac_poke_ally_ +oac_poke_ally_: @ 80105AC + push {lr} + adds r2, r0, 0 + ldr r0, _080105D4 @ =gUnknown_02024DE8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080105D0 + ldrh r0, [r2, 0x24] + subs r0, 0x2 + strh r0, [r2, 0x24] + lsls r0, 16 + asrs r1, r0, 16 + cmp r1, 0 + bne _080105D0 + ldr r0, _080105D8 @ =nullsub_86 + str r0, [r2, 0x1C] + strh r1, [r2, 0x30] +_080105D0: + pop {r0} + bx r0 + .align 2, 0 +_080105D4: .4byte gUnknown_02024DE8 +_080105D8: .4byte nullsub_86 + thumb_func_end oac_poke_ally_ + + thumb_func_start sub_80105DC +sub_80105DC: @ 80105DC + ldr r1, _080105E4 @ =nullsub_86 + str r1, [r0, 0x1C] + bx lr + .align 2, 0 +_080105E4: .4byte nullsub_86 + thumb_func_end sub_80105DC + + thumb_func_start nullsub_86 +nullsub_86: @ 80105E8 + bx lr + thumb_func_end nullsub_86 + + thumb_func_start sub_80105EC +sub_80105EC: @ 80105EC + push {lr} + adds r2, r0, 0 + ldr r0, _08010610 @ =gUnknown_02024DE8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0801060C + ldrh r0, [r2, 0x30] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + ldrh r0, [r2, 0x32] + ldrh r1, [r2, 0x26] + adds r0, r1 + strh r0, [r2, 0x26] +_0801060C: + pop {r0} + bx r0 + .align 2, 0 +_08010610: .4byte gUnknown_02024DE8 + thumb_func_end sub_80105EC + + thumb_func_start dp11b_obj_instanciate +dp11b_obj_instanciate: @ 8010614 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r8, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + lsls r3, 24 + lsrs r3, 24 + mov r10, r3 + cmp r1, 0 + beq _0801064C + lsls r2, r4, 1 + adds r0, r2, r4 + lsls r0, 2 + ldr r1, _08010648 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + b _0801065A + .align 2, 0 +_08010648: .4byte 0x02017810 +_0801064C: + lsls r2, r4, 1 + adds r0, r2, r4 + lsls r0, 2 + ldr r1, _08010698 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 +_0801065A: + ands r0, r1 + adds r6, r2, 0 + cmp r0, 0 + bne _080106FA + ldr r0, _0801069C @ =objc_dp11b_pingpong + bl object_new_hidden_with_callback + lsls r0, 24 + lsrs r5, r0, 24 + mov r0, r8 + cmp r0, 0x1 + bne _080106A8 + ldr r0, _080106A0 @ =gUnknown_03004340 + adds r0, r4, r0 + ldrb r7, [r0] + adds r0, r6, r4 + lsls r0, 2 + ldr r1, _08010698 @ =0x02017810 + adds r0, r1 + strb r5, [r0, 0x2] + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldr r2, _080106A4 @ =gSprites + lsls r3, r5, 4 + adds r0, r3, r5 + lsls r0, 2 + adds r0, r2 + movs r1, 0x80 + b _080106CC + .align 2, 0 +_08010698: .4byte 0x02017810 +_0801069C: .4byte objc_dp11b_pingpong +_080106A0: .4byte gUnknown_03004340 +_080106A4: .4byte gSprites +_080106A8: + ldr r0, _08010708 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r7, [r0] + adds r0, r6, r4 + lsls r0, 2 + ldr r1, _0801070C @ =0x02017810 + adds r0, r1 + strb r5, [r0, 0x3] + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldr r2, _08010710 @ =gSprites + lsls r3, r5, 4 + adds r0, r3, r5 + lsls r0, 2 + adds r0, r2 + movs r1, 0xC0 +_080106CC: + strh r1, [r0, 0x2E] + adds r4, r2, 0 + adds r1, r3, r5 + lsls r1, 2 + adds r1, r4 + mov r2, r9 + lsls r0, r2, 24 + asrs r0, 24 + movs r2, 0 + strh r0, [r1, 0x30] + mov r3, r10 + lsls r0, r3, 24 + asrs r0, 24 + strh r0, [r1, 0x32] + strh r7, [r1, 0x34] + mov r0, r8 + strh r0, [r1, 0x36] + lsls r0, r7, 4 + adds r0, r7 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x24] + strh r2, [r0, 0x26] +_080106FA: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08010708: .4byte gUnknown_02024BE0 +_0801070C: .4byte 0x02017810 +_08010710: .4byte gSprites + thumb_func_end dp11b_obj_instanciate + + thumb_func_start dp11b_obj_free +dp11b_obj_free: @ 8010714 + push {r4,r5,lr} + lsls r0, 24 + lsrs r2, r0, 24 + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x1 + bne _0801075C + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _08010754 @ =0x02017810 + adds r5, r0, r1 + ldrb r1, [r5] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080107A0 + ldr r2, _08010758 @ =gSprites + ldrb r1, [r5, 0x2] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x34] + lsls r1, 24 + lsrs r4, r1, 24 + bl DestroySprite + ldrb r1, [r5] + movs r0, 0x3 + negs r0, r0 + b _0801078C + .align 2, 0 +_08010754: .4byte 0x02017810 +_08010758: .4byte gSprites +_0801075C: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _080107A8 @ =0x02017810 + adds r5, r0, r1 + ldrb r1, [r5] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080107A0 + ldr r2, _080107AC @ =gSprites + ldrb r1, [r5, 0x3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrh r1, [r0, 0x34] + lsls r1, 24 + lsrs r4, r1, 24 + bl DestroySprite + ldrb r1, [r5] + movs r0, 0x5 + negs r0, r0 +_0801078C: + ands r0, r1 + strb r0, [r5] + ldr r0, _080107AC @ =gSprites + lsls r1, r4, 4 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + movs r0, 0 + strh r0, [r1, 0x24] + strh r0, [r1, 0x26] +_080107A0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080107A8: .4byte 0x02017810 +_080107AC: .4byte gSprites + thumb_func_end dp11b_obj_free + + thumb_func_start objc_dp11b_pingpong +objc_dp11b_pingpong: @ 80107B0 + push {r4,r5,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x34] + lsls r0, 24 + lsrs r5, r0, 24 + movs r1, 0x36 + ldrsh r0, [r4, r1] + cmp r0, 0x1 + bne _080107C8 + movs r2, 0x2E + ldrsh r0, [r4, r2] + b _080107CC +_080107C8: + movs r1, 0x2E + ldrsh r0, [r4, r1] +_080107CC: + movs r2, 0x32 + ldrsh r1, [r4, r2] + bl Sin + ldr r2, _080107F8 @ =gSprites + lsls r1, r5, 4 + adds r1, r5 + lsls r1, 2 + adds r1, r2 + ldrh r2, [r4, 0x32] + adds r0, r2 + strh r0, [r1, 0x26] + ldrh r0, [r4, 0x30] + ldrh r1, [r4, 0x2E] + adds r0, r1 + movs r1, 0xFF + ands r0, r1 + strh r0, [r4, 0x2E] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080107F8: .4byte gSprites + thumb_func_end objc_dp11b_pingpong + + thumb_func_start nullsub_41 +nullsub_41: @ 80107FC + bx lr + thumb_func_end nullsub_41 + + thumb_func_start sub_8010800 +sub_8010800: @ 8010800 + push {lr} + bl sub_8010874 + ldr r1, _08010818 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x1] + ldr r1, _0801081C @ =gUnknown_030042D4 + ldr r0, _08010820 @ =bc_8012FAC + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08010818: .4byte gUnknown_02024D1E +_0801081C: .4byte gUnknown_030042D4 +_08010820: .4byte bc_8012FAC + thumb_func_end sub_8010800 + + thumb_func_start sub_8010824 +sub_8010824: @ 8010824 + push {r4,r5,lr} + ldr r0, _08010864 @ =gUnknown_030042D4 + ldr r0, [r0] + bl _call_via_r0 + ldr r1, _08010868 @ =gUnknown_02024A60 + movs r0, 0 + strb r0, [r1] + ldr r0, _0801086C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r0, 0 + beq _0801085E + ldr r5, _08010870 @ =gUnknown_03004330 + adds r4, r1, 0 +_08010840: + ldrb r0, [r4] + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + bl _call_via_r0 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _0801086C @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08010840 +_0801085E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08010864: .4byte gUnknown_030042D4 +_08010868: .4byte gUnknown_02024A60 +_0801086C: .4byte gUnknown_02024A68 +_08010870: .4byte gUnknown_03004330 + thumb_func_end sub_8010824 + + thumb_func_start sub_8010874 +sub_8010874: @ 8010874 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + bl sub_801365C + bl sub_801377C + movs r2, 0 + movs r3, 0 + ldr r0, _08010AC8 @ =gUnknown_02024C4C + mov r10, r0 + ldr r1, _08010ACC @ =gUnknown_02024C44 + mov r9, r1 + ldr r4, _08010AD0 @ =gUnknown_02024C3C + mov r8, r4 + ldr r0, _08010AD4 @ =gUnknown_02024C34 + mov r12, r0 + ldr r4, _08010AD8 @ =gUnknown_02024CA8 + movs r5, 0 + ldr r7, _08010ADC @ =gUnknown_02024C2C + ldr r6, _08010AE0 @ =gUnknown_02024C54 +_080108A4: + ldr r0, _08010AE4 @ =gUnknown_02024C98 + adds r0, r5, r0 + str r3, [r0] + movs r1, 0 +_080108AC: + adds r0, r4, r1 + strb r3, [r0] + adds r1, 0x1 + cmp r1, 0x1B + bls _080108AC + movs r0, 0x2 + strb r0, [r4, 0x16] + ldr r1, _08010AE8 @ =gUnknown_02024C70 + adds r0, r2, r1 + strb r3, [r0] + mov r0, r12 + strh r3, [r0] + mov r1, r8 + strh r3, [r1] + mov r0, r9 + strh r3, [r0] + mov r1, r10 + strh r3, [r1] + ldr r0, _08010AEC @ =gUnknown_02024C5C + adds r1, r2, r0 + movs r0, 0xFF + strb r0, [r1] + strh r3, [r6] + strh r3, [r7] + ldr r1, _08010AF0 @ =0x02017100 + adds r0, r5, r1 + str r3, [r0] + movs r0, 0x2 + add r10, r0 + add r9, r0 + add r8, r0 + add r12, r0 + adds r4, 0x1C + adds r5, 0x4 + adds r7, 0x2 + adds r6, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _080108A4 + movs r5, 0 + ldr r3, _08010AF4 @ =gUnknown_02024C80 + ldr r4, _08010AF8 @ =gUnknown_02024C7A + movs r2, 0x1 +_08010902: + strh r5, [r4] + movs r1, 0 +_08010906: + adds r0, r3, r1 + strb r5, [r0] + adds r1, 0x1 + cmp r1, 0xB + bls _08010906 + adds r3, 0xC + adds r4, 0x2 + subs r2, 0x1 + cmp r2, 0 + bge _08010902 + movs r1, 0 + ldr r2, _08010AFC @ =gUnknown_02024C07 + strb r1, [r2] + ldr r3, _08010B00 @ =gUnknown_02024C08 + strb r1, [r3] + ldr r4, _08010B04 @ =word_2024DB8 + strh r1, [r4] + ldr r1, _08010B08 @ =gUnknown_02024DBC + movs r2, 0 + movs r3, 0 +_0801092E: + adds r0, r1, r2 + strb r3, [r0] + adds r2, 0x1 + cmp r2, 0x2B + bls _0801092E + movs r0, 0 + ldr r1, _08010B0C @ =gUnknown_02024C6C + str r0, [r1] + ldr r2, _08010B10 @ =gUnknown_020239F8 + ldrh r1, [r2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0801095C + ldr r3, _08010B14 @ =gSaveBlock2 + ldrb r1, [r3, 0x15] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801095C + movs r0, 0x80 + ldr r4, _08010B0C @ =gUnknown_02024C6C + str r0, [r4] +_0801095C: + ldr r1, _08010B14 @ =gSaveBlock2 + ldrb r0, [r1, 0x15] + lsls r0, 30 + lsrs r0, 31 + ldr r3, _08010B18 @ =0x02000000 + ldr r4, _08010B1C @ =0x00016084 + adds r2, r3, r4 + movs r1, 0 + strb r0, [r2] + ldr r0, _08010B20 @ =gUnknown_02024C0E + strb r1, [r0] + ldr r2, _08010B24 @ =gUnknown_02024D26 + strb r1, [r2] + ldr r3, _08010B28 @ =gUnknown_02024A64 + str r1, [r3] + movs r2, 0 + ldr r4, _08010B2C @ =gUnknown_02024D1A + strh r1, [r4] + ldr r1, _08010B18 @ =0x02000000 + ldr r3, _08010B30 @ =0x00017130 + adds r0, r1, r3 + strb r2, [r0] + ldr r4, _08010B34 @ =0x00017160 + adds r0, r1, r4 + strb r2, [r0] + ldr r1, _08010B38 @ =gUnknown_02024D1E + movs r2, 0 + adds r0, r1, 0x7 +_08010994: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08010994 + movs r5, 0 + ldr r0, _08010B3C @ =gUnknown_02024D18 + strh r5, [r0] + movs r0, 0 + ldr r1, _08010B40 @ =gUnknown_02024BEC + str r0, [r1] + ldr r2, _08010B44 @ =gUnknown_02024DE8 + strh r0, [r2] + ldr r4, _08010B18 @ =0x02000000 + ldr r3, _08010B48 @ =0x00016002 + adds r0, r4, r3 + strb r5, [r0] + ldr r1, _08010B4C @ =0x000160a1 + adds r0, r4, r1 + strb r5, [r0] + ldr r2, _08010B50 @ =gUnknown_03004324 + strb r5, [r2] + ldr r3, _08010B54 @ =gUnknown_02024C0C + strb r5, [r3] + subs r1, 0x29 + adds r0, r4, r1 + strb r5, [r0] + ldr r2, _08010B58 @ =0x00016086 + adds r0, r4, r2 + strb r5, [r0] + ldr r3, _08010B5C @ =0x00016087 + adds r0, r4, r3 + strb r5, [r0] + ldr r0, _08010B60 @ =gEnemyParty + movs r1, 0xB + bl GetMonData + ldr r2, _08010B64 @ =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x8] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08010B68 @ =0x000004fb + bl __divsi3 + ldr r2, _08010B6C @ =0x00016089 + adds r1, r4, r2 + strb r0, [r1] + ldr r3, _08010B70 @ =0x00016088 + adds r1, r4, r3 + movs r0, 0x3 + strb r0, [r1] + ldr r1, _08010B74 @ =0x0001601b + adds r0, r4, r1 + strb r5, [r0] + subs r2, 0x33 + adds r1, r4, r2 + movs r0, 0x1 + strb r0, [r1] + movs r2, 0 + movs r1, 0 +_08010A12: + ldr r3, _08010B78 @ =0x000160ac + adds r0, r2, r3 + adds r0, r4 + strb r1, [r0] + adds r3, 0x20 + adds r0, r2, r3 + adds r0, r4 + strb r1, [r0] + adds r3, 0x1C + adds r0, r2, r3 + adds r0, r4 + strb r1, [r0] + adds r3, 0x8 + adds r0, r2, r3 + adds r0, r4 + strb r1, [r0] + adds r3, 0x10 + adds r0, r2, r3 + adds r0, r4 + strb r1, [r0] + adds r3, 0x8 + adds r0, r2, r3 + adds r0, r4 + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x7 + ble _08010A12 + ldr r4, _08010B18 @ =0x02000000 + ldr r1, _08010B7C @ =0x000160c8 + adds r0, r4, r1 + movs r2, 0 + movs r1, 0x6 + strb r1, [r0] + subs r3, 0x3F + adds r0, r4, r3 + strb r1, [r0] + ldr r1, _08010B80 @ =0x00016113 + adds r0, r4, r1 + strb r2, [r0] + ldr r3, _08010B84 @ =gUnknown_030042E0 + movs r1, 0 + movs r2, 0xA + adds r0, r3, 0 + adds r0, 0x40 +_08010A6A: + strb r1, [r0] + subs r0, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _08010A6A + movs r1, 0 + strb r1, [r3, 0x13] + strb r1, [r3] + strb r1, [r3, 0x1] + strb r1, [r3, 0x2] + strb r1, [r3, 0x3] + strb r1, [r3, 0x4] + ldrb r2, [r3, 0x5] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + movs r2, 0x3 + negs r2, r2 + ands r0, r2 + strb r0, [r3, 0x5] + strh r1, [r3, 0x20] + strh r1, [r3, 0x22] + strh r1, [r3, 0x24] + strh r1, [r3, 0x6] + strh r1, [r3, 0x26] + strh r1, [r3, 0x28] + movs r2, 0 + adds r5, r3, 0 + adds r5, 0x8 + movs r4, 0 + adds r1, r3, 0 + adds r1, 0x14 +_08010AAA: + adds r0, r2, r5 + strb r4, [r0] + strb r4, [r1] + strb r4, [r1, 0x16] + adds r1, 0x1 + adds r2, 0x1 + cmp r2, 0x9 + ble _08010AAA + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08010AC8: .4byte gUnknown_02024C4C +_08010ACC: .4byte gUnknown_02024C44 +_08010AD0: .4byte gUnknown_02024C3C +_08010AD4: .4byte gUnknown_02024C34 +_08010AD8: .4byte gUnknown_02024CA8 +_08010ADC: .4byte gUnknown_02024C2C +_08010AE0: .4byte gUnknown_02024C54 +_08010AE4: .4byte gUnknown_02024C98 +_08010AE8: .4byte gUnknown_02024C70 +_08010AEC: .4byte gUnknown_02024C5C +_08010AF0: .4byte 0x02017100 +_08010AF4: .4byte gUnknown_02024C80 +_08010AF8: .4byte gUnknown_02024C7A +_08010AFC: .4byte gUnknown_02024C07 +_08010B00: .4byte gUnknown_02024C08 +_08010B04: .4byte word_2024DB8 +_08010B08: .4byte gUnknown_02024DBC +_08010B0C: .4byte gUnknown_02024C6C +_08010B10: .4byte gUnknown_020239F8 +_08010B14: .4byte gSaveBlock2 +_08010B18: .4byte 0x02000000 +_08010B1C: .4byte 0x00016084 +_08010B20: .4byte gUnknown_02024C0E +_08010B24: .4byte gUnknown_02024D26 +_08010B28: .4byte gUnknown_02024A64 +_08010B2C: .4byte gUnknown_02024D1A +_08010B30: .4byte 0x00017130 +_08010B34: .4byte 0x00017160 +_08010B38: .4byte gUnknown_02024D1E +_08010B3C: .4byte gUnknown_02024D18 +_08010B40: .4byte gUnknown_02024BEC +_08010B44: .4byte gUnknown_02024DE8 +_08010B48: .4byte 0x00016002 +_08010B4C: .4byte 0x000160a1 +_08010B50: .4byte gUnknown_03004324 +_08010B54: .4byte gUnknown_02024C0C +_08010B58: .4byte 0x00016086 +_08010B5C: .4byte 0x00016087 +_08010B60: .4byte gEnemyParty +_08010B64: .4byte gBaseStats +_08010B68: .4byte 0x000004fb +_08010B6C: .4byte 0x00016089 +_08010B70: .4byte 0x00016088 +_08010B74: .4byte 0x0001601b +_08010B78: .4byte 0x000160ac +_08010B7C: .4byte 0x000160c8 +_08010B80: .4byte 0x00016113 +_08010B84: .4byte gUnknown_030042E0 + thumb_func_end sub_8010874 + + thumb_func_start sub_8010B88 +sub_8010B88: @ 8010B88 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x24 + ldr r4, _08010CEC @ =gUnknown_02024CA8 + ldr r5, _08010CF0 @ =gUnknown_02024A60 + ldrb r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r1, sp + adds r0, r4 + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldm r0!, {r2,r3,r6} + stm r1!, {r2,r3,r6} + ldr r0, [r0] + str r0, [r1] + ldr r2, _08010CF4 @ =gBattleMoves + ldr r3, _08010CF8 @ =gUnknown_02024BE6 + ldrh r1, [r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + mov r10, r4 + adds r7, r5, 0 + ldr r1, _08010CFC @ =gBattleMons + mov r8, r1 + ldr r2, _08010D00 @ =gUnknown_02024C98 + mov r12, r2 + cmp r0, 0x7F + beq _08010C66 + movs r5, 0 + adds r4, r7, 0 + movs r3, 0x58 + mov r2, r8 + adds r2, 0x18 + movs r1, 0x6 +_08010BDC: + ldrb r0, [r4] + muls r0, r3 + adds r0, r5, r0 + adds r0, r2 + strb r1, [r0] + adds r5, 0x1 + cmp r5, 0x7 + ble _08010BDC + movs r5, 0 + ldr r3, _08010D04 @ =gUnknown_02024A68 + ldrb r3, [r3] + cmp r5, r3 + bge _08010C52 + ldr r6, _08010D08 @ =gUnknown_02024AD0 + mov r9, r6 + ldr r3, _08010CEC @ =gUnknown_02024CA8 + ldr r4, _08010D00 @ =gUnknown_02024C98 +_08010BFE: + movs r0, 0x58 + muls r0, r5 + add r0, r9 + str r0, [sp, 0x20] + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 19 + ands r0, r1 + cmp r0, 0 + beq _08010C24 + ldrb r0, [r3, 0x14] + ldr r2, _08010CF0 @ =gUnknown_02024A60 + ldrb r2, [r2] + cmp r0, r2 + bne _08010C24 + ldr r0, _08010D0C @ =0xfbffffff + ands r1, r0 + ldr r6, [sp, 0x20] + str r1, [r6] +_08010C24: + ldr r1, [r4] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _08010C44 + ldrb r0, [r3, 0x15] + ldr r2, _08010CF0 @ =gUnknown_02024A60 + ldrb r2, [r2] + cmp r0, r2 + bne _08010C44 + movs r0, 0x19 + negs r0, r0 + ands r1, r0 + str r1, [r4] + movs r0, 0 + strb r0, [r3, 0x15] +_08010C44: + adds r3, 0x1C + adds r4, 0x4 + adds r5, 0x1 + ldr r6, _08010D04 @ =gUnknown_02024A68 + ldrb r6, [r6] + cmp r5, r6 + blt _08010BFE +_08010C52: + ldr r1, _08010CF8 @ =gUnknown_02024BE6 + ldrh r0, [r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r2, _08010CF4 @ =gBattleMoves + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0x7F + bne _08010D18 +_08010C66: + ldrb r1, [r7] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r8 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, _08010D10 @ =0x15100007 + ands r0, r1 + str r0, [r2] + ldrb r1, [r7] + lsls r1, 2 + add r1, r12 + ldr r0, [r1] + ldr r2, _08010D14 @ =0x0003043f + ands r0, r2 + str r0, [r1] + movs r5, 0 + ldr r3, _08010D04 @ =gUnknown_02024A68 + ldrb r3, [r3] + cmp r5, r3 + bge _08010D30 + movs r6, 0 +_08010C96: + ldrb r0, [r7] + bl battle_side_get_owner + adds r4, r0, 0 + lsls r0, r5, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _08010CD6 + ldr r1, _08010D00 @ =gUnknown_02024C98 + lsls r0, r5, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _08010CD6 + ldr r0, _08010CEC @ =gUnknown_02024CA8 + adds r0, r6, r0 + ldrb r0, [r0, 0x15] + ldrb r3, [r7] + cmp r0, r3 + bne _08010CD6 + movs r0, 0x19 + negs r0, r0 + ands r1, r0 + movs r0, 0x10 + orrs r1, r0 + str r1, [r2] +_08010CD6: + adds r6, 0x1C + adds r5, 0x1 + ldr r0, _08010D04 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + blt _08010C96 + ldr r6, _08010CEC @ =gUnknown_02024CA8 + mov r10, r6 + ldr r7, _08010CF0 @ =gUnknown_02024A60 + b _08010D30 + .align 2, 0 +_08010CEC: .4byte gUnknown_02024CA8 +_08010CF0: .4byte gUnknown_02024A60 +_08010CF4: .4byte gBattleMoves +_08010CF8: .4byte gUnknown_02024BE6 +_08010CFC: .4byte gBattleMons +_08010D00: .4byte gUnknown_02024C98 +_08010D04: .4byte gUnknown_02024A68 +_08010D08: .4byte gUnknown_02024AD0 +_08010D0C: .4byte 0xfbffffff +_08010D10: .4byte 0x15100007 +_08010D14: .4byte 0x0003043f +_08010D18: + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + mov r1, r8 + adds r1, 0x50 + adds r0, r1 + movs r1, 0 + str r1, [r0] + ldrb r0, [r7] + lsls r0, 2 + add r0, r12 + str r1, [r0] +_08010D30: + movs r5, 0 + ldr r6, _08010EFC @ =0x02000000 + ldr r0, _08010F00 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + bge _08010D92 + ldr r1, _08010F04 @ =gUnknown_02024AD0 + mov r9, r1 + ldr r2, _08010F08 @ =gBitTable + mov r8, r2 + ldr r4, _08010F0C @ =gUnknown_02024A60 + mov r12, r6 +_08010D48: + movs r0, 0x58 + muls r0, r5 + mov r1, r9 + adds r3, r0, r1 + ldrb r0, [r4] + lsls r0, 2 + add r0, r8 + ldr r0, [r0] + lsls r2, r0, 16 + ldr r1, [r3] + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _08010D68 + bics r1, r2 + str r1, [r3] +_08010D68: + ldr r1, [r3] + movs r0, 0xE0 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _08010D88 + ldr r2, _08010F10 @ =0x00016020 + adds r0, r5, r2 + add r0, r12 + ldrb r0, [r0] + ldrb r2, [r4] + cmp r0, r2 + bne _08010D88 + ldr r0, _08010F14 @ =0xffff1fff + ands r1, r0 + str r1, [r3] +_08010D88: + adds r5, 0x1 + ldr r3, _08010F00 @ =gUnknown_02024A68 + ldrb r3, [r3] + cmp r5, r3 + blt _08010D48 +_08010D92: + ldrb r0, [r7] + ldr r1, _08010F18 @ =gUnknown_02024E60 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldrb r0, [r7] + ldr r2, _08010F1C @ =gUnknown_02024E64 + adds r0, r2 + strb r1, [r0] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r3, r10 + adds r1, r0, r3 + movs r5, 0 + movs r2, 0 +_08010DB4: + adds r0, r1, r5 + strb r2, [r0] + adds r5, 0x1 + cmp r5, 0x1B + bls _08010DB4 + ldr r1, _08010F20 @ =gUnknown_02024BE6 + ldrh r0, [r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r2, _08010F24 @ =gBattleMoves + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0x7F + bne _08010E2C + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r10 + mov r1, sp + ldrb r1, [r1, 0xA] + strb r1, [r0, 0xA] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r10 + mov r1, sp + ldrb r1, [r1, 0x15] + strb r1, [r0, 0x15] + ldrb r0, [r7] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r10 + mov r0, sp + ldrb r2, [r0, 0xF] + lsls r2, 28 + movs r4, 0xF + lsrs r2, 28 + ldrb r3, [r1, 0xF] + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xF] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r10 + mov r1, sp + ldrb r1, [r1, 0xF] + lsrs r1, 4 + lsls r1, 4 + ldrb r2, [r0, 0xF] + ands r4, r2 + orrs r4, r1 + strb r4, [r0, 0xF] +_08010E2C: + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r10 + movs r3, 0 + movs r1, 0x2 + strb r1, [r0, 0x16] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _08010F28 @ =gUnknown_02024C34 + adds r0, r1 + movs r2, 0 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _08010F2C @ =gUnknown_02024C3C + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _08010F30 @ =gUnknown_02024C44 + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _08010F34 @ =gUnknown_02024C4C + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _08010F38 @ =gUnknown_02024C2C + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + ldr r1, _08010F3C @ =gUnknown_02024C5C + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _08010F40 @ =0x000160ac + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x53 + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x1 + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x1 + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x1 + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 1 + subs r1, 0x1B + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + adds r0, r6 + strb r2, [r0] + ldr r2, _08010F44 @ =0x00017100 + adds r1, r6, r2 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + str r3, [r0] + ldr r6, _08010F20 @ =gUnknown_02024BE6 + strh r3, [r6] + add sp, 0x24 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08010EFC: .4byte 0x02000000 +_08010F00: .4byte gUnknown_02024A68 +_08010F04: .4byte gUnknown_02024AD0 +_08010F08: .4byte gBitTable +_08010F0C: .4byte gUnknown_02024A60 +_08010F10: .4byte 0x00016020 +_08010F14: .4byte 0xffff1fff +_08010F18: .4byte gUnknown_02024E60 +_08010F1C: .4byte gUnknown_02024E64 +_08010F20: .4byte gUnknown_02024BE6 +_08010F24: .4byte gBattleMoves +_08010F28: .4byte gUnknown_02024C34 +_08010F2C: .4byte gUnknown_02024C3C +_08010F30: .4byte gUnknown_02024C44 +_08010F34: .4byte gUnknown_02024C4C +_08010F38: .4byte gUnknown_02024C2C +_08010F3C: .4byte gUnknown_02024C5C +_08010F40: .4byte 0x000160ac +_08010F44: .4byte 0x00017100 + thumb_func_end sub_8010B88 + + thumb_func_start sub_8010F48 +sub_8010F48: @ 8010F48 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r4, 0 + ldr r7, _08011268 @ =gUnknown_02024A60 + ldr r0, _0801126C @ =gUnknown_02024C98 + mov r9, r0 + ldr r1, _08011270 @ =gUnknown_02024A68 + mov r8, r1 + ldr r2, _08011274 @ =0x02000000 + mov r12, r2 + ldr r6, _08011278 @ =gUnknown_02024D28 + adds r5, r7, 0 + movs r3, 0x58 + ldr r2, _0801127C @ =gBattleMons + adds r2, 0x18 + movs r1, 0x6 +_08010F70: + ldrb r0, [r5] + muls r0, r3 + adds r0, r4, r0 + adds r0, r2 + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x7 + ble _08010F70 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + ldr r2, _0801127C @ =gBattleMons + adds r2, 0x50 + adds r0, r2 + movs r1, 0 + str r1, [r0] + ldrb r0, [r7] + lsls r0, 2 + add r0, r9 + str r1, [r0] + movs r4, 0 + mov r0, r8 + ldrb r0, [r0] + cmp r4, r0 + bge _08011012 + adds r3, r2, 0 + movs r5, 0 + ldr r1, _08011280 @ =gBitTable + mov r10, r1 + ldr r2, _08011274 @ =0x02000000 + mov r9, r2 +_08010FAE: + ldr r1, [r3] + movs r0, 0x80 + lsls r0, 19 + ands r0, r1 + cmp r0, 0 + beq _08010FCC + ldr r2, _08011284 @ =gUnknown_02024CA8 + adds r0, r5, r2 + ldrb r0, [r0, 0x14] + ldrb r2, [r7] + cmp r0, r2 + bne _08010FCC + ldr r0, _08011288 @ =0xfbffffff + ands r1, r0 + str r1, [r3] +_08010FCC: + ldrb r0, [r7] + lsls r0, 2 + add r0, r10 + ldr r0, [r0] + lsls r2, r0, 16 + ldr r1, [r3] + adds r0, r1, 0 + ands r0, r2 + cmp r0, 0 + beq _08010FE4 + bics r1, r2 + str r1, [r3] +_08010FE4: + ldr r1, [r3] + movs r0, 0xE0 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _08011004 + ldr r2, _0801128C @ =0x00016020 + adds r0, r4, r2 + add r0, r9 + ldrb r0, [r0] + ldrb r2, [r7] + cmp r0, r2 + bne _08011004 + ldr r0, _08011290 @ =0xffff1fff + ands r1, r0 + str r1, [r3] +_08011004: + adds r3, 0x58 + adds r5, 0x1C + adds r4, 0x1 + mov r0, r8 + ldrb r0, [r0] + cmp r4, r0 + blt _08010FAE +_08011012: + ldrb r0, [r7] + ldr r1, _08011294 @ =gUnknown_02024E60 + adds r0, r1 + movs r1, 0 + strb r1, [r0] + ldrb r0, [r7] + ldr r2, _08011298 @ =gUnknown_02024E64 + adds r0, r2 + strb r1, [r0] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r2, _08011284 @ =gUnknown_02024CA8 + adds r1, r0, r2 + movs r4, 0 + movs r2, 0 +_08011034: + adds r0, r1, r4 + strb r2, [r0] + adds r4, 0x1 + cmp r4, 0x1B + bls _08011034 + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x2 + negs r0, r0 + mov r9, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x3 + negs r0, r0 + mov r8, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + mov r10, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r5, 0x21 + negs r5, r5 + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r4, 0x41 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1, 0x1] + mov r0, r9 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1, 0x1] + mov r0, r8 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1, 0x1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r1, [r7] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1, 0x1] + movs r0, 0x19 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r6 + ldrb r1, [r0, 0x1] + ands r5, r1 + strb r5, [r0, 0x1] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r6 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r6 + ldrb r1, [r0, 0x1] + ands r3, r1 + strb r3, [r0, 0x1] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r6 + ldrb r1, [r0, 0x2] + mov r2, r9 + ands r2, r1 + strb r2, [r0, 0x2] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r6 + ldrb r1, [r0, 0x2] + mov r2, r8 + ands r2, r1 + strb r2, [r0, 0x2] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r6 + ldrb r1, [r0, 0x2] + movs r2, 0x5 + negs r2, r2 + ands r2, r1 + strb r2, [r0, 0x2] + ldrb r0, [r7] + lsls r0, 4 + adds r0, r6 + ldrb r1, [r0, 0x2] + mov r2, r10 + ands r2, r1 + strb r2, [r0, 0x2] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r1, _08011284 @ =gUnknown_02024CA8 + adds r0, r1 + movs r3, 0 + movs r1, 0x2 + strb r1, [r0, 0x16] + ldrb r0, [r7] + lsls r0, 1 + ldr r2, _0801129C @ =gUnknown_02024C34 + adds r0, r2 + movs r2, 0 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _080112A0 @ =gUnknown_02024C3C + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _080112A4 @ =gUnknown_02024C44 + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _080112A8 @ =gUnknown_02024C4C + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _080112AC @ =gUnknown_02024C2C + adds r0, r1 + strh r3, [r0] + ldrb r0, [r7] + ldr r1, _080112B0 @ =gUnknown_02024C5C + adds r0, r1 + movs r1, 0xFF + strb r1, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _080112B4 @ =0x000160e8 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 1 + subs r1, 0x3D + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x53 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x1 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x1 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldrb r0, [r7] + lsls r0, 2 + adds r1, 0x1 + adds r0, r1 + add r0, r12 + strb r2, [r0] + ldr r1, _080112B8 @ =0x00017100 + add r1, r12 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + str r3, [r0] + ldrb r0, [r7] + movs r3, 0x58 + adds r1, r0, 0 + muls r1, r3 + ldr r2, _0801127C @ =gBattleMons + adds r1, r2 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + ldr r2, _080112BC @ =gBaseStats + adds r0, r2 + ldrb r0, [r0, 0x6] + adds r1, 0x21 + strb r0, [r1] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r3 + ldr r0, _0801127C @ =gBattleMons + adds r1, r0 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + ldr r2, _080112BC @ =gBaseStats + adds r0, r2 + ldrb r0, [r0, 0x7] + adds r1, 0x22 + strb r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08011268: .4byte gUnknown_02024A60 +_0801126C: .4byte gUnknown_02024C98 +_08011270: .4byte gUnknown_02024A68 +_08011274: .4byte 0x02000000 +_08011278: .4byte gUnknown_02024D28 +_0801127C: .4byte gBattleMons +_08011280: .4byte gBitTable +_08011284: .4byte gUnknown_02024CA8 +_08011288: .4byte 0xfbffffff +_0801128C: .4byte 0x00016020 +_08011290: .4byte 0xffff1fff +_08011294: .4byte gUnknown_02024E60 +_08011298: .4byte gUnknown_02024E64 +_0801129C: .4byte gUnknown_02024C34 +_080112A0: .4byte gUnknown_02024C3C +_080112A4: .4byte gUnknown_02024C44 +_080112A8: .4byte gUnknown_02024C4C +_080112AC: .4byte gUnknown_02024C2C +_080112B0: .4byte gUnknown_02024C5C +_080112B4: .4byte 0x000160e8 +_080112B8: .4byte 0x00017100 +_080112BC: .4byte gBaseStats + thumb_func_end sub_8010F48 + + thumb_func_start bc_8012FAC +bc_8012FAC: @ 80112C0 + push {r4,r5,lr} + ldr r5, _080112D0 @ =gUnknown_02024D1E + ldrb r0, [r5] + cmp r0, 0 + beq _080112D4 + cmp r0, 0x1 + beq _080112F8 + b _0801132E + .align 2, 0 +_080112D0: .4byte gUnknown_02024D1E +_080112D4: + ldr r4, _080112F4 @ =gUnknown_02024A60 + ldrb r0, [r5, 0x1] + strb r0, [r4] + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x00_a_b_0 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _0801132E + .align 2, 0 +_080112F4: .4byte gUnknown_02024A60 +_080112F8: + ldr r0, _0801131C @ =gUnknown_02024A64 + ldr r2, [r0] + cmp r2, 0 + bne _0801132E + ldrb r0, [r5, 0x1] + adds r0, 0x1 + strb r0, [r5, 0x1] + ldr r1, _08011320 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _0801132C + ldr r1, _08011324 @ =gUnknown_030042D4 + ldr r0, _08011328 @ =bc_load_battlefield + str r0, [r1] + b _0801132E + .align 2, 0 +_0801131C: .4byte gUnknown_02024A64 +_08011320: .4byte gUnknown_02024A68 +_08011324: .4byte gUnknown_030042D4 +_08011328: .4byte bc_load_battlefield +_0801132C: + strb r2, [r5] +_0801132E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end bc_8012FAC + + thumb_func_start bc_load_battlefield +bc_load_battlefield: @ 8011334 + push {r4,r5,lr} + ldr r0, _0801136C @ =gUnknown_02024A64 + ldr r5, [r0] + cmp r5, 0 + bne _08011364 + movs r0, 0 + bl battle_get_side_with_given_state + ldr r4, _08011370 @ =gUnknown_02024A60 + strb r0, [r4] + ldr r0, _08011374 @ =gUnknown_0300428C + ldrb r1, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x2E_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08011378 @ =gUnknown_030042D4 + ldr r0, _0801137C @ =sub_8011384 + str r0, [r1] + ldr r0, _08011380 @ =gUnknown_02024D1E + strb r5, [r0] + strb r5, [r0, 0x1] +_08011364: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801136C: .4byte gUnknown_02024A64 +_08011370: .4byte gUnknown_02024A60 +_08011374: .4byte gUnknown_0300428C +_08011378: .4byte gUnknown_030042D4 +_0801137C: .4byte sub_8011384 +_08011380: .4byte gUnknown_02024D1E + thumb_func_end bc_load_battlefield + + thumb_func_start sub_8011384 +sub_8011384: @ 8011384 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080113E0 @ =gUnknown_02024A64 + ldr r1, [r0] + cmp r1, 0 + beq _08011396 + b _080115DA +_08011396: + ldr r2, _080113E4 @ =gUnknown_02024A60 + strb r1, [r2] + ldr r0, _080113E8 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r1, r0 + bcc _080113A4 + b _080115D4 +_080113A4: + movs r7, 0x58 + ldr r0, _080113EC @ =gBattleMons + mov r9, r0 + mov r8, r2 +_080113AC: + ldr r0, _080113F0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080113F4 + ldr r4, _080113E4 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080113F4 + ldrb r0, [r4] + muls r0, r7 + mov r1, r9 + adds r3, r0, r1 + movs r2, 0 + movs r1, 0 +_080113D2: + adds r0, r3, r2 + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x57 + bls _080113D2 + b _080114BE + .align 2, 0 +_080113E0: .4byte gUnknown_02024A64 +_080113E4: .4byte gUnknown_02024A60 +_080113E8: .4byte gUnknown_02024A68 +_080113EC: .4byte gBattleMons +_080113F0: .4byte gUnknown_020239F8 +_080113F4: + mov r2, r8 + ldrb r0, [r2] + muls r0, r7 + mov r1, r9 + adds r3, r0, r1 + movs r2, 0 + ldr r6, _08011530 @ =gBaseStats + ldr r5, _08011534 @ =gUnknown_02024260 + ldr r4, _08011538 @ =gUnknown_02024A60 +_08011406: + adds r0, r3, r2 + ldrb r1, [r4] + lsls r1, 9 + adds r1, 0x4 + adds r1, r2, r1 + adds r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x57 + bls _08011406 + mov r2, r8 + ldrb r0, [r2] + adds r2, r0, 0 + muls r2, r7 + add r2, r9 + ldrh r1, [r2] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x6] + adds r2, 0x21 + strb r0, [r2] + mov r1, r8 + ldrb r0, [r1] + adds r2, r0, 0 + muls r2, r7 + add r2, r9 + ldrh r1, [r2] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x7] + adds r2, 0x22 + strb r0, [r2] + mov r2, r8 + ldrb r0, [r2] + adds r1, r0, 0 + muls r1, r7 + add r1, r9 + ldrh r0, [r1] + ldrb r1, [r1, 0x17] + lsrs r1, 7 + bl GetAbilityBySpecies + mov r2, r8 + ldrb r1, [r2] + muls r1, r7 + add r1, r9 + adds r1, 0x20 + strb r0, [r1] + ldrb r0, [r2] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 23 + ldr r1, _0801153C @ =0x020160bc + adds r0, r1 + mov r2, r8 + ldrb r1, [r2] + muls r1, r7 + add r1, r9 + ldrh r1, [r1, 0x28] + strh r1, [r0] + movs r2, 0 + ldr r4, _08011538 @ =gUnknown_02024A60 + movs r5, 0x58 + ldr r1, _08011540 @ =gUnknown_02024A98 + adds r6, r4, 0 + movs r0, 0x18 + negs r0, r0 + adds r0, r1 + mov r12, r0 + movs r3, 0x6 +_0801149E: + ldrb r0, [r4] + muls r0, r5 + adds r0, r2, r0 + adds r0, r1 + strb r3, [r0] + adds r2, 0x1 + cmp r2, 0x7 + ble _0801149E + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r7 + mov r0, r12 + adds r0, 0x50 + adds r1, r0 + movs r0, 0 + str r0, [r1] +_080114BE: + ldr r4, _08011538 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080114D8 + movs r0, 0 + bl dp01_build_cmdbuf_x07_7_7_7 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080114D8: + ldr r5, _08011544 @ =gUnknown_020239F8 + ldrh r1, [r5] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0801154C + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080114FE + movs r0, 0 + bl dp01_build_cmdbuf_x07_7_7_7 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080114FE: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08011588 + ldrh r1, [r5] + ldr r2, _08011548 @ =0x00000902 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08011588 + ldrb r0, [r4] + muls r0, r7 + add r0, r9 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 + b _08011588 + .align 2, 0 +_08011530: .4byte gBaseStats +_08011534: .4byte gUnknown_02024260 +_08011538: .4byte gUnknown_02024A60 +_0801153C: .4byte 0x020160bc +_08011540: .4byte gUnknown_02024A98 +_08011544: .4byte gUnknown_020239F8 +_08011548: .4byte 0x00000902 +_0801154C: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08011588 + ldrh r1, [r5] + ldr r2, _080115E8 @ =0x00000902 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08011588 + ldrb r0, [r4] + muls r0, r7 + add r0, r9 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 + movs r0, 0 + bl dp01_build_cmdbuf_x04_4_4_4 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08011588: + ldr r0, _080115EC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080115BE + ldr r4, _080115F0 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + beq _080115B2 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _080115BE +_080115B2: + movs r0, 0 + bl dp01_build_cmdbuf_x07_7_7_7 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080115BE: + mov r1, r8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, _080115F4 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcs _080115D4 + b _080113AC +_080115D4: + ldr r1, _080115F8 @ =gUnknown_030042D4 + ldr r0, _080115FC @ =bc_801333C + str r0, [r1] +_080115DA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080115E8: .4byte 0x00000902 +_080115EC: .4byte gUnknown_020239F8 +_080115F0: .4byte gUnknown_02024A60 +_080115F4: .4byte gUnknown_02024A68 +_080115F8: .4byte gUnknown_030042D4 +_080115FC: .4byte bc_801333C + thumb_func_end sub_8011384 + + thumb_func_start bc_801333C +bc_801333C: @ 8011600 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x30 + ldr r0, _08011658 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _08011612 + b _0801178C +_08011612: + ldr r0, _0801165C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08011620 + b _0801172C +_08011620: + movs r7, 0 + add r0, sp, 0x4 + mov r8, r0 + mov r6, r8 + mov r5, sp +_0801162A: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08011660 @ =gEnemyParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08011650 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + bne _08011668 +_08011650: + ldr r0, _08011664 @ =0x0000ffff + strh r0, [r5] + movs r0, 0 + b _0801167A + .align 2, 0 +_08011658: .4byte gUnknown_02024A64 +_0801165C: .4byte gUnknown_020239F8 +_08011660: .4byte gEnemyParty +_08011664: .4byte 0x0000ffff +_08011668: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData +_0801167A: + str r0, [r6] + adds r6, 0x8 + adds r5, 0x8 + adds r7, 0x1 + cmp r7, 0x5 + ble _0801162A + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r4, _080116D4 @ =gUnknown_02024A60 + strb r0, [r4] + movs r0, 0 + mov r1, sp + movs r2, 0x80 + bl dp01_build_cmdbuf_x30_TODO + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + movs r7, 0 + mov r6, r8 + mov r5, sp +_080116A6: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080116D8 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080116CC + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + bne _080116E0 +_080116CC: + ldr r0, _080116DC @ =0x0000ffff + strh r0, [r5] + movs r0, 0 + b _080116F2 + .align 2, 0 +_080116D4: .4byte gUnknown_02024A60 +_080116D8: .4byte gPlayerParty +_080116DC: .4byte 0x0000ffff +_080116E0: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData +_080116F2: + str r0, [r6] + adds r6, 0x8 + adds r5, 0x8 + adds r7, 0x1 + cmp r7, 0x5 + ble _080116A6 + movs r0, 0 + bl battle_get_side_with_given_state + ldr r4, _08011720 @ =gUnknown_02024A60 + strb r0, [r4] + movs r0, 0 + mov r1, sp + movs r2, 0x80 + bl dp01_build_cmdbuf_x30_TODO + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08011724 @ =gUnknown_030042D4 + ldr r0, _08011728 @ =bc_battle_begin_message + b _0801178A + .align 2, 0 +_08011720: .4byte gUnknown_02024A60 +_08011724: .4byte gUnknown_030042D4 +_08011728: .4byte bc_battle_begin_message +_0801172C: + movs r7, 0 + add r6, sp, 0x4 + mov r5, sp +_08011732: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08011760 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08011758 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + bne _08011768 +_08011758: + ldr r0, _08011764 @ =0x0000ffff + strh r0, [r5] + movs r0, 0 + b _0801177A + .align 2, 0 +_08011760: .4byte gPlayerParty +_08011764: .4byte 0x0000ffff +_08011768: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData +_0801177A: + str r0, [r6] + adds r6, 0x8 + adds r5, 0x8 + adds r7, 0x1 + cmp r7, 0x5 + ble _08011732 + ldr r1, _08011798 @ =gUnknown_030042D4 + ldr r0, _0801179C @ =bc_8013568 +_0801178A: + str r0, [r1] +_0801178C: + add sp, 0x30 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08011798: .4byte gUnknown_030042D4 +_0801179C: .4byte bc_8013568 + thumb_func_end bc_801333C + + thumb_func_start bc_battle_begin_message +bc_battle_begin_message: @ 80117A0 + push {lr} + ldr r0, _080117C8 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _080117C2 + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r1, _080117CC @ =gUnknown_02024A60 + strb r0, [r1] + ldrb r1, [r1] + movs r0, 0 + bl b_std_message + ldr r1, _080117D0 @ =gUnknown_030042D4 + ldr r0, _080117D4 @ =sub_8011800 + str r0, [r1] +_080117C2: + pop {r0} + bx r0 + .align 2, 0 +_080117C8: .4byte gUnknown_02024A64 +_080117CC: .4byte gUnknown_02024A60 +_080117D0: .4byte gUnknown_030042D4 +_080117D4: .4byte sub_8011800 + thumb_func_end bc_battle_begin_message + + thumb_func_start bc_8013568 +bc_8013568: @ 80117D8 + push {lr} + ldr r0, _080117F4 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _080117F0 + ldr r1, _080117F8 @ =gUnknown_030042D4 + ldr r0, _080117FC @ =sub_8011970 + str r0, [r1] + movs r0, 0 + movs r1, 0 + bl b_std_message +_080117F0: + pop {r0} + bx r0 + .align 2, 0 +_080117F4: .4byte gUnknown_02024A64 +_080117F8: .4byte gUnknown_030042D4 +_080117FC: .4byte sub_8011970 + thumb_func_end bc_8013568 + + thumb_func_start sub_8011800 +sub_8011800: @ 8011800 + push {lr} + ldr r0, _08011828 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08011822 + movs r0, 0x1 + bl battle_get_side_with_given_state + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + bl b_std_message + ldr r1, _0801182C @ =gUnknown_030042D4 + ldr r0, _08011830 @ =sub_8011834 + str r0, [r1] +_08011822: + pop {r0} + bx r0 + .align 2, 0 +_08011828: .4byte gUnknown_02024A64 +_0801182C: .4byte gUnknown_030042D4 +_08011830: .4byte sub_8011834 + thumb_func_end sub_8011800 + + thumb_func_start sub_8011834 +sub_8011834: @ 8011834 + push {r4,lr} + ldr r0, _080118AC @ =gUnknown_02024A64 + ldr r1, [r0] + cmp r1, 0 + bne _080118A4 + ldr r2, _080118B0 @ =gUnknown_02024A60 + strb r1, [r2] + ldr r0, _080118B4 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r1, r0 + bcs _0801189E + adds r4, r2, 0 +_0801184C: + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08011866 + movs r0, 0 + bl dp01_build_cmdbuf_x2F_2F_2F_2F + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08011866: + ldr r0, _080118B8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801188C + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _0801188C + movs r0, 0 + bl dp01_build_cmdbuf_x2F_2F_2F_2F + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0801188C: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _080118B4 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _0801184C +_0801189E: + ldr r1, _080118BC @ =gUnknown_030042D4 + ldr r0, _080118C0 @ =bc_801362C + str r0, [r1] +_080118A4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080118AC: .4byte gUnknown_02024A64 +_080118B0: .4byte gUnknown_02024A60 +_080118B4: .4byte gUnknown_02024A68 +_080118B8: .4byte gUnknown_020239F8 +_080118BC: .4byte gUnknown_030042D4 +_080118C0: .4byte bc_801362C + thumb_func_end sub_8011834 + + thumb_func_start bc_801362C +bc_801362C: @ 80118C4 + push {r4,r5,lr} + ldr r0, _08011930 @ =gUnknown_02024A64 + ldr r1, [r0] + cmp r1, 0 + bne _0801192A + ldr r2, _08011934 @ =gUnknown_02024A60 + strb r1, [r2] + ldr r0, _08011938 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r1, r0 + bcs _08011924 + adds r4, r2, 0 + ldr r5, _0801193C @ =gBattleMons +_080118DE: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08011912 + ldr r0, _08011940 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r2, _08011944 @ =0x00000902 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08011912 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r5 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 +_08011912: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08011938 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _080118DE +_08011924: + ldr r1, _08011948 @ =gUnknown_030042D4 + ldr r0, _0801194C @ =sub_8011970 + str r0, [r1] +_0801192A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08011930: .4byte gUnknown_02024A64 +_08011934: .4byte gUnknown_02024A60 +_08011938: .4byte gUnknown_02024A68 +_0801193C: .4byte gBattleMons +_08011940: .4byte gUnknown_020239F8 +_08011944: .4byte 0x00000902 +_08011948: .4byte gUnknown_030042D4 +_0801194C: .4byte sub_8011970 + thumb_func_end bc_801362C + + thumb_func_start unref_sub_8011950 +unref_sub_8011950: @ 8011950 + push {lr} + ldr r0, _08011964 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08011960 + ldr r1, _08011968 @ =gUnknown_030042D4 + ldr r0, _0801196C @ =sub_8011970 + str r0, [r1] +_08011960: + pop {r0} + bx r0 + .align 2, 0 +_08011964: .4byte gUnknown_02024A64 +_08011968: .4byte gUnknown_030042D4 +_0801196C: .4byte sub_8011970 + thumb_func_end unref_sub_8011950 + + thumb_func_start sub_8011970 +sub_8011970: @ 8011970 + push {lr} + ldr r0, _080119A4 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801199E + ldr r0, _080119A8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08011998 + movs r0, 0 + bl battle_get_side_with_given_state + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x1 + bl b_std_message +_08011998: + ldr r1, _080119AC @ =gUnknown_030042D4 + ldr r0, _080119B0 @ =sub_80119B4 + str r0, [r1] +_0801199E: + pop {r0} + bx r0 + .align 2, 0 +_080119A4: .4byte gUnknown_02024A64 +_080119A8: .4byte gUnknown_020239F8 +_080119AC: .4byte gUnknown_030042D4 +_080119B0: .4byte sub_80119B4 + thumb_func_end sub_8011970 + + thumb_func_start sub_80119B4 +sub_80119B4: @ 80119B4 + push {r4,lr} + ldr r0, _08011A40 @ =gUnknown_02024A64 + ldr r1, [r0] + cmp r1, 0 + bne _08011A38 + ldr r2, _08011A44 @ =gUnknown_02024A60 + strb r1, [r2] + ldr r0, _08011A48 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r1, r0 + bcs _08011A1C + adds r4, r2, 0 +_080119CC: + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _080119E4 + movs r0, 0 + bl dp01_build_cmdbuf_x2F_2F_2F_2F + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080119E4: + ldr r0, _08011A4C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08011A0A + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08011A0A + movs r0, 0 + bl dp01_build_cmdbuf_x2F_2F_2F_2F + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08011A0A: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08011A48 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _080119CC +_08011A1C: + ldr r1, _08011A50 @ =0x02000000 + ldr r2, _08011A54 @ =0x00016058 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r3, _08011A58 @ =0x000160f9 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _08011A5C @ =0x000160e6 + adds r1, r0 + strb r2, [r1] + ldr r1, _08011A60 @ =gUnknown_030042D4 + ldr r0, _08011A64 @ =sub_8011B00 + str r0, [r1] +_08011A38: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08011A40: .4byte gUnknown_02024A64 +_08011A44: .4byte gUnknown_02024A60 +_08011A48: .4byte gUnknown_02024A68 +_08011A4C: .4byte gUnknown_020239F8 +_08011A50: .4byte 0x02000000 +_08011A54: .4byte 0x00016058 +_08011A58: .4byte 0x000160f9 +_08011A5C: .4byte 0x000160e6 +_08011A60: .4byte gUnknown_030042D4 +_08011A64: .4byte sub_8011B00 + thumb_func_end sub_80119B4 + + thumb_func_start unref_sub_8011A68 +unref_sub_8011A68: @ 8011A68 + push {r4,r5,lr} + ldr r0, _08011AD8 @ =gUnknown_02024A64 + ldr r1, [r0] + cmp r1, 0 + bne _08011AD2 + ldr r2, _08011ADC @ =gUnknown_02024A60 + strb r1, [r2] + ldr r0, _08011AE0 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r1, r0 + bcs _08011AB6 + adds r4, r2, 0 + ldr r5, _08011AE4 @ =gUnknown_02024A6A +_08011A82: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08011AA4 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r5 + ldrb r1, [r0] + movs r0, 0 + movs r2, 0 + bl sub_800C704 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08011AA4: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08011AE0 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08011A82 +_08011AB6: + ldr r1, _08011AE8 @ =0x02000000 + ldr r2, _08011AEC @ =0x00016058 + adds r0, r1, r2 + movs r2, 0 + strb r2, [r0] + ldr r3, _08011AF0 @ =0x000160f9 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _08011AF4 @ =0x000160e6 + adds r1, r0 + strb r2, [r1] + ldr r1, _08011AF8 @ =gUnknown_030042D4 + ldr r0, _08011AFC @ =sub_8011B00 + str r0, [r1] +_08011AD2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08011AD8: .4byte gUnknown_02024A64 +_08011ADC: .4byte gUnknown_02024A60 +_08011AE0: .4byte gUnknown_02024A68 +_08011AE4: .4byte gUnknown_02024A6A +_08011AE8: .4byte 0x02000000 +_08011AEC: .4byte 0x00016058 +_08011AF0: .4byte 0x000160f9 +_08011AF4: .4byte 0x000160e6 +_08011AF8: .4byte gUnknown_030042D4 +_08011AFC: .4byte sub_8011B00 + thumb_func_end unref_sub_8011A68 + + thumb_func_start sub_8011B00 +sub_8011B00: @ 8011B00 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r0, 0 + mov r9, r0 + ldr r0, _08011B44 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _08011B18 + b _08011D6E +_08011B18: + ldr r0, _08011B48 @ =0x02000000 + ldr r1, _08011B4C @ =0x00016058 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08011BA2 + movs r5, 0 + ldr r1, _08011B50 @ =gUnknown_02024A68 + adds r3, r1, 0 + ldrb r2, [r1] + cmp r5, r2 + bge _08011B3E + ldr r2, _08011B54 @ =gUnknown_02024A7A +_08011B32: + adds r0, r5, r2 + strb r5, [r0] + adds r5, 0x1 + ldrb r0, [r1] + cmp r5, r0 + blt _08011B32 +_08011B3E: + movs r5, 0 + b _08011B98 + .align 2, 0 +_08011B44: .4byte gUnknown_02024A64 +_08011B48: .4byte 0x02000000 +_08011B4C: .4byte 0x00016058 +_08011B50: .4byte gUnknown_02024A68 +_08011B54: .4byte gUnknown_02024A7A +_08011B58: + adds r4, r5, 0x1 + mov r8, r4 + ldrb r1, [r1] + cmp r8, r1 + bge _08011B96 + ldr r6, _08011BC8 @ =gUnknown_02024A7A + ldr r3, _08011BCC @ =gUnknown_02024A68 + lsls r7, r5, 24 +_08011B68: + adds r0, r5, r6 + ldrb r0, [r0] + adds r1, r4, r6 + ldrb r1, [r1] + movs r2, 0x1 + str r3, [sp, 0x4] + bl b_first_side + lsls r0, 24 + ldr r3, [sp, 0x4] + cmp r0, 0 + beq _08011B8C + lsls r1, r4, 24 + lsrs r1, 24 + lsrs r0, r7, 24 + bl sub_8012FBC + ldr r3, [sp, 0x4] +_08011B8C: + adds r4, 0x1 + ldr r0, _08011BCC @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08011B68 +_08011B96: + mov r5, r8 +_08011B98: + adds r1, r3, 0 + ldrb r0, [r3] + subs r0, 0x1 + cmp r5, r0 + blt _08011B58 +_08011BA2: + ldr r0, _08011BD0 @ =0x02000000 + ldr r1, _08011BD4 @ =0x000160e6 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + bne _08011BD8 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r2, 0 + movs r3, 0xFF + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08011BD8 + movs r0, 0x1 + strb r0, [r4] + b _08011D6E + .align 2, 0 +_08011BC8: .4byte gUnknown_02024A7A +_08011BCC: .4byte gUnknown_02024A68 +_08011BD0: .4byte 0x02000000 +_08011BD4: .4byte 0x000160e6 +_08011BD8: + ldr r0, _08011D7C @ =0x02000000 + ldr r3, _08011D80 @ =0x00016058 + adds r2, r0, r3 + ldr r1, _08011D84 @ =gUnknown_02024A68 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bcs _08011C28 + ldr r5, _08011D88 @ =gUnknown_02024A7A + adds r4, r2, 0 +_08011BEC: + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08011C0E + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08011C0E: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + mov r1, r9 + cmp r1, 0 + beq _08011C1C + b _08011D6E +_08011C1C: + ldr r1, _08011D84 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08011BEC +_08011C28: + movs r0, 0 + str r0, [sp] + movs r0, 0x9 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08011C42 + b _08011D6E +_08011C42: + str r0, [sp] + movs r0, 0xB + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08011C58 + b _08011D6E +_08011C58: + ldr r0, _08011D7C @ =0x02000000 + ldr r3, _08011D8C @ =0x000160f9 + adds r2, r0, r3 + ldr r0, _08011D84 @ =gUnknown_02024A68 + ldrb r1, [r2] + adds r3, r0, 0 + ldrb r0, [r3] + cmp r1, r0 + bcs _08011CA8 + ldr r5, _08011D88 @ =gUnknown_02024A7A + adds r4, r2, 0 +_08011C6E: + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0 + movs r2, 0 + str r3, [sp, 0x4] + bl sub_801A02C + lsls r0, 24 + ldr r3, [sp, 0x4] + cmp r0, 0 + beq _08011C90 + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08011C90: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + mov r1, r9 + cmp r1, 0 + bne _08011D6E + ldr r1, _08011D84 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08011C6E +_08011CA8: + ldrb r0, [r3] + cmp r0, 0 + beq _08011CB6 + adds r5, r0, 0 +_08011CB0: + subs r5, 0x1 + cmp r5, 0 + bne _08011CB0 +_08011CB6: + movs r5, 0 + ldr r0, _08011D7C @ =0x02000000 + mov r8, r5 + ldr r3, _08011D90 @ =gUnknown_02024C60 + ldr r1, _08011D94 @ =0x00016068 + adds r2, r0, r1 + movs r7, 0x6 + ldr r6, _08011D98 @ =gUnknown_02024C18 + movs r4, 0xFF +_08011CC8: + strb r7, [r2] + adds r1, r5, r6 + ldrb r0, [r1] + orrs r0, r4 + strb r0, [r1] + mov r0, r8 + strh r0, [r3] + adds r3, 0x2 + adds r2, 0x1 + adds r5, 0x1 + cmp r5, 0x3 + ble _08011CC8 + movs r0, 0 + bl sub_801365C + bl sub_801377C + ldr r0, _08011D7C @ =0x02000000 + ldr r1, _08011D9C @ =gUnknown_02024C0C + ldrb r1, [r1] + ldr r2, _08011DA0 @ =0x000160a6 + adds r0, r2 + strb r1, [r0] + ldr r1, _08011DA4 @ =gUnknown_030042D4 + ldr r0, _08011DA8 @ =sub_8012324 + str r0, [r1] + bl sub_80156DC + ldr r1, _08011DAC @ =gUnknown_02024D1E + movs r2, 0 + adds r0, r1, 0x7 +_08011D06: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08011D06 + movs r5, 0 + ldr r3, _08011D84 @ =gUnknown_02024A68 + ldr r2, _08011D7C @ =0x02000000 + ldr r6, _08011DB0 @ =gUnknown_02024C68 + ldrb r0, [r3] + cmp r5, r0 + bge _08011D36 + ldr r0, _08011DB4 @ =gBattleMons + movs r4, 0x9 + negs r4, r4 + adds r1, r0, 0 + adds r1, 0x50 +_08011D26: + ldr r0, [r1] + ands r0, r4 + str r0, [r1] + adds r1, 0x58 + adds r5, 0x1 + ldrb r0, [r3] + cmp r5, r0 + blt _08011D26 +_08011D36: + movs r1, 0xB0 + lsls r1, 9 + adds r0, r2, r1 + movs r1, 0 + strb r1, [r0] + ldr r3, _08011DB8 @ =0x00016001 + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _08011DBC @ =0x00016110 + adds r0, r2, r3 + strb r1, [r0] + adds r3, 0x1 + adds r0, r2, r3 + strb r1, [r0] + ldr r3, _08011DC0 @ =0x0001600c + adds r0, r2, r3 + strb r1, [r0] + adds r3, 0x4D + adds r0, r2, r3 + strb r1, [r0] + subs r3, 0x4B + adds r0, r2, r3 + strb r1, [r0] + strb r1, [r6] + bl Random + ldr r1, _08011DC4 @ =gUnknown_02024D1C + strh r0, [r1] +_08011D6E: + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08011D7C: .4byte 0x02000000 +_08011D80: .4byte 0x00016058 +_08011D84: .4byte gUnknown_02024A68 +_08011D88: .4byte gUnknown_02024A7A +_08011D8C: .4byte 0x000160f9 +_08011D90: .4byte gUnknown_02024C60 +_08011D94: .4byte 0x00016068 +_08011D98: .4byte gUnknown_02024C18 +_08011D9C: .4byte gUnknown_02024C0C +_08011DA0: .4byte 0x000160a6 +_08011DA4: .4byte gUnknown_030042D4 +_08011DA8: .4byte sub_8012324 +_08011DAC: .4byte gUnknown_02024D1E +_08011DB0: .4byte gUnknown_02024C68 +_08011DB4: .4byte gBattleMons +_08011DB8: .4byte 0x00016001 +_08011DBC: .4byte 0x00016110 +_08011DC0: .4byte 0x0001600c +_08011DC4: .4byte gUnknown_02024D1C + thumb_func_end sub_8011B00 + + thumb_func_start bc_8013B1C +bc_8013B1C: @ 8011DC8 + push {r4-r6,lr} + ldr r0, _08011E60 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08011E5A + ldr r1, _08011E64 @ =gUnknown_030042D4 + ldr r0, _08011E68 @ =sub_8011E8C + str r0, [r1] + ldr r3, _08011E6C @ =gUnknown_02024A68 + ldr r1, _08011E70 @ =gUnknown_02024D1E + movs r2, 0 + adds r0, r1, 0x7 +_08011DE0: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08011DE0 + movs r4, 0 + ldrb r3, [r3] + cmp r4, r3 + bge _08011E32 + ldr r5, _08011E74 @ =gBattleMons + adds r6, r5, 0 + adds r6, 0x4C +_08011DF6: + movs r0, 0x58 + adds r2, r4, 0 + muls r2, r0 + adds r1, r5, 0 + adds r1, 0x50 + adds r1, r2, r1 + ldr r3, [r1] + subs r0, 0x61 + ands r3, r0 + str r3, [r1] + adds r2, r6 + ldr r0, [r2] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08011E28 + movs r0, 0x80 + lsls r0, 5 + ands r3, r0 + cmp r3, 0 + beq _08011E28 + lsls r0, r4, 24 + lsrs r0, 24 + bl b_cancel_multi_turn_move_maybe +_08011E28: + adds r4, 0x1 + ldr r0, _08011E6C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08011DF6 +_08011E32: + ldr r0, _08011E78 @ =0x02000000 + movs r2, 0xB0 + lsls r2, 9 + adds r1, r0, r2 + movs r2, 0 + strb r2, [r1] + ldr r3, _08011E7C @ =0x00016001 + adds r1, r0, r3 + strb r2, [r1] + ldr r3, _08011E80 @ =0x00016110 + adds r1, r0, r3 + strb r2, [r1] + adds r3, 0x1 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _08011E84 @ =0x0001600e + adds r0, r1 + strb r2, [r0] + ldr r0, _08011E88 @ =gUnknown_02024C68 + strb r2, [r0] +_08011E5A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08011E60: .4byte gUnknown_02024A64 +_08011E64: .4byte gUnknown_030042D4 +_08011E68: .4byte sub_8011E8C +_08011E6C: .4byte gUnknown_02024A68 +_08011E70: .4byte gUnknown_02024D1E +_08011E74: .4byte gBattleMons +_08011E78: .4byte 0x02000000 +_08011E7C: .4byte 0x00016001 +_08011E80: .4byte 0x00016110 +_08011E84: .4byte 0x0001600e +_08011E88: .4byte gUnknown_02024C68 + thumb_func_end bc_8013B1C + + thumb_func_start sub_8011E8C +sub_8011E8C: @ 8011E8C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0x1 + bl sub_801365C + ldr r0, _08011F3C @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0 + bne _08011EBC + bl sub_8015DFC + lsls r0, 24 + cmp r0, 0 + beq _08011EB0 + b _08011FEE +_08011EB0: + bl sub_8016558 + lsls r0, 24 + cmp r0, 0 + beq _08011EBC + b _08011FEE +_08011EBC: + bl sub_80173A4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _08011ECA + b _08011FEE +_08011ECA: + ldr r5, _08011F40 @ =0x02000000 + ldr r2, _08011F44 @ =0x00016059 + adds r0, r5, r2 + strb r1, [r0] + bl sub_80170DC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08011EE0 + b _08011FEE +_08011EE0: + movs r0, 0 + bl sub_801365C + ldr r2, _08011F48 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _08011F4C @ =0xfffffdff + ands r0, r1 + ldr r1, _08011F50 @ =0xfff7ffff + ands r0, r1 + ldr r1, _08011F54 @ =0xffbfffff + ands r0, r1 + ldr r1, _08011F58 @ =0xffefffff + ands r0, r1 + str r0, [r2] + ldr r3, _08011F5C @ =0x00016002 + adds r0, r5, r3 + strb r4, [r0] + ldr r1, _08011F60 @ =0x000160a1 + adds r0, r5, r1 + strb r4, [r0] + ldr r2, _08011F64 @ =0x0001600c + adds r0, r5, r2 + strb r4, [r0] + ldr r0, _08011F68 @ =gUnknown_02024BEC + str r4, [r0] + ldr r0, _08011F6C @ =gUnknown_02024C68 + strb r4, [r0] + ldr r1, _08011F70 @ =gUnknown_02024D1E + movs r2, 0 + adds r0, r1, 0x4 +_08011F1C: + strb r2, [r0] + subs r0, 0x1 + cmp r0, r1 + bge _08011F1C + ldr r0, _08011F3C @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0 + beq _08011F80 + ldr r1, _08011F74 @ =gUnknown_02024A7F + movs r0, 0xC + strb r0, [r1] + ldr r1, _08011F78 @ =gUnknown_030042D4 + ldr r0, _08011F7C @ =sub_80138F0 + str r0, [r1] + b _08011FEE + .align 2, 0 +_08011F3C: .4byte gUnknown_02024D26 +_08011F40: .4byte 0x02000000 +_08011F44: .4byte 0x00016059 +_08011F48: .4byte gUnknown_02024C6C +_08011F4C: .4byte 0xfffffdff +_08011F50: .4byte 0xfff7ffff +_08011F54: .4byte 0xffbfffff +_08011F58: .4byte 0xffefffff +_08011F5C: .4byte 0x00016002 +_08011F60: .4byte 0x000160a1 +_08011F64: .4byte 0x0001600c +_08011F68: .4byte gUnknown_02024BEC +_08011F6C: .4byte gUnknown_02024C68 +_08011F70: .4byte gUnknown_02024D1E +_08011F74: .4byte gUnknown_02024A7F +_08011F78: .4byte gUnknown_030042D4 +_08011F7C: .4byte sub_80138F0 +_08011F80: + ldr r1, _08011FFC @ =gUnknown_030042E0 + ldrb r0, [r1, 0x13] + cmp r0, 0xFE + bhi _08011F8C + adds r0, 0x1 + strb r0, [r1, 0x13] +_08011F8C: + movs r2, 0 + ldr r4, _08012000 @ =gUnknown_02024A68 + ldr r3, _08012004 @ =0x02000000 + mov r9, r3 + ldr r0, _08012008 @ =gUnknown_030042D4 + mov r10, r0 + ldr r1, _0801200C @ =gUnknown_02024C0C + mov r12, r1 + ldr r3, _08012010 @ =sub_8012324 + mov r8, r3 + ldrb r0, [r4] + cmp r2, r0 + bge _08011FC2 + ldr r7, _08012014 @ =gUnknown_02024C18 + movs r6, 0xFF + movs r5, 0 + ldr r3, _08012018 @ =gUnknown_02024C60 +_08011FAE: + adds r1, r2, r7 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + strh r5, [r3] + adds r3, 0x2 + adds r2, 0x1 + ldrb r1, [r4] + cmp r2, r1 + blt _08011FAE +_08011FC2: + ldr r0, _08012004 @ =0x02000000 + movs r1, 0x6 + movs r2, 0x3 + ldr r3, _0801201C @ =0x0001606b + adds r0, r3 +_08011FCC: + strb r1, [r0] + subs r0, 0x1 + subs r2, 0x1 + cmp r2, 0 + bge _08011FCC + mov r0, r12 + ldrb r1, [r0] + ldr r0, _08012020 @ =0x000160a6 + add r0, r9 + strb r1, [r0] + mov r1, r8 + mov r2, r10 + str r1, [r2] + bl Random + ldr r1, _08012024 @ =gUnknown_02024D1C + strh r0, [r1] +_08011FEE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08011FFC: .4byte gUnknown_030042E0 +_08012000: .4byte gUnknown_02024A68 +_08012004: .4byte 0x02000000 +_08012008: .4byte gUnknown_030042D4 +_0801200C: .4byte gUnknown_02024C0C +_08012010: .4byte sub_8012324 +_08012014: .4byte gUnknown_02024C18 +_08012018: .4byte gUnknown_02024C60 +_0801201C: .4byte 0x0001606b +_08012020: .4byte 0x000160a6 +_08012024: .4byte gUnknown_02024D1C + thumb_func_end sub_8011E8C + + thumb_func_start sub_8012028 +sub_8012028: @ 8012028 + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _0801204C @ =gBattleMons + ldr r0, _08012050 @ =gUnknown_02024A60 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08012058 + ldr r1, _08012054 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0, 0x7] + b _08012062 + .align 2, 0 +_0801204C: .4byte gBattleMons +_08012050: .4byte gUnknown_02024A60 +_08012054: .4byte gEnigmaBerries +_08012058: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r2, r0, 24 +_08012062: + ldr r1, _0801217C @ =gUnknown_02024C0B + ldr r3, _08012180 @ =gUnknown_02024A60 + ldrb r0, [r3] + strb r0, [r1] + cmp r2, 0x25 + bne _08012070 + b _080121F4 +_08012070: + ldr r0, _08012184 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801207E + b _080121F4 +_0801207E: + ldr r1, _08012188 @ =gBattleMons + ldrb r2, [r3] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x32 + bne _08012092 + b _080121F4 +_08012092: + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r0, _0801218C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + bge _08012126 + movs r7, 0 +_080120A8: + lsrs r4, r7, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + beq _080120CC + ldr r1, _08012188 @ =gBattleMons + movs r0, 0x58 + muls r0, r5 + adds r0, r1 + adds r2, r0, 0 + adds r2, 0x20 + ldrb r0, [r2] + cmp r0, 0x17 + bne _080120CC + b _080121FC +_080120CC: + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + beq _08012116 + ldr r3, _08012188 @ =gBattleMons + ldr r0, _08012180 @ =gUnknown_02024A60 + ldrb r0, [r0] + movs r2, 0x58 + muls r0, r2 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + beq _08012116 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08012116 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x2 + beq _08012116 + adds r0, r5, 0 + muls r0, r2 + adds r0, r3 + adds r2, r0, 0 + adds r2, 0x20 + ldrb r0, [r2] + cmp r0, 0x47 + bne _08012116 + b _08012220 +_08012116: + movs r0, 0x80 + lsls r0, 17 + adds r7, r0 + adds r5, 0x1 + ldr r0, _0801218C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + blt _080120A8 +_08012126: + ldr r4, _08012180 @ =gUnknown_02024A60 + ldrb r1, [r4] + movs r0, 0 + str r0, [sp] + movs r0, 0xF + movs r2, 0x2A + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _080121A0 + ldr r6, _08012188 @ =gBattleMons + ldrb r0, [r4] + movs r3, 0x58 + muls r0, r3 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x8 + beq _0801215E + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x8 + bne _080121A0 +_0801215E: + ldr r0, _08012190 @ =0x02000000 + subs r1, r5, 0x1 + ldr r2, _08012194 @ =0x00016003 + adds r0, r2 + strb r1, [r0] + ldr r2, _08012198 @ =byte_2024C06 + adds r0, r1, 0 + muls r0, r3 + adds r0, r6 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r2] + ldr r1, _0801219C @ =gUnknown_02024D1E + movs r0, 0x2 + b _08012248 + .align 2, 0 +_0801217C: .4byte gUnknown_02024C0B +_08012180: .4byte gUnknown_02024A60 +_08012184: .4byte gUnknown_020239F8 +_08012188: .4byte gBattleMons +_0801218C: .4byte gUnknown_02024A68 +_08012190: .4byte 0x02000000 +_08012194: .4byte 0x00016003 +_08012198: .4byte byte_2024C06 +_0801219C: .4byte gUnknown_02024D1E +_080121A0: + ldr r1, _080121D4 @ =gBattleMons + ldr r0, _080121D8 @ =gUnknown_02024A60 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080121DC @ =0x0400e000 + ands r0, r1 + cmp r0, 0 + bne _080121CA + ldr r1, _080121E0 @ =gUnknown_02024C98 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _080121E8 +_080121CA: + ldr r1, _080121E4 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] + movs r0, 0x1 + b _0801224A + .align 2, 0 +_080121D4: .4byte gBattleMons +_080121D8: .4byte gUnknown_02024A60 +_080121DC: .4byte 0x0400e000 +_080121E0: .4byte gUnknown_02024C98 +_080121E4: .4byte gUnknown_02024D1E +_080121E8: + ldr r0, _080121F8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08012244 +_080121F4: + movs r0, 0 + b _0801224A + .align 2, 0 +_080121F8: .4byte gUnknown_020239F8 +_080121FC: + ldr r0, _08012210 @ =0x02000000 + ldr r1, _08012214 @ =0x00016003 + adds r0, r1 + strb r5, [r0] + ldr r1, _08012218 @ =byte_2024C06 + ldrb r0, [r2] + strb r0, [r1] + ldr r1, _0801221C @ =gUnknown_02024D1E + movs r0, 0x2 + b _08012248 + .align 2, 0 +_08012210: .4byte 0x02000000 +_08012214: .4byte 0x00016003 +_08012218: .4byte byte_2024C06 +_0801221C: .4byte gUnknown_02024D1E +_08012220: + ldr r0, _08012234 @ =0x02000000 + ldr r1, _08012238 @ =0x00016003 + adds r0, r1 + strb r5, [r0] + ldr r1, _0801223C @ =byte_2024C06 + ldrb r0, [r2] + strb r0, [r1] + ldr r1, _08012240 @ =gUnknown_02024D1E + movs r0, 0x2 + b _08012248 + .align 2, 0 +_08012234: .4byte 0x02000000 +_08012238: .4byte 0x00016003 +_0801223C: .4byte byte_2024C06 +_08012240: .4byte gUnknown_02024D1E +_08012244: + ldr r1, _08012254 @ =gUnknown_02024D1E + movs r0, 0x1 +_08012248: + strb r0, [r1, 0x5] +_0801224A: + add sp, 0x4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08012254: .4byte gUnknown_02024D1E + thumb_func_end sub_8012028 + + thumb_func_start sub_8012258 +sub_8012258: @ 8012258 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + movs r3, 0 + ldr r7, _080122E4 @ =gUnknown_02024A6A + ldr r4, _080122E8 @ =gUnknown_02038470 + ldr r1, _080122EC @ =0x02000000 + lsls r6, r5, 1 + ldr r2, _080122F0 @ =0x0001606c + adds r0, r5, r2 + adds r0, r6, r0 + adds r2, r0, r1 +_08012270: + adds r1, r3, r4 + ldrb r0, [r2] + strb r0, [r1] + adds r2, 0x1 + adds r3, 0x1 + cmp r3, 0x2 + ble _08012270 + adds r0, r6, r7 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r7, _080122EC @ =0x02000000 + ldr r1, _080122F4 @ =0x00016068 + adds r0, r5, r1 + adds r0, r7 + ldrb r0, [r0] + bl pokemon_order_func + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_8094C98 + ldr r0, _080122F8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080122FC + movs r3, 0 + ldr r2, _080122F0 @ =0x0001606c + movs r0, 0x2 + adds r1, r5, 0 + eors r1, r0 + adds r0, r5, r2 + adds r0, r6, r0 + adds r4, r0, r7 + ldr r5, _080122E8 @ =gUnknown_02038470 + lsls r0, r1, 1 + adds r0, r1 + adds r0, r2 + adds r2, r0, r7 +_080122CC: + adds r0, r3, r5 + ldrb r1, [r0] + strb r1, [r4] + ldrb r0, [r0] + strb r0, [r2] + adds r4, 0x1 + adds r2, 0x1 + adds r3, 0x1 + cmp r3, 0x2 + ble _080122CC + b _08012316 + .align 2, 0 +_080122E4: .4byte gUnknown_02024A6A +_080122E8: .4byte gUnknown_02038470 +_080122EC: .4byte 0x02000000 +_080122F0: .4byte 0x0001606c +_080122F4: .4byte 0x00016068 +_080122F8: .4byte gUnknown_020239F8 +_080122FC: + movs r3, 0 + ldr r2, _0801231C @ =0x0001606c + adds r0, r5, r2 + adds r0, r6, r0 + adds r1, r0, r7 + ldr r2, _08012320 @ =gUnknown_02038470 +_08012308: + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r1, 0x1 + adds r3, 0x1 + cmp r3, 0x2 + ble _08012308 +_08012316: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801231C: .4byte 0x0001606c +_08012320: .4byte gUnknown_02038470 + thumb_func_end sub_8012258 + + thumb_func_start sub_8012324 +sub_8012324: @ 8012324 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r0, _08012340 @ =gUnknown_02024D1E + movs r1, 0 + strb r1, [r0, 0x4] + ldr r0, _08012344 @ =gUnknown_02024A60 + strb r1, [r0] + ldr r0, _08012348 @ =gUnknown_02024A68 + bl _08012F74 + .align 2, 0 +_08012340: .4byte gUnknown_02024D1E +_08012344: .4byte gUnknown_02024A60 +_08012348: .4byte gUnknown_02024A68 +_0801234C: + ldr r4, _08012374 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _08012378 @ =gUnknown_02024D1E + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x6 + bls _08012368 + bl _08012F66 +_08012368: + lsls r0, 2 + ldr r1, _0801237C @ =_08012380 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08012374: .4byte gUnknown_02024A60 +_08012378: .4byte gUnknown_02024D1E +_0801237C: .4byte _08012380 + .align 2, 0 +_08012380: + .4byte _0801239C + .4byte _080124C8 + .4byte _08012A28 + .4byte _08012DA8 + .4byte _08012E50 + .4byte _08012E94 + .4byte _08012F38 +_0801239C: + ldr r4, _08012434 @ =0x02000000 + ldr r0, _08012438 @ =gUnknown_02024A60 + ldrb r0, [r0] + ldr r1, _0801243C @ =0x00016068 + adds r0, r1 + adds r0, r4 + movs r1, 0x6 + strb r1, [r0] + ldr r0, _08012440 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080123F8 + movs r1, 0x2 + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + beq _080123F8 + eors r5, r1 + adds r0, r5, 0 + bl battle_get_side_with_given_state + ldr r2, _08012444 @ =0x000160a6 + adds r1, r4, r2 + ldrb r1, [r1] + ldr r2, _08012448 @ =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080123F8 + ldr r4, _0801244C @ =gUnknown_02024D1E + adds r0, r5, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x4 + beq _080123F8 + bl _08012F66 +_080123F8: + ldr r0, _08012434 @ =0x02000000 + ldr r3, _08012444 @ =0x000160a6 + adds r0, r3 + ldrb r3, [r0] + ldr r1, _08012448 @ =gBitTable + ldr r4, _08012438 @ =gUnknown_02024A60 + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ands r3, r0 + cmp r3, 0 + beq _08012468 + ldr r0, _08012450 @ =gUnknown_02024C18 + adds r0, r2, r0 + movs r1, 0xD + strb r1, [r0] + ldr r0, _08012440 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08012454 + ldr r0, _0801244C @ =gUnknown_02024D1E + ldrb r1, [r4] + adds r1, r0 + movs r0, 0x4 + strb r0, [r1] + bl _08012F66 + .align 2, 0 +_08012434: .4byte 0x02000000 +_08012438: .4byte gUnknown_02024A60 +_0801243C: .4byte 0x00016068 +_08012440: .4byte gUnknown_020239F8 +_08012444: .4byte 0x000160a6 +_08012448: .4byte gBitTable +_0801244C: .4byte gUnknown_02024D1E +_08012450: .4byte gUnknown_02024C18 +_08012454: + ldr r0, _08012464 @ =gUnknown_02024D1E + ldrb r1, [r4] + adds r1, r0 + movs r0, 0x3 + strb r0, [r1] + bl _08012F66 + .align 2, 0 +_08012464: .4byte gUnknown_02024D1E +_08012468: + ldr r1, _0801249C @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + bne _08012488 + movs r0, 0x80 + lsls r0, 15 + ands r1, r0 + cmp r1, 0 + beq _080124A8 +_08012488: + ldr r0, _080124A0 @ =gUnknown_02024C18 + adds r0, r2, r0 + strb r3, [r0] + ldr r1, _080124A4 @ =gUnknown_02024D1E + ldrb r0, [r4] + adds r0, r1 + movs r1, 0x3 + strb r1, [r0] + bl _08012F66 + .align 2, 0 +_0801249C: .4byte gBattleMons +_080124A0: .4byte gUnknown_02024C18 +_080124A4: .4byte gUnknown_02024D1E +_080124A8: + ldr r0, _080124C0 @ =gUnknown_02024C18 + ldrb r1, [r0] + ldr r0, _080124C4 @ =gUnknown_02024260 + ldrb r2, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r2, r0 + movs r0, 0 + bl dp01_build_cmdbuf_x12_a_bb + bl _08012E32 + .align 2, 0 +_080124C0: .4byte gUnknown_02024C18 +_080124C4: .4byte gUnknown_02024260 +_080124C8: + ldr r4, _08012520 @ =gUnknown_02024A64 + ldr r1, _08012524 @ =gBitTable + ldr r3, _08012528 @ =gUnknown_02024A60 + ldrb r5, [r3] + lsls r0, r5, 2 + adds r0, r1 + ldr r2, [r0] + lsls r0, r2, 4 + movs r1, 0xF0 + lsls r1, 24 + orrs r0, r1 + orrs r0, r2 + lsls r1, r2, 8 + orrs r0, r1 + lsls r2, 12 + orrs r0, r2 + ldr r1, [r4] + ands r1, r0 + mov r8, r3 + cmp r1, 0 + beq _080124F6 + bl _08012F66 +_080124F6: + ldr r2, _0801252C @ =gUnknown_02024C18 + adds r2, r5, r2 + ldr r1, _08012530 @ =gUnknown_02024260 + lsls r0, r5, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldrb r0, [r3] + lsls r0, 9 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xC + bls _08012514 + b _08012968 +_08012514: + lsls r0, 2 + ldr r1, _08012534 @ =_08012538 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08012520: .4byte gUnknown_02024A64 +_08012524: .4byte gBitTable +_08012528: .4byte gUnknown_02024A60 +_0801252C: .4byte gUnknown_02024C18 +_08012530: .4byte gUnknown_02024260 +_08012534: .4byte _08012538 + .align 2, 0 +_08012538: + .4byte _0801256C + .4byte _080126B4 + .4byte _080126E0 + .4byte _08012968 + .4byte _08012968 + .4byte _080128B0 + .4byte _08012908 + .4byte _08012968 + .4byte _08012968 + .4byte _08012968 + .4byte _08012968 + .4byte _08012968 + .4byte _0801292C +_0801256C: + bl sub_8015C90 + lsls r0, 24 + cmp r0, 0 + beq _080125D0 + ldr r0, _080125B4 @ =gUnknown_02024D1E + ldr r2, _080125B8 @ =gUnknown_02024A60 + ldrb r1, [r2] + adds r1, r0 + movs r4, 0 + movs r0, 0x5 + strb r0, [r1] + ldr r3, _080125BC @ =0x02000000 + ldrb r0, [r2] + ldr r1, _080125C0 @ =0x00016060 + adds r0, r1 + adds r0, r3 + strb r4, [r0] + ldrb r0, [r2] + ldr r4, _080125C4 @ =0x00016094 + adds r0, r4 + adds r0, r3 + movs r1, 0x3 + strb r1, [r0] + ldrb r1, [r2] + ldr r0, _080125C8 @ =0x00016010 + adds r2, r1, r0 + adds r2, r3 + ldr r0, _080125CC @ =gUnknown_02024260 + lsls r1, 9 + adds r0, 0x3 + adds r1, r0 + ldrb r0, [r1] + strb r0, [r2] + bl _08012F90 + .align 2, 0 +_080125B4: .4byte gUnknown_02024D1E +_080125B8: .4byte gUnknown_02024A60 +_080125BC: .4byte 0x02000000 +_080125C0: .4byte 0x00016060 +_080125C4: .4byte 0x00016094 +_080125C8: .4byte 0x00016010 +_080125CC: .4byte gUnknown_02024260 +_080125D0: + ldr r1, _080125FC @ =gUnknown_02024CA8 + ldr r5, _08012600 @ =gUnknown_02024A60 + ldrb r4, [r5] + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldrh r2, [r0, 0x6] + cmp r2, 0 + beq _0801260C + ldr r1, _08012604 @ =gUnknown_02024C60 + lsls r0, r4, 1 + adds r0, r1 + strh r2, [r0] + ldr r1, _08012608 @ =gUnknown_02024D1E + ldrb r0, [r5] + adds r0, r1 + movs r1, 0x3 + strb r1, [r0] + bl _08012F90 + .align 2, 0 +_080125FC: .4byte gUnknown_02024CA8 +_08012600: .4byte gUnknown_02024A60 +_08012604: .4byte gUnknown_02024C60 +_08012608: .4byte gUnknown_02024D1E +_0801260C: + add r2, sp, 0x4 + ldr r3, _080126AC @ =gBattleMons + movs r1, 0x58 + adds r0, r4, 0 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0] + strh r0, [r2, 0x10] + ldrb r0, [r5] + muls r0, r1 + adds r0, r3 + adds r0, 0x21 + ldrb r0, [r0] + strb r0, [r2, 0x12] + ldrb r0, [r5] + muls r0, r1 + adds r0, r3 + adds r0, 0x22 + ldrb r0, [r0] + strb r0, [r2, 0x13] + movs r4, 0 + mov r1, sp + adds r1, 0xC + str r1, [sp, 0x18] + add r2, sp, 0x10 + mov r10, r2 + mov r8, r3 + adds r7, r5, 0 + movs r6, 0x58 + movs r3, 0xC + add r3, r8 + mov r9, r3 + add r5, sp, 0x4 +_0801264E: + lsls r2, r4, 1 + ldrb r0, [r7] + muls r0, r6 + adds r0, r2, r0 + add r0, r9 + ldrh r0, [r0] + strh r0, [r5] + ldr r0, [sp, 0x18] + adds r3, r0, r4 + ldrb r0, [r7] + muls r0, r6 + adds r0, r4, r0 + mov r1, r8 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r3] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + adds r2, r1 + add r2, r9 + ldrh r0, [r2] + add r1, r8 + adds r1, 0x3B + ldrb r1, [r1] + lsls r2, r4, 24 + lsrs r2, 24 + bl CalculatePPWithBonus + mov r2, r10 + adds r1, r2, r4 + strb r0, [r1] + adds r5, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _0801264E + ldr r0, _080126B0 @ =gUnknown_020239F8 + ldrb r0, [r0] + movs r1, 0x1 + ands r1, r0 + movs r0, 0 + movs r2, 0 + add r3, sp, 0x4 + bl sub_800CBA4 + b _0801289E + .align 2, 0 +_080126AC: .4byte gBattleMons +_080126B0: .4byte gUnknown_020239F8 +_080126B4: + ldr r0, _080126D0 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _080126D4 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _080126C2 + b _08012908 +_080126C2: + ldr r1, _080126D8 @ =gUnknown_02024C1C + mov r3, r8 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, _080126DC @ =gUnknown_081D9B29 + b _080129CC + .align 2, 0 +_080126D0: .4byte gUnknown_020239F8 +_080126D4: .4byte 0x00000902 +_080126D8: .4byte gUnknown_02024C1C +_080126DC: .4byte gUnknown_081D9B29 +_080126E0: + ldr r3, _08012738 @ =0x02000000 + ldr r5, _0801273C @ =gUnknown_02024A60 + ldrb r0, [r5] + ldr r4, _08012740 @ =0x00016064 + adds r1, r0, r4 + adds r1, r3 + ldr r2, _08012744 @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r7, _08012748 @ =gBattleMons + ldrb r2, [r5] + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + adds r1, r7, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, _0801274C @ =0x0400e000 + ands r0, r1 + cmp r0, 0 + bne _08012722 + ldr r0, _08012750 @ =gUnknown_02024C98 + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x80 + lsls r0, 3 + ands r1, r0 + cmp r1, 0 + beq _08012758 +_08012722: + lsls r0, r2, 1 + adds r0, r2 + ldr r2, _08012754 @ =0x0001606c + adds r1, r3, r2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0x6 + b _0801286C + .align 2, 0 +_08012738: .4byte 0x02000000 +_0801273C: .4byte gUnknown_02024A60 +_08012740: .4byte 0x00016064 +_08012744: .4byte gUnknown_02024A6A +_08012748: .4byte gBattleMons +_0801274C: .4byte 0x0400e000 +_08012750: .4byte gUnknown_02024C98 +_08012754: .4byte 0x0001606c +_08012758: + str r1, [sp] + movs r0, 0xC + adds r1, r2, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080127E0 + ldrb r1, [r5] + str r4, [sp] + movs r0, 0xC + movs r2, 0x47 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080127A8 + ldrb r0, [r5] + muls r0, r6 + adds r1, r0, r7 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080127A8 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x2 + beq _080127A8 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + bne _080127E0 +_080127A8: + ldr r5, _08012808 @ =gUnknown_02024A60 + ldrb r1, [r5] + movs r0, 0 + str r0, [sp] + movs r0, 0xF + movs r2, 0x2A + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08012818 + ldr r2, _0801280C @ =gBattleMons + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x8 + beq _080127E0 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x8 + bne _08012818 +_080127E0: + subs r1, r4, 0x1 + lsls r1, 4 + movs r0, 0x4 + orrs r1, r0 + lsls r1, 24 + lsrs r1, 24 + ldr r0, _08012810 @ =byte_2024C06 + ldrb r3, [r0] + ldr r0, _08012808 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + ldr r2, _08012814 @ =0x0201606c + adds r0, r2 + str r0, [sp] + movs r0, 0 + movs r2, 0x6 + bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + b _0801289E + .align 2, 0 +_08012808: .4byte gUnknown_02024A60 +_0801280C: .4byte gBattleMons +_08012810: .4byte byte_2024C06 +_08012814: .4byte 0x0201606c +_08012818: + ldr r0, _08012830 @ =gUnknown_02024A60 + ldrb r1, [r0] + mov r8, r0 + cmp r1, 0x2 + bne _08012840 + ldr r0, _08012834 @ =gUnknown_02024C18 + ldrb r0, [r0] + cmp r0, 0x2 + bne _08012840 + ldr r3, _08012838 @ =0x02000000 + ldr r4, _0801283C @ =0x00016068 + b _08012854 + .align 2, 0 +_08012830: .4byte gUnknown_02024A60 +_08012834: .4byte gUnknown_02024C18 +_08012838: .4byte 0x02000000 +_0801283C: .4byte 0x00016068 +_08012840: + mov r2, r8 + ldrb r0, [r2] + cmp r0, 0x3 + bne _08012884 + ldr r0, _08012874 @ =gUnknown_02024C18 + ldrb r0, [r0, 0x1] + cmp r0, 0x2 + bne _08012884 + ldr r3, _08012878 @ =0x02000000 + ldr r4, _0801287C @ =0x00016069 +_08012854: + adds r0, r3, r4 + ldrb r2, [r0] + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + ldr r1, _08012880 @ =0x0001606c + adds r3, r1 + adds r0, r3 + str r0, [sp] + movs r0, 0 + movs r1, 0 +_0801286C: + movs r3, 0 + bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + b _0801289E + .align 2, 0 +_08012874: .4byte gUnknown_02024C18 +_08012878: .4byte 0x02000000 +_0801287C: .4byte 0x00016069 +_08012880: .4byte 0x0001606c +_08012884: + ldr r0, _080128A8 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + ldr r1, _080128AC @ =0x0201606c + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r2, 0x6 + movs r3, 0 + bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f +_0801289E: + ldr r0, _080128A8 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + b _08012968 + .align 2, 0 +_080128A8: .4byte gUnknown_02024A60 +_080128AC: .4byte 0x0201606c +_080128B0: + bl PlayerPartyAndPokemonStorageFull + lsls r0, 24 + cmp r0, 0 + beq _08012968 + ldr r1, _080128EC @ =gUnknown_02024C1C + ldr r2, _080128F0 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _080128F4 @ =gUnknown_081D8E4A + str r1, [r0] + ldr r0, _080128F8 @ =gUnknown_02024D1E + ldrb r1, [r2] + adds r1, r0 + movs r3, 0 + movs r0, 0x5 + strb r0, [r1] + ldr r1, _080128FC @ =0x02000000 + ldrb r0, [r2] + ldr r4, _08012900 @ =0x00016060 + adds r0, r4 + adds r0, r1 + strb r3, [r0] + ldrb r0, [r2] + ldr r2, _08012904 @ =0x00016094 + adds r0, r2 + adds r0, r1 + strb r3, [r0] + b _08012F90 + .align 2, 0 +_080128EC: .4byte gUnknown_02024C1C +_080128F0: .4byte gUnknown_02024A60 +_080128F4: .4byte gUnknown_081D8E4A +_080128F8: .4byte gUnknown_02024D1E +_080128FC: .4byte 0x02000000 +_08012900: .4byte 0x00016060 +_08012904: .4byte 0x00016094 +_08012908: + ldr r4, _08012924 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + ldr r0, _08012928 @ =0x0201606c + adds r1, r0 + movs r0, 0 + bl sub_800CBE0 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08012968 + .align 2, 0 +_08012924: .4byte gUnknown_02024A60 +_08012928: .4byte 0x0201606c +_0801292C: + ldr r4, _08012964 @ =gUnknown_02024D1E + mov r3, r8 + ldrb r1, [r3] + adds r1, r4 + movs r5, 0 + movs r0, 0x6 + strb r0, [r1] + ldrb r0, [r3] + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + adds r0, r4 + strb r5, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x32_32_32_32 + mov r4, r8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08012F90 + .align 2, 0 +_08012964: .4byte gUnknown_02024D1E +_08012968: + ldr r0, _08012994 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0xA + ands r0, r1 + cmp r0, 0x8 + bne _080129A8 + ldr r0, _08012998 @ =gUnknown_02024260 + ldr r4, _0801299C @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x3 + bne _080129A8 + ldr r0, _080129A0 @ =gUnknown_081D8E37 + bl b_call_bc_move_exec + ldr r1, _080129A4 @ =gUnknown_02024D1E + ldrb r0, [r4] + adds r0, r1 + b _08012BFE + .align 2, 0 +_08012994: .4byte gUnknown_020239F8 +_08012998: .4byte gUnknown_02024260 +_0801299C: .4byte gUnknown_02024A60 +_080129A0: .4byte gUnknown_081D8E37 +_080129A4: .4byte gUnknown_02024D1E +_080129A8: + bl sub_8012028 + lsls r0, 24 + cmp r0, 0 + beq _08012A14 + ldr r0, _080129F4 @ =gUnknown_02024260 + ldr r3, _080129F8 @ =gUnknown_02024A60 + ldrb r2, [r3] + lsls r1, r2, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x3 + bne _08012A14 + ldr r1, _080129FC @ =gUnknown_02024C1C + lsls r0, r2, 2 + adds r0, r1 + ldr r1, _08012A00 @ =gUnknown_081D8E44 +_080129CC: + str r1, [r0] + ldr r0, _08012A04 @ =gUnknown_02024D1E + ldrb r1, [r3] + adds r1, r0 + movs r2, 0 + movs r0, 0x5 + strb r0, [r1] + ldr r1, _08012A08 @ =0x02000000 + ldrb r0, [r3] + ldr r4, _08012A0C @ =0x00016060 + adds r0, r4 + adds r0, r1 + strb r2, [r0] + ldrb r0, [r3] + ldr r3, _08012A10 @ =0x00016094 + adds r0, r3 + adds r0, r1 + strb r2, [r0] + b _08012F90 + .align 2, 0 +_080129F4: .4byte gUnknown_02024260 +_080129F8: .4byte gUnknown_02024A60 +_080129FC: .4byte gUnknown_02024C1C +_08012A00: .4byte gUnknown_081D8E44 +_08012A04: .4byte gUnknown_02024D1E +_08012A08: .4byte 0x02000000 +_08012A0C: .4byte 0x00016060 +_08012A10: .4byte 0x00016094 +_08012A14: + ldr r2, _08012A20 @ =gUnknown_02024D1E + ldr r0, _08012A24 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, r2 + b _08012E3E + .align 2, 0 +_08012A20: .4byte gUnknown_02024D1E +_08012A24: .4byte gUnknown_02024A60 +_08012A28: + ldr r4, _08012A6C @ =gUnknown_02024A64 + ldr r1, _08012A70 @ =gBitTable + ldr r3, _08012A74 @ =gUnknown_02024A60 + ldrb r5, [r3] + lsls r0, r5, 2 + adds r0, r1 + ldr r2, [r0] + lsls r0, r2, 4 + movs r1, 0xF0 + lsls r1, 24 + orrs r0, r1 + orrs r0, r2 + lsls r1, r2, 8 + orrs r0, r1 + lsls r2, 12 + orrs r0, r2 + ldr r1, [r4] + ands r1, r0 + mov r8, r3 + cmp r1, 0 + beq _08012A54 + b _08012F66 +_08012A54: + ldr r1, _08012A78 @ =gUnknown_02024C18 + adds r0, r5, r1 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x9 + bls _08012A62 + b _08012F66 +_08012A62: + lsls r0, 2 + ldr r1, _08012A7C @ =_08012A80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08012A6C: .4byte gUnknown_02024A64 +_08012A70: .4byte gBitTable +_08012A74: .4byte gUnknown_02024A60 +_08012A78: .4byte gUnknown_02024C18 +_08012A7C: .4byte _08012A80 + .align 2, 0 +_08012A80: + .4byte _08012AA8 + .4byte _08012BB0 + .4byte _08012BE8 + .4byte _08012CE0 + .4byte _08012D04 + .4byte _08012D18 + .4byte _08012D2C + .4byte _08012D5C + .4byte _08012D70 + .4byte _08012D94 +_08012AA8: + ldr r0, _08012AC8 @ =gUnknown_02024260 + mov r1, r8 + ldrb r4, [r1] + lsls r1, r4, 9 + adds r2, r0, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r6, r0, 0 + cmp r1, 0x9 + bgt _08012ACC + cmp r1, 0x3 + blt _08012ACC + adds r0, r4, r3 + strb r1, [r0] + b _08012F90 + .align 2, 0 +_08012AC8: .4byte gUnknown_02024260 +_08012ACC: + adds r3, r6, 0 + mov r5, r8 + ldrb r4, [r5] + lsls r1, r4, 9 + adds r7, r3, 0x2 + adds r0, r1, r7 + ldrb r2, [r0] + adds r3, 0x3 + mov r9, r3 + add r1, r9 + ldrb r0, [r1] + lsls r0, 8 + orrs r2, r0 + ldr r0, _08012AF4 @ =0x0000ffff + cmp r2, r0 + bne _08012AFC + ldr r0, _08012AF8 @ =gUnknown_02024D1E + adds r0, r4, r0 + b _08012BFE + .align 2, 0 +_08012AF4: .4byte 0x0000ffff +_08012AF8: .4byte gUnknown_02024D1E +_08012AFC: + bl sub_8015894 + lsls r0, 24 + cmp r0, 0 + beq _08012B48 + ldr r0, _08012B38 @ =gUnknown_02024D1E + ldrb r1, [r5] + adds r1, r0 + movs r2, 0 + movs r0, 0x5 + strb r0, [r1] + ldr r3, _08012B3C @ =0x02000000 + ldrb r0, [r5] + ldr r4, _08012B40 @ =0x00016060 + adds r0, r4 + adds r0, r3 + strb r2, [r0] + ldrb r0, [r5] + lsls r0, 9 + adds r1, r6, 0x1 + adds r0, r1 + strb r2, [r0] + ldrb r0, [r5] + ldr r1, _08012B44 @ =0x00016094 + adds r0, r1 + adds r0, r3 + movs r1, 0x1 + strb r1, [r0] + b _08012F90 + .align 2, 0 +_08012B38: .4byte gUnknown_02024D1E +_08012B3C: .4byte 0x02000000 +_08012B40: .4byte 0x00016060 +_08012B44: .4byte 0x00016094 +_08012B48: + ldr r6, _08012B98 @ =0x02000000 + mov r2, r8 + ldrb r0, [r2] + ldr r2, _08012B9C @ =0x0001608c + adds r1, r0, r2 + adds r1, r6 + lsls r0, 9 + adds r0, r7 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08012BA0 @ =gUnknown_02024C60 + mov r4, r8 + ldrb r3, [r4] + lsls r5, r3, 1 + adds r5, r0 + ldr r4, _08012BA4 @ =gBattleMons + adds r2, r3, r2 + adds r2, r6 + ldrb r0, [r2] + lsls r0, 1 + movs r1, 0x58 + muls r1, r3 + adds r0, r1 + adds r4, 0xC + adds r0, r4 + ldrh r0, [r0] + strh r0, [r5] + mov r1, r8 + ldrb r0, [r1] + ldr r2, _08012BA8 @ =0x00016010 + adds r1, r0, r2 + adds r1, r6 + lsls r0, 9 + add r0, r9 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08012BAC @ =gUnknown_02024D1E + mov r3, r8 + ldrb r1, [r3] + b _08012E3C + .align 2, 0 +_08012B98: .4byte 0x02000000 +_08012B9C: .4byte 0x0001608c +_08012BA0: .4byte gUnknown_02024C60 +_08012BA4: .4byte gBattleMons +_08012BA8: .4byte 0x00016010 +_08012BAC: .4byte gUnknown_02024D1E +_08012BB0: + ldr r2, _08012BD8 @ =gUnknown_02024260 + ldr r5, _08012BDC @ =gUnknown_02024A60 + ldrb r4, [r5] + lsls r1, r4, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + cmp r3, 0 + bne _08012BCE + b _08012F60 +_08012BCE: + ldr r0, _08012BE0 @ =gUnknown_02024C04 + strh r3, [r0] + ldr r0, _08012BE4 @ =gUnknown_02024D1E + ldrb r1, [r5] + b _08012E3C + .align 2, 0 +_08012BD8: .4byte gUnknown_02024260 +_08012BDC: .4byte gUnknown_02024A60 +_08012BE0: .4byte gUnknown_02024C04 +_08012BE4: .4byte gUnknown_02024D1E +_08012BE8: + ldr r4, _08012C04 @ =gUnknown_02024260 + ldr r7, _08012C08 @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 9 + adds r1, r4, 0x1 + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0x6 + bne _08012C10 + ldr r0, _08012C0C @ =gUnknown_02024D1E + adds r0, r2, r0 +_08012BFE: + movs r1, 0 + strb r1, [r0] + b _08012F66 + .align 2, 0 +_08012C04: .4byte gUnknown_02024260 +_08012C08: .4byte gUnknown_02024A60 +_08012C0C: .4byte gUnknown_02024D1E +_08012C10: + ldr r0, _08012CC4 @ =0x02000000 + mov r12, r0 + ldr r3, _08012CC8 @ =0x00016068 + adds r0, r2, r3 + add r0, r12 + strb r1, [r0] + ldr r0, _08012CCC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08012CBE + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + ldr r5, _08012CD0 @ =0x0001606c + adds r1, r5 + add r1, r12 + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + lsls r2, r0, 1 + adds r2, r0 + adds r2, r5 + add r2, r12 + lsls r0, 9 + adds r6, r4, 0x2 + adds r0, r6 + ldrb r1, [r0] + movs r3, 0xF0 + adds r0, r3, 0 + ands r0, r1 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + ldr r2, _08012CD4 @ =0x0001606d + adds r1, r2 + add r1, r12 + lsls r0, 9 + adds r4, 0x3 + mov r8, r4 + add r0, r8 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r4, 0x2 + eors r0, r4 + lsls r1, r0, 1 + adds r1, r0 + adds r1, r5 + add r1, r12 + ldrb r2, [r1] + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + eors r0, r4 + lsls r1, r0, 1 + adds r1, r0 + adds r1, r5 + add r1, r12 + ldrb r0, [r7] + lsls r0, 9 + adds r0, r6 + ldrb r0, [r0] + ands r3, r0 + lsrs r3, 4 + ldrb r0, [r1] + orrs r3, r0 + strb r3, [r1] + ldrb r0, [r7] + eors r4, r0 + lsls r1, r4, 1 + adds r1, r4 + ldr r3, _08012CD8 @ =0x0001606e + adds r1, r3 + add r1, r12 + ldrb r0, [r7] + lsls r0, 9 + add r0, r8 + ldrb r0, [r0] + strb r0, [r1] +_08012CBE: + ldr r0, _08012CDC @ =gUnknown_02024D1E + ldrb r1, [r7] + b _08012E3C + .align 2, 0 +_08012CC4: .4byte 0x02000000 +_08012CC8: .4byte 0x00016068 +_08012CCC: .4byte gUnknown_020239F8 +_08012CD0: .4byte 0x0001606c +_08012CD4: .4byte 0x0001606d +_08012CD8: .4byte 0x0001606e +_08012CDC: .4byte gUnknown_02024D1E +_08012CE0: + ldr r2, _08012CF8 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 8 + orrs r0, r1 + str r0, [r2] + ldr r2, _08012CFC @ =gUnknown_02024D1E + ldr r0, _08012D00 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, r2 + b _08012E3E + .align 2, 0 +_08012CF8: .4byte gUnknown_02024C6C +_08012CFC: .4byte gUnknown_02024D1E +_08012D00: .4byte gUnknown_02024A60 +_08012D04: + ldr r2, _08012D10 @ =gUnknown_02024D1E + ldr r0, _08012D14 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, r2 + b _08012E3E + .align 2, 0 +_08012D10: .4byte gUnknown_02024D1E +_08012D14: .4byte gUnknown_02024A60 +_08012D18: + ldr r2, _08012D24 @ =gUnknown_02024D1E + ldr r0, _08012D28 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, r2 + b _08012E3E + .align 2, 0 +_08012D24: .4byte gUnknown_02024D1E +_08012D28: .4byte gUnknown_02024A60 +_08012D2C: + ldr r2, _08012D50 @ =gUnknown_02024260 + ldr r0, _08012D54 @ =gUnknown_02024A60 + ldrb r4, [r0] + lsls r1, r4, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + cmp r3, 0 + bne _08012D4A + b _08012F60 +_08012D4A: + ldr r1, _08012D58 @ =gUnknown_02024D1E + adds r1, r4, r1 + b _08012E3E + .align 2, 0 +_08012D50: .4byte gUnknown_02024260 +_08012D54: .4byte gUnknown_02024A60 +_08012D58: .4byte gUnknown_02024D1E +_08012D5C: + ldr r2, _08012D68 @ =gUnknown_02024D1E + ldr r0, _08012D6C @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, r2 + b _08012E3E + .align 2, 0 +_08012D68: .4byte gUnknown_02024D1E +_08012D6C: .4byte gUnknown_02024A60 +_08012D70: + ldr r2, _08012D88 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 8 + orrs r0, r1 + str r0, [r2] + ldr r2, _08012D8C @ =gUnknown_02024D1E + ldr r0, _08012D90 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, r2 + b _08012E3E + .align 2, 0 +_08012D88: .4byte gUnknown_02024C6C +_08012D8C: .4byte gUnknown_02024D1E +_08012D90: .4byte gUnknown_02024A60 +_08012D94: + ldr r2, _08012DA0 @ =gUnknown_02024D1E + ldr r0, _08012DA4 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, r2 + b _08012E3E + .align 2, 0 +_08012DA0: .4byte gUnknown_02024D1E +_08012DA4: .4byte gUnknown_02024A60 +_08012DA8: + ldr r3, _08012E10 @ =gUnknown_02024A64 + ldr r4, _08012E14 @ =gBitTable + ldr r0, _08012E18 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r2, [r0] + lsls r1, r2, 4 + movs r0, 0xF0 + lsls r0, 24 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, 8 + orrs r1, r0 + lsls r2, 12 + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, 0 + beq _08012DD2 + b _08012F66 +_08012DD2: + ldr r0, _08012E1C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x41 + ands r0, r1 + cmp r0, 0x1 + bne _08012E06 + movs r1, 0x2 + movs r0, 0x2 + ands r0, r5 + cmp r0, 0 + bne _08012E06 + adds r0, r5, 0 + eors r0, r1 + bl battle_get_side_with_given_state + ldr r1, _08012E20 @ =0x02000000 + ldr r2, _08012E24 @ =0x000160a6 + adds r1, r2 + ldrb r1, [r1] + lsls r0, 24 + lsrs r0, 22 + adds r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08012E28 +_08012E06: + movs r0, 0 + movs r1, 0 + bl sub_800D1D8 + b _08012E30 + .align 2, 0 +_08012E10: .4byte gUnknown_02024A64 +_08012E14: .4byte gBitTable +_08012E18: .4byte gUnknown_02024A60 +_08012E1C: .4byte gUnknown_020239F8 +_08012E20: .4byte 0x02000000 +_08012E24: .4byte 0x000160a6 +_08012E28: + movs r0, 0 + movs r1, 0x1 + bl sub_800D1D8 +_08012E30: + ldr r4, _08012E48 @ =gUnknown_02024A60 +_08012E32: + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, _08012E4C @ =gUnknown_02024D1E + ldrb r1, [r4] +_08012E3C: + adds r1, r0 +_08012E3E: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08012F66 + .align 2, 0 +_08012E48: .4byte gUnknown_02024A60 +_08012E4C: .4byte gUnknown_02024D1E +_08012E50: + ldr r3, _08012E84 @ =gUnknown_02024A64 + ldr r1, _08012E88 @ =gBitTable + ldr r0, _08012E8C @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r2, [r0] + lsls r1, r2, 4 + movs r0, 0xF0 + lsls r0, 24 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, 8 + orrs r1, r0 + lsls r2, 12 + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, 0 + bne _08012F66 + ldr r1, _08012E90 @ =gUnknown_02024D1E + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _08012F66 + .align 2, 0 +_08012E84: .4byte gUnknown_02024A64 +_08012E88: .4byte gBitTable +_08012E8C: .4byte gUnknown_02024A60 +_08012E90: .4byte gUnknown_02024D1E +_08012E94: + ldr r2, _08012EB8 @ =0x02000000 + ldr r5, _08012EBC @ =gUnknown_02024A60 + ldrb r1, [r5] + ldr r3, _08012EC0 @ =0x00016060 + adds r0, r1, r3 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _08012ECC + ldr r0, _08012EC4 @ =gUnknown_02024D1E + adds r0, r1, r0 + ldr r4, _08012EC8 @ =0x00016094 + adds r1, r4 + adds r1, r2 + ldrb r1, [r1] + strb r1, [r0] + b _08012F66 + .align 2, 0 +_08012EB8: .4byte 0x02000000 +_08012EBC: .4byte gUnknown_02024A60 +_08012EC0: .4byte 0x00016060 +_08012EC4: .4byte gUnknown_02024D1E +_08012EC8: .4byte 0x00016094 +_08012ECC: + ldr r0, _08012F20 @ =gUnknown_02024C07 + strb r1, [r0] + ldr r7, _08012F24 @ =gUnknown_02024C10 + ldr r6, _08012F28 @ =gUnknown_02024C1C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r6 + ldr r4, [r0] + str r4, [r7] + ldr r3, _08012F2C @ =gUnknown_02024A64 + ldr r1, _08012F30 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r2, [r0] + lsls r1, r2, 4 + movs r0, 0xF0 + lsls r0, 24 + orrs r1, r0 + orrs r1, r2 + lsls r0, r2, 8 + orrs r1, r0 + lsls r2, 12 + orrs r1, r2 + ldr r0, [r3] + ands r0, r1 + cmp r0, 0 + bne _08012F12 + ldr r0, _08012F34 @ =gUnknown_081FA73C + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 +_08012F12: + ldrb r0, [r5] + lsls r0, 2 + adds r0, r6 + ldr r1, [r7] + str r1, [r0] + b _08012F66 + .align 2, 0 +_08012F20: .4byte gUnknown_02024C07 +_08012F24: .4byte gUnknown_02024C10 +_08012F28: .4byte gUnknown_02024C1C +_08012F2C: .4byte gUnknown_02024A64 +_08012F30: .4byte gBitTable +_08012F34: .4byte gUnknown_081FA73C +_08012F38: + ldr r3, _08012FA0 @ =gUnknown_02024A64 + ldr r1, _08012FA4 @ =gBitTable + ldr r0, _08012FA8 @ =gUnknown_02024A60 + ldrb r4, [r0] + lsls r0, r4, 2 + adds r0, r1 + ldr r2, [r0] + lsls r0, r2, 4 + movs r1, 0xF0 + lsls r1, 24 + orrs r0, r1 + orrs r0, r2 + lsls r1, r2, 8 + orrs r0, r1 + lsls r2, 12 + orrs r0, r2 + ldr r3, [r3] + ands r3, r0 + cmp r3, 0 + bne _08012F66 +_08012F60: + ldr r0, _08012FAC @ =gUnknown_02024D1E + adds r0, r4, r0 + strb r3, [r0] +_08012F66: + ldr r0, _08012FA8 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r0, _08012FB0 @ =gUnknown_02024A68 + lsls r1, 24 + lsrs r1, 24 +_08012F74: + adds r2, r0, 0 + ldrb r0, [r2] + cmp r1, r0 + bcs _08012F80 + bl _0801234C +_08012F80: + ldr r0, _08012FAC @ =gUnknown_02024D1E + ldrb r0, [r0, 0x4] + ldrb r2, [r2] + cmp r0, r2 + bne _08012F90 + ldr r1, _08012FB4 @ =gUnknown_030042D4 + ldr r0, _08012FB8 @ =sub_80133C8 + str r0, [r1] +_08012F90: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08012FA0: .4byte gUnknown_02024A64 +_08012FA4: .4byte gBitTable +_08012FA8: .4byte gUnknown_02024A60 +_08012FAC: .4byte gUnknown_02024D1E +_08012FB0: .4byte gUnknown_02024A68 +_08012FB4: .4byte gUnknown_030042D4 +_08012FB8: .4byte sub_80133C8 + thumb_func_end sub_8012324 + + thumb_func_start sub_8012FBC +sub_8012FBC: @ 8012FBC + push {r4,r5,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + ldr r2, _08012FE8 @ =gUnknown_02024A76 + adds r4, r0, r2 + ldrb r5, [r4] + adds r2, r1, r2 + ldrb r3, [r2] + strb r3, [r4] + strb r5, [r2] + ldr r2, _08012FEC @ =gUnknown_02024A7A + adds r0, r2 + ldrb r5, [r0] + adds r1, r2 + ldrb r2, [r1] + strb r2, [r0] + strb r5, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08012FE8: .4byte gUnknown_02024A76 +_08012FEC: .4byte gUnknown_02024A7A + thumb_func_end sub_8012FBC + + thumb_func_start b_first_side +b_first_side: @ 8012FF0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + movs r0, 0 + str r0, [sp, 0x8] + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _080130B8 + ldr r1, [sp, 0x8] + str r1, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _080130B8 + ldr r1, _08013070 @ =gBattleMons + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r0, r1 + adds r0, 0x20 + ldrb r3, [r0] + cmp r3, 0x21 + bne _0801305C + ldr r0, _08013074 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801306C +_0801305C: + cmp r3, 0x22 + bne _08013078 + ldr r0, _08013074 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08013078 +_0801306C: + movs r3, 0x2 + b _0801307A + .align 2, 0 +_08013070: .4byte gBattleMons +_08013074: .4byte word_2024DB8 +_08013078: + movs r3, 0x1 +_0801307A: + movs r0, 0x58 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + ldr r2, _080130B0 @ =gBattleMons + adds r0, r2 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0x21 + bne _0801309A + ldr r0, _080130B4 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _080130AA +_0801309A: + cmp r2, 0x22 + bne _080130BA + ldr r0, _080130B4 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _080130BA +_080130AA: + movs r7, 0x2 + b _080130BC + .align 2, 0 +_080130B0: .4byte gBattleMons +_080130B4: .4byte word_2024DB8 +_080130B8: + movs r3, 0x1 +_080130BA: + movs r7, 0x1 +_080130BC: + ldr r1, _08013100 @ =gBattleMons + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r4, r0, r1 + ldrh r0, [r4, 0x6] + muls r3, r0 + ldr r2, _08013104 @ =gStatStageRatios + movs r1, 0x1B + ldrsb r1, [r4, r1] + lsls r1, 1 + adds r0, r1, r2 + ldrb r0, [r0] + muls r0, r3 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + bl __divsi3 + mov r8, r0 + ldrh r0, [r4, 0x2E] + cmp r0, 0xAF + bne _0801310C + ldr r1, _08013108 @ =gEnigmaBerries + mov r3, r9 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r6, [r0, 0x7] + ldrb r5, [r0, 0x1A] + b _08013120 + .align 2, 0 +_08013100: .4byte gBattleMons +_08013104: .4byte gStatStageRatios +_08013108: .4byte gEnigmaBerries +_0801310C: + ldrh r0, [r4, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r0, [r4, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r5, r0, 24 +_08013120: + ldr r0, _080131DC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08013154 + ldr r0, _080131E0 @ =0x00000809 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08013154 + mov r0, r9 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08013154 + movs r0, 0x6E + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + movs r1, 0x64 + bl __udivsi3 + mov r8, r0 +_08013154: + cmp r6, 0x18 + bne _0801315E + mov r2, r8 + lsrs r2, 1 + mov r8, r2 +_0801315E: + ldr r1, _080131E4 @ =gBattleMons + movs r0, 0x58 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801317C + mov r0, r8 + lsrs r0, 2 + mov r8, r0 +_0801317C: + cmp r6, 0x1A + bne _08013198 + ldr r0, _080131E8 @ =gUnknown_02024D1C + ldrh r4, [r0] + lsls r0, r5, 16 + subs r0, r5 + movs r1, 0x64 + bl __divsi3 + cmp r4, r0 + bge _08013198 + movs r1, 0x1 + negs r1, r1 + mov r8, r1 +_08013198: + ldr r1, _080131E4 @ =gBattleMons + movs r0, 0x58 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + adds r4, r0, r1 + ldrh r0, [r4, 0x6] + adds r3, r0, 0 + muls r3, r7 + ldr r2, _080131EC @ =gStatStageRatios + movs r1, 0x1B + ldrsb r1, [r4, r1] + lsls r1, 1 + adds r0, r1, r2 + ldrb r0, [r0] + muls r0, r3 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + bl __divsi3 + adds r7, r0, 0 + ldrh r0, [r4, 0x2E] + cmp r0, 0xAF + bne _080131F4 + ldr r1, _080131F0 @ =gEnigmaBerries + mov r3, r10 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r6, [r0, 0x7] + ldrb r5, [r0, 0x1A] + b _08013208 + .align 2, 0 +_080131DC: .4byte gUnknown_020239F8 +_080131E0: .4byte 0x00000809 +_080131E4: .4byte gBattleMons +_080131E8: .4byte gUnknown_02024D1C +_080131EC: .4byte gStatStageRatios +_080131F0: .4byte gEnigmaBerries +_080131F4: + ldrh r0, [r4, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r6, r0, 24 + ldrh r0, [r4, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r5, r0, 24 +_08013208: + ldr r0, _08013280 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08013238 + ldr r0, _08013284 @ =0x00000809 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _08013238 + mov r0, r10 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08013238 + movs r0, 0x6E + muls r0, r7 + movs r1, 0x64 + bl __udivsi3 + adds r7, r0, 0 +_08013238: + cmp r6, 0x18 + bne _0801323E + lsrs r7, 1 +_0801323E: + ldr r2, _08013288 @ =gBattleMons + movs r0, 0x58 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + adds r1, r2, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801325A + lsrs r7, 2 +_0801325A: + cmp r6, 0x1A + bne _08013274 + ldr r0, _0801328C @ =gUnknown_02024D1C + ldrh r4, [r0] + lsls r0, r5, 16 + subs r0, r5 + movs r1, 0x64 + bl __divsi3 + cmp r4, r0 + bge _08013274 + movs r7, 0x1 + negs r7, r7 +_08013274: + ldr r2, [sp, 0x4] + cmp r2, 0 + beq _08013290 + movs r3, 0 + b _08013334 + .align 2, 0 +_08013280: .4byte gUnknown_020239F8 +_08013284: .4byte 0x00000809 +_08013288: .4byte gBattleMons +_0801328C: .4byte gUnknown_02024D1C +_08013290: + ldr r0, _080132B0 @ =gUnknown_02024C18 + mov r3, r9 + adds r1, r3, r0 + ldrb r1, [r1] + adds r2, r0, 0 + cmp r1, 0 + bne _080132E4 + ldr r0, _080132B4 @ =gUnknown_02024D28 + lsls r1, r3, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + bge _080132B8 + movs r3, 0xA5 + b _080132E6 + .align 2, 0 +_080132B0: .4byte gUnknown_02024C18 +_080132B4: .4byte gUnknown_02024D28 +_080132B8: + ldr r1, _080132D8 @ =0x02000000 + ldr r0, _080132DC @ =0x0001608c + add r0, r9 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + movs r1, 0x58 + mov r3, r9 + muls r3, r1 + adds r1, r3, 0 + adds r0, r1 + ldr r1, _080132E0 @ =gBattleMons + adds r1, 0xC + adds r0, r1 + ldrh r3, [r0] + b _080132E6 + .align 2, 0 +_080132D8: .4byte 0x02000000 +_080132DC: .4byte 0x0001608c +_080132E0: .4byte gBattleMons +_080132E4: + movs r3, 0 +_080132E6: + mov r1, r10 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _08013334 + ldr r0, _08013304 @ =gUnknown_02024D28 + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + bge _08013308 + movs r2, 0xA5 + b _08013336 + .align 2, 0 +_08013304: .4byte gUnknown_02024D28 +_08013308: + ldr r1, _08013328 @ =0x02000000 + ldr r0, _0801332C @ =0x0001608c + add r0, r10 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + movs r1, 0x58 + mov r2, r10 + muls r2, r1 + adds r1, r2, 0 + adds r0, r1 + ldr r1, _08013330 @ =gBattleMons + adds r1, 0xC + adds r0, r1 + ldrh r2, [r0] + b _08013336 + .align 2, 0 +_08013328: .4byte 0x02000000 +_0801332C: .4byte 0x0001608c +_08013330: .4byte gBattleMons +_08013334: + movs r2, 0 +_08013336: + ldr r4, _08013380 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r4 + movs r1, 0x7 + ldrsb r1, [r0, r1] + lsls r3, r2, 1 + cmp r1, 0 + bne _0801335A + adds r0, r3, r2 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x7] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08013398 +_0801335A: + adds r0, r3, r2 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x7] + lsls r0, 24 + asrs r0, 24 + cmp r1, r0 + bne _0801338E + cmp r8, r7 + bne _08013384 + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08013384 + movs r3, 0x2 + b _080133B4 + .align 2, 0 +_08013380: .4byte gBattleMoves +_08013384: + cmp r8, r7 + bcs _080133B6 + movs r0, 0x1 + str r0, [sp, 0x8] + b _080133B6 +_0801338E: + cmp r1, r0 + bge _080133B6 + movs r1, 0x1 + str r1, [sp, 0x8] + b _080133B6 +_08013398: + cmp r8, r7 + bne _080133AE + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080133AE + movs r2, 0x2 + str r2, [sp, 0x8] + b _080133B6 +_080133AE: + cmp r8, r7 + bcs _080133B6 + movs r3, 0x1 +_080133B4: + str r3, [sp, 0x8] +_080133B6: + ldr r0, [sp, 0x8] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end b_first_side + + thumb_func_start sub_80133C8 +sub_80133C8: @ 80133C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r3, 0 + ldr r0, _0801341C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08013434 + ldr r0, _08013420 @ =gUnknown_02024A60 + strb r3, [r0] + ldr r4, _08013424 @ =gUnknown_02024A68 + mov r8, r0 + ldrb r0, [r4] + cmp r3, r0 + bcc _080133F0 + b _08013622 +_080133F0: + ldr r7, _08013428 @ =gUnknown_02024A76 + ldr r6, _0801342C @ =gUnknown_02024C18 + mov r2, r8 + ldr r5, _08013430 @ =gUnknown_02024A7A +_080133F8: + adds r1, r3, r7 + ldrb r0, [r2] + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r1, r3, r5 + ldrb r0, [r2] + strb r0, [r1] + adds r3, 0x1 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r4] + cmp r0, r1 + bcc _080133F8 + b _08013622 + .align 2, 0 +_0801341C: .4byte gUnknown_020239F8 +_08013420: .4byte gUnknown_02024A60 +_08013424: .4byte gUnknown_02024A68 +_08013428: .4byte gUnknown_02024A76 +_0801342C: .4byte gUnknown_02024C18 +_08013430: .4byte gUnknown_02024A7A +_08013434: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08013484 + ldr r0, _08013478 @ =gUnknown_02024A60 + strb r3, [r0] + ldr r1, _0801347C @ =gUnknown_02024A68 + mov r8, r0 + adds r2, r1, 0 + ldrb r2, [r2] + cmp r3, r2 + bcs _08013494 + ldr r0, _08013480 @ =gUnknown_02024C18 + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0x3 + beq _08013492 +_08013456: + mov r7, r8 + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0801347C @ =gUnknown_02024A68 + ldrb r1, [r1] + cmp r0, r1 + bcs _08013494 + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08013456 + b _08013492 + .align 2, 0 +_08013478: .4byte gUnknown_02024A60 +_0801347C: .4byte gUnknown_02024A68 +_08013480: .4byte gUnknown_02024C18 +_08013484: + ldr r0, _080134FC @ =gUnknown_02024C18 + ldrb r0, [r0] + ldr r2, _08013500 @ =gUnknown_02024A60 + mov r8, r2 + cmp r0, 0x3 + bne _08013494 + strb r3, [r2] +_08013492: + movs r3, 0x5 +_08013494: + cmp r3, 0x5 + bne _08013520 + ldr r6, _08013504 @ =gUnknown_02024A76 + ldr r1, _080134FC @ =gUnknown_02024C18 + mov r3, r8 + ldrb r0, [r3] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r6] + ldr r2, _08013508 @ =gUnknown_02024A7A + ldrb r0, [r3] + strb r0, [r2] + movs r3, 0x1 + movs r5, 0 + adds r4, r1, 0 + ldr r7, _0801350C @ =gUnknown_030042D4 + mov r9, r7 + ldr r0, _08013510 @ =bc_80154A0 + mov r12, r0 + ldr r1, _08013514 @ =0x02000000 + mov r10, r1 + ldr r7, _08013518 @ =gUnknown_02024A68 + ldrb r7, [r7] + cmp r5, r7 + bge _080134EC + adds r7, r6, 0 + adds r6, r4, 0 + adds r4, r2, 0 + ldr r2, _08013518 @ =gUnknown_02024A68 +_080134CE: + mov r0, r8 + ldrb r0, [r0] + cmp r5, r0 + beq _080134E4 + adds r1, r3, r7 + adds r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, r4 + strb r5, [r0] + adds r3, 0x1 +_080134E4: + adds r5, 0x1 + ldrb r1, [r2] + cmp r5, r1 + blt _080134CE +_080134EC: + mov r2, r12 + mov r3, r9 + str r2, [r3] + ldr r1, _0801351C @ =0x0001601d + add r1, r10 + movs r0, 0 + strb r0, [r1] + b _08013632 + .align 2, 0 +_080134FC: .4byte gUnknown_02024C18 +_08013500: .4byte gUnknown_02024A60 +_08013504: .4byte gUnknown_02024A76 +_08013508: .4byte gUnknown_02024A7A +_0801350C: .4byte gUnknown_030042D4 +_08013510: .4byte bc_80154A0 +_08013514: .4byte 0x02000000 +_08013518: .4byte gUnknown_02024A68 +_0801351C: .4byte 0x0001601d +_08013520: + movs r0, 0 + mov r7, r8 + strb r0, [r7] + ldr r1, _080135B0 @ =gUnknown_02024A68 + ldrb r0, [r1] + cmp r0, 0 + beq _08013566 + ldr r6, _080135B4 @ =gUnknown_02024C18 + mov r2, r8 + ldr r5, _080135B8 @ =gUnknown_02024A76 + ldr r4, _080135BC @ =gUnknown_02024A7A +_08013536: + ldrb r0, [r2] + adds r0, r6 + ldrb r1, [r0] + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08013554 + adds r0, r3, r5 + strb r1, [r0] + adds r1, r3, r4 + mov r7, r8 + ldrb r0, [r7] + strb r0, [r1] + adds r3, 0x1 +_08013554: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080135B0 @ =gUnknown_02024A68 + ldrb r1, [r1] + cmp r0, r1 + bcc _08013536 +_08013566: + movs r0, 0 + mov r2, r8 + strb r0, [r2] + ldr r7, _080135B0 @ =gUnknown_02024A68 + ldrb r0, [r7] + cmp r0, 0 + beq _080135AA + ldr r6, _080135B4 @ =gUnknown_02024C18 + ldr r5, _080135B8 @ =gUnknown_02024A76 + ldr r4, _080135BC @ =gUnknown_02024A7A +_0801357A: + ldrb r0, [r2] + adds r0, r6 + ldrb r1, [r0] + subs r0, r1, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _08013598 + adds r0, r3, r5 + strb r1, [r0] + adds r1, r3, r4 + mov r7, r8 + ldrb r0, [r7] + strb r0, [r1] + adds r3, 0x1 +_08013598: + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + ldr r1, _080135B0 @ =gUnknown_02024A68 + ldrb r1, [r1] + cmp r0, r1 + bcc _0801357A +_080135AA: + movs r5, 0 + b _08013618 + .align 2, 0 +_080135B0: .4byte gUnknown_02024A68 +_080135B4: .4byte gUnknown_02024C18 +_080135B8: .4byte gUnknown_02024A76 +_080135BC: .4byte gUnknown_02024A7A +_080135C0: + adds r4, r5, 0x1 + adds r7, r4, 0 + ldrb r1, [r1] + cmp r7, r1 + bge _08013616 + ldr r6, _08013640 @ =gUnknown_02024A76 + lsls r2, r5, 24 + mov r8, r2 +_080135D0: + ldr r0, _08013644 @ =gUnknown_02024A7A + adds r1, r5, r0 + ldrb r3, [r1] + adds r0, r4, r0 + ldrb r1, [r0] + adds r0, r5, r6 + ldrb r2, [r0] + cmp r2, 0x1 + beq _0801360C + adds r0, r4, r6 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0801360C + cmp r2, 0x2 + beq _0801360C + cmp r0, 0x2 + beq _0801360C + adds r0, r3, 0 + movs r2, 0 + bl b_first_side + lsls r0, 24 + cmp r0, 0 + beq _0801360C + lsls r1, r4, 24 + lsrs r1, 24 + mov r3, r8 + lsrs r0, r3, 24 + bl sub_8012FBC +_0801360C: + adds r4, 0x1 + ldr r0, _08013648 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _080135D0 +_08013616: + adds r5, r7, 0 +_08013618: + ldr r1, _08013648 @ =gUnknown_02024A68 + ldrb r0, [r1] + subs r0, 0x1 + cmp r5, r0 + blt _080135C0 +_08013622: + ldr r1, _0801364C @ =gUnknown_030042D4 + ldr r0, _08013650 @ =bc_80154A0 + str r0, [r1] + ldr r0, _08013654 @ =0x02000000 + ldr r7, _08013658 @ =0x0001601d + adds r0, r7 + movs r1, 0 + strb r1, [r0] +_08013632: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08013640: .4byte gUnknown_02024A76 +_08013644: .4byte gUnknown_02024A7A +_08013648: .4byte gUnknown_02024A68 +_0801364C: .4byte gUnknown_030042D4 +_08013650: .4byte bc_80154A0 +_08013654: .4byte 0x02000000 +_08013658: .4byte 0x0001601d + thumb_func_end sub_80133C8 + + thumb_func_start sub_801365C +sub_801365C: @ 801365C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _080136B4 @ =gUnknown_02024A60 + movs r0, 0 + strb r0, [r1] + ldr r0, _080136B8 @ =gUnknown_02024A68 + ldrb r2, [r0] + adds r5, r1, 0 + cmp r2, 0 + beq _08013754 + ldr r7, _080136BC @ =gUnknown_02024D28 + adds r6, r5, 0 + ldr r0, _080136C0 @ =gUnknown_02024AD0 + mov r12, r0 + ldr r1, _080136C4 @ =gUnknown_02024CA8 + mov r8, r1 + mov r10, r8 +_0801368A: + mov r2, r9 + cmp r2, 0 + beq _080136C8 + ldrb r1, [r6] + lsls r1, 4 + adds r1, r7 + ldrb r2, [r1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r1, [r6] + lsls r1, 4 + adds r1, r7 + ldrb r2, [r1] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _08013724 + .align 2, 0 +_080136B4: .4byte gUnknown_02024A60 +_080136B8: .4byte gUnknown_02024A68 +_080136BC: .4byte gUnknown_02024D28 +_080136C0: .4byte gUnknown_02024AD0 +_080136C4: .4byte gUnknown_02024CA8 +_080136C8: + ldrb r0, [r6] + lsls r0, 4 + adds r2, r0, r7 + movs r1, 0 + mov r4, r10 + movs r3, 0 +_080136D4: + adds r0, r2, r1 + strb r3, [r0] + adds r1, 0x1 + cmp r1, 0xF + bls _080136D4 + ldrb r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r4 + ldrb r0, [r1, 0x16] + cmp r0, 0 + beq _080136F2 + subs r0, 0x1 + strb r0, [r1, 0x16] +_080136F2: + ldrb r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r4 + ldrb r0, [r1, 0x19] + cmp r0, 0 + beq _08013724 + subs r0, 0x1 + strb r0, [r1, 0x19] + ldrb r2, [r5] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x19] + cmp r0, 0 + bne _08013724 + movs r0, 0x58 + muls r2, r0 + add r2, r12 + ldr r0, [r2] + ldr r1, _0801376C @ =0xffbfffff + ands r0, r1 + str r0, [r2] +_08013724: + ldrb r2, [r5] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0xA] + cmp r0, 0 + bne _08013742 + movs r0, 0x58 + muls r2, r0 + add r2, r12 + ldr r0, [r2] + ldr r1, _08013770 @ =0xfeffffff + ands r0, r1 + str r0, [r2] +_08013742: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08013774 @ =gUnknown_02024A68 + ldrb r1, [r1] + cmp r0, r1 + bcc _0801368A +_08013754: + movs r0, 0 + ldr r2, _08013778 @ =gUnknown_02024C80 + strb r0, [r2, 0x8] + strb r0, [r2, 0x14] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801376C: .4byte 0xffbfffff +_08013770: .4byte 0xfeffffff +_08013774: .4byte gUnknown_02024A68 +_08013778: .4byte gUnknown_02024C80 + thumb_func_end sub_801365C + + thumb_func_start sub_801377C +sub_801377C: @ 801377C + push {r4-r6,lr} + ldr r2, _080137C0 @ =gUnknown_02024A60 + movs r0, 0 + strb r0, [r2] + ldr r0, _080137C4 @ =gUnknown_02024A68 + ldrb r1, [r0] + adds r6, r0, 0 + cmp r1, 0 + beq _080137BA + adds r3, r2, 0 + movs r4, 0 + ldr r5, _080137C8 @ =gUnknown_02024D68 +_08013794: + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, r0, r5 + movs r1, 0 +_080137A0: + adds r0, r2, r1 + strb r4, [r0] + adds r1, 0x1 + cmp r1, 0x13 + bls _080137A0 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r6] + cmp r0, r1 + bcc _08013794 +_080137BA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080137C0: .4byte gUnknown_02024A60 +_080137C4: .4byte gUnknown_02024A68 +_080137C8: .4byte gUnknown_02024D68 + thumb_func_end sub_801377C + + thumb_func_start bc_80154A0 +bc_80154A0: @ 80137CC + push {r4-r7,lr} + ldr r0, _08013850 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _08013884 + ldr r0, _08013854 @ =0x02000000 + ldr r1, _08013858 @ =0x0001601d + adds r2, r0, r1 + ldr r0, _0801385C @ =gUnknown_02024A68 + ldrb r1, [r2] + adds r7, r0, 0 + ldrb r0, [r7] + cmp r1, r0 + bcs _08013884 + ldr r6, _08013860 @ =gUnknown_02024A60 + ldr r5, _08013864 @ =gUnknown_02024C07 + adds r4, r2, 0 + movs r1, 0x84 + lsls r1, 1 + mov r12, r1 +_080137FA: + ldrb r0, [r4] + strb r0, [r5] + strb r0, [r6] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08013868 @ =gUnknown_02024C60 + ldrb r3, [r6] + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r12 + bne _0801387C + ldr r1, _0801386C @ =gBattleMons + movs r0, 0x58 + muls r0, r3 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801387C + ldr r2, _08013870 @ =gUnknown_02024CA8 + ldrb r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x18] + lsls r0, 31 + cmp r0, 0 + bne _0801387C + ldr r0, _08013874 @ =gUnknown_02024D28 + lsls r1, r3, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 29 + cmp r0, 0 + blt _0801387C + ldr r0, _08013878 @ =gUnknown_081D94DA + bl b_call_bc_move_exec + b _080138BE + .align 2, 0 +_08013850: .4byte gUnknown_02024C6C +_08013854: .4byte 0x02000000 +_08013858: .4byte 0x0001601d +_0801385C: .4byte gUnknown_02024A68 +_08013860: .4byte gUnknown_02024A60 +_08013864: .4byte gUnknown_02024C07 +_08013868: .4byte gUnknown_02024C60 +_0801386C: .4byte gBattleMons +_08013870: .4byte gUnknown_02024CA8 +_08013874: .4byte gUnknown_02024D28 +_08013878: .4byte gUnknown_081D94DA +_0801387C: + ldrb r0, [r4] + ldrb r2, [r7] + cmp r0, r2 + bcc _080137FA +_08013884: + bl b_clear_atk_up_if_hit_flag_unless_enraged + ldr r1, _080138C4 @ =gUnknown_02024A7E + movs r0, 0 + strb r0, [r1] + ldr r1, _080138C8 @ =gUnknown_02024A7F + ldr r0, _080138CC @ =gUnknown_02024A76 + movs r2, 0 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _080138D0 @ =gUnknown_02024DEC + movs r3, 0 + strh r2, [r0] + ldr r1, _080138D4 @ =0x02000000 + ldr r2, _080138D8 @ =0x0001601c + adds r0, r1, r2 + strb r3, [r0] + ldr r2, _080138DC @ =gUnknown_030042D4 + ldr r0, _080138E0 @ =sub_80138F0 + str r0, [r2] + ldr r0, _080138E4 @ =gUnknown_02024D1E + strb r3, [r0, 0x3] + strb r3, [r0, 0x4] + ldr r2, _080138E8 @ =0x00016112 + adds r0, r1, r2 + strb r3, [r0] + ldr r0, _080138EC @ =0x00017130 + adds r1, r0 + strb r3, [r1] +_080138BE: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080138C4: .4byte gUnknown_02024A7E +_080138C8: .4byte gUnknown_02024A7F +_080138CC: .4byte gUnknown_02024A76 +_080138D0: .4byte gUnknown_02024DEC +_080138D4: .4byte 0x02000000 +_080138D8: .4byte 0x0001601c +_080138DC: .4byte gUnknown_030042D4 +_080138E0: .4byte sub_80138F0 +_080138E4: .4byte gUnknown_02024D1E +_080138E8: .4byte 0x00016112 +_080138EC: .4byte 0x00017130 + thumb_func_end bc_80154A0 + + thumb_func_start sub_80138F0 +sub_80138F0: @ 80138F0 + push {r4-r6,lr} + ldr r6, _08013944 @ =gUnknown_02024D26 + ldrb r0, [r6] + ldr r2, _08013948 @ =gUnknown_02024A7F + cmp r0, 0 + beq _08013900 + movs r0, 0xC + strb r0, [r2] +_08013900: + ldr r1, _0801394C @ =0x02000000 + ldr r4, _08013950 @ =gUnknown_02024A7E + ldrb r0, [r4] + ldr r3, _08013954 @ =0x00016057 + adds r5, r1, r3 + strb r0, [r5] + ldr r1, _08013958 @ =gUnknown_081FA640 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0801395C @ =gUnknown_02024A68 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bcc _08013970 + ldr r2, _08013960 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _08013964 @ =0xffefffff + ands r0, r1 + str r0, [r2] + ldr r3, _08013968 @ =gUnknown_030042D4 + ldr r2, _0801396C @ =gUnknown_081FA678 + ldrb r1, [r6] + movs r0, 0x7F + ands r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + str r0, [r3] + b _08013984 + .align 2, 0 +_08013944: .4byte gUnknown_02024D26 +_08013948: .4byte gUnknown_02024A7F +_0801394C: .4byte 0x02000000 +_08013950: .4byte gUnknown_02024A7E +_08013954: .4byte 0x00016057 +_08013958: .4byte gUnknown_081FA640 +_0801395C: .4byte gUnknown_02024A68 +_08013960: .4byte gUnknown_02024C6C +_08013964: .4byte 0xffefffff +_08013968: .4byte gUnknown_030042D4 +_0801396C: .4byte gUnknown_081FA678 +_08013970: + ldrb r0, [r5] + cmp r0, r1 + beq _08013984 + ldr r2, _0801398C @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _08013990 @ =0xfffffdff + ands r0, r1 + ldr r1, _08013994 @ =0xfff7ffff + ands r0, r1 + str r0, [r2] +_08013984: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801398C: .4byte gUnknown_02024C6C +_08013990: .4byte 0xfffffdff +_08013994: .4byte 0xfff7ffff + thumb_func_end sub_80138F0 + + thumb_func_start sub_8013998 +sub_8013998: @ 8013998 + push {r4,lr} + ldr r1, _080139D0 @ =gUnknown_02024A7F + movs r0, 0 + strb r0, [r1] + ldr r0, _080139D4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080139EC + ldr r1, _080139D8 @ =gUnknown_030041C0 + ldr r4, _080139DC @ =gUnknown_02024D26 + ldrb r0, [r4] + strb r0, [r1] + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _080139E0 @ =gUnknown_02024C07 + strb r0, [r1] + ldr r1, _080139E4 @ =gUnknown_02024C10 + ldr r0, _080139E8 @ =gUnknown_081D8E02 + str r0, [r1] + ldrb r1, [r4] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4] + b _08013B48 + .align 2, 0 +_080139D0: .4byte gUnknown_02024A7F +_080139D4: .4byte gUnknown_020239F8 +_080139D8: .4byte gUnknown_030041C0 +_080139DC: .4byte gUnknown_02024D26 +_080139E0: .4byte gUnknown_02024C07 +_080139E4: .4byte gUnknown_02024C10 +_080139E8: .4byte gUnknown_081D8E02 +_080139EC: + movs r0, 0x90 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _08013A04 + ldr r1, _080139FC @ =gUnknown_02024C10 + ldr r0, _08013A00 @ =gUnknown_081D8E0D + b _08013B46 + .align 2, 0 +_080139FC: .4byte gUnknown_02024C10 +_08013A00: .4byte gUnknown_081D8E0D +_08013A04: + movs r0, 0xA + ands r0, r1 + cmp r0, 0x8 + beq _08013A0E + b _08013B42 +_08013A0E: + bl sub_80325B8 + ldr r1, _08013A3C @ =gUnknown_02024C10 + ldr r0, _08013A40 @ =gUnknown_081D8DBE + str r0, [r1] + ldr r2, _08013A44 @ =gTrainers + ldr r0, _08013A48 @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x1] + subs r0, 0x2 + cmp r0, 0x31 + bls _08013A30 + b _08013B38 +_08013A30: + lsls r0, 2 + ldr r1, _08013A4C @ =_08013A50 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08013A3C: .4byte gUnknown_02024C10 +_08013A40: .4byte gUnknown_081D8DBE +_08013A44: .4byte gTrainers +_08013A48: .4byte gTrainerBattleOpponent +_08013A4C: .4byte _08013A50 + .align 2, 0 +_08013A50: + .4byte _08013B24 + .4byte _08013B24 + .4byte _08013B24 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B18 + .4byte _08013B2E + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B18 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B38 + .4byte _08013B24 + .4byte _08013B24 + .4byte _08013B24 +_08013B18: + ldr r0, _08013B20 @ =0x00000163 + bl PlayBGM + b _08013B48 + .align 2, 0 +_08013B20: .4byte 0x00000163 +_08013B24: + movs r0, 0xD4 + lsls r0, 1 + bl PlayBGM + b _08013B48 +_08013B2E: + movs r0, 0xB1 + lsls r0, 1 + bl PlayBGM + b _08013B48 +_08013B38: + movs r0, 0xCE + lsls r0, 1 + bl PlayBGM + b _08013B48 +_08013B42: + ldr r1, _08013B54 @ =gUnknown_02024C10 + ldr r0, _08013B58 @ =gUnknown_081D8DCE +_08013B46: + str r0, [r1] +_08013B48: + ldr r1, _08013B5C @ =gUnknown_030042D4 + ldr r0, _08013B60 @ =sub_8013C9C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08013B54: .4byte gUnknown_02024C10 +_08013B58: .4byte gUnknown_081D8DCE +_08013B5C: .4byte gUnknown_030042D4 +_08013B60: .4byte sub_8013C9C + thumb_func_end sub_8013998 + + thumb_func_start sub_8013B64 +sub_8013B64: @ 8013B64 + push {r4,lr} + ldr r1, _08013B9C @ =gUnknown_02024A7F + movs r0, 0 + strb r0, [r1] + ldr r0, _08013BA0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08013BB8 + ldr r1, _08013BA4 @ =gUnknown_030041C0 + ldr r4, _08013BA8 @ =gUnknown_02024D26 + ldrb r0, [r4] + strb r0, [r1] + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _08013BAC @ =gUnknown_02024C07 + strb r0, [r1] + ldr r1, _08013BB0 @ =gUnknown_02024C10 + ldr r0, _08013BB4 @ =gUnknown_081D8E02 + str r0, [r1] + ldrb r1, [r4] + movs r0, 0x7F + ands r0, r1 + strb r0, [r4] + b _08013BBE + .align 2, 0 +_08013B9C: .4byte gUnknown_02024A7F +_08013BA0: .4byte gUnknown_020239F8 +_08013BA4: .4byte gUnknown_030041C0 +_08013BA8: .4byte gUnknown_02024D26 +_08013BAC: .4byte gUnknown_02024C07 +_08013BB0: .4byte gUnknown_02024C10 +_08013BB4: .4byte gUnknown_081D8E02 +_08013BB8: + ldr r1, _08013BCC @ =gUnknown_02024C10 + ldr r0, _08013BD0 @ =gUnknown_081D8DD1 + str r0, [r1] +_08013BBE: + ldr r1, _08013BD4 @ =gUnknown_030042D4 + ldr r0, _08013BD8 @ =sub_8013C9C + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08013BCC: .4byte gUnknown_02024C10 +_08013BD0: .4byte gUnknown_081D8DD1 +_08013BD4: .4byte gUnknown_030042D4 +_08013BD8: .4byte sub_8013C9C + thumb_func_end sub_8013B64 + + thumb_func_start sub_8013BDC +sub_8013BDC: @ 8013BDC + push {lr} + ldr r1, _08013C04 @ =gUnknown_02024A7F + movs r0, 0 + strb r0, [r1] + ldr r1, _08013C08 @ =gUnknown_02024D28 + ldr r0, _08013C0C @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 27 + lsrs r0, 30 + cmp r0, 0x1 + beq _08013C18 + cmp r0, 0x2 + beq _08013C28 + ldr r1, _08013C10 @ =gUnknown_02024C10 + ldr r0, _08013C14 @ =gUnknown_081D8E29 + b _08013C2C + .align 2, 0 +_08013C04: .4byte gUnknown_02024A7F +_08013C08: .4byte gUnknown_02024D28 +_08013C0C: .4byte gUnknown_02024C07 +_08013C10: .4byte gUnknown_02024C10 +_08013C14: .4byte gUnknown_081D8E29 +_08013C18: + ldr r1, _08013C20 @ =gUnknown_02024C10 + ldr r0, _08013C24 @ =gUnknown_081D8E14 + b _08013C2C + .align 2, 0 +_08013C20: .4byte gUnknown_02024C10 +_08013C24: .4byte gUnknown_081D8E14 +_08013C28: + ldr r1, _08013C38 @ =gUnknown_02024C10 + ldr r0, _08013C3C @ =gUnknown_081D8E22 +_08013C2C: + str r0, [r1] + ldr r1, _08013C40 @ =gUnknown_030042D4 + ldr r0, _08013C44 @ =sub_8013C9C + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08013C38: .4byte gUnknown_02024C10 +_08013C3C: .4byte gUnknown_081D8E22 +_08013C40: .4byte gUnknown_030042D4 +_08013C44: .4byte sub_8013C9C + thumb_func_end sub_8013BDC + + thumb_func_start sub_8013C48 +sub_8013C48: @ 8013C48 + ldr r1, _08013C7C @ =gUnknown_02024A7F + movs r0, 0 + strb r0, [r1] + ldr r1, _08013C80 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + ldr r2, _08013C84 @ =gUnknown_02024C07 + ldrb r0, [r2] + strb r0, [r1, 0x2] + ldr r3, _08013C88 @ =gUnknown_02024A6A + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08013C8C @ =gUnknown_02024C10 + ldr r0, _08013C90 @ =gUnknown_081D8E30 + str r0, [r1] + ldr r1, _08013C94 @ =gUnknown_030042D4 + ldr r0, _08013C98 @ =sub_8013C9C + str r0, [r1] + bx lr + .align 2, 0 +_08013C7C: .4byte gUnknown_02024A7F +_08013C80: .4byte gUnknown_030041C0 +_08013C84: .4byte gUnknown_02024C07 +_08013C88: .4byte gUnknown_02024A6A +_08013C8C: .4byte gUnknown_02024C10 +_08013C90: .4byte gUnknown_081D8E30 +_08013C94: .4byte gUnknown_030042D4 +_08013C98: .4byte sub_8013C9C + thumb_func_end sub_8013C48 + + thumb_func_start sub_8013C9C +sub_8013C9C: @ 8013C9C + push {r4-r7,lr} + ldr r0, _08013D00 @ =gUnknown_02024A7F + ldrb r0, [r0] + subs r0, 0xB + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08013D7C + ldr r0, _08013D04 @ =gUnknown_020239F8 + ldrh r0, [r0] + ldr r1, _08013D08 @ =0x00000b92 + ands r1, r0 + cmp r1, 0 + bne _08013D4C + ldr r2, _08013D0C @ =gUnknown_02024A60 + strb r1, [r2] + ldr r0, _08013D10 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r1, r0 + bcs _08013D48 + adds r4, r2, 0 + ldr r6, _08013D14 @ =gBattleMons + movs r5, 0x58 + adds r7, r6, 0 + adds r7, 0x30 +_08013CCE: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08013D36 + ldr r2, _08013D18 @ =gUnknown_030042E0 + ldrh r0, [r2, 0x6] + cmp r0, 0 + bne _08013D1C + ldrb r0, [r4] + muls r0, r5 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r2, 0x6] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r1, r7 + adds r0, r2, 0 + adds r0, 0x8 + bl StringCopy + b _08013D36 + .align 2, 0 +_08013D00: .4byte gUnknown_02024A7F +_08013D04: .4byte gUnknown_020239F8 +_08013D08: .4byte 0x00000b92 +_08013D0C: .4byte gUnknown_02024A60 +_08013D10: .4byte gUnknown_02024A68 +_08013D14: .4byte gBattleMons +_08013D18: .4byte gUnknown_030042E0 +_08013D1C: + ldrb r0, [r4] + muls r0, r5 + adds r0, r6 + ldrh r0, [r0] + strh r0, [r2, 0x26] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r1, r7 + adds r0, r2, 0 + adds r0, 0x14 + bl StringCopy +_08013D36: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08013D68 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08013CCE +_08013D48: + bl sub_80BDEC8 +_08013D4C: + movs r0, 0x3 + bl BeginFastPaletteFade + movs r0, 0x5 + bl FadeOutMapMusic + ldr r1, _08013D6C @ =gUnknown_030042D4 + ldr r0, _08013D70 @ =sub_8013DA8 + str r0, [r1] + ldr r1, _08013D74 @ =gUnknown_03005E94 + ldr r0, _08013D78 @ =sub_800F808 + str r0, [r1] + b _08013D96 + .align 2, 0 +_08013D68: .4byte gUnknown_02024A68 +_08013D6C: .4byte gUnknown_030042D4 +_08013D70: .4byte sub_8013DA8 +_08013D74: .4byte gUnknown_03005E94 +_08013D78: .4byte sub_800F808 +_08013D7C: + ldr r0, _08013D9C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08013D96 + ldr r1, _08013DA0 @ =gUnknown_081FA73C + ldr r0, _08013DA4 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08013D96: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08013D9C: .4byte gUnknown_02024A64 +_08013DA0: .4byte gUnknown_081FA73C +_08013DA4: .4byte gUnknown_02024C10 + thumb_func_end sub_8013C9C + + thumb_func_start sub_8013DA8 +sub_8013DA8: @ 8013DA8 + push {lr} + ldr r0, _08013DD0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08013DEA + bl ResetSpriteData + ldr r0, _08013DD4 @ =gUnknown_03004324 + ldrb r0, [r0] + cmp r0, 0 + beq _08013DCA + ldr r0, _08013DD8 @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08013DE4 +_08013DCA: + ldr r1, _08013DDC @ =gUnknown_030042D4 + ldr r0, _08013DE0 @ =c4_overworld + b _08013DE8 + .align 2, 0 +_08013DD0: .4byte gPaletteFade +_08013DD4: .4byte gUnknown_03004324 +_08013DD8: .4byte gUnknown_02024D26 +_08013DDC: .4byte gUnknown_030042D4 +_08013DE0: .4byte c4_overworld +_08013DE4: + ldr r1, _08013DF0 @ =gUnknown_030042D4 + ldr r0, _08013DF4 @ =bc_evolution_cutscene +_08013DE8: + str r0, [r1] +_08013DEA: + pop {r0} + bx r0 + .align 2, 0 +_08013DF0: .4byte gUnknown_030042D4 +_08013DF4: .4byte bc_evolution_cutscene + thumb_func_end sub_8013DA8 + + thumb_func_start bc_evolution_cutscene +bc_evolution_cutscene: @ 8013DF8 + push {r4,r5,lr} + ldr r0, _08013E4C @ =gUnknown_03004324 + ldrb r1, [r0] + adds r3, r0, 0 + cmp r1, 0 + beq _08013E6E +_08013E04: + movs r5, 0 +_08013E06: + ldrb r2, [r3] + ldr r0, _08013E50 @ =gBitTable + lsls r1, r5, 2 + adds r1, r0 + ldr r1, [r1] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08013E60 + bics r2, r1 + strb r2, [r3] + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08013E54 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetEvolutionTargetSpecies + lsls r0, 16 + lsrs r2, r0, 16 + cmp r2, 0 + beq _08013E60 + ldr r0, _08013E58 @ =gUnknown_030042D4 + ldr r1, _08013E5C @ =sub_8013E88 + str r1, [r0] + lsls r3, r5, 24 + lsrs r3, 24 + adds r0, r4, 0 + adds r1, r2, 0 + movs r2, 0x81 + bl EvolutionScene + b _08013E74 + .align 2, 0 +_08013E4C: .4byte gUnknown_03004324 +_08013E50: .4byte gBitTable +_08013E54: .4byte gPlayerParty +_08013E58: .4byte gUnknown_030042D4 +_08013E5C: .4byte sub_8013E88 +_08013E60: + adds r5, 0x1 + ldr r3, _08013E7C @ =gUnknown_03004324 + cmp r5, 0x5 + ble _08013E06 + ldrb r0, [r3] + cmp r0, 0 + bne _08013E04 +_08013E6E: + ldr r1, _08013E80 @ =gUnknown_030042D4 + ldr r0, _08013E84 @ =c4_overworld + str r0, [r1] +_08013E74: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08013E7C: .4byte gUnknown_03004324 +_08013E80: .4byte gUnknown_030042D4 +_08013E84: .4byte c4_overworld + thumb_func_end bc_evolution_cutscene + + thumb_func_start sub_8013E88 +sub_8013E88: @ 8013E88 + push {lr} + ldr r0, _08013EA0 @ =gMain + ldr r1, [r0, 0x4] + ldr r0, _08013EA4 @ =sub_800F808 + cmp r1, r0 + bne _08013E9A + ldr r1, _08013EA8 @ =gUnknown_030042D4 + ldr r0, _08013EAC @ =bc_evolution_cutscene + str r0, [r1] +_08013E9A: + pop {r0} + bx r0 + .align 2, 0 +_08013EA0: .4byte gMain +_08013EA4: .4byte sub_800F808 +_08013EA8: .4byte gUnknown_030042D4 +_08013EAC: .4byte bc_evolution_cutscene + thumb_func_end sub_8013E88 + + thumb_func_start c4_overworld +c4_overworld: @ 8013EB0 + push {r4-r6,lr} + ldr r5, _08013F30 @ =gUnknown_020239F8 + ldrh r1, [r5] + movs r6, 0x2 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _08013ECE + ldr r4, _08013F34 @ =gPlayerParty + adds r0, r4, 0 + bl RandomlyGivePartyPokerus + adds r0, r4, 0 + bl PartySpreadPokerus +_08013ECE: + ldrh r4, [r5] + adds r0, r6, 0 + ands r0, r4 + cmp r0, 0 + beq _08013EE0 + ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _08013F2A +_08013EE0: + ldr r1, _08013F3C @ =gScriptResult + ldr r5, _08013F40 @ =gUnknown_02024D26 + ldrb r0, [r5] + strh r0, [r1] + ldr r3, _08013F44 @ =gMain + ldr r0, _08013F48 @ =0x0000043d + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _08013F4C @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r3] + movs r0, 0x80 + lsls r0, 3 + ands r0, r4 + cmp r0, 0 + beq _08013F1C + ldr r0, _08013F50 @ =gEnemyParty + bl sub_8134504 + ldrb r0, [r5] + cmp r0, 0x1 + beq _08013F18 + cmp r0, 0x7 + bne _08013F1C +_08013F18: + bl sub_813452C +_08013F1C: + movs r0, 0x5A + bl m4aSongNumStop + ldr r0, _08013F44 @ =gMain + ldr r0, [r0, 0x8] + bl SetMainCallback2 +_08013F2A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08013F30: .4byte gUnknown_020239F8 +_08013F34: .4byte gPlayerParty +_08013F38: .4byte gReceivedRemoteLinkPlayers +_08013F3C: .4byte gScriptResult +_08013F40: .4byte gUnknown_02024D26 +_08013F44: .4byte gMain +_08013F48: .4byte 0x0000043d +_08013F4C: .4byte gUnknown_030042D0 +_08013F50: .4byte gEnemyParty + thumb_func_end c4_overworld + + thumb_func_start sub_8013F54 +sub_8013F54: @ 8013F54 + push {lr} + ldr r0, _08013F84 @ =gUnknown_02024A7F + ldrb r0, [r0] + subs r0, 0xB + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _08013F90 + ldr r2, _08013F88 @ =0x02017140 + adds r1, r2, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0 + beq _08013F74 + subs r0, 0x1 + strb r0, [r1] +_08013F74: + ldr r0, _08013F8C @ =gUnknown_030042D4 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + str r1, [r0] + b _08013FAA + .align 2, 0 +_08013F84: .4byte gUnknown_02024A7F +_08013F88: .4byte 0x02017140 +_08013F8C: .4byte gUnknown_030042D4 +_08013F90: + ldr r0, _08013FB0 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08013FAA + ldr r1, _08013FB4 @ =gUnknown_081FA73C + ldr r0, _08013FB8 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08013FAA: + pop {r0} + bx r0 + .align 2, 0 +_08013FB0: .4byte gUnknown_02024A64 +_08013FB4: .4byte gUnknown_081FA73C +_08013FB8: .4byte gUnknown_02024C10 + thumb_func_end sub_8013F54 + + thumb_func_start sub_8013FBC +sub_8013FBC: @ 8013FBC + push {lr} + ldr r0, _08013FDC @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08013FD8 + ldr r1, _08013FE0 @ =gUnknown_081FA73C + ldr r0, _08013FE4 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_08013FD8: + pop {r0} + bx r0 + .align 2, 0 +_08013FDC: .4byte gUnknown_02024A64 +_08013FE0: .4byte gUnknown_081FA73C +_08013FE4: .4byte gUnknown_02024C10 + thumb_func_end sub_8013FBC + + thumb_func_start sub_8013FE8 +sub_8013FE8: @ 8013FE8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + movs r0, 0x4 + str r0, [sp] + ldr r7, _08014028 @ =gUnknown_02024C07 + ldr r1, _0801402C @ =gUnknown_02024A7A + ldr r0, _08014030 @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r7] + ldr r1, _08014034 @ =0x02000000 + mov r10, r1 + ldr r0, _08014038 @ =0x000160a6 + add r0, r10 + ldrb r2, [r0] + ldr r1, _0801403C @ =gBitTable + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _08014044 + ldr r1, _08014040 @ =gUnknown_02024A7F + movs r0, 0xC + b _080146CC + .align 2, 0 +_08014028: .4byte gUnknown_02024C07 +_0801402C: .4byte gUnknown_02024A7A +_08014030: .4byte gUnknown_02024A7E +_08014034: .4byte 0x02000000 +_08014038: .4byte 0x000160a6 +_0801403C: .4byte gBitTable +_08014040: .4byte gUnknown_02024A7F +_08014044: + ldr r1, _080140B8 @ =gCritMultiplier + movs r0, 0x1 + strb r0, [r1] + ldr r1, _080140BC @ =0x0001601f + add r1, r10 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080140C0 @ =0x000160e7 + add r0, r10 + strb r2, [r0] + ldr r0, _080140C4 @ =gUnknown_02024C68 + strb r2, [r0] + ldr r0, _080140C8 @ =gUnknown_02024C0E + strb r2, [r0] + ldr r0, _080140CC @ =gUnknown_02024D1E + strb r2, [r0, 0x6] + ldr r3, _080140D0 @ =gUnknown_02024BE4 + ldrb r0, [r7] + ldr r2, _080140D4 @ =0x0001608c + adds r0, r2 + add r0, r10 + ldrb r0, [r0] + ldr r4, _080140D8 @ =gUnknown_02024BE5 + strb r0, [r4] + strb r0, [r3] + ldr r1, _080140DC @ =gUnknown_02024D28 + ldrb r2, [r7] + lsls r0, r2, 4 + adds r5, r0, r1 + ldrb r1, [r5] + lsls r0, r1, 29 + adds r4, r2, 0 + mov r8, r3 + cmp r0, 0 + bge _080140F0 + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r5] + ldr r2, _080140E0 @ =gUnknown_02024BE6 + ldr r1, _080140E4 @ =gUnknown_02024BE8 + movs r0, 0xA5 + strh r0, [r1] + strh r0, [r2] + ldr r2, _080140E8 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 4 + orrs r0, r1 + str r0, [r2] + movs r0, 0xA5 + movs r1, 0 + bl sub_801B5C0 + ldrb r1, [r7] + ldr r2, _080140EC @ =0x00016010 + adds r1, r2 + b _08014200 + .align 2, 0 +_080140B8: .4byte gCritMultiplier +_080140BC: .4byte 0x0001601f +_080140C0: .4byte 0x000160e7 +_080140C4: .4byte gUnknown_02024C68 +_080140C8: .4byte gUnknown_02024C0E +_080140CC: .4byte gUnknown_02024D1E +_080140D0: .4byte gUnknown_02024BE4 +_080140D4: .4byte 0x0001608c +_080140D8: .4byte gUnknown_02024BE5 +_080140DC: .4byte gUnknown_02024D28 +_080140E0: .4byte gUnknown_02024BE6 +_080140E4: .4byte gUnknown_02024BE8 +_080140E8: .4byte gUnknown_02024C6C +_080140EC: .4byte 0x00016010 +_080140F0: + ldr r1, _08014128 @ =gBattleMons + movs r0, 0x58 + adds r5, r4, 0 + muls r5, r0 + adds r0, r1, 0 + adds r0, 0x50 + adds r0, r5, r0 + ldr r2, [r0] + movs r0, 0x80 + lsls r0, 5 + ands r0, r2 + cmp r0, 0 + bne _08014114 + movs r6, 0x80 + lsls r6, 15 + ands r6, r2 + cmp r6, 0 + beq _08014138 +_08014114: + ldr r3, _0801412C @ =gUnknown_02024BE6 + ldr r2, _08014130 @ =gUnknown_02024BE8 + ldr r1, _08014134 @ =gUnknown_02024C54 + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2] + strh r0, [r3] + b _08014280 + .align 2, 0 +_08014128: .4byte gBattleMons +_0801412C: .4byte gUnknown_02024BE6 +_08014130: .4byte gUnknown_02024BE8 +_08014134: .4byte gUnknown_02024C54 +_08014138: + ldr r3, _08014188 @ =gUnknown_02024CA8 + mov r12, r3 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r2, r0, r3 + ldrh r4, [r2, 0x6] + adds r1, r4, 0 + cmp r1, 0 + beq _08014218 + ldrb r3, [r2, 0xC] + lsls r0, r3, 1 + adds r0, r5 + str r0, [sp, 0x8] + ldr r0, _0801418C @ =gBattleMons + adds r0, 0xC + mov r9, r0 + ldr r0, [sp, 0x8] + add r0, r9 + ldrh r0, [r0] + cmp r1, r0 + bne _080141A0 + ldr r1, _08014190 @ =gUnknown_02024BE6 + ldr r0, _08014194 @ =gUnknown_02024BE8 + strh r4, [r0] + strh r4, [r1] + ldrb r0, [r2, 0xC] + ldr r2, _08014198 @ =gUnknown_02024BE5 + strb r0, [r2] + mov r3, r8 + strb r0, [r3] + ldrh r0, [r1] + movs r1, 0 + bl sub_801B5C0 + ldrb r1, [r7] + ldr r4, _0801419C @ =0x00016010 + adds r1, r4 + b _08014200 + .align 2, 0 +_08014188: .4byte gUnknown_02024CA8 +_0801418C: .4byte gBattleMons +_08014190: .4byte gUnknown_02024BE6 +_08014194: .4byte gUnknown_02024BE8 +_08014198: .4byte gUnknown_02024BE5 +_0801419C: .4byte 0x00016010 +_080141A0: + cmp r1, 0 + beq _08014218 + cmp r1, r0 + beq _08014218 + ldr r0, _08014208 @ =gUnknown_02024BE5 + strb r3, [r0] + mov r1, r8 + strb r3, [r1] + ldr r3, _0801420C @ =gUnknown_02024BE6 + ldr r1, _08014210 @ =gUnknown_02024BE8 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r5 + add r0, r9 + ldrh r0, [r0] + strh r0, [r1] + strh r0, [r3] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + movs r2, 0 + strh r6, [r0, 0x6] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + strb r2, [r0, 0xC] + ldrb r0, [r7] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r12 + ldrb r2, [r1, 0xE] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xE] + ldrh r0, [r3] + movs r1, 0 + bl sub_801B5C0 + ldrb r1, [r7] + ldr r3, _08014214 @ =0x00016010 + adds r1, r3 +_08014200: + add r1, r10 + strb r0, [r1] + b _08014280 + .align 2, 0 +_08014208: .4byte gUnknown_02024BE5 +_0801420C: .4byte gUnknown_02024BE6 +_08014210: .4byte gUnknown_02024BE8 +_08014214: .4byte 0x00016010 +_08014218: + mov r4, r8 + ldrb r0, [r4] + lsls r0, 1 + ldr r4, _0801425C @ =gUnknown_02024C07 + ldrb r2, [r4] + movs r1, 0x58 + muls r1, r2 + adds r0, r1 + ldr r1, _08014260 @ =gBattleMons + adds r1, 0xC + adds r0, r1 + ldr r1, _08014264 @ =gUnknown_02024C60 + lsls r2, 1 + adds r2, r1 + ldrh r3, [r0] + ldrh r2, [r2] + cmp r3, r2 + beq _08014278 + ldr r1, _08014268 @ =gUnknown_02024BE6 + ldr r0, _0801426C @ =gUnknown_02024BE8 + strh r3, [r0] + strh r3, [r1] + ldrh r0, [r1] + movs r1, 0 + bl sub_801B5C0 + ldr r2, _08014270 @ =0x02000000 + ldrb r1, [r4] + ldr r3, _08014274 @ =0x00016010 + adds r1, r3 + adds r1, r2 + strb r0, [r1] + b _08014280 + .align 2, 0 +_0801425C: .4byte gUnknown_02024C07 +_08014260: .4byte gBattleMons +_08014264: .4byte gUnknown_02024C60 +_08014268: .4byte gUnknown_02024BE6 +_0801426C: .4byte gUnknown_02024BE8 +_08014270: .4byte 0x02000000 +_08014274: .4byte 0x00016010 +_08014278: + ldr r1, _08014298 @ =gUnknown_02024BE6 + ldr r0, _0801429C @ =gUnknown_02024BE8 + strh r3, [r0] + strh r3, [r1] +_08014280: + ldr r0, _080142A0 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080142A8 + ldr r0, _080142A4 @ =gUnknown_030042E0 + ldr r1, _08014298 @ =gUnknown_02024BE6 + ldrh r1, [r1] + strh r1, [r0, 0x22] + b _080142B0 + .align 2, 0 +_08014298: .4byte gUnknown_02024BE6 +_0801429C: .4byte gUnknown_02024BE8 +_080142A0: .4byte gUnknown_02024C07 +_080142A4: .4byte gUnknown_030042E0 +_080142A8: + ldr r0, _08014314 @ =gUnknown_030042E0 + ldr r1, _08014318 @ =gUnknown_02024BE6 + ldrh r1, [r1] + strh r1, [r0, 0x24] +_080142B0: + ldr r4, _0801431C @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08014320 @ =gUnknown_02024C80 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r5, r0, r1 + ldrb r0, [r5, 0x8] + adds r3, r4, 0 + cmp r0, 0 + beq _08014330 + ldr r2, _08014324 @ =gBattleMoves + ldr r0, _08014318 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x6] + cmp r0, 0 + bne _08014330 + ldrb r0, [r3] + bl battle_side_get_owner + adds r4, r0, 0 + ldrb r0, [r5, 0x9] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _08014330 + ldr r1, _08014328 @ =gBattleMons + ldrb r2, [r5, 0x9] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08014330 + ldr r0, _0801432C @ =gUnknown_02024C08 + strb r2, [r0] + b _080146AC + .align 2, 0 +_08014314: .4byte gUnknown_030042E0 +_08014318: .4byte gUnknown_02024BE6 +_0801431C: .4byte gUnknown_02024C07 +_08014320: .4byte gUnknown_02024C80 +_08014324: .4byte gBattleMoves +_08014328: .4byte gBattleMons +_0801432C: .4byte gUnknown_02024C08 +_08014330: + ldr r2, _08014454 @ =gUnknown_020239F8 + ldrh r1, [r2] + movs r0, 0x1 + ands r0, r1 + ldr r3, _08014458 @ =gUnknown_02024C07 + mov r9, r2 + cmp r0, 0 + bne _08014342 + b _0801461C +_08014342: + ldr r1, _0801445C @ =gUnknown_02024C80 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r7, [r0, 0x8] + cmp r7, 0 + beq _08014354 + b _08014570 +_08014354: + ldr r2, _08014460 @ =gBattleMoves + ldr r0, _08014464 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08014370 + ldrb r0, [r4, 0x6] + cmp r0, 0x10 + bne _08014370 + b _08014570 +_08014370: + ldr r3, _08014468 @ =gBattleMons + ldr r0, _0801446C @ =0x02000000 + mov r8, r0 + ldr r2, _08014458 @ =gUnknown_02024C07 + ldrb r5, [r2] + ldr r1, _08014470 @ =0x00016010 + adds r0, r5, r1 + add r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + adds r3, r2, 0 + cmp r0, 0x1F + bne _08014394 + b _08014570 +_08014394: + ldrb r0, [r4, 0x2] + cmp r0, 0xD + beq _0801439C + b _08014570 +_0801439C: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _08014474 @ =gUnknown_02024A60 + strb r7, [r1] + ldr r0, _08014478 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r7, r0 + bcs _08014416 + adds r4, r1, 0 + mov r5, r8 +_080143B6: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r6, r0 + beq _08014404 + ldr r0, _08014458 @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r2, _08014470 @ =0x00016010 + adds r0, r2 + adds r0, r5 + ldrb r0, [r0] + ldrb r3, [r4] + cmp r0, r3 + beq _08014404 + ldr r1, _08014468 @ =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1F + bne _08014404 + adds r0, r2, 0 + bl sub_801E3B4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp] + cmp r0, r1 + bcs _08014404 + ldrb r0, [r4] + bl sub_801E3B4 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] +_08014404: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08014478 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _080143B6 +_08014416: + ldr r2, [sp] + cmp r2, 0x4 + beq _0801441E + b _08014522 +_0801441E: + ldr r2, _08014460 @ =gBattleMoves + ldr r0, _0801447C @ =gUnknown_02024BE8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x6] + ldr r3, [sp] + ands r3, r0 + cmp r3, 0 + beq _080144A4 + ldr r0, _08014458 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08014484 + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08014480 + movs r0, 0x1 + b _08014496 + .align 2, 0 +_08014454: .4byte gUnknown_020239F8 +_08014458: .4byte gUnknown_02024C07 +_0801445C: .4byte gUnknown_02024C80 +_08014460: .4byte gBattleMoves +_08014464: .4byte gUnknown_02024BE6 +_08014468: .4byte gBattleMons +_0801446C: .4byte 0x02000000 +_08014470: .4byte 0x00016010 +_08014474: .4byte gUnknown_02024A60 +_08014478: .4byte gUnknown_02024A68 +_0801447C: .4byte gUnknown_02024BE8 +_08014480: + movs r0, 0x3 + b _08014496 +_08014484: + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08014494 + movs r0, 0 + b _08014496 +_08014494: + movs r0, 0x2 +_08014496: + bl battle_get_side_with_given_state + ldr r1, _080144A0 @ =gUnknown_02024C08 + strb r0, [r1] + b _080144B6 + .align 2, 0 +_080144A0: .4byte gUnknown_02024C08 +_080144A4: + ldr r2, _080144EC @ =gUnknown_02024C08 + ldr r1, _080144F0 @ =0x02000000 + ldr r0, _080144F4 @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r4, _080144F8 @ =0x00016010 + adds r0, r4 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] +_080144B6: + ldr r7, _080144FC @ =gUnknown_02024C0C + ldrb r0, [r7] + ldr r1, _08014500 @ =gBitTable + mov r8, r1 + ldr r5, _080144EC @ =gUnknown_02024C08 + ldrb r1, [r5] + lsls r1, 2 + add r1, r8 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _080144D0 + b _080146AC +_080144D0: + ldr r6, _080144F4 @ =gUnknown_02024C07 + ldrb r0, [r6] + bl battle_side_get_owner + adds r4, r0, 0 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _08014504 + ldrb r0, [r5] + b _0801469A + .align 2, 0 +_080144EC: .4byte gUnknown_02024C08 +_080144F0: .4byte 0x02000000 +_080144F4: .4byte gUnknown_02024C07 +_080144F8: .4byte 0x00016010 +_080144FC: .4byte gUnknown_02024C0C +_08014500: .4byte gBitTable +_08014504: + ldrb r0, [r6] + bl battle_get_per_side_status + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + strb r0, [r5] + ldrb r1, [r7] + ldrb r2, [r5] + lsls r0, r2, 2 + add r0, r8 + b _08014690 +_08014522: + ldr r4, _0801455C @ =gUnknown_02024A60 + ldr r0, _08014560 @ =gUnknown_02024A7A + ldr r2, [sp] + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r4] + ldrb r0, [r4] + ldr r2, _08014564 @ =gBattleMons + movs r1, 0x58 + muls r1, r0 + adds r1, r2 + adds r1, 0x20 + ldrb r1, [r1] + bl sub_81074C4 + ldr r2, _08014568 @ =gUnknown_02024D68 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] + ldr r1, _0801456C @ =gUnknown_02024C08 + ldrb r0, [r4] + strb r0, [r1] + b _080146AC + .align 2, 0 +_0801455C: .4byte gUnknown_02024A60 +_08014560: .4byte gUnknown_02024A7A +_08014564: .4byte gBattleMons +_08014568: .4byte gUnknown_02024D68 +_0801456C: .4byte gUnknown_02024C08 +_08014570: + mov r4, r9 + ldrh r1, [r4] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0801461C + ldr r2, _080145B4 @ =gBattleMoves + ldr r0, _080145B8 @ =gUnknown_02024BE8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801461C + ldrb r0, [r3] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080145C0 + bl Random + adds r1, r4, 0 + ands r1, r0 + cmp r1, 0 + beq _080145BC + movs r0, 0x1 + b _080145D2 + .align 2, 0 +_080145B4: .4byte gBattleMoves +_080145B8: .4byte gUnknown_02024BE8 +_080145BC: + movs r0, 0x3 + b _080145D2 +_080145C0: + bl Random + adds r1, r4, 0 + ands r1, r0 + cmp r1, 0 + beq _080145D0 + movs r0, 0 + b _080145D2 +_080145D0: + movs r0, 0x2 +_080145D2: + bl battle_get_side_with_given_state + ldr r1, _0801460C @ =gUnknown_02024C08 + strb r0, [r1] + ldr r0, _08014610 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08014614 @ =gBitTable + ldr r5, _0801460C @ =gUnknown_02024C08 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080146AC + ldr r0, _08014618 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + adds r4, r0, 0 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080146AC + ldrb r0, [r5] + b _0801469A + .align 2, 0 +_0801460C: .4byte gUnknown_02024C08 +_08014610: .4byte gUnknown_02024C0C +_08014614: .4byte gBitTable +_08014618: .4byte gUnknown_02024C07 +_0801461C: + ldr r5, _08014660 @ =gUnknown_02024C08 + ldr r1, _08014664 @ =0x02000000 + adds r2, r3, 0 + ldrb r0, [r2] + ldr r4, _08014668 @ =0x00016010 + adds r0, r4 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r5] + ldr r6, _0801466C @ =gUnknown_02024C0C + ldrb r1, [r6] + ldr r7, _08014670 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080146AC + ldrb r0, [r2] + str r3, [sp, 0x4] + bl battle_side_get_owner + adds r4, r0, 0 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + ldr r3, [sp, 0x4] + cmp r4, r0 + beq _08014674 + ldrb r0, [r5] + b _0801469A + .align 2, 0 +_08014660: .4byte gUnknown_02024C08 +_08014664: .4byte 0x02000000 +_08014668: .4byte 0x00016010 +_0801466C: .4byte gUnknown_02024C0C +_08014670: .4byte gBitTable +_08014674: + ldrb r0, [r3] + bl battle_get_per_side_status + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + strb r0, [r5] + ldrb r1, [r6] + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r7 +_08014690: + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080146AC + adds r0, r2, 0 +_0801469A: + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + strb r0, [r5] +_080146AC: + ldr r4, _080146E0 @ =gUnknown_02024C10 + ldr r3, _080146E4 @ =gUnknown_081D6BBC + ldr r2, _080146E8 @ =gBattleMoves + ldr r0, _080146EC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r4] + ldr r1, _080146F0 @ =gUnknown_02024A7F + movs r0, 0xA +_080146CC: + strb r0, [r1] + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080146E0: .4byte gUnknown_02024C10 +_080146E4: .4byte gUnknown_081D6BBC +_080146E8: .4byte gBattleMoves +_080146EC: .4byte gUnknown_02024BE6 +_080146F0: .4byte gUnknown_02024A7F + thumb_func_end sub_8013FE8 + + thumb_func_start sub_80146F4 +sub_80146F4: @ 80146F4 + push {r4,lr} + ldr r3, _08014764 @ =gUnknown_02024C07 + ldr r1, _08014768 @ =gUnknown_02024A7A + ldr r0, _0801476C @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r3] + ldr r0, _08014770 @ =gUnknown_030042A4 + movs r2, 0 + strh r2, [r0] + ldr r0, _08014774 @ =gUnknown_030042A0 + strh r2, [r0] + ldr r1, _08014778 @ =gUnknown_02024E60 + ldrb r0, [r3] + adds r0, r1 + strb r2, [r0] + ldr r1, _0801477C @ =gUnknown_02024E64 + ldrb r0, [r3] + adds r0, r1 + strb r2, [r0] + ldr r2, _08014780 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x7 + strb r0, [r2, 0x1] + ldrb r4, [r3] + strb r4, [r2, 0x2] + ldr r1, _08014784 @ =0x02000000 + ldrb r0, [r3] + ldr r3, _08014788 @ =0x00016064 + adds r0, r3 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2, 0x3] + movs r0, 0xFF + strb r0, [r2, 0x4] + ldr r0, _0801478C @ =0x00016003 + adds r1, r0 + strb r4, [r1] + ldr r1, _08014790 @ =gUnknown_02024C10 + ldr r0, _08014794 @ =gUnknown_081D8E4E + str r0, [r1] + ldr r1, _08014798 @ =gUnknown_02024A7F + movs r0, 0xA + strb r0, [r1] + ldr r1, _0801479C @ =gUnknown_030042E0 + ldrb r0, [r1, 0x2] + cmp r0, 0xFE + bhi _0801475C + adds r0, 0x1 + strb r0, [r1, 0x2] +_0801475C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08014764: .4byte gUnknown_02024C07 +_08014768: .4byte gUnknown_02024A7A +_0801476C: .4byte gUnknown_02024A7E +_08014770: .4byte gUnknown_030042A4 +_08014774: .4byte gUnknown_030042A0 +_08014778: .4byte gUnknown_02024E60 +_0801477C: .4byte gUnknown_02024E64 +_08014780: .4byte gUnknown_030041C0 +_08014784: .4byte 0x02000000 +_08014788: .4byte 0x00016064 +_0801478C: .4byte 0x00016003 +_08014790: .4byte gUnknown_02024C10 +_08014794: .4byte gUnknown_081D8E4E +_08014798: .4byte gUnknown_02024A7F +_0801479C: .4byte gUnknown_030042E0 + thumb_func_end sub_80146F4 + + thumb_func_start sub_80147A0 +sub_80147A0: @ 80147A0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08014804 @ =gUnknown_02024C07 + ldr r2, _08014808 @ =gUnknown_02024C08 + ldr r1, _0801480C @ =gUnknown_02024A7A + ldr r0, _08014810 @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + strb r0, [r4] + ldr r0, _08014814 @ =gUnknown_030042A4 + movs r2, 0 + strh r2, [r0] + ldr r0, _08014818 @ =gUnknown_030042A0 + strh r2, [r0] + ldr r3, _0801481C @ =gUnknown_02024CA8 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + strb r2, [r0, 0x10] + ldr r5, _08014820 @ =gUnknown_02024C04 + ldr r2, _08014824 @ =gUnknown_02024260 + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + strh r3, [r5] + cmp r3, 0xC + bhi _08014830 + ldr r2, _08014828 @ =gUnknown_02024C10 + ldr r1, _0801482C @ =gUnknown_081D9E48 + ldrh r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + b _08014A8C + .align 2, 0 +_08014804: .4byte gUnknown_02024C07 +_08014808: .4byte gUnknown_02024C08 +_0801480C: .4byte gUnknown_02024A7A +_08014810: .4byte gUnknown_02024A7E +_08014814: .4byte gUnknown_030042A4 +_08014818: .4byte gUnknown_030042A0 +_0801481C: .4byte gUnknown_02024CA8 +_08014820: .4byte gUnknown_02024C04 +_08014824: .4byte gUnknown_02024260 +_08014828: .4byte gUnknown_02024C10 +_0801482C: .4byte gUnknown_081D9E48 +_08014830: + adds r0, r3, 0 + subs r0, 0x50 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _0801484C + ldr r0, _08014844 @ =gUnknown_02024C10 + ldr r1, _08014848 @ =gUnknown_081D9E94 + b _0801485C + .align 2, 0 +_08014844: .4byte gUnknown_02024C10 +_08014848: .4byte gUnknown_081D9E94 +_0801484C: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0801486C + ldr r0, _08014864 @ =gUnknown_02024C10 + ldr r1, _08014868 @ =gUnknown_081D9E7C +_0801485C: + ldr r1, [r1] + str r1, [r0] + b _08014A8C + .align 2, 0 +_08014864: .4byte gUnknown_02024C10 +_08014868: .4byte gUnknown_081D9E7C +_0801486C: + ldr r2, _080148A0 @ =0x02000000 + ldrb r0, [r4] + ldr r3, _080148A4 @ =0x00016003 + adds r1, r2, r3 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 25 + ldr r1, _080148A8 @ =0x000160d8 + adds r0, r1 + adds r0, r2 + ldrb r0, [r0] + subs r0, 0x1 + mov r8, r4 + ldr r3, _080148AC @ =gUnknown_02024C10 + mov r9, r3 + ldr r1, _080148B0 @ =gUnknown_081D9E7C + mov r10, r1 + adds r7, r2, 0 + cmp r0, 0x4 + bls _08014896 + b _08014A74 +_08014896: + lsls r0, 2 + ldr r1, _080148B4 @ =_080148B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080148A0: .4byte 0x02000000 +_080148A4: .4byte 0x00016003 +_080148A8: .4byte 0x000160d8 +_080148AC: .4byte gUnknown_02024C10 +_080148B0: .4byte gUnknown_081D9E7C +_080148B4: .4byte _080148B8 + .align 2, 0 +_080148B8: + .4byte _08014A74 + .4byte _08014A74 + .4byte _080148CC + .4byte _08014958 + .4byte _08014A30 +_080148CC: + ldr r2, _08014904 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r2, 0x5] + ldr r1, _08014908 @ =gUnknown_02024C07 + ldrb r0, [r1] + lsrs r0, 1 + ldr r6, _0801490C @ =0x000160da + adds r0, r6 + adds r0, r7 + ldrb r3, [r0] + movs r0, 0x1 + ands r0, r3 + mov r8, r1 + cmp r0, 0 + beq _08014918 + movs r0, 0x3E + ands r0, r3 + ldr r3, _08014910 @ =gUnknown_02024C10 + mov r9, r3 + ldr r1, _08014914 @ =gUnknown_081D9E7C + mov r10, r1 + cmp r0, 0 + bne _080148FC + b _08014A74 +_080148FC: + movs r0, 0x5 + strb r0, [r2, 0x5] + b _08014A74 + .align 2, 0 +_08014904: .4byte gUnknown_02024D1E +_08014908: .4byte gUnknown_02024C07 +_0801490C: .4byte 0x000160da +_08014910: .4byte gUnknown_02024C10 +_08014914: .4byte gUnknown_081D9E7C +_08014918: + ldr r3, _08014950 @ =gUnknown_02024C10 + mov r9, r3 + ldr r0, _08014954 @ =gUnknown_081D9E7C + mov r10, r0 + adds r5, r7, 0 + mov r4, r8 + adds r3, r6, 0 +_08014926: + ldrb r0, [r4] + lsrs r0, 1 + adds r0, r3 + adds r0, r5 + ldrb r1, [r0] + lsrs r1, 1 + strb r1, [r0] + ldrb r0, [r2, 0x5] + adds r0, 0x1 + strb r0, [r2, 0x5] + ldrb r0, [r4] + lsrs r0, 1 + adds r0, r3 + adds r0, r5 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08014926 + b _08014A74 + .align 2, 0 +_08014950: .4byte gUnknown_02024C10 +_08014954: .4byte gUnknown_081D9E7C +_08014958: + ldr r3, _0801498C @ =gUnknown_02024D1E + movs r0, 0x4 + strb r0, [r3, 0x5] + ldr r2, _08014990 @ =gUnknown_02024C07 + ldrb r0, [r2] + lsrs r0, 1 + ldr r1, _08014994 @ =0x000160da + mov r12, r1 + add r0, r12 + adds r6, r0, r7 + ldrb r1, [r6] + movs r0, 0x80 + ands r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 + mov r8, r2 + cmp r5, 0 + beq _080149A0 + movs r0, 0x5 + strb r0, [r3, 0x5] + ldr r2, _08014998 @ =gUnknown_02024C10 + mov r9, r2 + ldr r3, _0801499C @ =gUnknown_081D9E7C + mov r10, r3 + b _08014A74 + .align 2, 0 +_0801498C: .4byte gUnknown_02024D1E +_08014990: .4byte gUnknown_02024C07 +_08014994: .4byte 0x000160da +_08014998: .4byte gUnknown_02024C10 +_0801499C: .4byte gUnknown_081D9E7C +_080149A0: + ldr r3, _08014A18 @ =gUnknown_030041C0 + movs r4, 0xFD + strb r4, [r3] + movs r0, 0x5 + strb r0, [r3, 0x1] + movs r2, 0x1 + strb r2, [r3, 0x2] + movs r0, 0xFF + strb r0, [r3, 0x3] + ldr r1, _08014A1C @ =gUnknown_03004290 + strb r4, [r1] + strb r5, [r1, 0x1] + movs r0, 0xD2 + strb r0, [r1, 0x2] + strb r5, [r1, 0x3] + subs r0, 0xD3 + strb r0, [r1, 0x4] + ldrb r0, [r6] + ands r2, r0 + ldr r0, _08014A20 @ =gUnknown_02024C10 + mov r9, r0 + ldr r1, _08014A24 @ =gUnknown_081D9E7C + mov r10, r1 + adds r6, r3, 0 + cmp r2, 0 + bne _08014A02 + adds r3, r7, 0 + mov r5, r8 + mov r4, r12 + adds r2, r6, 0 +_080149DC: + ldrb r0, [r5] + lsrs r0, 1 + adds r0, r4 + adds r0, r3 + ldrb r1, [r0] + lsrs r1, 1 + strb r1, [r0] + ldrb r0, [r2, 0x2] + adds r0, 0x1 + strb r0, [r2, 0x2] + ldrb r0, [r5] + lsrs r0, 1 + adds r0, r4 + adds r0, r3 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080149DC +_08014A02: + ldrb r0, [r6, 0x2] + adds r0, 0xE + ldr r2, _08014A28 @ =0x000160a4 + adds r1, r7, r2 + movs r2, 0 + strb r0, [r1] + ldr r3, _08014A2C @ =0x000160a5 + adds r0, r7, r3 + strb r2, [r0] + b _08014A74 + .align 2, 0 +_08014A18: .4byte gUnknown_030041C0 +_08014A1C: .4byte gUnknown_03004290 +_08014A20: .4byte gUnknown_02024C10 +_08014A24: .4byte gUnknown_081D9E7C +_08014A28: .4byte 0x000160a4 +_08014A2C: .4byte 0x000160a5 +_08014A30: + ldr r0, _08014A50 @ =gUnknown_020239F8 + ldrh r0, [r0] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08014A64 + ldr r1, _08014A54 @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + ldr r0, _08014A58 @ =gUnknown_02024C07 + mov r8, r0 + ldr r1, _08014A5C @ =gUnknown_02024C10 + mov r9, r1 + ldr r2, _08014A60 @ =gUnknown_081D9E7C + mov r10, r2 + b _08014A74 + .align 2, 0 +_08014A50: .4byte gUnknown_020239F8 +_08014A54: .4byte gUnknown_02024D1E +_08014A58: .4byte gUnknown_02024C07 +_08014A5C: .4byte gUnknown_02024C10 +_08014A60: .4byte gUnknown_081D9E7C +_08014A64: + ldr r0, _08014AA0 @ =gUnknown_02024D1E + strb r1, [r0, 0x5] + ldr r3, _08014AA4 @ =gUnknown_02024C07 + mov r8, r3 + ldr r0, _08014AA8 @ =gUnknown_02024C10 + mov r9, r0 + ldr r1, _08014AAC @ =gUnknown_081D9E7C + mov r10, r1 +_08014A74: + mov r2, r8 + ldrb r0, [r2] + lsrs r0, 1 + ldr r3, _08014AB0 @ =0x000160d8 + adds r0, r3 + adds r0, r7 + ldrb r0, [r0] + lsls r0, 2 + add r0, r10 + ldr r0, [r0] + mov r1, r9 + str r0, [r1] +_08014A8C: + movs r0, 0xA + ldr r2, _08014AB4 @ =gUnknown_02024A7F + strb r0, [r2] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08014AA0: .4byte gUnknown_02024D1E +_08014AA4: .4byte gUnknown_02024C07 +_08014AA8: .4byte gUnknown_02024C10 +_08014AAC: .4byte gUnknown_081D9E7C +_08014AB0: .4byte 0x000160d8 +_08014AB4: .4byte gUnknown_02024A7F + thumb_func_end sub_80147A0 + + thumb_func_start sub_8014AB8 +sub_8014AB8: @ 8014AB8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0 + ldr r1, _08014ADC @ =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r1, r0, r1 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08014AE4 + ldr r1, _08014AE0 @ =gEnigmaBerries + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x7] + b _08014AEE + .align 2, 0 +_08014ADC: .4byte gBattleMons +_08014AE0: .4byte gEnigmaBerries +_08014AE4: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r1, r0, 24 +_08014AEE: + ldr r0, _08014B18 @ =gUnknown_02024C0B + strb r4, [r0] + cmp r1, 0x25 + bne _08014B28 + ldr r2, _08014B1C @ =gUnknown_02024C04 + ldr r1, _08014B20 @ =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r0, [r0, 0x2E] + strh r0, [r2] + ldr r0, _08014B24 @ =gUnknown_02024D28 + lsls r2, r4, 4 + adds r2, r0 + ldrb r1, [r2, 0x1] + movs r0, 0x19 + negs r0, r0 + ands r0, r1 + movs r1, 0x8 + b _08014B50 + .align 2, 0 +_08014B18: .4byte gUnknown_02024C0B +_08014B1C: .4byte gUnknown_02024C04 +_08014B20: .4byte gBattleMons +_08014B24: .4byte gUnknown_02024D28 +_08014B28: + ldr r6, _08014B5C @ =gBattleMons + movs r2, 0x58 + adds r0, r4, 0 + muls r0, r2 + adds r3, r0, r6 + adds r0, r3, 0 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x32 + bne _08014B68 + ldr r0, _08014B60 @ =byte_2024C06 + strb r1, [r0] + ldr r0, _08014B64 @ =gUnknown_02024D28 + lsls r2, r4, 4 + adds r2, r0 + ldrb r1, [r2, 0x1] + movs r0, 0x19 + negs r0, r0 + ands r0, r1 + movs r1, 0x10 +_08014B50: + orrs r0, r1 + strb r0, [r2, 0x1] + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + b _08014BC2 + .align 2, 0 +_08014B5C: .4byte gBattleMons +_08014B60: .4byte byte_2024C06 +_08014B64: .4byte gUnknown_02024D28 +_08014B68: + ldr r0, _08014BDC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08014BB6 + movs r1, 0x1 + adds r0, r4, 0 + eors r0, r1 + muls r0, r2 + adds r2, r0, r6 + ldrh r0, [r3, 0x6] + ldrh r1, [r2, 0x6] + cmp r0, r1 + bcs _08014BB0 + lsls r0, 7 + ldrh r1, [r2, 0x6] + bl __divsi3 + adds r4, r0, 0 + ldr r0, _08014BE0 @ =0x02000000 + ldr r1, _08014BE4 @ =0x00016078 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + subs r0, r1 + lsls r0, 1 + adds r4, r0 + lsls r4, 24 + lsrs r4, 24 + bl Random + movs r1, 0xFF + ands r1, r0 + cmp r4, r1 + bls _08014BB6 +_08014BB0: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_08014BB6: + ldr r1, _08014BE0 @ =0x02000000 + ldr r0, _08014BE4 @ =0x00016078 + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08014BC2: + cmp r5, 0 + beq _08014BD4 + ldr r1, _08014BE8 @ =gUnknown_02024A7E + ldr r0, _08014BEC @ =gUnknown_02024A68 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08014BF0 @ =gUnknown_02024D26 + movs r0, 0x4 + strb r0, [r1] +_08014BD4: + adds r0, r5, 0 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08014BDC: .4byte gUnknown_020239F8 +_08014BE0: .4byte 0x02000000 +_08014BE4: .4byte 0x00016078 +_08014BE8: .4byte gUnknown_02024A7E +_08014BEC: .4byte gUnknown_02024A68 +_08014BF0: .4byte gUnknown_02024D26 + thumb_func_end sub_8014AB8 + + thumb_func_start sub_8014BF4 +sub_8014BF4: @ 8014BF4 + push {r4-r6,lr} + ldr r4, _08014C44 @ =gUnknown_02024C07 + ldr r1, _08014C48 @ =gUnknown_02024A7A + ldr r5, _08014C4C @ =gUnknown_02024A7E + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r4] + ldr r0, _08014C50 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08014C9C + ldr r0, _08014C54 @ =gUnknown_02024A68 + ldrb r1, [r0] + strb r1, [r5] + ldr r2, _08014C58 @ =gUnknown_02024A60 + movs r0, 0 + strb r0, [r2] + lsls r1, 24 + cmp r1, 0 + beq _08014C88 + adds r4, r2, 0 + ldr r6, _08014C5C @ =gUnknown_02024C18 + ldr r5, _08014C60 @ =gUnknown_02024D26 +_08014C28: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08014C64 + ldrb r0, [r4] + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08014C76 + ldrb r0, [r5] + movs r1, 0x2 + b _08014C72 + .align 2, 0 +_08014C44: .4byte gUnknown_02024C07 +_08014C48: .4byte gUnknown_02024A7A +_08014C4C: .4byte gUnknown_02024A7E +_08014C50: .4byte gUnknown_020239F8 +_08014C54: .4byte gUnknown_02024A68 +_08014C58: .4byte gUnknown_02024A60 +_08014C5C: .4byte gUnknown_02024C18 +_08014C60: .4byte gUnknown_02024D26 +_08014C64: + ldrb r0, [r4] + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x3 + bne _08014C76 + ldrb r0, [r5] + movs r1, 0x1 +_08014C72: + orrs r0, r1 + strb r0, [r5] +_08014C76: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08014C94 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08014C28 +_08014C88: + ldr r0, _08014C98 @ =gUnknown_02024D26 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] + b _08014D40 + .align 2, 0 +_08014C94: .4byte gUnknown_02024A68 +_08014C98: .4byte gUnknown_02024D26 +_08014C9C: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08014CF4 + ldrb r0, [r4] + bl sub_8014AB8 + lsls r0, 24 + cmp r0, 0 + bne _08014D40 + ldr r1, _08014CDC @ =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + ldr r1, _08014CE0 @ =0xfdffffff + ands r0, r1 + str r0, [r2] + ldr r1, _08014CE4 @ =gUnknown_02024D1E + movs r0, 0x3 + strb r0, [r1, 0x5] + ldr r1, _08014CE8 @ =gUnknown_02024C10 + ldr r0, _08014CEC @ =gUnknown_081D8E3B + str r0, [r1] + ldr r1, _08014CF0 @ =gUnknown_02024A7F + movs r0, 0xA + b _08014D3E + .align 2, 0 +_08014CDC: .4byte gBattleMons +_08014CE0: .4byte 0xfdffffff +_08014CE4: .4byte gUnknown_02024D1E +_08014CE8: .4byte gUnknown_02024C10 +_08014CEC: .4byte gUnknown_081D8E3B +_08014CF0: .4byte gUnknown_02024A7F +_08014CF4: + ldr r1, _08014D1C @ =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08014D20 @ =0x0400e000 + ands r0, r1 + cmp r0, 0 + beq _08014D34 + ldr r1, _08014D24 @ =gUnknown_02024D1E + movs r0, 0x4 + strb r0, [r1, 0x5] + ldr r1, _08014D28 @ =gUnknown_02024C10 + ldr r0, _08014D2C @ =gUnknown_081D8E3B + str r0, [r1] + ldr r1, _08014D30 @ =gUnknown_02024A7F + movs r0, 0xA + b _08014D3E + .align 2, 0 +_08014D1C: .4byte gBattleMons +_08014D20: .4byte 0x0400e000 +_08014D24: .4byte gUnknown_02024D1E +_08014D28: .4byte gUnknown_02024C10 +_08014D2C: .4byte gUnknown_081D8E3B +_08014D30: .4byte gUnknown_02024A7F +_08014D34: + ldr r0, _08014D48 @ =gUnknown_02024A68 + ldrb r0, [r0] + strb r0, [r5] + ldr r1, _08014D4C @ =gUnknown_02024D26 + movs r0, 0x6 +_08014D3E: + strb r0, [r1] +_08014D40: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08014D48: .4byte gUnknown_02024A68 +_08014D4C: .4byte gUnknown_02024D26 + thumb_func_end sub_8014BF4 + + thumb_func_start sub_8014D50 +sub_8014D50: @ 8014D50 + ldr r2, _08014D78 @ =gUnknown_02024C07 + ldr r1, _08014D7C @ =gUnknown_02024A7A + ldr r0, _08014D80 @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _08014D84 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _08014D88 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r1, _08014D8C @ =gUnknown_02024C10 + ldr r0, _08014D90 @ =gUnknown_081D9E98 + ldr r0, [r0] + str r0, [r1] + ldr r1, _08014D94 @ =gUnknown_02024A7F + movs r0, 0xA + strb r0, [r1] + bx lr + .align 2, 0 +_08014D78: .4byte gUnknown_02024C07 +_08014D7C: .4byte gUnknown_02024A7A +_08014D80: .4byte gUnknown_02024A7E +_08014D84: .4byte gUnknown_030042A4 +_08014D88: .4byte gUnknown_030042A0 +_08014D8C: .4byte gUnknown_02024C10 +_08014D90: .4byte gUnknown_081D9E98 +_08014D94: .4byte gUnknown_02024A7F + thumb_func_end sub_8014D50 + + thumb_func_start sub_8014D98 +sub_8014D98: @ 8014D98 + ldr r2, _08014DD0 @ =gUnknown_02024C07 + ldr r1, _08014DD4 @ =gUnknown_02024A7A + ldr r0, _08014DD8 @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _08014DDC @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _08014DE0 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r1, _08014DE4 @ =gUnknown_02038808 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + ldr r1, _08014DE8 @ =gUnknown_02024C04 + movs r0, 0x5 + strh r0, [r1] + ldr r1, _08014DEC @ =gUnknown_02024C10 + ldr r0, _08014DF0 @ =gUnknown_081D9E48 + ldr r0, [r0, 0x14] + str r0, [r1] + ldr r1, _08014DF4 @ =gUnknown_02024A7F + movs r0, 0xA + strb r0, [r1] + bx lr + .align 2, 0 +_08014DD0: .4byte gUnknown_02024C07 +_08014DD4: .4byte gUnknown_02024A7A +_08014DD8: .4byte gUnknown_02024A7E +_08014DDC: .4byte gUnknown_030042A4 +_08014DE0: .4byte gUnknown_030042A0 +_08014DE4: .4byte gUnknown_02038808 +_08014DE8: .4byte gUnknown_02024C04 +_08014DEC: .4byte gUnknown_02024C10 +_08014DF0: .4byte gUnknown_081D9E48 +_08014DF4: .4byte gUnknown_02024A7F + thumb_func_end sub_8014D98 + + thumb_func_start sub_8014DF8 +sub_8014DF8: @ 8014DF8 + push {r4-r6,lr} + ldr r3, _08014E68 @ =gUnknown_02024C07 + ldr r1, _08014E6C @ =gUnknown_02024A7A + ldr r0, _08014E70 @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r3] + ldr r0, _08014E74 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _08014E78 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r6, _08014E7C @ =gUnknown_02024D1E + ldr r2, _08014E80 @ =gUnknown_02024260 + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + subs r0, 0x1 + strb r0, [r6, 0x5] + ldr r1, _08014E84 @ =gUnknown_02024C04 + ldrb r0, [r3] + lsls r0, 9 + adds r2, 0x2 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1] + ldr r2, _08014E88 @ =0x02000000 + ldr r0, _08014E8C @ =0x00016087 + adds r1, r2, r0 + ldrb r0, [r1] + cmp r0, 0x2 + bhi _08014E42 + adds r0, 0x1 + strb r0, [r1] +_08014E42: + ldr r0, _08014E90 @ =0x00016088 + adds r4, r2, r0 + ldrb r5, [r4] + adds r3, r5, 0 + cmp r3, 0x1 + bls _08014E9C + ldr r2, _08014E94 @ =gUnknown_081FA70C + ldrb r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + ldrb r6, [r6, 0x5] + adds r0, r6 + adds r0, r2 + ldrb r0, [r0] + cmp r3, r0 + bcs _08014E98 + movs r0, 0x1 + b _08014E9A + .align 2, 0 +_08014E68: .4byte gUnknown_02024C07 +_08014E6C: .4byte gUnknown_02024A7A +_08014E70: .4byte gUnknown_02024A7E +_08014E74: .4byte gUnknown_030042A4 +_08014E78: .4byte gUnknown_030042A0 +_08014E7C: .4byte gUnknown_02024D1E +_08014E80: .4byte gUnknown_02024260 +_08014E84: .4byte gUnknown_02024C04 +_08014E88: .4byte 0x02000000 +_08014E8C: .4byte 0x00016087 +_08014E90: .4byte 0x00016088 +_08014E94: .4byte gUnknown_081FA70C +_08014E98: + subs r0, r5, r0 +_08014E9A: + strb r0, [r4] +_08014E9C: + ldr r1, _08014EB0 @ =gUnknown_02024C10 + ldr r0, _08014EB4 @ =gUnknown_081D9E98 + ldr r0, [r0, 0x8] + str r0, [r1] + ldr r1, _08014EB8 @ =gUnknown_02024A7F + movs r0, 0xA + strb r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08014EB0: .4byte gUnknown_02024C10 +_08014EB4: .4byte gUnknown_081D9E98 +_08014EB8: .4byte gUnknown_02024A7F + thumb_func_end sub_8014DF8 + + thumb_func_start sub_8014EBC +sub_8014EBC: @ 8014EBC + push {r4,r5,lr} + ldr r2, _08014F28 @ =gUnknown_02024C07 + ldr r1, _08014F2C @ =gUnknown_02024A7A + ldr r0, _08014F30 @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _08014F34 @ =gUnknown_030042A4 + movs r5, 0 + strh r5, [r0] + ldr r0, _08014F38 @ =gUnknown_030042A0 + strh r5, [r0] + ldr r3, _08014F3C @ =0x02000000 + ldr r0, _08014F40 @ =0x00016089 + adds r2, r3, r0 + ldr r1, _08014F44 @ =gUnknown_081FA71B + subs r0, 0x3 + adds r4, r3, r0 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + ldrb r1, [r2] + adds r0, r1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + bls _08014EFA + movs r0, 0x14 + strb r0, [r2] +_08014EFA: + ldr r0, _08014F48 @ =0x00016088 + adds r2, r3, r0 + ldr r1, _08014F4C @ =gUnknown_081FA71F + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + ldrb r1, [r2] + adds r0, r1 + strb r0, [r2] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x14 + bls _08014F18 + movs r0, 0x14 + strb r0, [r2] +_08014F18: + ldrb r0, [r4] + cmp r0, 0x2 + bhi _08014F54 + adds r0, 0x1 + strb r0, [r4] + ldr r0, _08014F50 @ =gUnknown_02024D1E + strb r5, [r0, 0x5] + b _08014F5A + .align 2, 0 +_08014F28: .4byte gUnknown_02024C07 +_08014F2C: .4byte gUnknown_02024A7A +_08014F30: .4byte gUnknown_02024A7E +_08014F34: .4byte gUnknown_030042A4 +_08014F38: .4byte gUnknown_030042A0 +_08014F3C: .4byte 0x02000000 +_08014F40: .4byte 0x00016089 +_08014F44: .4byte gUnknown_081FA71B +_08014F48: .4byte 0x00016088 +_08014F4C: .4byte gUnknown_081FA71F +_08014F50: .4byte gUnknown_02024D1E +_08014F54: + ldr r1, _08014F70 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] +_08014F5A: + ldr r1, _08014F74 @ =gUnknown_02024C10 + ldr r0, _08014F78 @ =gUnknown_081D9E98 + ldr r0, [r0, 0x4] + str r0, [r1] + ldr r1, _08014F7C @ =gUnknown_02024A7F + movs r0, 0xA + strb r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08014F70: .4byte gUnknown_02024D1E +_08014F74: .4byte gUnknown_02024C10 +_08014F78: .4byte gUnknown_081D9E98 +_08014F7C: .4byte gUnknown_02024A7F + thumb_func_end sub_8014EBC + + thumb_func_start bs8_exit_by_flight +bs8_exit_by_flight: @ 8014F80 + push {r4,lr} + ldr r2, _08014FA8 @ =gUnknown_02024C07 + ldr r1, _08014FAC @ =gUnknown_02024A7A + ldr r4, _08014FB0 @ =gUnknown_02024A7E + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0x11 + bl PlaySE + ldr r0, _08014FB4 @ =gUnknown_02024A68 + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _08014FB8 @ =gUnknown_02024D26 + movs r0, 0x4 + strb r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08014FA8: .4byte gUnknown_02024C07 +_08014FAC: .4byte gUnknown_02024A7A +_08014FB0: .4byte gUnknown_02024A7E +_08014FB4: .4byte gUnknown_02024A68 +_08014FB8: .4byte gUnknown_02024D26 + thumb_func_end bs8_exit_by_flight + + thumb_func_start sub_8014FBC +sub_8014FBC: @ 8014FBC + ldr r3, _08015008 @ =gUnknown_02024C07 + ldr r1, _0801500C @ =gUnknown_02024A7A + ldr r0, _08015010 @ =gUnknown_02024A7E + ldrb r0, [r0] + adds r0, r1 + ldrb r2, [r0] + strb r2, [r3] + ldr r0, _08015014 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _08015018 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r1, _0801501C @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + ldr r2, _08015020 @ =gUnknown_02024A6A + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08015024 @ =gUnknown_02024C10 + ldr r0, _08015028 @ =gUnknown_081D9E98 + ldr r0, [r0, 0xC] + str r0, [r1] + ldr r1, _0801502C @ =gUnknown_02024A7F + movs r0, 0xA + strb r0, [r1] + ldr r1, _08015030 @ =gUnknown_02024A76 + movs r0, 0xC + strb r0, [r1, 0x1] + bx lr + .align 2, 0 +_08015008: .4byte gUnknown_02024C07 +_0801500C: .4byte gUnknown_02024A7A +_08015010: .4byte gUnknown_02024A7E +_08015014: .4byte gUnknown_030042A4 +_08015018: .4byte gUnknown_030042A0 +_0801501C: .4byte gUnknown_030041C0 +_08015020: .4byte gUnknown_02024A6A +_08015024: .4byte gUnknown_02024C10 +_08015028: .4byte gUnknown_081D9E98 +_0801502C: .4byte gUnknown_02024A7F +_08015030: .4byte gUnknown_02024A76 + thumb_func_end sub_8014FBC + + thumb_func_start bsB_exit_by_move +bsB_exit_by_move: @ 8015034 + push {lr} + bl sub_80173A4 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0 + bne _08015050 + ldr r0, _08015054 @ =0x02000000 + ldr r2, _08015058 @ =0x00016059 + adds r0, r2 + strb r1, [r0] + ldr r1, _0801505C @ =gUnknown_02024A7F + movs r0, 0xC + strb r0, [r1] +_08015050: + pop {r0} + bx r0 + .align 2, 0 +_08015054: .4byte 0x02000000 +_08015058: .4byte 0x00016059 +_0801505C: .4byte gUnknown_02024A7F + thumb_func_end bsB_exit_by_move + + thumb_func_start sub_8015060 +sub_8015060: @ 8015060 + ldr r1, _08015080 @ =gUnknown_02024A7E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r3, _08015084 @ =gUnknown_02024A7F + ldr r2, _08015088 @ =gUnknown_02024A76 + ldrb r0, [r1] + adds r0, r2 + ldrb r0, [r0] + strb r0, [r3] + ldr r2, _0801508C @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _08015090 @ =0xf1e892af + ands r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_08015080: .4byte gUnknown_02024A7E +_08015084: .4byte gUnknown_02024A7F +_08015088: .4byte gUnknown_02024A76 +_0801508C: .4byte gUnknown_02024C6C +_08015090: .4byte 0xf1e892af + thumb_func_end sub_8015060 + + thumb_func_start bsC_8016D70 +bsC_8016D70: @ 8015094 + push {r4,r5,lr} + ldr r1, _0801510C @ =gUnknown_02024A7E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r3, _08015110 @ =gUnknown_02024A7F + ldr r2, _08015114 @ =gUnknown_02024A76 + ldrb r0, [r1] + adds r0, r2 + ldrb r0, [r0] + strb r0, [r3] + bl sub_801377C + ldr r2, _08015118 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0801511C @ =0xf1e892af + ands r0, r1 + str r0, [r2] + ldr r0, _08015120 @ =gUnknown_02024BEC + movs r4, 0 + str r4, [r0] + ldr r1, _08015124 @ =0x02000000 + ldr r2, _08015128 @ =0x00016002 + adds r0, r1, r2 + strb r4, [r0] + ldr r3, _0801512C @ =0x000160a1 + adds r0, r1, r3 + strb r4, [r0] + ldr r2, _08015130 @ =gUnknown_02024C3C + ldr r5, _08015134 @ =gUnknown_02024C07 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r2 + movs r2, 0 + strh r4, [r0] + ldr r3, _08015138 @ =gUnknown_02024C44 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r3 + strh r4, [r0] + ldr r3, _0801513C @ =0x0001601c + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _08015140 @ =gUnknown_02024DEC + strh r4, [r0] + subs r3, 0x10 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _08015144 @ =gUnknown_02024D1E + strb r2, [r0, 0x3] + strb r2, [r0, 0x4] + ldr r3, _08015148 @ =0x00016112 + adds r0, r1, r3 + strb r2, [r0] + ldr r0, _0801514C @ =0x00017130 + adds r1, r0 + strb r2, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801510C: .4byte gUnknown_02024A7E +_08015110: .4byte gUnknown_02024A7F +_08015114: .4byte gUnknown_02024A76 +_08015118: .4byte gUnknown_02024C6C +_0801511C: .4byte 0xf1e892af +_08015120: .4byte gUnknown_02024BEC +_08015124: .4byte 0x02000000 +_08015128: .4byte 0x00016002 +_0801512C: .4byte 0x000160a1 +_08015130: .4byte gUnknown_02024C3C +_08015134: .4byte gUnknown_02024C07 +_08015138: .4byte gUnknown_02024C44 +_0801513C: .4byte 0x0001601c +_08015140: .4byte gUnknown_02024DEC +_08015144: .4byte gUnknown_02024D1E +_08015148: .4byte 0x00016112 +_0801514C: .4byte 0x00017130 + thumb_func_end bsC_8016D70 + + thumb_func_start sub_8015150 +sub_8015150: @ 8015150 + push {lr} + lsls r0, 24 + lsrs r0, 24 + movs r2, 0 + cmp r0, 0xA + bhi _080151C8 + lsls r0, 2 + ldr r1, _08015168 @ =_0801516C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08015168: .4byte _0801516C + .align 2, 0 +_0801516C: + .4byte _08015198 + .4byte _080151A0 + .4byte _080151A8 + .4byte _080151C4 + .4byte _080151C8 + .4byte _080151C4 + .4byte _080151C8 + .4byte _080151B0 + .4byte _080151C8 + .4byte _080151C8 + .4byte _080151B4 +_08015198: + ldr r0, _0801519C @ =gUnknown_02024C08 + b _080151C6 + .align 2, 0 +_0801519C: .4byte gUnknown_02024C08 +_080151A0: + ldr r0, _080151A4 @ =gUnknown_02024C07 + b _080151C6 + .align 2, 0 +_080151A4: .4byte gUnknown_02024C07 +_080151A8: + ldr r0, _080151AC @ =gUnknown_02024C0A + b _080151C6 + .align 2, 0 +_080151AC: .4byte gUnknown_02024C0A +_080151B0: + movs r2, 0 + b _080151C8 +_080151B4: + ldr r0, _080151BC @ =0x02000000 + ldr r1, _080151C0 @ =0x00016003 + adds r0, r1 + b _080151C6 + .align 2, 0 +_080151BC: .4byte 0x02000000 +_080151C0: .4byte 0x00016003 +_080151C4: + ldr r0, _080151D0 @ =gUnknown_02024C09 +_080151C6: + ldrb r2, [r0] +_080151C8: + adds r0, r2, 0 + pop {r1} + bx r1 + .align 2, 0 +_080151D0: .4byte gUnknown_02024C09 + thumb_func_end sub_8015150 + + thumb_func_start sub_80151D4 +sub_80151D4: @ 80151D4 + push {r4-r7,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 16 + lsrs r2, 16 + ldr r1, _08015204 @ =gBattleMons + movs r4, 0x58 + muls r0, r4 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + mov r12, r1 + cmp r0, 0x2E + bne _08015286 + movs r3, 0 + adds r0, r5, 0 + muls r0, r4 + adds r1, 0xC + adds r1, r0, r1 + b _08015210 + .align 2, 0 +_08015204: .4byte gBattleMons +_08015208: + adds r1, 0x2 + adds r3, 0x1 + cmp r3, 0x3 + bgt _08015216 +_08015210: + ldrh r0, [r1] + cmp r0, r2 + bne _08015208 +_08015216: + cmp r3, 0x4 + beq _08015286 + movs r7, 0x58 + adds r2, r5, 0 + muls r2, r7 + adds r0, r3, r2 + mov r6, r12 + adds r6, 0x24 + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0 + beq _08015232 + subs r0, 0x1 + strb r0, [r1] +_08015232: + mov r0, r12 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08015286 + ldr r1, _08015290 @ =gUnknown_02024CA8 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _08015294 @ =gBitTable + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08015286 + ldr r4, _08015298 @ =gUnknown_02024A60 + strb r5, [r4] + adds r1, r3, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r4] + muls r0, r7 + adds r0, r6 + adds r0, r3 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08015286: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08015290: .4byte gUnknown_02024CA8 +_08015294: .4byte gBitTable +_08015298: .4byte gUnknown_02024A60 + thumb_func_end sub_80151D4 + + thumb_func_start sub_801529C +sub_801529C: @ 801529C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r5, r0, 24 + movs r0, 0x4 + mov r8, r0 + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r4, 0 + ldr r0, _080153BC @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + bge _08015344 + ldr r1, _080153C0 @ =gBattleMons + movs r0, 0x58 + adds r7, r5, 0 + muls r7, r0 + adds r1, 0xC + mov r10, r1 +_080152D2: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + adds r6, r4, 0x1 + cmp r9, r0 + beq _0801533A + ldr r0, _080153C0 @ =gBattleMons + movs r3, 0x58 + adds r1, r4, 0 + muls r1, r3 + adds r1, r0 + adds r1, 0x20 + ldrb r1, [r1] + adds r4, r0, 0 + cmp r1, 0x2E + bne _0801533A + movs r2, 0 + adds r0, r5, 0 + muls r0, r3 + adds r1, r4, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + movs r1, 0x8F + lsls r1, 1 + cmp r0, r1 + beq _08015322 + adds r3, r1, 0 + mov r0, r10 + adds r1, r7, r0 +_08015314: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + bgt _08015322 + ldrh r0, [r1] + cmp r0, r3 + bne _08015314 +_08015322: + cmp r2, 0x4 + beq _0801533A + mov r8, r2 + adds r1, r2, r7 + adds r0, r4, 0 + adds r0, 0x24 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0801533A + subs r0, 0x1 + strb r0, [r1] +_0801533A: + adds r4, r6, 0 + ldr r0, _080153BC @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _080152D2 +_08015344: + mov r1, r8 + cmp r1, 0x4 + beq _080153AC + ldr r6, _080153C0 @ =gBattleMons + movs r3, 0x58 + adds r0, r5, 0 + muls r0, r3 + adds r1, r6, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _080153AC + ldr r1, _080153C4 @ =gUnknown_02024CA8 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _080153C8 @ =gBitTable + mov r4, r8 + lsls r0, r4, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080153AC + ldr r4, _080153CC @ =gUnknown_02024A60 + strb r5, [r4] + mov r1, r8 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r4] + muls r0, r3 + adds r2, r6, 0 + adds r2, 0x24 + adds r0, r2 + add r0, r8 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080153AC: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080153BC: .4byte gUnknown_02024A68 +_080153C0: .4byte gBattleMons +_080153C4: .4byte gUnknown_02024CA8 +_080153C8: .4byte gBitTable +_080153CC: .4byte gUnknown_02024A60 + thumb_func_end sub_801529C + + thumb_func_start sub_80153D0 +sub_80153D0: @ 80153D0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + lsrs r3, r0, 24 + movs r6, 0x4 + movs r1, 0 + ldr r0, _080154C8 @ =gUnknown_02024A68 + mov r8, r0 + ldrb r0, [r0] + cmp r1, r0 + bge _08015452 + ldr r7, _080154CC @ =gBattleMons + movs r2, 0x58 + mov r12, r2 + mov r5, r12 + muls r5, r3 + adds r0, r7, 0 + adds r0, 0xC + adds r2, r5, r0 + mov r10, r2 + mov r9, r5 +_08015402: + mov r0, r12 + muls r0, r1 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + adds r4, r1, 0x1 + cmp r0, 0x2E + bne _08015448 + cmp r1, r3 + beq _08015448 + movs r2, 0 + mov r1, r10 + ldrh r0, [r1] + cmp r0, 0xC3 + beq _08015432 + ldr r1, _080154D0 @ =gUnknown_02024A8C + add r1, r9 +_08015424: + adds r1, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + bgt _08015432 + ldrh r0, [r1] + cmp r0, 0xC3 + bne _08015424 +_08015432: + cmp r2, 0x4 + beq _08015448 + adds r6, r2, 0 + adds r0, r6, r5 + ldr r2, _080154D4 @ =gUnknown_02024AA4 + adds r1, r0, r2 + ldrb r0, [r1] + cmp r0, 0 + beq _08015448 + subs r0, 0x1 + strb r0, [r1] +_08015448: + adds r1, r4, 0 + mov r0, r8 + ldrb r0, [r0] + cmp r1, r0 + blt _08015402 +_08015452: + cmp r6, 0x4 + beq _080154B6 + ldr r7, _080154CC @ =gBattleMons + movs r5, 0x58 + adds r0, r3, 0 + muls r0, r5 + adds r1, r7, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _080154B6 + ldr r1, _080154D8 @ =gUnknown_02024CA8 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _080154DC @ =gBitTable + lsls r0, r6, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080154B6 + ldr r4, _080154E0 @ =gUnknown_02024A60 + strb r3, [r4] + adds r1, r6, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r4] + muls r0, r5 + adds r2, r7, 0 + adds r2, 0x24 + adds r0, r2 + adds r0, r6 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080154B6: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080154C8: .4byte gUnknown_02024A68 +_080154CC: .4byte gBattleMons +_080154D0: .4byte gUnknown_02024A8C +_080154D4: .4byte gUnknown_02024AA4 +_080154D8: .4byte gUnknown_02024CA8 +_080154DC: .4byte gBitTable +_080154E0: .4byte gUnknown_02024A60 + thumb_func_end sub_80153D0 + + thumb_func_start unref_sub_80154E4 +unref_sub_80154E4: @ 80154E4 + push {r4,r5,lr} + ldr r0, _08015514 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08015524 + movs r2, 0 + ldr r4, _08015518 @ =gUnknown_02024A68 + ldrb r0, [r4] + cmp r2, r0 + bge _08015542 + ldr r3, _0801551C @ =gUnknown_02024A64 + ldr r5, _08015520 @ =gBitTable +_08015500: + ldm r5!, {r1} + lsls r1, 28 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + adds r2, 0x1 + ldrb r0, [r4] + cmp r2, r0 + blt _08015500 + b _08015542 + .align 2, 0 +_08015514: .4byte gUnknown_020239F8 +_08015518: .4byte gUnknown_02024A68 +_0801551C: .4byte gUnknown_02024A64 +_08015520: .4byte gBitTable +_08015524: + movs r2, 0 + ldr r4, _08015548 @ =gUnknown_02024A68 + ldrb r0, [r4] + cmp r2, r0 + bge _08015542 + ldr r3, _0801554C @ =gUnknown_02024A64 + ldr r5, _08015550 @ =gBitTable +_08015532: + ldr r0, [r3] + ldm r5!, {r1} + orrs r0, r1 + str r0, [r3] + adds r2, 0x1 + ldrb r0, [r4] + cmp r2, r0 + blt _08015532 +_08015542: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08015548: .4byte gUnknown_02024A68 +_0801554C: .4byte gUnknown_02024A64 +_08015550: .4byte gBitTable + thumb_func_end unref_sub_80154E4 + + thumb_func_start dp01_battle_side_mark_buffer_for_execution +dp01_battle_side_mark_buffer_for_execution: @ 8015554 + push {lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0801557C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08015588 + ldr r2, _08015580 @ =gUnknown_02024A64 + ldr r1, _08015584 @ =gBitTable + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + b _08015598 + .align 2, 0 +_0801557C: .4byte gUnknown_020239F8 +_08015580: .4byte gUnknown_02024A64 +_08015584: .4byte gBitTable +_08015588: + ldr r2, _0801559C @ =gUnknown_02024A64 + ldr r1, _080155A0 @ =gBitTable + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + orrs r1, r0 + str r1, [r2] +_08015598: + pop {r0} + bx r0 + .align 2, 0 +_0801559C: .4byte gUnknown_02024A64 +_080155A0: .4byte gBitTable + thumb_func_end dp01_battle_side_mark_buffer_for_execution + + thumb_func_start sub_80155A4 +sub_80155A4: @ 80155A4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r7, r0, 24 + movs r4, 0 + ldr r5, _080155B8 @ =gUnknown_02024A64 + ldr r1, _080155BC @ =gBitTable + lsls r0, r7, 2 + adds r6, r0, r1 + b _080155CE + .align 2, 0 +_080155B8: .4byte gUnknown_02024A64 +_080155BC: .4byte gBitTable +_080155C0: + lsls r0, r4, 2 + ldr r1, [r6] + lsls r1, r0 + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] + adds r4, 0x1 +_080155CE: + bl GetLinkPlayerCount + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + blt _080155C0 + ldr r2, _080155F0 @ =gUnknown_02024A64 + movs r1, 0x80 + lsls r1, 21 + lsls r1, r7 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080155F0: .4byte gUnknown_02024A64 + thumb_func_end sub_80155A4 + + thumb_func_start b_cancel_multi_turn_move_maybe +b_cancel_multi_turn_move_maybe: @ 80155F4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08015644 @ =gBattleMons + movs r2, 0x58 + adds r3, r0, 0 + muls r3, r2 + adds r1, 0x50 + adds r3, r1 + ldr r1, [r3] + ldr r2, _08015648 @ =0xffffefff + ands r1, r2 + ldr r2, _0801564C @ =0xfffff3ff + ands r1, r2 + movs r2, 0x71 + negs r2, r2 + ands r1, r2 + ldr r2, _08015650 @ =0xfffffcff + ands r1, r2 + str r1, [r3] + ldr r1, _08015654 @ =gUnknown_02024C98 + lsls r2, r0, 2 + adds r2, r1 + ldr r1, [r2] + ldr r3, _08015658 @ =0xfffbff3f + ands r1, r3 + str r1, [r2] + ldr r2, _0801565C @ =gUnknown_02024CA8 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x11] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x11] + movs r0, 0 + strb r0, [r1, 0x10] + bx lr + .align 2, 0 +_08015644: .4byte gBattleMons +_08015648: .4byte 0xffffefff +_0801564C: .4byte 0xfffff3ff +_08015650: .4byte 0xfffffcff +_08015654: .4byte gUnknown_02024C98 +_08015658: .4byte 0xfffbff3f +_0801565C: .4byte gUnknown_02024CA8 + thumb_func_end b_cancel_multi_turn_move_maybe + + thumb_func_start sub_8015660 +sub_8015660: @ 8015660 + push {lr} + lsls r0, 24 + ldr r1, _080156AC @ =gUnknown_02024D28 + lsrs r0, 20 + adds r1, r0, r1 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + bne _080156A6 + ldrb r2, [r1, 0x1] + lsls r0, r2, 30 + cmp r0, 0 + blt _080156A6 + lsls r0, r2, 26 + cmp r0, 0 + blt _080156A6 + lsls r0, r2, 25 + cmp r0, 0 + blt _080156A6 + lsrs r0, r2, 7 + cmp r0, 0 + bne _080156A6 + ldrb r1, [r1, 0x2] + lsls r0, r1, 31 + cmp r0, 0 + bne _080156A6 + lsls r0, r1, 30 + cmp r0, 0 + blt _080156A6 + lsls r0, r1, 29 + cmp r0, 0 + blt _080156A6 + lsls r0, r2, 31 + cmp r0, 0 + beq _080156B0 +_080156A6: + movs r0, 0x1 + b _080156B2 + .align 2, 0 +_080156AC: .4byte gUnknown_02024D28 +_080156B0: + movs r0, 0 +_080156B2: + pop {r1} + bx r1 + thumb_func_end sub_8015660 + + thumb_func_start b_std_message +b_std_message: @ 80156B8 + push {r4,lr} + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + ldr r4, _080156D8 @ =gUnknown_02024A60 + strb r1, [r4] + movs r0, 0 + adds r1, r2, 0 + bl dp01_build_cmdbuf_x10_TODO + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080156D8: .4byte gUnknown_02024A60 + thumb_func_end b_std_message + + thumb_func_start sub_80156DC +sub_80156DC: @ 80156DC + push {r4-r6,lr} + movs r3, 0 + ldr r0, _08015730 @ =gUnknown_02024DEA + strb r3, [r0] + strb r3, [r0, 0x1] + movs r1, 0 + ldr r0, _08015734 @ =gUnknown_02024A68 + ldrb r2, [r0] + adds r6, r0, 0 + cmp r1, r2 + bge _0801570A + ldr r5, _08015738 @ =gBitTable + adds r4, r2, 0 + ldr r2, _0801573C @ =gUnknown_02024A6A +_080156F8: + ldrh r0, [r2] + lsls r0, 2 + adds r0, r5 + ldr r0, [r0] + orrs r3, r0 + adds r2, 0x4 + adds r1, 0x2 + cmp r1, r4 + blt _080156F8 +_0801570A: + movs r1, 0x1 + adds r2, r6, 0 + ldrb r0, [r2] + cmp r1, r0 + bge _0801572A + ldr r5, _08015730 @ =gUnknown_02024DEA + movs r4, 0x2 +_08015718: + adds r0, r1, 0 + ands r0, r4 + asrs r0, 1 + adds r0, r5 + strb r3, [r0] + adds r1, 0x2 + ldrb r0, [r2] + cmp r1, r0 + blt _08015718 +_0801572A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08015730: .4byte gUnknown_02024DEA +_08015734: .4byte gUnknown_02024A68 +_08015738: .4byte gBitTable +_0801573C: .4byte gUnknown_02024A6A + thumb_func_end sub_80156DC + + thumb_func_start sub_8015740 +sub_8015740: @ 8015740 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080157A4 + movs r0, 0x2 + ands r0, r5 + lsls r0, 24 + lsrs r0, 25 + mov r12, r0 + ldr r1, _080157B0 @ =gUnknown_02024DEA + adds r0, r1 + strb r4, [r0] + adds r5, r4, 0 + ldr r0, _080157B4 @ =gUnknown_02024A68 + ldrb r2, [r0] + mov r8, r1 + cmp r4, r2 + bge _0801579E + ldr r0, _080157B8 @ =gUnknown_02024C0C + ldrb r7, [r0] + ldr r1, _080157BC @ =gBitTable + adds r6, r2, 0 + ldr r3, _080157C0 @ =gUnknown_02024A6A + adds r2, r1, 0 +_08015782: + ldr r0, [r2] + ands r0, r7 + cmp r0, 0 + bne _08015794 + ldrh r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + orrs r4, r0 +_08015794: + adds r3, 0x4 + adds r2, 0x8 + adds r5, 0x2 + cmp r5, r6 + blt _08015782 +_0801579E: + mov r0, r12 + add r0, r8 + strb r4, [r0] +_080157A4: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080157B0: .4byte gUnknown_02024DEA +_080157B4: .4byte gUnknown_02024A68 +_080157B8: .4byte gUnknown_02024C0C +_080157BC: .4byte gBitTable +_080157C0: .4byte gUnknown_02024A6A + thumb_func_end sub_8015740 + + thumb_func_start sub_80157C4 +sub_80157C4: @ 80157C4 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080157E0 + adds r0, r4, 0 + bl sub_8015740 + b _08015816 +_080157E0: + movs r3, 0x1 + ldr r5, _0801581C @ =gUnknown_02024A68 + ldrb r0, [r5] + cmp r3, r0 + bge _08015816 + ldr r0, _08015820 @ =gUnknown_02024DEA + mov r12, r0 + movs r7, 0x2 + ldr r6, _08015824 @ =gBitTable + ldr r1, _08015828 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r4, r0, r1 +_080157F8: + adds r2, r3, 0 + ands r2, r7 + asrs r2, 1 + add r2, r12 + ldrh r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + adds r3, 0x1 + ldrb r0, [r5] + cmp r3, r0 + blt _080157F8 +_08015816: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801581C: .4byte gUnknown_02024A68 +_08015820: .4byte gUnknown_02024DEA +_08015824: .4byte gBitTable +_08015828: .4byte gUnknown_02024A6A + thumb_func_end sub_80157C4 + + thumb_func_start b_movescr_stack_push +b_movescr_stack_push: @ 801582C + push {r4,lr} + ldr r4, _08015848 @ =0x02017110 + adds r3, r4, 0 + adds r3, 0x20 + ldrb r1, [r3] + adds r2, r1, 0x1 + strb r2, [r3] + lsls r1, 24 + lsrs r1, 22 + adds r1, r4 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08015848: .4byte 0x02017110 + thumb_func_end b_movescr_stack_push + + thumb_func_start b_movescr_stack_push_cursor +b_movescr_stack_push_cursor: @ 801584C + ldr r3, _08015868 @ =0x02017110 + adds r2, r3, 0 + adds r2, 0x20 + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 22 + adds r0, r3 + ldr r1, _0801586C @ =gUnknown_02024C10 + ldr r1, [r1] + str r1, [r0] + bx lr + .align 2, 0 +_08015868: .4byte 0x02017110 +_0801586C: .4byte gUnknown_02024C10 + thumb_func_end b_movescr_stack_push_cursor + + thumb_func_start b_movescr_stack_pop_cursor +b_movescr_stack_pop_cursor: @ 8015870 + ldr r3, _0801588C @ =gUnknown_02024C10 + ldr r2, _08015890 @ =0x02017110 + adds r1, r2, 0 + adds r1, 0x20 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + str r0, [r3] + bx lr + .align 2, 0 +_0801588C: .4byte gUnknown_02024C10 +_08015890: .4byte 0x02017110 + thumb_func_end b_movescr_stack_pop_cursor + + thumb_func_start sub_8015894 +sub_8015894: @ 8015894 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r2, _080159AC @ =gBattleMons + ldr r1, _080159B0 @ =gUnknown_02024260 + ldr r5, _080159B4 @ =gUnknown_02024A60 + ldrb r3, [r5] + lsls r0, r3, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + movs r1, 0x58 + muls r1, r3 + adds r0, r1 + adds r2, 0xC + adds r0, r2 + ldrh r4, [r0] + lsls r0, r3, 1 + ldr r2, _080159B8 @ =0x020160e8 + adds r0, r2 + mov r8, r0 + ldr r1, _080159BC @ =gUnknown_02024CA8 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrh r0, [r0, 0x4] + cmp r0, r4 + bne _080158EE + cmp r4, 0 + beq _080158EE + adds r0, r2, 0 + subs r0, 0xE5 + strb r3, [r0] + ldr r0, _080159C0 @ =gUnknown_02024BE6 + strh r4, [r0] + ldr r1, _080159C4 @ =gUnknown_02024C1C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080159C8 @ =gUnknown_081D9144 + str r1, [r0] + movs r6, 0x1 +_080158EE: + ldr r1, _080159CC @ =gUnknown_02024C34 + ldr r5, _080159B4 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _0801592A + cmp r4, 0xA5 + beq _0801592A + ldr r1, _080159AC @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bge _0801592A + adds r0, r2, 0 + bl b_cancel_multi_turn_move_maybe + ldr r1, _080159C4 @ =gUnknown_02024C1C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080159D0 @ =gUnknown_081D937C + str r1, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0801592A: + ldr r2, _080159BC @ =gUnknown_02024CA8 + ldr r3, _080159B4 @ =gUnknown_02024A60 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x13] + lsls r0, 28 + cmp r0, 0 + beq _08015966 + ldr r0, _080159D4 @ =gBattleMoves + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08015966 + ldr r0, _080159C0 @ =gUnknown_02024BE6 + strh r4, [r0] + ldr r1, _080159C4 @ =gUnknown_02024C1C + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, _080159D8 @ =gUnknown_081D938B + str r1, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_08015966: + ldr r5, _080159B4 @ =gUnknown_02024A60 + ldrb r0, [r5] + adds r1, r4, 0 + bl sub_8015D5C + lsls r0, 24 + cmp r0, 0 + beq _0801598C + ldr r0, _080159C0 @ =gUnknown_02024BE6 + strh r4, [r0] + ldr r1, _080159C4 @ =gUnknown_02024C1C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080159DC @ =gUnknown_081D9464 + str r1, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0801598C: + ldr r1, _080159AC @ =gBattleMons + ldrb r2, [r5] + movs r0, 0x58 + muls r0, r2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _080159E4 + ldr r1, _080159E0 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r3, [r0, 0x7] + b _080159EE + .align 2, 0 +_080159AC: .4byte gBattleMons +_080159B0: .4byte gUnknown_02024260 +_080159B4: .4byte gUnknown_02024A60 +_080159B8: .4byte 0x020160e8 +_080159BC: .4byte gUnknown_02024CA8 +_080159C0: .4byte gUnknown_02024BE6 +_080159C4: .4byte gUnknown_02024C1C +_080159C8: .4byte gUnknown_081D9144 +_080159CC: .4byte gUnknown_02024C34 +_080159D0: .4byte gUnknown_081D937C +_080159D4: .4byte gBattleMoves +_080159D8: .4byte gUnknown_081D938B +_080159DC: .4byte gUnknown_081D9464 +_080159E0: .4byte gEnigmaBerries +_080159E4: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r3, r0, 24 +_080159EE: + ldr r2, _08015A70 @ =gUnknown_02024C0B + ldr r1, _08015A74 @ =gUnknown_02024A60 + ldrb r0, [r1] + strb r0, [r2] + ldr r7, _08015A78 @ =gBattleMons + adds r5, r1, 0 + cmp r3, 0x1D + bne _08015A36 + mov r0, r8 + ldrh r2, [r0] + adds r1, r2, 0 + cmp r1, 0 + beq _08015A36 + ldr r0, _08015A7C @ =0x0000ffff + cmp r1, r0 + beq _08015A36 + cmp r1, r4 + beq _08015A36 + ldr r0, _08015A80 @ =gUnknown_02024BE6 + strh r2, [r0] + ldr r2, _08015A84 @ =gUnknown_02024C04 + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + ldrh r0, [r0, 0x2E] + strh r0, [r2] + ldr r1, _08015A88 @ =gUnknown_02024C1C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08015A8C @ =gUnknown_081D9AC2 + str r1, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_08015A36: + ldr r0, _08015A90 @ =gUnknown_02024260 + ldrb r2, [r5] + lsls r1, r2, 9 + adds r0, 0x2 + adds r1, r0 + movs r0, 0x58 + muls r0, r2 + ldrb r1, [r1] + adds r0, r1 + adds r1, r7, 0 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08015A64 + ldr r1, _08015A88 @ =gUnknown_02024C1C + lsls r0, r2, 2 + adds r0, r1 + ldr r1, _08015A94 @ =gUnknown_081D9369 + str r1, [r0] + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_08015A64: + adds r0, r6, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08015A70: .4byte gUnknown_02024C0B +_08015A74: .4byte gUnknown_02024A60 +_08015A78: .4byte gBattleMons +_08015A7C: .4byte 0x0000ffff +_08015A80: .4byte gUnknown_02024BE6 +_08015A84: .4byte gUnknown_02024C04 +_08015A88: .4byte gUnknown_02024C1C +_08015A8C: .4byte gUnknown_081D9AC2 +_08015A90: .4byte gUnknown_02024260 +_08015A94: .4byte gUnknown_081D9369 + thumb_func_end sub_8015894 + + thumb_func_start sub_8015A98 +sub_8015A98: @ 8015A98 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + lsls r0, 24 + lsrs r7, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + lsls r2, 24 + lsrs r3, r2, 24 + lsls r1, r7, 1 + ldr r0, _08015AD8 @ =0x020160e8 + adds r1, r0 + str r1, [sp, 0x4] + ldr r1, _08015ADC @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r1, r0, r1 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08015AE4 + ldr r2, _08015AE0 @ =gEnigmaBerries + lsls r1, r7, 3 + subs r0, r1, r7 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x7] + str r0, [sp] + b _08015AF6 + .align 2, 0 +_08015AD8: .4byte 0x020160e8 +_08015ADC: .4byte gBattleMons +_08015AE0: .4byte gEnigmaBerries +_08015AE4: + ldrh r0, [r1, 0x2E] + str r3, [sp, 0x14] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, r7, 3 + ldr r3, [sp, 0x14] +_08015AF6: + ldr r0, _08015C70 @ =gUnknown_02024C0B + strb r7, [r0] + movs r0, 0 + mov r9, r0 + lsls r2, r7, 1 + str r2, [sp, 0xC] + ldr r5, _08015C74 @ =gUnknown_02024CA8 + mov r12, r5 + ldr r0, _08015C78 @ =gBattleMons + movs r2, 0x58 + adds r6, r7, 0 + muls r6, r2 + str r6, [sp, 0x8] + ldr r2, _08015C7C @ =gUnknown_02024A8C + adds r5, r6, r2 + movs r6, 0 + str r6, [sp, 0x10] + mov r10, r0 + subs r0, r1, r7 + lsls r0, 2 + mov r8, r0 + ldr r6, _08015C80 @ =gBitTable +_08015B22: + ldrh r0, [r5] + cmp r0, 0 + bne _08015B38 + movs r0, 0x1 + ands r0, r3 + cmp r0, 0 + beq _08015B38 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015B38: + ldr r0, [sp, 0x8] + add r0, r9 + mov r1, r10 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08015B58 + movs r0, 0x2 + ands r0, r3 + cmp r0, 0 + beq _08015B58 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015B58: + mov r1, r8 + add r1, r12 + ldrh r0, [r5] + ldrh r1, [r1, 0x4] + cmp r0, r1 + bne _08015B74 + movs r0, 0x4 + ands r0, r3 + cmp r0, 0 + beq _08015B74 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015B74: + movs r0, 0x58 + adds r2, r7, 0 + muls r2, r0 + ldr r1, [sp, 0x10] + adds r0, r1, r2 + ldr r1, _08015C7C @ =gUnknown_02024A8C + adds r0, r1 + mov r12, r0 + ldr r1, _08015C84 @ =gUnknown_02024C34 + ldr r0, [sp, 0xC] + adds r1, r0, r1 + str r1, [sp, 0x18] + mov r1, r12 + ldrh r1, [r1] + mov r12, r1 + ldr r0, [sp, 0x18] + ldrh r0, [r0] + cmp r12, r0 + bne _08015BB6 + movs r0, 0x8 + ands r0, r3 + cmp r0, 0 + beq _08015BB6 + mov r0, r10 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + bge _08015BB6 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015BB6: + ldr r0, _08015C74 @ =gUnknown_02024CA8 + add r0, r8 + ldrb r0, [r0, 0x13] + lsls r0, 28 + cmp r0, 0 + beq _08015BE4 + movs r0, 0x10 + ands r0, r3 + cmp r0, 0 + beq _08015BE4 + ldr r2, _08015C88 @ =gBattleMoves + ldrh r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08015BE4 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015BE4: + ldrh r1, [r5] + adds r0, r7, 0 + str r3, [sp, 0x14] + bl sub_8015D5C + lsls r0, 24 + ldr r3, [sp, 0x14] + cmp r0, 0 + beq _08015C06 + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + beq _08015C06 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015C06: + ldr r1, _08015C74 @ =gUnknown_02024CA8 + mov r0, r8 + adds r2, r0, r1 + ldrb r0, [r2, 0xE] + lsls r0, 28 + mov r12, r1 + cmp r0, 0 + beq _08015C26 + ldrh r0, [r2, 0x6] + ldrh r1, [r5] + cmp r0, r1 + beq _08015C26 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015C26: + ldr r2, [sp] + cmp r2, 0x1D + bne _08015C48 + ldr r0, [sp, 0x4] + ldrh r1, [r0] + cmp r1, 0 + beq _08015C48 + ldr r0, _08015C8C @ =0x0000ffff + cmp r1, r0 + beq _08015C48 + ldrh r2, [r5] + cmp r1, r2 + beq _08015C48 + ldr r0, [r6] + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_08015C48: + adds r6, 0x4 + adds r5, 0x2 + ldr r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x10] + movs r1, 0x1 + add r9, r1 + mov r2, r9 + cmp r2, 0x3 + bgt _08015C5E + b _08015B22 +_08015C5E: + adds r0, r4, 0 + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08015C70: .4byte gUnknown_02024C0B +_08015C74: .4byte gUnknown_02024CA8 +_08015C78: .4byte gBattleMons +_08015C7C: .4byte gUnknown_02024A8C +_08015C80: .4byte gBitTable +_08015C84: .4byte gUnknown_02024C34 +_08015C88: .4byte gBattleMoves +_08015C8C: .4byte 0x0000ffff + thumb_func_end sub_8015A98 + + thumb_func_start sub_8015C90 +sub_8015C90: @ 8015C90 + push {r4-r6,lr} + ldr r5, _08015CFC @ =gUnknown_02024A60 + ldrb r0, [r5] + movs r1, 0 + movs r2, 0xFF + bl sub_8015A98 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xF + bne _08015D38 + ldr r0, _08015D00 @ =gUnknown_02024D28 + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1] + ldr r1, _08015D04 @ =gUnknown_02024C1C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08015D08 @ =gUnknown_081D9365 + str r1, [r0] + ldr r0, _08015D0C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08015D14 + ldrb r0, [r5] + bl battle_get_per_side_status + adds r4, r0, 0 + bl Random + movs r1, 0x1 + eors r4, r1 + movs r1, 0x2 + ands r1, r0 + orrs r4, r1 + lsls r4, 24 + lsrs r4, 24 + adds r0, r4, 0 + bl battle_get_side_with_given_state + ldr r2, _08015D10 @ =gUnknown_02024260 + ldrb r1, [r5] + lsls r1, 9 + adds r2, 0x3 + adds r1, r2 + b _08015D48 + .align 2, 0 +_08015CFC: .4byte gUnknown_02024A60 +_08015D00: .4byte gUnknown_02024D28 +_08015D04: .4byte gUnknown_02024C1C +_08015D08: .4byte gUnknown_081D9365 +_08015D0C: .4byte gUnknown_020239F8 +_08015D10: .4byte gUnknown_02024260 +_08015D14: + ldrb r0, [r5] + bl battle_get_per_side_status + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r2, _08015D34 @ =gUnknown_02024260 + ldrb r1, [r5] + lsls r1, 9 + adds r2, 0x3 + adds r1, r2 + b _08015D48 + .align 2, 0 +_08015D34: .4byte gUnknown_02024260 +_08015D38: + ldr r0, _08015D58 @ =gUnknown_02024D28 + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x5 + negs r0, r0 + ands r0, r2 +_08015D48: + strb r0, [r1] + movs r0, 0 + cmp r6, 0xF + bne _08015D52 + movs r0, 0x1 +_08015D52: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_08015D58: .4byte gUnknown_02024D28 + thumb_func_end sub_8015C90 + + thumb_func_start sub_8015D5C +sub_8015D5C: @ 8015D5C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + movs r6, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + movs r4, 0 + ldr r0, _08015DF0 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r6, r0 + bge _08015DE0 + ldr r7, _08015DF4 @ =gUnknown_02024A8C + mov r8, r7 +_08015D86: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + adds r3, r4, 0x1 + cmp r9, r0 + beq _08015DD6 + ldr r1, _08015DF8 @ =gUnknown_02024C98 + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _08015DD6 + movs r2, 0 + movs r0, 0x58 + adds r1, r4, 0 + muls r1, r0 + adds r0, r1, r7 + ldrh r0, [r0] + cmp r5, r0 + beq _08015DCC + mov r4, r8 + adds r0, r1, r4 +_08015DBE: + adds r0, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + bgt _08015DD6 + ldrh r1, [r0] + cmp r5, r1 + bne _08015DBE +_08015DCC: + cmp r2, 0x3 + bgt _08015DD6 + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_08015DD6: + adds r4, r3, 0 + ldr r0, _08015DF0 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08015D86 +_08015DE0: + adds r0, r6, 0 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08015DF0: .4byte gUnknown_02024A68 +_08015DF4: .4byte gUnknown_02024A8C +_08015DF8: .4byte gUnknown_02024C98 + thumb_func_end sub_8015D5C + + thumb_func_start sub_8015DFC +sub_8015DFC: @ 8015DFC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0 + mov r9, r0 + ldr r1, _08015EA0 @ =gUnknown_02024C07 + mov r2, r9 + strb r2, [r1] + ldr r0, _08015EA4 @ =gUnknown_02024A68 + ldrb r4, [r0] + adds r6, r1, 0 + mov r10, r0 + ldr r7, _08015EA8 @ =gUnknown_02024C08 + ldr r3, _08015EAC @ =0x02000000 + mov r12, r3 + cmp r9, r4 + bcs _08015E50 + ldr r2, _08015EB0 @ =gUnknown_02024C0C + ldrb r1, [r2] + ldr r5, _08015EB4 @ =gBitTable + ldr r0, [r5] + ands r1, r0 + cmp r1, 0 + beq _08015E50 + adds r3, r6, 0 +_08015E32: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcs _08015E50 + ldrb r0, [r2] + ldrb r1, [r6] + lsls r1, 2 + adds r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _08015E32 +_08015E50: + movs r0, 0 + strb r0, [r7] + mov r0, r10 + ldrb r4, [r0] + cmp r4, 0 + beq _08015E8A + ldr r2, _08015EB0 @ =gUnknown_02024C0C + ldrb r1, [r2] + ldr r5, _08015EB4 @ =gBitTable + ldr r0, [r5] + ands r1, r0 + cmp r1, 0 + beq _08015E8A + adds r3, r7, 0 +_08015E6C: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcs _08015E8A + ldrb r0, [r2] + ldrb r1, [r7] + lsls r1, 2 + adds r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _08015E6C +_08015E8A: + ldr r0, _08015EB8 @ =0x0001600e + add r0, r12 + ldrb r0, [r0] + cmp r0, 0xA + bls _08015E96 + b _0801652A +_08015E96: + lsls r0, 2 + ldr r1, _08015EBC @ =_08015EC0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08015EA0: .4byte gUnknown_02024C07 +_08015EA4: .4byte gUnknown_02024A68 +_08015EA8: .4byte gUnknown_02024C08 +_08015EAC: .4byte 0x02000000 +_08015EB0: .4byte gUnknown_02024C0C +_08015EB4: .4byte gBitTable +_08015EB8: .4byte 0x0001600e +_08015EBC: .4byte _08015EC0 + .align 2, 0 +_08015EC0: + .4byte _08015EEC + .4byte _08015F74 + .4byte _08016034 + .4byte _080160F4 + .4byte _080161C8 + .4byte _08016274 + .4byte _08016324 + .4byte _080163A8 + .4byte _08016420 + .4byte _08016494 + .4byte _08016520 +_08015EEC: + movs r5, 0 + ldr r1, _08015F0C @ =gUnknown_02024A68 + mov r10, r1 + ldrb r2, [r1] + cmp r5, r2 + bge _08015F06 + ldr r2, _08015F10 @ =gUnknown_02024A7A +_08015EFA: + adds r0, r5, r2 + strb r5, [r0] + adds r5, 0x1 + ldrb r3, [r1] + cmp r5, r3 + blt _08015EFA +_08015F06: + movs r5, 0 + b _08015F54 + .align 2, 0 +_08015F0C: .4byte gUnknown_02024A68 +_08015F10: .4byte gUnknown_02024A7A +_08015F14: + adds r4, r5, 0x1 + adds r6, r4, 0 + ldrb r1, [r1] + cmp r6, r1 + bge _08015F52 + ldr r7, _08016004 @ =gUnknown_02024A7A + ldr r0, _08016008 @ =gUnknown_02024A68 + mov r10, r0 + lsls r1, r5, 24 + mov r8, r1 +_08015F28: + adds r0, r5, r7 + ldrb r0, [r0] + adds r1, r4, r7 + ldrb r1, [r1] + movs r2, 0 + bl b_first_side + lsls r0, 24 + cmp r0, 0 + beq _08015F48 + lsls r1, r4, 24 + lsrs r1, 24 + mov r2, r8 + lsrs r0, r2, 24 + bl sub_8012FBC +_08015F48: + adds r4, 0x1 + ldr r0, _08016008 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08015F28 +_08015F52: + adds r5, r6, 0 +_08015F54: + mov r1, r10 + ldrb r0, [r1] + subs r0, 0x1 + cmp r5, r0 + blt _08015F14 + ldr r1, _0801600C @ =0x02000000 + ldr r3, _08016010 @ =0x0001600e + adds r2, r1, r3 + ldrb r0, [r2] + adds r0, 0x1 + movs r3, 0 + strb r0, [r2] + ldr r2, _08016014 @ =0x000160fc + adds r0, r1, r2 + strb r3, [r0] + mov r12, r1 +_08015F74: + ldr r1, _08016014 @ =0x000160fc + add r1, r12 + ldrb r0, [r1] + cmp r0, 0x1 + bls _08015F80 + b _08016236 +_08015F80: + ldr r3, _08016018 @ =gUnknown_02024A60 + mov r8, r3 + adds r6, r1, 0 + movs r7, 0 + ldr r5, _0801601C @ =gUnknown_030041C0 +_08015F8A: + ldr r0, _08016020 @ =gUnknown_02024C07 + ldrb r4, [r6] + strb r4, [r0] + mov r0, r8 + strb r4, [r0] + ldr r0, _08016024 @ =gUnknown_02024C7A + lsls r2, r4, 1 + adds r3, r2, r0 + ldrh r1, [r3] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08015FE8 + ldr r0, _08016028 @ =gUnknown_02024C80 + adds r1, r2, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + movs r4, 0xFF + lsls r0, 24 + cmp r0, 0 + bne _08015FE8 + ldrh r0, [r3] + ldr r2, _0801602C @ =0x0000fffe + adds r1, r2, 0 + ands r0, r1 + strh r0, [r3] + ldr r0, _08016030 @ =gUnknown_081D9030 + bl b_call_bc_move_exec + movs r0, 0xFD + strb r0, [r5] + movs r0, 0x2 + strb r0, [r5, 0x1] + movs r0, 0x73 + strb r0, [r5, 0x2] + strb r7, [r5, 0x3] + ldrb r0, [r5, 0x4] + orrs r0, r4 + strb r0, [r5, 0x4] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08015FE8: + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + ldr r3, _0801600C @ =0x02000000 + mov r12, r3 + mov r1, r9 + cmp r1, 0 + beq _08015FFA + b _08016532 +_08015FFA: + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _08015F8A + b _08016236 + .align 2, 0 +_08016004: .4byte gUnknown_02024A7A +_08016008: .4byte gUnknown_02024A68 +_0801600C: .4byte 0x02000000 +_08016010: .4byte 0x0001600e +_08016014: .4byte 0x000160fc +_08016018: .4byte gUnknown_02024A60 +_0801601C: .4byte gUnknown_030041C0 +_08016020: .4byte gUnknown_02024C07 +_08016024: .4byte gUnknown_02024C7A +_08016028: .4byte gUnknown_02024C80 +_0801602C: .4byte 0x0000fffe +_08016030: .4byte gUnknown_081D9030 +_08016034: + ldr r1, _080160CC @ =0x000160fc + add r1, r12 + ldrb r0, [r1] + cmp r0, 0x1 + bls _08016040 + b _08016182 +_08016040: + adds r7, r1, 0 + movs r3, 0x2 + mov r10, r3 + movs r0, 0 + mov r8, r0 + ldr r5, _080160D0 @ =gUnknown_030041C0 +_0801604C: + ldr r0, _080160D4 @ =gUnknown_02024C07 + ldrb r4, [r7] + strb r4, [r0] + ldr r1, _080160D8 @ =gUnknown_02024A60 + strb r4, [r1] + ldr r0, _080160DC @ =gUnknown_02024C7A + lsls r2, r4, 1 + adds r3, r2, r0 + ldrh r1, [r3] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080160B0 + ldr r0, _080160E0 @ =gUnknown_02024C80 + adds r1, r2, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + subs r0, 0x1 + strb r0, [r1, 0x1] + movs r6, 0xFF + lsls r0, 24 + cmp r0, 0 + bne _080160B0 + ldrh r0, [r3] + ldr r2, _080160E4 @ =0x0000fffd + adds r1, r2, 0 + ands r0, r1 + strh r0, [r3] + ldr r0, _080160E8 @ =gUnknown_081D9030 + bl b_call_bc_move_exec + ldr r0, _080160EC @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + movs r0, 0xFD + strb r0, [r5] + mov r3, r10 + strb r3, [r5, 0x1] + movs r0, 0x71 + strb r0, [r5, 0x2] + mov r0, r8 + strb r0, [r5, 0x3] + ldrb r0, [r5, 0x4] + orrs r0, r6 + strb r0, [r5, 0x4] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080160B0: + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + ldr r1, _080160F0 @ =0x02000000 + mov r12, r1 + mov r2, r9 + cmp r2, 0 + beq _080160C2 + b _08016532 +_080160C2: + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0801604C + b _08016182 + .align 2, 0 +_080160CC: .4byte 0x000160fc +_080160D0: .4byte gUnknown_030041C0 +_080160D4: .4byte gUnknown_02024C07 +_080160D8: .4byte gUnknown_02024A60 +_080160DC: .4byte gUnknown_02024C7A +_080160E0: .4byte gUnknown_02024C80 +_080160E4: .4byte 0x0000fffd +_080160E8: .4byte gUnknown_081D9030 +_080160EC: .4byte gUnknown_02024D1E +_080160F0: .4byte 0x02000000 +_080160F4: + ldr r1, _0801619C @ =0x000160fc + add r1, r12 + ldrb r0, [r1] + cmp r0, 0x1 + bhi _08016182 + ldr r0, _080161A0 @ =gUnknown_02024A60 + mov r10, r0 + adds r7, r1, 0 + movs r1, 0 + mov r8, r1 + ldr r5, _080161A4 @ =gUnknown_030041C0 +_0801610A: + ldr r0, _080161A8 @ =gUnknown_02024C07 + ldrb r4, [r7] + strb r4, [r0] + mov r2, r10 + strb r4, [r2] + ldr r1, _080161AC @ =gUnknown_02024C80 + lsls r3, r4, 1 + adds r0, r3, r4 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x2] + cmp r0, 0 + beq _08016168 + subs r0, 0x1 + strb r0, [r1, 0x2] + movs r6, 0xFF + lsls r0, 24 + cmp r0, 0 + bne _08016168 + ldr r2, _080161B0 @ =gUnknown_02024C7A + adds r2, r3, r2 + ldrh r0, [r2] + ldr r3, _080161B4 @ =0x0000feff + adds r1, r3, 0 + ands r0, r1 + strh r0, [r2] + ldr r0, _080161B8 @ =gUnknown_081D9030 + bl b_call_bc_move_exec + ldr r0, _080161BC @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + movs r0, 0xFD + strb r0, [r5] + movs r0, 0x2 + strb r0, [r5, 0x1] + movs r0, 0x36 + strb r0, [r5, 0x2] + mov r0, r8 + strb r0, [r5, 0x3] + ldrb r0, [r5, 0x4] + orrs r0, r6 + strb r0, [r5, 0x4] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016168: + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + ldr r1, _080161C0 @ =0x02000000 + mov r12, r1 + mov r2, r9 + cmp r2, 0 + beq _0801617A + b _08016532 +_0801617A: + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _0801610A +_08016182: + mov r3, r9 + cmp r3, 0 + beq _0801618A + b _08016532 +_0801618A: + ldr r0, _080161C4 @ =0x0001600e + add r0, r12 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r0, _0801619C @ =0x000160fc + add r0, r12 + strb r3, [r0] + b _0801652A + .align 2, 0 +_0801619C: .4byte 0x000160fc +_080161A0: .4byte gUnknown_02024A60 +_080161A4: .4byte gUnknown_030041C0 +_080161A8: .4byte gUnknown_02024C07 +_080161AC: .4byte gUnknown_02024C80 +_080161B0: .4byte gUnknown_02024C7A +_080161B4: .4byte 0x0000feff +_080161B8: .4byte gUnknown_081D9030 +_080161BC: .4byte gUnknown_02024D1E +_080161C0: .4byte 0x02000000 +_080161C4: .4byte 0x0001600e +_080161C8: + ldr r1, _08016250 @ =0x000160fc + add r1, r12 + ldrb r0, [r1] + cmp r0, 0x1 + bhi _08016236 + ldr r7, _08016254 @ =gUnknown_02024A60 + adds r5, r1, 0 + ldr r6, _08016258 @ =gUnknown_02024C07 +_080161D8: + ldrb r4, [r5] + strb r4, [r6] + strb r4, [r7] + ldr r0, _0801625C @ =gUnknown_02024C7A + lsls r2, r4, 1 + adds r3, r2, r0 + ldrh r1, [r3] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0801621C + ldr r0, _08016260 @ =gUnknown_02024C80 + adds r1, r2, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x7] + subs r0, 0x1 + strb r0, [r1, 0x7] + lsls r0, 24 + cmp r0, 0 + bne _0801621C + ldrh r0, [r3] + ldr r2, _08016264 @ =0x0000ffdf + adds r1, r2, 0 + ands r0, r1 + strh r0, [r3] + ldr r0, _08016268 @ =gUnknown_081D9041 + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0801621C: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ldr r3, _0801626C @ =0x02000000 + mov r12, r3 + mov r1, r9 + cmp r1, 0 + beq _0801622E + b _08016532 +_0801622E: + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _080161D8 +_08016236: + mov r2, r9 + cmp r2, 0 + beq _0801623E + b _08016532 +_0801623E: + ldr r0, _08016270 @ =0x0001600e + add r0, r12 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r0, _08016250 @ =0x000160fc + add r0, r12 + strb r2, [r0] + b _0801652A + .align 2, 0 +_08016250: .4byte 0x000160fc +_08016254: .4byte gUnknown_02024A60 +_08016258: .4byte gUnknown_02024C07 +_0801625C: .4byte gUnknown_02024C7A +_08016260: .4byte gUnknown_02024C80 +_08016264: .4byte 0x0000ffdf +_08016268: .4byte gUnknown_081D9041 +_0801626C: .4byte 0x02000000 +_08016270: .4byte 0x0001600e +_08016274: + ldr r2, _080162FC @ =0x000160fc + add r2, r12 + ldr r1, _08016300 @ =gUnknown_02024A68 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bcs _080162E8 + ldr r5, _08016304 @ =gUnknown_02024A60 + adds r4, r2, 0 + ldr r6, _08016308 @ =gUnknown_02024DDC +_08016288: + ldr r1, _0801630C @ =gUnknown_02024A7A + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r5] + ldrb r0, [r5] + adds r1, r0, r6 + ldrb r0, [r1] + cmp r0, 0 + beq _080162CA + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _080162CA + ldr r1, _08016310 @ =gBattleMons + ldrb r2, [r5] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _080162CA + ldr r0, _08016314 @ =gUnknown_02024C08 + strb r2, [r0] + ldr r0, _08016318 @ =gUnknown_081D939A + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080162CA: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r3, _0801631C @ =0x02000000 + mov r12, r3 + mov r1, r9 + cmp r1, 0 + beq _080162DC + b _08016532 +_080162DC: + ldr r1, _08016300 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08016288 +_080162E8: + mov r2, r9 + cmp r2, 0 + beq _080162F0 + b _08016532 +_080162F0: + ldr r1, _08016320 @ =0x0001600e + add r1, r12 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0801652A + .align 2, 0 +_080162FC: .4byte 0x000160fc +_08016300: .4byte gUnknown_02024A68 +_08016304: .4byte gUnknown_02024A60 +_08016308: .4byte gUnknown_02024DDC +_0801630C: .4byte gUnknown_02024A7A +_08016310: .4byte gBattleMons +_08016314: .4byte gUnknown_02024C08 +_08016318: .4byte gUnknown_081D939A +_0801631C: .4byte 0x02000000 +_08016320: .4byte 0x0001600e +_08016324: + ldr r3, _0801635C @ =word_2024DB8 + ldrh r2, [r3] + movs r0, 0x7 + ands r0, r2 + cmp r0, 0 + bne _08016332 + b _080164F8 +_08016332: + movs r0, 0x4 + ands r0, r2 + cmp r0, 0 + bne _0801637E + ldr r1, _08016360 @ =gUnknown_02024DBC + adds r1, 0x28 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _08016370 + ldr r0, _08016364 @ =0x0000fffe + ands r0, r2 + ldr r1, _08016368 @ =0x0000fffd + ands r0, r1 + strh r0, [r3] + ldr r1, _0801636C @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + b _0801639C + .align 2, 0 +_0801635C: .4byte word_2024DB8 +_08016360: .4byte gUnknown_02024DBC +_08016364: .4byte 0x0000fffe +_08016368: .4byte 0x0000fffd +_0801636C: .4byte gUnknown_02024D1E +_08016370: + movs r0, 0x2 + ands r0, r2 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + bne _0801638A + b _08016398 +_0801637E: + movs r0, 0x2 + ands r0, r2 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _08016398 +_0801638A: + ldr r1, _08016394 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _0801639C + .align 2, 0 +_08016394: .4byte gUnknown_02024D1E +_08016398: + ldr r0, _080163A0 @ =gUnknown_02024D1E + strb r1, [r0, 0x5] +_0801639C: + ldr r0, _080163A4 @ =gUnknown_081D8F62 + b _080164EA + .align 2, 0 +_080163A0: .4byte gUnknown_02024D1E +_080163A4: .4byte gUnknown_081D8F62 +_080163A8: + ldr r3, _080163DC @ =word_2024DB8 + ldrh r2, [r3] + movs r0, 0x18 + ands r0, r2 + cmp r0, 0 + bne _080163B6 + b _080164F8 +_080163B6: + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _080163F0 + ldr r1, _080163E0 @ =gUnknown_02024DBC + adds r1, 0x28 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _080163F0 + ldr r0, _080163E4 @ =0x0000fff7 + ands r0, r2 + strh r0, [r3] + ldr r1, _080163E8 @ =gUnknown_02024C10 + ldr r0, _080163EC @ =gUnknown_081D8FFF + b _080163F4 + .align 2, 0 +_080163DC: .4byte word_2024DB8 +_080163E0: .4byte gUnknown_02024DBC +_080163E4: .4byte 0x0000fff7 +_080163E8: .4byte gUnknown_02024C10 +_080163EC: .4byte gUnknown_081D8FFF +_080163F0: + ldr r1, _0801640C @ =gUnknown_02024C10 + ldr r0, _08016410 @ =gUnknown_081D8F7D +_080163F4: + str r0, [r1] + adds r3, r1, 0 + ldr r1, _08016414 @ =0x02000000 + ldr r0, _08016418 @ =0x000160a4 + adds r1, r0 + movs r2, 0 + movs r0, 0xC + strb r0, [r1] + ldr r0, _0801641C @ =gUnknown_02024D1E + strb r2, [r0, 0x5] + b _080164E8 + .align 2, 0 +_0801640C: .4byte gUnknown_02024C10 +_08016410: .4byte gUnknown_081D8F7D +_08016414: .4byte 0x02000000 +_08016418: .4byte 0x000160a4 +_0801641C: .4byte gUnknown_02024D1E +_08016420: + ldr r3, _08016450 @ =word_2024DB8 + ldrh r2, [r3] + movs r0, 0x60 + ands r0, r2 + cmp r0, 0 + beq _0801647C + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + bne _08016464 + ldr r1, _08016454 @ =gUnknown_02024DBC + adds r1, 0x28 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _08016464 + ldr r0, _08016458 @ =0x0000ffdf + ands r0, r2 + strh r0, [r3] + ldr r1, _0801645C @ =gUnknown_02024C10 + ldr r0, _08016460 @ =gUnknown_081D9016 + b _08016468 + .align 2, 0 +_08016450: .4byte word_2024DB8 +_08016454: .4byte gUnknown_02024DBC +_08016458: .4byte 0x0000ffdf +_0801645C: .4byte gUnknown_02024C10 +_08016460: .4byte gUnknown_081D9016 +_08016464: + ldr r1, _08016484 @ =gUnknown_02024C10 + ldr r0, _08016488 @ =gUnknown_081D9008 +_08016468: + str r0, [r1] + adds r3, r1, 0 + ldr r0, [r3] + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0801647C: + ldr r2, _0801648C @ =0x02000000 + ldr r0, _08016490 @ =0x0001600e + adds r1, r2, r0 + b _080164FE + .align 2, 0 +_08016484: .4byte gUnknown_02024C10 +_08016488: .4byte gUnknown_081D9008 +_0801648C: .4byte 0x02000000 +_08016490: .4byte 0x0001600e +_08016494: + ldr r3, _080164BC @ =word_2024DB8 + ldrh r2, [r3] + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _080164F8 + ldr r1, _080164C0 @ =gUnknown_02024DBC + adds r1, 0x28 + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _080164D0 + ldr r0, _080164C4 @ =0x0000ff7f + ands r0, r2 + strh r0, [r3] + ldr r1, _080164C8 @ =gUnknown_02024C10 + ldr r0, _080164CC @ =gUnknown_081D8FFF + b _080164D4 + .align 2, 0 +_080164BC: .4byte word_2024DB8 +_080164C0: .4byte gUnknown_02024DBC +_080164C4: .4byte 0x0000ff7f +_080164C8: .4byte gUnknown_02024C10 +_080164CC: .4byte gUnknown_081D8FFF +_080164D0: + ldr r1, _08016508 @ =gUnknown_02024C10 + ldr r0, _0801650C @ =gUnknown_081D8F7D +_080164D4: + str r0, [r1] + adds r3, r1, 0 + ldr r0, _08016510 @ =0x02000000 + ldr r1, _08016514 @ =0x000160a4 + adds r0, r1 + movs r1, 0xD + strb r1, [r0] + ldr r1, _08016518 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] +_080164E8: + ldr r0, [r3] +_080164EA: + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080164F8: + ldr r2, _08016510 @ =0x02000000 + ldr r3, _0801651C @ =0x0001600e + adds r1, r2, r3 +_080164FE: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r12, r2 + b _0801652A + .align 2, 0 +_08016508: .4byte gUnknown_02024C10 +_0801650C: .4byte gUnknown_081D8F7D +_08016510: .4byte 0x02000000 +_08016514: .4byte 0x000160a4 +_08016518: .4byte gUnknown_02024D1E +_0801651C: .4byte 0x0001600e +_08016520: + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0801652A: + mov r0, r9 + cmp r0, 0 + bne _08016532 + b _08015E8A +_08016532: + ldr r0, _08016550 @ =gUnknown_030042D4 + ldr r1, [r0] + ldr r0, _08016554 @ =sub_8011E8C + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08016550: .4byte gUnknown_030042D4 +_08016554: .4byte sub_8011E8C + thumb_func_end sub_8015DFC + + thumb_func_start sub_8016558 +sub_8016558: @ 8016558 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + mov r9, r0 + ldr r2, _08016578 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0801657C @ =0x01000020 + orrs r0, r1 + str r0, [r2] + bl _08017088 + .align 2, 0 +_08016578: .4byte gUnknown_02024C6C +_0801657C: .4byte 0x01000020 +_08016580: + ldr r3, _080165B4 @ =gUnknown_02024A60 + ldr r4, _080165B8 @ =gUnknown_02024C07 + ldr r1, _080165BC @ =gUnknown_02024A7A + adds r5, r7, r2 + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r4] + strb r0, [r3] + ldr r0, _080165C0 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _080165C4 @ =gBitTable + ldrb r0, [r3] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + adds r6, r3, 0 + cmp r1, 0 + beq _080165C8 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + bl _08017088 + .align 2, 0 +_080165B4: .4byte gUnknown_02024A60 +_080165B8: .4byte gUnknown_02024C07 +_080165BC: .4byte gUnknown_02024A7A +_080165C0: .4byte gUnknown_02024C0C +_080165C4: .4byte gBitTable +_080165C8: + movs r5, 0xB0 + lsls r5, 9 + adds r0, r7, r5 + ldrb r0, [r0] + cmp r0, 0x13 + bls _080165D8 + bl _08017078 +_080165D8: + lsls r0, 2 + ldr r1, _080165E4 @ =_080165E8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080165E4: .4byte _080165E8 + .align 2, 0 +_080165E8: + .4byte _08016638 + .4byte _080166A8 + .4byte _080166D8 + .4byte _08016730 + .4byte _080167C8 + .4byte _08016828 + .4byte _080168C0 + .4byte _0801691C + .4byte _0801697C + .4byte _080169DC + .4byte _08016B78 + .4byte _08016CA0 + .4byte _08016D58 + .4byte _08016E30 + .4byte _08016EFC + .4byte _08016F20 + .4byte _08016F6C + .4byte _08016F9C + .4byte _08016704 + .4byte _08017064 +_08016638: + ldr r1, _08016694 @ =gUnknown_02024C98 + ldrb r3, [r6] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _08016686 + ldr r0, _08016698 @ =gBattleMons + movs r1, 0x58 + muls r1, r3 + adds r0, r1, r0 + ldrh r2, [r0, 0x28] + ldrh r7, [r0, 0x2C] + cmp r2, r7 + beq _08016686 + cmp r2, 0 + beq _08016686 + ldr r1, _0801669C @ =gUnknown_02024BEC + ldrh r0, [r0, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08016670 + movs r0, 0x1 + str r0, [r1] +_08016670: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldr r0, _080166A0 @ =gUnknown_081D93D1 + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016686: + ldr r1, _080166A4 @ =0x02000000 + movs r0, 0xB0 + lsls r0, 9 + adds r1, r0 + bl _08017072 + .align 2, 0 +_08016694: .4byte gUnknown_02024C98 +_08016698: .4byte gBattleMons +_0801669C: .4byte gUnknown_02024BEC +_080166A0: .4byte gUnknown_081D93D1 +_080166A4: .4byte 0x02000000 +_080166A8: + ldrb r1, [r6] + movs r0, 0 + str r0, [sp] + movs r0, 0x1 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _080166C8 + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080166C8: + ldr r1, _080166D4 @ =0x02000000 + movs r2, 0xB0 + lsls r2, 9 + adds r1, r2 + bl _08017072 + .align 2, 0 +_080166D4: .4byte 0x02000000 +_080166D8: + ldrb r1, [r6] + movs r0, 0x1 + movs r2, 0 + bl sub_801A02C + lsls r0, 24 + cmp r0, 0 + beq _080166F2 + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080166F2: + ldr r1, _08016700 @ =0x02000000 + movs r3, 0xB0 + lsls r3, 9 + adds r1, r3 + bl _08017072 + .align 2, 0 +_08016700: .4byte 0x02000000 +_08016704: + ldrb r1, [r6] + movs r0, 0x1 + movs r2, 0x1 + bl sub_801A02C + lsls r0, 24 + cmp r0, 0 + beq _0801671E + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0801671E: + ldr r1, _0801672C @ =0x02000000 + movs r5, 0xB0 + lsls r5, 9 + adds r1, r5 + bl _08017072 + .align 2, 0 +_0801672C: .4byte 0x02000000 +_08016730: + ldr r0, _080167A8 @ =gUnknown_02024C98 + ldrb r2, [r6] + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801679C + ldr r3, _080167AC @ =gBattleMons + movs r5, 0x3 + ands r5, r1 + movs r1, 0x58 + adds r0, r5, 0 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801679C + adds r0, r2, 0 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801679C + ldr r0, _080167B0 @ =gUnknown_02024C08 + strb r5, [r0] + ldr r2, _080167B4 @ =gUnknown_02024BEC + ldrb r0, [r6] + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x2C] + lsrs r0, 3 + str r0, [r2] + cmp r0, 0 + bne _0801677C + movs r0, 0x1 + str r0, [r2] +_0801677C: + ldr r1, _080167B8 @ =0x02000000 + ldr r7, _080167BC @ =0x000160a4 + adds r0, r1, r7 + strb r5, [r0] + ldrb r0, [r4] + ldr r2, _080167C0 @ =0x000160a5 + adds r1, r2 + strb r0, [r1] + ldr r0, _080167C4 @ =gUnknown_081D904B + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0801679C: + ldr r1, _080167B8 @ =0x02000000 + movs r3, 0xB0 + lsls r3, 9 + adds r1, r3 + bl _08017072 + .align 2, 0 +_080167A8: .4byte gUnknown_02024C98 +_080167AC: .4byte gBattleMons +_080167B0: .4byte gUnknown_02024C08 +_080167B4: .4byte gUnknown_02024BEC +_080167B8: .4byte 0x02000000 +_080167BC: .4byte 0x000160a4 +_080167C0: .4byte 0x000160a5 +_080167C4: .4byte gUnknown_081D904B +_080167C8: + ldr r2, _08016818 @ =gBattleMons + ldrb r1, [r6] + movs r0, 0x58 + adds r3, r1, 0 + muls r3, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0801680A + adds r1, r3, r2 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _0801680A + ldr r2, _0801681C @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + lsrs r0, 3 + str r0, [r2] + cmp r0, 0 + bne _080167FA + movs r0, 0x1 + str r0, [r2] +_080167FA: + ldr r0, _08016820 @ =gUnknown_081D9518 + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0801680A: + ldr r1, _08016824 @ =0x02000000 + movs r5, 0xB0 + lsls r5, 9 + adds r1, r5 + bl _08017072 + .align 2, 0 +_08016818: .4byte gBattleMons +_0801681C: .4byte gUnknown_02024BEC +_08016820: .4byte gUnknown_081D9518 +_08016824: .4byte 0x02000000 +_08016828: + ldr r4, _080168B0 @ =gBattleMons + ldrb r0, [r6] + movs r7, 0x58 + mov r8, r7 + mov r2, r8 + muls r2, r0 + adds r3, r4, 0 + adds r3, 0x4C + adds r0, r2, r3 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080168A2 + adds r1, r2, r4 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _080168A2 + ldr r5, _080168B4 @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + lsrs r0, 4 + str r0, [r5] + cmp r0, 0 + bne _0801685C + movs r0, 0x1 + str r0, [r5] +_0801685C: + ldrb r0, [r6] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r2, r0, r3 + ldr r1, [r2] + movs r4, 0xF0 + lsls r4, 4 + adds r0, r1, 0 + ands r0, r4 + cmp r0, r4 + beq _0801687C + movs r7, 0x80 + lsls r7, 1 + adds r0, r1, r7 + str r0, [r2] +_0801687C: + ldrb r0, [r6] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r3 + ldr r0, [r0] + ands r0, r4 + lsrs r0, 8 + ldr r1, [r5] + muls r0, r1 + str r0, [r5] + ldr r0, _080168B8 @ =gUnknown_081D9518 + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080168A2: + ldr r1, _080168BC @ =0x02000000 + movs r2, 0xB0 + lsls r2, 9 + adds r1, r2 + bl _08017072 + .align 2, 0 +_080168B0: .4byte gBattleMons +_080168B4: .4byte gUnknown_02024BEC +_080168B8: .4byte gUnknown_081D9518 +_080168BC: .4byte 0x02000000 +_080168C0: + ldr r2, _0801690C @ =gBattleMons + ldrb r1, [r6] + movs r0, 0x58 + adds r3, r1, 0 + muls r3, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08016902 + adds r1, r3, r2 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _08016902 + ldr r2, _08016910 @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + lsrs r0, 3 + str r0, [r2] + cmp r0, 0 + bne _080168F2 + movs r0, 0x1 + str r0, [r2] +_080168F2: + ldr r0, _08016914 @ =gUnknown_081D953A + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016902: + ldr r1, _08016918 @ =0x02000000 + movs r3, 0xB0 + lsls r3, 9 + adds r1, r3 + b _08017072 + .align 2, 0 +_0801690C: .4byte gBattleMons +_08016910: .4byte gUnknown_02024BEC +_08016914: .4byte gUnknown_081D953A +_08016918: .4byte 0x02000000 +_0801691C: + ldr r2, _0801696C @ =gBattleMons + ldrb r1, [r6] + movs r0, 0x58 + adds r3, r1, 0 + muls r3, r0 + adds r0, r2, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 20 + ands r0, r1 + cmp r0, 0 + beq _08016960 + adds r1, r3, r2 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _08016960 + ldr r2, _08016970 @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + lsrs r0, 2 + str r0, [r2] + cmp r0, 0 + bne _08016950 + movs r0, 0x1 + str r0, [r2] +_08016950: + ldr r0, _08016974 @ =gUnknown_081D9613 + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016960: + ldr r1, _08016978 @ =0x02000000 + movs r5, 0xB0 + lsls r5, 9 + adds r1, r5 + b _08017072 + .align 2, 0 +_0801696C: .4byte gBattleMons +_08016970: .4byte gUnknown_02024BEC +_08016974: .4byte gUnknown_081D9613 +_08016978: .4byte 0x02000000 +_0801697C: + ldr r2, _080169CC @ =gBattleMons + ldrb r1, [r6] + movs r0, 0x58 + adds r3, r1, 0 + muls r3, r0 + adds r0, r2, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 21 + ands r0, r1 + cmp r0, 0 + beq _080169C0 + adds r1, r3, r2 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _080169C0 + ldr r2, _080169D0 @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + lsrs r0, 2 + str r0, [r2] + cmp r0, 0 + bne _080169B0 + movs r0, 0x1 + str r0, [r2] +_080169B0: + ldr r0, _080169D4 @ =gUnknown_081D9624 + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_080169C0: + ldr r1, _080169D8 @ =0x02000000 + movs r7, 0xB0 + lsls r7, 9 + adds r1, r7 + b _08017072 + .align 2, 0 +_080169CC: .4byte gBattleMons +_080169D0: .4byte gUnknown_02024BEC +_080169D4: .4byte gUnknown_081D9624 +_080169D8: .4byte 0x02000000 +_080169DC: + ldr r0, _08016A8C @ =gBattleMons + mov r8, r0 + ldrb r0, [r6] + movs r1, 0x58 + mov r10, r1 + mov r1, r10 + muls r1, r0 + mov r5, r8 + adds r5, 0x50 + adds r3, r1, r5 + ldr r2, [r3] + movs r4, 0xE0 + lsls r4, 8 + adds r0, r2, 0 + ands r0, r4 + cmp r0, 0 + beq _08016AF6 + mov r7, r8 + adds r0, r1, r7 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08016AF6 + ldr r1, _08016A90 @ =0xffffe000 + adds r0, r2, r1 + str r0, [r3] + ldrb r1, [r6] + mov r0, r10 + muls r0, r1 + adds r0, r5 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _08016AB4 + ldr r2, _08016A94 @ =0x02000000 + lsls r0, r1, 1 + ldr r4, _08016A98 @ =0x00016004 + adds r0, r4 + adds r0, r2 + ldrb r1, [r0] + ldr r3, _08016A9C @ =0x000160a4 + adds r0, r2, r3 + strb r1, [r0] + ldrb r0, [r6] + lsls r0, 1 + subs r3, 0x9F + adds r0, r3 + adds r0, r2 + ldrb r1, [r0] + ldr r5, _08016AA0 @ =0x000160a5 + adds r0, r2, r5 + strb r1, [r0] + ldr r1, _08016AA4 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r4 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r6] + lsls r0, 1 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08016AA8 @ =gUnknown_02024C10 + ldr r0, _08016AAC @ =gUnknown_081D95E2 + str r0, [r1] + ldr r2, _08016AB0 @ =gUnknown_02024BEC + ldrb r0, [r6] + mov r7, r10 + muls r7, r0 + adds r0, r7, 0 + add r0, r8 + ldrh r0, [r0, 0x2C] + lsrs r0, 4 + str r0, [r2] + cmp r0, 0 + bne _08016AE6 + movs r0, 0x1 + str r0, [r2] + b _08016AE6 + .align 2, 0 +_08016A8C: .4byte gBattleMons +_08016A90: .4byte 0xffffe000 +_08016A94: .4byte 0x02000000 +_08016A98: .4byte 0x00016004 +_08016A9C: .4byte 0x000160a4 +_08016AA0: .4byte 0x000160a5 +_08016AA4: .4byte gUnknown_030041C0 +_08016AA8: .4byte gUnknown_02024C10 +_08016AAC: .4byte gUnknown_081D95E2 +_08016AB0: .4byte gUnknown_02024BEC +_08016AB4: + ldr r1, _08016B00 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldr r2, _08016B04 @ =0x02000000 + ldrb r0, [r6] + lsls r0, 1 + ldr r3, _08016B08 @ =0x00016004 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r6] + lsls r0, 1 + ldr r5, _08016B0C @ =0x00016005 + adds r0, r5 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08016B10 @ =gUnknown_02024C10 + ldr r0, _08016B14 @ =gUnknown_081D95F4 + str r0, [r1] +_08016AE6: + ldr r0, [r1] + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016AF6: + ldr r1, _08016B04 @ =0x02000000 + movs r7, 0xB0 + lsls r7, 9 + adds r1, r7 + b _08017072 + .align 2, 0 +_08016B00: .4byte gUnknown_030041C0 +_08016B04: .4byte 0x02000000 +_08016B08: .4byte 0x00016004 +_08016B0C: .4byte 0x00016005 +_08016B10: .4byte gUnknown_02024C10 +_08016B14: .4byte gUnknown_081D95F4 +_08016B18: + movs r0, 0x8 + negs r0, r0 + ands r4, r0 + str r4, [r2] + ldrb r0, [r6] + mov r2, r8 + muls r2, r0 + mov r0, r10 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, _08016B68 @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + ldr r1, _08016B6C @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + ldr r0, _08016B70 @ =gUnknown_081D950F + bl b_call_bc_move_exec + ldr r4, _08016B74 @ =gUnknown_02024A60 + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08016BE0 + .align 2, 0 +_08016B68: .4byte 0xf7ffffff +_08016B6C: .4byte gUnknown_02024D1E +_08016B70: .4byte gUnknown_081D950F +_08016B74: .4byte gUnknown_02024A60 +_08016B78: + ldr r2, _08016BF4 @ =gBattleMons + ldrb r1, [r6] + movs r0, 0x58 + muls r0, r1 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x70 + ands r1, r0 + adds r7, r2, 0 + cmp r1, 0 + beq _08016C82 + movs r0, 0 + strb r0, [r4] + mov r2, r8 + ldrb r1, [r2] + cmp r1, 0 + beq _08016BE0 + mov r10, r7 + adds r6, r4, 0 + movs r3, 0x58 + mov r8, r3 + movs r5, 0x4C + adds r5, r7 + mov r9, r5 + str r1, [sp, 0x4] + movs r0, 0x7 + mov r12, r0 +_08016BB2: + ldrb r1, [r6] + mov r3, r8 + muls r3, r1 + mov r5, r9 + adds r2, r3, r5 + ldr r4, [r2] + adds r0, r4, 0 + mov r5, r12 + ands r0, r5 + cmp r0, 0 + beq _08016BD2 + adds r0, r3, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2B + bne _08016B18 +_08016BD2: + adds r0, r1, 0x1 + strb r0, [r6] + lsls r0, 24 + lsrs r0, 24 + ldr r1, [sp, 0x4] + cmp r0, r1 + bcc _08016BB2 +_08016BE0: + ldr r2, _08016BF8 @ =gUnknown_02024C07 + ldr r1, _08016BFC @ =gUnknown_02024A68 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + beq _08016C00 + movs r2, 0x2 + mov r9, r2 + b _0801707E + .align 2, 0 +_08016BF4: .4byte gBattleMons +_08016BF8: .4byte gUnknown_02024C07 +_08016BFC: .4byte gUnknown_02024A68 +_08016C00: + ldr r5, _08016C38 @ =gUnknown_02024A60 + ldrb r0, [r5] + strb r0, [r2] + ldr r2, _08016C3C @ =gBattleMons + ldrb r0, [r5] + movs r7, 0x58 + adds r1, r0, 0 + muls r1, r7 + adds r6, r2, 0 + adds r6, 0x50 + adds r1, r6 + ldr r0, [r1] + subs r0, 0x10 + str r0, [r1] + ldrb r0, [r5] + bl sub_8015660 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _08016C44 + ldrb r0, [r5] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08016C40 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08016C78 + .align 2, 0 +_08016C38: .4byte gUnknown_02024A60 +_08016C3C: .4byte gBattleMons +_08016C40: .4byte gUnknown_02024D1E +_08016C44: + ldrb r3, [r5] + adds r0, r3, 0 + muls r0, r7 + adds r2, r0, r6 + ldr r0, [r2] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + beq _08016C6C + ldr r0, _08016C68 @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r2] + b _08016C78 + .align 2, 0 +_08016C68: .4byte gUnknown_02024D1E +_08016C6C: + ldr r1, _08016C94 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + adds r0, r3, 0 + bl b_cancel_multi_turn_move_maybe +_08016C78: + ldr r0, _08016C98 @ =gUnknown_081D957E + bl b_call_bc_move_exec + movs r3, 0x1 + mov r9, r3 +_08016C82: + mov r5, r9 + cmp r5, 0x2 + bne _08016C8A + b _08017078 +_08016C8A: + ldr r1, _08016C9C @ =0x02000000 + movs r7, 0xB0 + lsls r7, 9 + adds r1, r7 + b _08017072 + .align 2, 0 +_08016C94: .4byte gUnknown_02024D1E +_08016C98: .4byte gUnknown_081D957E +_08016C9C: .4byte 0x02000000 +_08016CA0: + ldr r1, _08016CD8 @ =gBattleMons + ldrb r0, [r6] + movs r7, 0x58 + muls r0, r7 + adds r5, r1, 0 + adds r5, 0x50 + adds r2, r0, r5 + ldr r1, [r2] + movs r4, 0xC0 + lsls r4, 4 + adds r0, r1, 0 + ands r0, r4 + cmp r0, 0 + beq _08016D3C + ldr r3, _08016CDC @ =0xfffffc00 + adds r0, r1, r3 + str r0, [r2] + ldrb r0, [r6] + bl sub_8015660 + lsls r0, 24 + cmp r0, 0 + beq _08016CE0 + ldrb r0, [r6] + bl b_cancel_multi_turn_move_maybe + b _08016D3C + .align 2, 0 +_08016CD8: .4byte gBattleMons +_08016CDC: .4byte 0xfffffc00 +_08016CE0: + ldrb r0, [r6] + muls r0, r7 + adds r2, r0, r5 + ldr r1, [r2] + adds r0, r1, 0 + ands r0, r4 + cmp r0, 0 + bne _08016D3C + movs r0, 0x80 + lsls r0, 5 + ands r0, r1 + cmp r0, 0 + beq _08016D3C + ldr r0, _08016D48 @ =0xffffefff + ands r1, r0 + str r1, [r2] + ldrb r0, [r6] + muls r0, r7 + adds r0, r5 + ldr r0, [r0] + movs r4, 0x7 + ands r0, r4 + cmp r0, 0 + bne _08016D3C + ldr r1, _08016D4C @ =gUnknown_02024D1E + movs r0, 0x47 + strb r0, [r1, 0x3] + movs r0, 0x1 + movs r1, 0 + bl sub_801E3EC + ldrb r0, [r6] + muls r0, r7 + adds r0, r5 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _08016D32 + ldr r0, _08016D50 @ =gUnknown_081D9587 + bl b_call_bc_move_exec +_08016D32: + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016D3C: + ldr r1, _08016D54 @ =0x02000000 + movs r5, 0xB0 + lsls r5, 9 + adds r1, r5 + b _08017072 + .align 2, 0 +_08016D48: .4byte 0xffffefff +_08016D4C: .4byte gUnknown_02024D1E +_08016D50: .4byte gUnknown_081D9587 +_08016D54: .4byte 0x02000000 +_08016D58: + ldr r0, _08016DD4 @ =gUnknown_02024CA8 + ldrb r3, [r6] + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r5, r1, r0 + ldrb r1, [r5, 0xB] + lsls r1, 28 + adds r7, r0, 0 + cmp r1, 0 + beq _08016E1E + movs r4, 0 + ldr r2, _08016DD8 @ =gBattleMons + movs r0, 0x58 + adds r1, r3, 0 + muls r1, r0 + adds r2, 0xC + adds r1, r2 + ldrh r0, [r5, 0x4] + ldrh r1, [r1] + cmp r0, r1 + beq _08016DAC + mov r12, r7 + mov r8, r2 + adds r5, r6, 0 + movs r3, 0x58 +_08016D8C: + adds r4, 0x1 + cmp r4, 0x3 + bgt _08016DAC + ldrb r2, [r5] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r12 + lsls r0, r4, 1 + muls r2, r3 + adds r0, r2 + add r0, r8 + ldrh r1, [r1, 0x4] + ldrh r0, [r0] + cmp r1, r0 + bne _08016D8C +_08016DAC: + cmp r4, 0x4 + bne _08016DDC + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + movs r1, 0 + strh r1, [r0, 0x4] + ldrb r0, [r6] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r2, [r1, 0xB] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + b _08016E1E + .align 2, 0 +_08016DD4: .4byte gUnknown_02024CA8 +_08016DD8: .4byte gBattleMons +_08016DDC: + ldrb r0, [r6] + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + adds r2, r7 + ldrb r3, [r2, 0xB] + lsls r1, r3, 28 + lsrs r1, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0xB] + adds r2, r1, 0 + cmp r2, 0 + bne _08016E1E + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + strh r2, [r0, 0x4] + ldr r0, _08016E28 @ =gUnknown_081D9148 + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016E1E: + ldr r1, _08016E2C @ =0x02000000 + movs r7, 0xB0 + lsls r7, 9 + adds r1, r7 + b _08017072 + .align 2, 0 +_08016E28: .4byte gUnknown_081D9148 +_08016E2C: .4byte 0x02000000 +_08016E30: + ldr r3, _08016E7C @ =gUnknown_02024CA8 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r2, r0, r3 + ldrb r5, [r2, 0xE] + lsls r4, r5, 28 + cmp r4, 0 + beq _08016EE8 + ldr r0, _08016E80 @ =gBattleMons + mov r8, r0 + ldrb r0, [r2, 0xC] + lsls r0, 1 + movs r7, 0x58 + muls r1, r7 + adds r0, r1 + mov r1, r8 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + ldrh r1, [r2, 0x6] + cmp r0, r1 + beq _08016E84 + movs r0, 0 + strh r0, [r2, 0x6] + ldrb r0, [r6] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1, 0xE] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xE] + b _08016EE8 + .align 2, 0 +_08016E7C: .4byte gUnknown_02024CA8 +_08016E80: .4byte gBattleMons +_08016E84: + lsrs r1, r4, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r4, 0x10 + negs r4, r4 + adds r0, r4, 0 + ands r0, r5 + orrs r0, r1 + strb r0, [r2, 0xE] + cmp r1, 0 + beq _08016EB8 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + muls r1, r7 + ldrb r0, [r0, 0xC] + adds r1, r0 + mov r0, r8 + adds r0, 0x24 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _08016EE8 +_08016EB8: + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x6] + ldrb r0, [r6] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1, 0xE] + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0xE] + ldr r0, _08016EF4 @ =gUnknown_081D914F + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08016EE8: + ldr r1, _08016EF8 @ =0x02000000 + movs r2, 0xB0 + lsls r2, 9 + adds r1, r2 + b _08017072 + .align 2, 0 +_08016EF4: .4byte gUnknown_081D914F +_08016EF8: .4byte 0x02000000 +_08016EFC: + ldr r0, _08016F1C @ =gUnknown_02024C98 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x18 + ands r0, r2 + cmp r0, 0 + beq _08016F14 + adds r0, r2, 0 + subs r0, 0x8 + str r0, [r1] +_08016F14: + movs r1, 0xB0 + lsls r1, 9 + b _08017070 + .align 2, 0 +_08016F1C: .4byte gUnknown_02024C98 +_08016F20: + ldr r2, _08016F60 @ =gUnknown_02024CA8 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r3, r0, r2 + ldrb r2, [r3, 0x12] + lsls r1, r2, 28 + cmp r1, 0 + beq _08016F5A + lsrs r1, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x12] + cmp r1, 0 + bne _08016F5A + ldr r0, _08016F64 @ =gUnknown_02024C98 + ldrb r2, [r6] + lsls r2, 2 + adds r2, r0 + ldr r0, [r2] + ldr r1, _08016F68 @ =0xfffffdff + ands r0, r1 + str r0, [r2] +_08016F5A: + movs r1, 0xB0 + lsls r1, 9 + b _08017070 + .align 2, 0 +_08016F60: .4byte gUnknown_02024CA8 +_08016F64: .4byte gUnknown_02024C98 +_08016F68: .4byte 0xfffffdff +_08016F6C: + ldr r2, _08016F98 @ =gUnknown_02024CA8 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r3, r0, r2 + ldrb r2, [r3, 0x13] + lsls r1, r2, 28 + cmp r1, 0 + beq _08016F92 + lsrs r1, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3, 0x13] +_08016F92: + movs r1, 0xB0 + lsls r1, 9 + b _08017070 + .align 2, 0 +_08016F98: .4byte gUnknown_02024CA8 +_08016F9C: + ldr r4, _0801704C @ =gUnknown_02024C98 + ldrb r0, [r6] + lsls r0, 2 + adds r2, r0, r4 + ldr r1, [r2] + movs r3, 0xC0 + lsls r3, 5 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _08017042 + ldr r5, _08017050 @ =0xfffff800 + adds r0, r1, r5 + str r0, [r2] + ldrb r2, [r6] + lsls r0, r2, 2 + adds r0, r4 + ldr r0, [r0] + ands r0, r3 + cmp r0, 0 + bne _08017042 + ldr r3, _08017054 @ =gBattleMons + movs r5, 0x58 + adds r1, r2, 0 + muls r1, r5 + adds r4, r3, 0 + adds r4, 0x4C + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _08017042 + adds r0, r1, r3 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x48 + beq _08017042 + cmp r0, 0xF + beq _08017042 + adds r0, r2, 0 + bl sub_8025A44 + lsls r0, 24 + cmp r0, 0 + bne _08017042 + ldrb r0, [r6] + bl b_cancel_multi_turn_move_maybe + bl Random + ldrb r1, [r6] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x2 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r6] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08017058 @ =gUnknown_02024C0A + ldrb r0, [r6] + strb r0, [r1] + ldr r0, _0801705C @ =gUnknown_081D964C + bl b_call_bc_move_exec + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08017042: + ldr r1, _08017060 @ =0x02000000 + movs r7, 0xB0 + lsls r7, 9 + adds r1, r7 + b _08017072 + .align 2, 0 +_0801704C: .4byte gUnknown_02024C98 +_08017050: .4byte 0xfffff800 +_08017054: .4byte gBattleMons +_08017058: .4byte gUnknown_02024C0A +_0801705C: .4byte gUnknown_081D964C +_08017060: .4byte 0x02000000 +_08017064: + movs r1, 0xB0 + lsls r1, 9 + add r1, r10 + movs r0, 0 + strb r0, [r1] + ldr r1, _08017084 @ =0x00016001 +_08017070: + add r1, r10 +_08017072: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08017078: + mov r0, r9 + cmp r0, 0 + beq _08017088 +_0801707E: + mov r0, r9 + b _080170B8 + .align 2, 0 +_08017084: .4byte 0x00016001 +_08017088: + ldr r7, _080170C8 @ =0x02000000 + ldr r2, _080170CC @ =0x00016001 + adds r0, r7, r2 + ldr r1, _080170D0 @ =gUnknown_02024A68 + ldrb r0, [r0] + mov r10, r7 + mov r8, r1 + ldrb r1, [r1] + cmp r0, r1 + bcs _080170AC + movs r3, 0xB0 + lsls r3, 9 + adds r0, r7, r3 + ldrb r0, [r0] + cmp r0, 0x13 + bhi _080170AC + bl _08016580 +_080170AC: + ldr r0, _080170D4 @ =gUnknown_02024C6C + ldr r1, [r0] + ldr r2, _080170D8 @ =0xfeffffdf + ands r1, r2 + str r1, [r0] + movs r0, 0 +_080170B8: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080170C8: .4byte 0x02000000 +_080170CC: .4byte 0x00016001 +_080170D0: .4byte gUnknown_02024A68 +_080170D4: .4byte gUnknown_02024C6C +_080170D8: .4byte 0xfeffffdf + thumb_func_end sub_8016558 + + thumb_func_start sub_80170DC +sub_80170DC: @ 80170DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, _08017108 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0801710C @ =0x01000020 + orrs r0, r1 + str r0, [r2] + ldr r1, _08017110 @ =0x02000000 + ldr r3, _08017114 @ =0x00016110 + adds r0, r1, r3 + ldrb r0, [r0] + mov r8, r1 + cmp r0, 0 + beq _08017118 + cmp r0, 0x1 + bne _08017104 + b _08017258 +_08017104: + b _08017380 + .align 2, 0 +_08017108: .4byte gUnknown_02024C6C +_0801710C: .4byte 0x01000020 +_08017110: .4byte 0x02000000 +_08017114: .4byte 0x00016110 +_08017118: + ldr r2, _0801715C @ =0x00016111 + add r2, r8 + ldr r0, _08017160 @ =gUnknown_02024A68 + ldrb r1, [r2] + mov r9, r0 + ldrb r0, [r0] + cmp r1, r0 + bcc _0801712A + b _08017248 +_0801712A: + ldr r4, _08017164 @ =gUnknown_02024A60 + adds r5, r2, 0 + ldr r1, _08017168 @ =gUnknown_02024DBC + mov r12, r1 + movs r2, 0x8 + add r2, r12 + mov r10, r2 + mov r7, r12 + adds r7, 0x18 + ldr r6, _0801716C @ =gUnknown_030041C0 +_0801713E: + ldrb r3, [r5] + strb r3, [r4] + ldr r0, _08017170 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08017174 @ =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08017178 + adds r0, r3, 0x1 + strb r0, [r5] + b _0801723C + .align 2, 0 +_0801715C: .4byte 0x00016111 +_08017160: .4byte gUnknown_02024A68 +_08017164: .4byte gUnknown_02024A60 +_08017168: .4byte gUnknown_02024DBC +_0801716C: .4byte gUnknown_030041C0 +_08017170: .4byte gUnknown_02024C0C +_08017174: .4byte gBitTable +_08017178: + adds r0, r3, 0x1 + strb r0, [r5] + ldr r1, _080171B4 @ =gUnknown_02024DBC + ldrb r0, [r4] + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + beq _0801723C + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + bne _0801723C + ldr r1, _080171B8 @ =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801723C + lsls r0, r2, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, 0xF8 + bne _080171C0 + ldr r0, _080171BC @ =gUnknown_02024D1E + strb r3, [r0, 0x5] + b _080171C6 + .align 2, 0 +_080171B4: .4byte gUnknown_02024DBC +_080171B8: .4byte gBattleMons +_080171BC: .4byte gUnknown_02024D1E +_080171C0: + ldr r1, _08017220 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] +_080171C6: + movs r0, 0xFD + strb r0, [r6] + movs r0, 0x2 + strb r0, [r6, 0x1] + ldrb r0, [r4] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + strb r0, [r6, 0x2] + ldrb r0, [r4] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r6, 0x3] + movs r0, 0xFF + strb r0, [r6, 0x4] + ldr r3, _08017224 @ =gUnknown_02024C08 + ldrb r0, [r4] + strb r0, [r3] + ldr r1, _08017228 @ =gUnknown_02024C07 + mov r0, r12 + adds r0, 0x4 + ldrb r2, [r4] + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _0801722C @ =gUnknown_02024BEC + ldrb r0, [r4] + lsls r0, 2 + add r0, r10 + ldr r0, [r0] + str r0, [r1] + ldr r2, _08017230 @ =gUnknown_02024D68 + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r0, r2 + ldr r1, _08017234 @ =0x0000ffff + str r1, [r0] + ldr r0, _08017238 @ =gUnknown_081D92D7 + b _08017364 + .align 2, 0 +_08017220: .4byte gUnknown_02024D1E +_08017224: .4byte gUnknown_02024C08 +_08017228: .4byte gUnknown_02024C07 +_0801722C: .4byte gUnknown_02024BEC +_08017230: .4byte gUnknown_02024D68 +_08017234: .4byte 0x0000ffff +_08017238: .4byte gUnknown_081D92D7 +_0801723C: + ldrb r0, [r5] + mov r3, r9 + ldrb r3, [r3] + cmp r0, r3 + bcs _08017248 + b _0801713E +_08017248: + ldr r1, _0801729C @ =0x00016110 + add r1, r8 + movs r2, 0 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _080172A0 @ =0x00016111 + add r0, r8 + strb r2, [r0] +_08017258: + ldr r2, _080172A0 @ =0x00016111 + add r2, r8 + ldr r0, _080172A4 @ =gUnknown_02024A68 + ldrb r1, [r2] + mov r9, r0 + ldrb r0, [r0] + cmp r1, r0 + bcc _0801726A + b _08017380 +_0801726A: + ldr r5, _080172A8 @ =gUnknown_02024A60 + adds r3, r2, 0 + ldr r4, _080172AC @ =gUnknown_030041C0 + ldr r7, _080172B0 @ =gUnknown_02024CA8 +_08017272: + ldr r2, _080172B4 @ =gUnknown_02024C07 + ldr r1, _080172B8 @ =gUnknown_02024A7A + ldrb r0, [r3] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + strb r0, [r5] + ldr r0, _080172BC @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _080172C0 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080172C4 + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + b _08017374 + .align 2, 0 +_0801729C: .4byte 0x00016110 +_080172A0: .4byte 0x00016111 +_080172A4: .4byte gUnknown_02024A68 +_080172A8: .4byte gUnknown_02024A60 +_080172AC: .4byte gUnknown_030041C0 +_080172B0: .4byte gUnknown_02024CA8 +_080172B4: .4byte gUnknown_02024C07 +_080172B8: .4byte gUnknown_02024A7A +_080172BC: .4byte gUnknown_02024C0C +_080172C0: .4byte gBitTable +_080172C4: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + ldr r6, _08017334 @ =gUnknown_02024C98 + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r6 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08017374 + movs r0, 0xFD + strb r0, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + strb r0, [r4, 0x3] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0xF] + lsls r0, 28 + lsrs r0, 28 + strb r0, [r4, 0x4] + movs r0, 0xFF + strb r0, [r4, 0x5] + ldrb r2, [r5] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r4, r0, r7 + ldrb r3, [r4, 0xF] + lsls r1, r3, 28 + cmp r1, 0 + bne _08017348 + lsls r2, 2 + adds r2, r6 + ldr r0, [r2] + movs r1, 0x21 + negs r1, r1 + ands r0, r1 + str r0, [r2] + ldr r3, _08017338 @ =gUnknown_02024BEC + ldr r2, _0801733C @ =gBattleMons + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + str r0, [r3] + ldr r1, _08017340 @ =gUnknown_02024C10 + ldr r0, _08017344 @ =gUnknown_081D9202 + b _08017360 + .align 2, 0 +_08017334: .4byte gUnknown_02024C98 +_08017338: .4byte gUnknown_02024BEC +_0801733C: .4byte gBattleMons +_08017340: .4byte gUnknown_02024C10 +_08017344: .4byte gUnknown_081D9202 +_08017348: + lsrs r1, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r2, 0x10 + negs r2, r2 + adds r0, r2, 0 + ands r0, r3 + orrs r0, r1 + strb r0, [r4, 0xF] + ldr r1, _0801736C @ =gUnknown_02024C10 + ldr r0, _08017370 @ =gUnknown_081D921D +_08017360: + str r0, [r1] + ldr r0, [r1] +_08017364: + bl b_call_bc_move_exec + movs r0, 0x1 + b _0801738C + .align 2, 0 +_0801736C: .4byte gUnknown_02024C10 +_08017370: .4byte gUnknown_081D921D +_08017374: + ldrb r0, [r3] + mov r1, r9 + ldrb r1, [r1] + cmp r0, r1 + bcs _08017380 + b _08017272 +_08017380: + ldr r2, _0801739C @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _080173A0 @ =0xfeffffdf + ands r0, r1 + str r0, [r2] + movs r0, 0 +_0801738C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801739C: .4byte gUnknown_02024C6C +_080173A0: .4byte 0xfeffffdf + thumb_func_end sub_80170DC + + thumb_func_start sub_80173A4 +sub_80173A4: @ 80173A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _080173C0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _080173F8 + b _080176AC + .align 2, 0 +_080173C0: .4byte gUnknown_020239F8 +_080173C4: + ldr r0, _080173D4 @ =gUnknown_081D8C72 + bl b_call_bc_move_exec + ldr r1, _080173D8 @ =0x00016059 + add r1, r10 + movs r0, 0x2 + b _080173E8 + .align 2, 0 +_080173D4: .4byte gUnknown_081D8C72 +_080173D8: .4byte 0x00016059 +_080173DC: + ldr r0, _080173F0 @ =gUnknown_081D8C7B + bl b_call_bc_move_exec + ldr r1, _080173F4 @ =0x00016059 + add r1, r8 + movs r0, 0x5 +_080173E8: + strb r0, [r1] +_080173EA: + movs r0, 0x1 + b _080176AE + .align 2, 0 +_080173F0: .4byte gUnknown_081D8C7B +_080173F4: .4byte 0x00016059 +_080173F8: + ldr r0, _08017414 @ =0x02000000 + mov r9, r0 +_080173FC: + ldr r0, _08017418 @ =0x00016059 + add r0, r9 + ldrb r0, [r0] + cmp r0, 0x7 + bls _08017408 + b _080176A0 +_08017408: + lsls r0, 2 + ldr r1, _0801741C @ =_08017420 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08017414: .4byte 0x02000000 +_08017418: .4byte 0x00016059 +_0801741C: .4byte _08017420 + .align 2, 0 +_08017420: + .4byte _08017440 + .4byte _08017490 + .4byte _08017534 + .4byte _0801757C + .4byte _0801758E + .4byte _080175FC + .4byte _08017638 + .4byte _080176A0 +_08017440: + ldr r1, _08017508 @ =0x0001605a + add r1, r9 + movs r0, 0 + strb r0, [r1] + ldr r1, _0801750C @ =0x00016059 + add r1, r9 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r5, 0 + ldr r0, _08017510 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + bge _08017490 + ldr r6, _08017514 @ =gUnknown_02024C0C +_0801745E: + ldrb r0, [r6] + ldr r2, _08017518 @ =gBitTable + lsls r1, r5, 2 + adds r1, r2 + ldr r4, [r1] + ands r0, r4 + cmp r0, 0 + beq _08017486 + lsls r0, r5, 24 + lsrs r0, 24 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + bne _08017486 + ldrb r0, [r6] + bics r0, r4 + strb r0, [r6] +_08017486: + adds r5, 0x1 + ldr r0, _08017510 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + blt _0801745E +_08017490: + ldr r1, _0801751C @ =0x02000000 + mov r9, r1 + ldr r0, _08017520 @ =gUnknown_02024C09 + mov r12, r0 + ldr r1, _08017524 @ =gUnknown_02024C08 + mov r8, r1 + mov r10, r9 + ldr r5, _08017508 @ =0x0001605a + add r5, r9 + ldr r7, _08017528 @ =gBattleMons + ldr r6, _0801752C @ =0x00016113 + add r6, r9 +_080174A8: + ldrb r0, [r5] + mov r1, r8 + strb r0, [r1] + mov r1, r12 + strb r0, [r1] + ldrb r3, [r5] + movs r0, 0x58 + muls r0, r3 + adds r0, r7 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _080174EA + ldrb r2, [r6] + ldr r4, _08017518 @ =gBitTable + ldr r1, _08017530 @ =gUnknown_02024A6A + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _080174EA + ldr r0, _08017514 @ =gUnknown_02024C0C + ldrb r1, [r0] + lsls r0, r3, 2 + adds r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080174EA + b _080173C4 +_080174EA: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ldr r1, _08017510 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _080174A8 + ldr r1, _0801750C @ =0x00016059 + add r1, r9 + movs r0, 0x3 + strb r0, [r1] + b _080176A0 + .align 2, 0 +_08017508: .4byte 0x0001605a +_0801750C: .4byte 0x00016059 +_08017510: .4byte gUnknown_02024A68 +_08017514: .4byte gUnknown_02024C0C +_08017518: .4byte gBitTable +_0801751C: .4byte 0x02000000 +_08017520: .4byte gUnknown_02024C09 +_08017524: .4byte gUnknown_02024C08 +_08017528: .4byte gBattleMons +_0801752C: .4byte 0x00016113 +_08017530: .4byte gUnknown_02024A6A +_08017534: + ldr r0, _0801755C @ =gUnknown_02024C09 + ldrb r0, [r0] + bl sub_8015740 + ldr r2, _08017560 @ =0x02000000 + ldr r0, _08017564 @ =0x0001605a + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r1, _08017568 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _08017570 + ldr r0, _0801756C @ =0x00016059 + adds r1, r2, r0 + movs r0, 0x3 + b _0801769C + .align 2, 0 +_0801755C: .4byte gUnknown_02024C09 +_08017560: .4byte 0x02000000 +_08017564: .4byte 0x0001605a +_08017568: .4byte gUnknown_02024A68 +_0801756C: .4byte 0x00016059 +_08017570: + ldr r0, _08017578 @ =0x00016059 + adds r1, r2, r0 + movs r0, 0x1 + b _0801769C + .align 2, 0 +_08017578: .4byte 0x00016059 +_0801757C: + ldr r1, _080175D8 @ =0x0001605a + add r1, r9 + movs r0, 0 + strb r0, [r1] + ldr r1, _080175DC @ =0x00016059 + add r1, r9 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0801758E: + ldr r7, _080175E0 @ =gUnknown_02024C09 + ldr r6, _080175E4 @ =gUnknown_02024C08 + ldr r1, _080175E8 @ =0x02000000 + mov r8, r1 + ldr r3, _080175D8 @ =0x0001605a + add r3, r8 + ldr r5, _080175EC @ =gBattleMons + ldr r4, _080175F0 @ =gBitTable +_0801759E: + ldrb r0, [r3] + strb r0, [r6] + strb r0, [r7] + ldrb r2, [r3] + movs r0, 0x58 + muls r0, r2 + adds r0, r5 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _080175C4 + ldr r0, _080175F4 @ =gUnknown_02024C0C + ldrb r1, [r0] + lsls r0, r2, 2 + adds r0, r4 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080175C4 + b _080173DC +_080175C4: + adds r0, r2, 0x1 + strb r0, [r3] + ldr r1, _080175F8 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _0801759E + b _08017612 + .align 2, 0 +_080175D8: .4byte 0x0001605a +_080175DC: .4byte 0x00016059 +_080175E0: .4byte gUnknown_02024C09 +_080175E4: .4byte gUnknown_02024C08 +_080175E8: .4byte 0x02000000 +_080175EC: .4byte gBattleMons +_080175F0: .4byte gBitTable +_080175F4: .4byte gUnknown_02024C0C +_080175F8: .4byte gUnknown_02024A68 +_080175FC: + ldr r0, _0801761C @ =0x0001605a + add r0, r9 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r0, _08017620 @ =gUnknown_02024A68 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r0] + cmp r1, r0 + bne _08017628 +_08017612: + ldr r1, _08017624 @ =0x00016059 + add r1, r9 + movs r0, 0x6 + strb r0, [r1] + b _080176A0 + .align 2, 0 +_0801761C: .4byte 0x0001605a +_08017620: .4byte gUnknown_02024A68 +_08017624: .4byte 0x00016059 +_08017628: + ldr r1, _08017634 @ =0x00016059 + add r1, r9 + movs r0, 0x4 + strb r0, [r1] + b _080176A0 + .align 2, 0 +_08017634: .4byte 0x00016059 +_08017638: + movs r0, 0 + str r0, [sp] + movs r0, 0x9 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08017652 + b _080173EA +_08017652: + str r0, [sp] + movs r0, 0xB + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08017668 + b _080173EA +_08017668: + movs r0, 0x1 + movs r1, 0 + movs r2, 0x1 + bl sub_801A02C + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0801767C + b _080173EA +_0801767C: + str r0, [sp] + movs r0, 0x6 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08017692 + b _080173EA +_08017692: + ldr r2, _080176C0 @ =0x02000000 + ldr r0, _080176C4 @ =0x00016059 + adds r1, r2, r0 + ldrb r0, [r1] + adds r0, 0x1 +_0801769C: + strb r0, [r1] + mov r9, r2 +_080176A0: + ldr r0, _080176C4 @ =0x00016059 + add r0, r9 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080176AC + b _080173FC +_080176AC: + movs r0, 0 +_080176AE: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080176C0: .4byte 0x02000000 +_080176C4: .4byte 0x00016059 + thumb_func_end sub_80173A4 + + thumb_func_start b_clear_atk_up_if_hit_flag_unless_enraged +b_clear_atk_up_if_hit_flag_unless_enraged: @ 80176C8 + push {r4-r6,lr} + movs r3, 0 + ldr r0, _08017708 @ =gUnknown_02024A68 + adds r5, r0, 0 + ldrb r0, [r5] + cmp r3, r0 + bge _08017700 + ldr r4, _0801770C @ =gUnknown_02024C60 + movs r6, 0x80 + lsls r6, 16 + ldr r2, _08017710 @ =gUnknown_02024AD0 +_080176DE: + ldr r1, [r2] + adds r0, r1, 0 + ands r0, r6 + cmp r0, 0 + beq _080176F4 + ldrh r0, [r4] + cmp r0, 0x63 + beq _080176F4 + ldr r0, _08017714 @ =0xff7fffff + ands r1, r0 + str r1, [r2] +_080176F4: + adds r4, 0x2 + adds r2, 0x58 + adds r3, 0x1 + ldrb r0, [r5] + cmp r3, r0 + blt _080176DE +_08017700: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08017708: .4byte gUnknown_02024A68 +_0801770C: .4byte gUnknown_02024C60 +_08017710: .4byte gUnknown_02024AD0 +_08017714: .4byte 0xff7fffff + thumb_func_end b_clear_atk_up_if_hit_flag_unless_enraged + + thumb_func_start sub_8017718 +sub_8017718: @ 8017718 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + movs r0, 0 + mov r9, r0 + ldr r1, _08017734 @ =0x02016090 + mov r10, r1 + ldr r2, _08017738 @ =0xfffe9f70 + add r2, r10 + mov r8, r2 + b _08017746 + .align 2, 0 +_08017734: .4byte 0x02016090 +_08017738: .4byte 0xfffe9f70 +_0801773C: + mov r4, r9 + cmp r4, 0 + beq _08017746 + bl _08017FAC +_08017746: + ldr r0, _08017760 @ =0x000160e7 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0xE + bls _08017754 + bl _08017F9E +_08017754: + lsls r0, 2 + ldr r1, _08017764 @ =_08017768 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08017760: .4byte 0x000160e7 +_08017764: .4byte _08017768 + .align 2, 0 +_08017768: + .4byte _080177A4 + .4byte _080177E4 + .4byte _08017920 + .4byte _080179D8 + .4byte _08017A50 + .4byte _08017AC8 + .4byte _08017B1C + .4byte _08017B98 + .4byte _08017C1C + .4byte _08017C60 + .4byte _08017D3C + .4byte _08017DC0 + .4byte _08017E5C + .4byte _08017F48 + .4byte _08017F9E +_080177A4: + ldr r1, _080177D0 @ =gBattleMons + ldr r3, _080177D4 @ =gUnknown_02024C07 + ldrb r2, [r3] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + ldr r1, _080177D8 @ =0xfdffffff + ands r0, r1 + str r0, [r2] + ldr r0, _080177DC @ =gUnknown_02024C98 + ldrb r2, [r3] + lsls r2, 2 + adds r2, r0 + ldr r0, [r2] + ldr r1, _080177E0 @ =0xffffbfff + ands r0, r1 + str r0, [r2] + bl _08017F94 + .align 2, 0 +_080177D0: .4byte gBattleMons +_080177D4: .4byte gUnknown_02024C07 +_080177D8: .4byte 0xfdffffff +_080177DC: .4byte gUnknown_02024C98 +_080177E0: .4byte 0xffffbfff +_080177E4: + ldr r7, _0801784C @ =gBattleMons + ldr r4, _08017850 @ =gUnknown_02024C07 + ldrb r1, [r4] + movs r5, 0x58 + adds r0, r1, 0 + muls r0, r5 + adds r6, r7, 0 + adds r6, 0x4C + adds r0, r6 + ldr r0, [r0] + movs r2, 0x7 + mov r8, r2 + ands r0, r2 + cmp r0, 0 + bne _08017804 + b _08017D90 +_08017804: + adds r0, r1, 0 + bl sub_8025A44 + lsls r0, 24 + cmp r0, 0 + beq _08017864 + ldrb r0, [r4] + adds r2, r0, 0 + muls r2, r5 + adds r2, r6 + ldr r0, [r2] + movs r1, 0x8 + negs r1, r1 + ands r0, r1 + str r0, [r2] + ldrb r0, [r4] + adds r2, r0, 0 + muls r2, r5 + adds r0, r7, 0 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + ldr r1, _08017854 @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _08017858 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + ldr r1, _0801785C @ =gUnknown_02024C10 + ldr r0, _08017860 @ =gUnknown_081D94FB + str r0, [r1] + movs r4, 0x2 + mov r9, r4 + b _08017D90 + .align 2, 0 +_0801784C: .4byte gBattleMons +_08017850: .4byte gUnknown_02024C07 +_08017854: .4byte 0xf7ffffff +_08017858: .4byte gUnknown_02024D1E +_0801785C: .4byte gUnknown_02024C10 +_08017860: .4byte gUnknown_081D94FB +_08017864: + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r0, r1, r7 + adds r0, 0x20 + ldrb r0, [r0] + movs r3, 0x1 + cmp r0, 0x30 + bne _08017878 + movs r3, 0x2 +_08017878: + adds r2, r1, r6 + ldr r1, [r2] + adds r0, r1, 0 + mov r7, r8 + ands r0, r7 + cmp r0, r3 + bcs _08017890 + movs r0, 0x8 + negs r0, r0 + ands r1, r0 + str r1, [r2] + b _08017894 +_08017890: + subs r0, r1, r3 + str r0, [r2] +_08017894: + ldr r2, _080178D8 @ =gBattleMons + ldr r0, _080178DC @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r1, r0 + ldr r4, [r0] + movs r0, 0x7 + ands r4, r0 + cmp r4, 0 + beq _080178F0 + ldr r0, _080178E0 @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xAD + bne _080178B8 + b _08017D90 +_080178B8: + cmp r0, 0xD6 + bne _080178BE + b _08017D90 +_080178BE: + ldr r1, _080178E4 @ =gUnknown_02024C10 + ldr r0, _080178E8 @ =gUnknown_081D94EE + str r0, [r1] + ldr r2, _080178EC @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] + movs r0, 0x2 + mov r9, r0 + b _08017D90 + .align 2, 0 +_080178D8: .4byte gBattleMons +_080178DC: .4byte gUnknown_02024C07 +_080178E0: .4byte gUnknown_02024BE6 +_080178E4: .4byte gUnknown_02024C10 +_080178E8: .4byte gUnknown_081D94EE +_080178EC: .4byte gUnknown_02024C6C +_080178F0: + adds r2, 0x50 + adds r2, r1, r2 + ldr r0, [r2] + ldr r1, _08017910 @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + ldr r0, _08017914 @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + ldr r1, _08017918 @ =gUnknown_02024C10 + ldr r0, _0801791C @ =gUnknown_081D94FB + str r0, [r1] + movs r1, 0x2 + b _08017D8E + .align 2, 0 +_08017910: .4byte 0xf7ffffff +_08017914: .4byte gUnknown_02024D1E +_08017918: .4byte gUnknown_02024C10 +_0801791C: .4byte gUnknown_081D94FB +_08017920: + ldr r1, _0801797C @ =gBattleMons + ldr r7, _08017980 @ =gUnknown_02024C07 + ldrb r0, [r7] + movs r6, 0x58 + muls r0, r6 + adds r5, r1, 0 + adds r5, 0x4C + adds r0, r5 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0801793C + b _08017F94 +_0801793C: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _080179A8 + ldr r2, _08017984 @ =gBattleMoves + ldr r0, _08017988 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x7D + beq _08017998 + ldr r1, _0801798C @ =gUnknown_02024C10 + ldr r0, _08017990 @ =gUnknown_081D9545 + str r0, [r1] + ldr r2, _08017994 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 2 + orrs r0, r1 + str r0, [r2] + b _080179C8 + .align 2, 0 +_0801797C: .4byte gBattleMons +_08017980: .4byte gUnknown_02024C07 +_08017984: .4byte gBattleMoves +_08017988: .4byte gUnknown_02024BE6 +_0801798C: .4byte gUnknown_02024C10 +_08017990: .4byte gUnknown_081D9545 +_08017994: .4byte gUnknown_02024C6C +_08017998: + ldr r2, _080179A0 @ =0x02000000 + ldr r7, _080179A4 @ =0x000160e7 + adds r1, r2, r7 + b _08017D96 + .align 2, 0 +_080179A0: .4byte 0x02000000 +_080179A4: .4byte 0x000160e7 +_080179A8: + ldrb r0, [r7] + adds r2, r0, 0 + muls r2, r6 + adds r2, r5 + ldr r0, [r2] + movs r1, 0x21 + negs r1, r1 + ands r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _080179CC @ =gUnknown_02024C10 + ldr r0, _080179D0 @ =gUnknown_081D9552 + str r0, [r1] + ldr r0, _080179D4 @ =gUnknown_02024D1E + strb r4, [r0, 0x5] +_080179C8: + movs r0, 0x2 + b _08017E3C + .align 2, 0 +_080179CC: .4byte gUnknown_02024C10 +_080179D0: .4byte gUnknown_081D9552 +_080179D4: .4byte gUnknown_02024D1E +_080179D8: + ldr r1, _08017A30 @ =gBattleMons + ldr r0, _08017A34 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x36 + beq _080179EE + b _08017D90 +_080179EE: + ldr r0, _08017A38 @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x18] + lsls r0, 31 + cmp r0, 0 + bne _08017A02 + b _08017D90 +_08017A02: + adds r0, r2, 0 + bl b_cancel_multi_turn_move_maybe + ldr r2, _08017A3C @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] + ldr r1, _08017A40 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] + ldr r1, _08017A44 @ =gUnknown_02024C10 + ldr r0, _08017A48 @ =gUnknown_081D9977 + str r0, [r1] + ldr r2, _08017A4C @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r2, 0x1 + mov r9, r2 + b _08017D90 + .align 2, 0 +_08017A30: .4byte gBattleMons +_08017A34: .4byte gUnknown_02024C07 +_08017A38: .4byte gUnknown_02024CA8 +_08017A3C: .4byte gUnknown_02024C6C +_08017A40: .4byte gUnknown_02024D1E +_08017A44: .4byte gUnknown_02024C10 +_08017A48: .4byte gUnknown_081D9977 +_08017A4C: .4byte gUnknown_02024C68 +_08017A50: + ldr r1, _08017AA4 @ =gBattleMons + ldr r3, _08017AA8 @ =gUnknown_02024C07 + ldrb r2, [r3] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 15 + ands r0, r1 + cmp r0, 0 + beq _08017A9C + ldr r0, _08017AAC @ =0xffbfffff + ands r1, r0 + str r1, [r2] + ldr r2, _08017AB0 @ =gUnknown_02024CA8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x19] + ldrb r0, [r3] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08017AB4 @ =gUnknown_02024C10 + ldr r0, _08017AB8 @ =gUnknown_081D7956 + str r0, [r1] + ldr r2, _08017ABC @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] + movs r7, 0x1 + mov r9, r7 +_08017A9C: + ldr r2, _08017AC0 @ =0x02000000 + ldr r0, _08017AC4 @ =0x000160e7 + adds r1, r2, r0 + b _08017D96 + .align 2, 0 +_08017AA4: .4byte gBattleMons +_08017AA8: .4byte gUnknown_02024C07 +_08017AAC: .4byte 0xffbfffff +_08017AB0: .4byte gUnknown_02024CA8 +_08017AB4: .4byte gUnknown_02024C10 +_08017AB8: .4byte gUnknown_081D7956 +_08017ABC: .4byte gUnknown_02024C6C +_08017AC0: .4byte 0x02000000 +_08017AC4: .4byte 0x000160e7 +_08017AC8: + ldr r1, _08017B08 @ =gBattleMons + ldr r3, _08017B0C @ =gUnknown_02024C07 + ldrb r2, [r3] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08017AE2 + b _08017D90 +_08017AE2: + movs r0, 0x9 + negs r0, r0 + ands r1, r0 + str r1, [r2] + ldr r0, _08017B10 @ =gUnknown_02024D28 + ldrb r2, [r3] + lsls r2, 4 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2, 0x2] + ldrb r0, [r3] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08017B14 @ =gUnknown_02024C10 + ldr r0, _08017B18 @ =gUnknown_081D9573 + b _08017D7E + .align 2, 0 +_08017B08: .4byte gBattleMons +_08017B0C: .4byte gUnknown_02024C07 +_08017B10: .4byte gUnknown_02024D28 +_08017B14: .4byte gUnknown_02024C10 +_08017B18: .4byte gUnknown_081D9573 +_08017B1C: + ldr r0, _08017B74 @ =gUnknown_02024CA8 + ldr r3, _08017B78 @ =gUnknown_02024C07 + ldrb r2, [r3] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r0, _08017B7C @ =gUnknown_02024BE6 + ldrh r1, [r1, 0x4] + ldrh r0, [r0] + cmp r1, r0 + beq _08017B36 + b _08017D90 +_08017B36: + cmp r1, 0 + bne _08017B3C + b _08017D90 +_08017B3C: + ldr r0, _08017B80 @ =gUnknown_02024D28 + lsls r2, 4 + adds r2, r0 + ldrb r0, [r2, 0x1] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2, 0x1] + ldr r0, _08017B84 @ =0x02000000 + ldrb r1, [r3] + ldr r7, _08017B88 @ =0x00016003 + adds r0, r7 + strb r1, [r0] + ldrb r0, [r3] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08017B8C @ =gUnknown_02024C10 + ldr r0, _08017B90 @ =gUnknown_081D9139 + str r0, [r1] + ldr r2, _08017B94 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] + movs r0, 0x1 + mov r9, r0 + b _08017D90 + .align 2, 0 +_08017B74: .4byte gUnknown_02024CA8 +_08017B78: .4byte gUnknown_02024C07 +_08017B7C: .4byte gUnknown_02024BE6 +_08017B80: .4byte gUnknown_02024D28 +_08017B84: .4byte 0x02000000 +_08017B88: .4byte 0x00016003 +_08017B8C: .4byte gUnknown_02024C10 +_08017B90: .4byte gUnknown_081D9139 +_08017B94: .4byte gUnknown_02024C6C +_08017B98: + ldr r0, _08017BF4 @ =gUnknown_02024CA8 + ldr r4, _08017BF8 @ =gUnknown_02024C07 + ldrb r3, [r4] + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x13] + lsls r0, 28 + cmp r0, 0 + beq _08017BEC + ldr r2, _08017BFC @ =gBattleMoves + ldr r0, _08017C00 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08017BEC + ldr r0, _08017C04 @ =gUnknown_02024D28 + lsls r2, r3, 4 + adds r2, r0 + ldrb r0, [r2, 0x2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x2] + ldrb r0, [r4] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08017C08 @ =gUnknown_02024C10 + ldr r0, _08017C0C @ =gUnknown_081D938F + str r0, [r1] + ldr r2, _08017C10 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] + movs r7, 0x1 + mov r9, r7 +_08017BEC: + ldr r2, _08017C14 @ =0x02000000 + ldr r0, _08017C18 @ =0x000160e7 + adds r1, r2, r0 + b _08017D96 + .align 2, 0 +_08017BF4: .4byte gUnknown_02024CA8 +_08017BF8: .4byte gUnknown_02024C07 +_08017BFC: .4byte gBattleMoves +_08017C00: .4byte gUnknown_02024BE6 +_08017C04: .4byte gUnknown_02024D28 +_08017C08: .4byte gUnknown_02024C10 +_08017C0C: .4byte gUnknown_081D938F +_08017C10: .4byte gUnknown_02024C6C +_08017C14: .4byte 0x02000000 +_08017C18: .4byte 0x000160e7 +_08017C1C: + ldr r4, _08017C4C @ =gUnknown_02024C07 + ldrb r0, [r4] + ldr r1, _08017C50 @ =gUnknown_02024BE6 + ldrh r1, [r1] + bl sub_8015D5C + lsls r0, 24 + cmp r0, 0 + bne _08017C30 + b _08017D90 +_08017C30: + ldr r0, _08017C54 @ =gUnknown_02024D28 + ldrb r2, [r4] + lsls r2, 4 + adds r2, r0 + ldrb r0, [r2, 0x1] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r4] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08017C58 @ =gUnknown_02024C10 + ldr r0, _08017C5C @ =gUnknown_081D9459 + b _08017D7E + .align 2, 0 +_08017C4C: .4byte gUnknown_02024C07 +_08017C50: .4byte gUnknown_02024BE6 +_08017C54: .4byte gUnknown_02024D28 +_08017C58: .4byte gUnknown_02024C10 +_08017C5C: .4byte gUnknown_081D9459 +_08017C60: + ldr r7, _08017CAC @ =gBattleMons + ldr r5, _08017CB0 @ =gUnknown_02024C07 + ldrb r0, [r5] + movs r6, 0x58 + muls r0, r6 + adds r4, r7, 0 + adds r4, 0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r3, 0x7 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _08017C7E + b _08017F94 +_08017C7E: + subs r0, r1, 0x1 + str r0, [r2] + ldrb r0, [r5] + muls r0, r6 + adds r0, r4 + ldr r0, [r0] + ands r0, r3 + cmp r0, 0 + beq _08017D24 + bl Random + movs r1, 0x1 + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + beq _08017CB8 + ldr r1, _08017CB4 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] + bl b_movescr_stack_push_cursor + b _08017D02 + .align 2, 0 +_08017CAC: .4byte gBattleMons +_08017CB0: .4byte gUnknown_02024C07 +_08017CB4: .4byte gUnknown_02024D1E +_08017CB8: + ldr r0, _08017D08 @ =gUnknown_02024D1E + movs r4, 0x1 + strb r1, [r0, 0x5] + ldr r1, _08017D0C @ =gUnknown_02024C08 + ldrb r0, [r5] + strb r0, [r1] + ldrb r0, [r5] + adds r1, r0, 0 + muls r1, r6 + adds r1, r7 + movs r0, 0x28 + str r0, [sp] + str r2, [sp, 0x4] + ldrb r0, [r5] + str r0, [sp, 0x8] + ldrb r0, [r5] + str r0, [sp, 0xC] + adds r0, r1, 0 + movs r2, 0x1 + movs r3, 0 + bl CalculateBaseDamage + ldr r1, _08017D10 @ =gUnknown_02024BEC + str r0, [r1] + ldr r0, _08017D14 @ =gUnknown_02024D28 + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + orrs r0, r4 + strb r0, [r1, 0x1] + ldr r2, _08017D18 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] +_08017D02: + ldr r1, _08017D1C @ =gUnknown_02024C10 + ldr r0, _08017D20 @ =gUnknown_081D9595 + b _08017D2C + .align 2, 0 +_08017D08: .4byte gUnknown_02024D1E +_08017D0C: .4byte gUnknown_02024C08 +_08017D10: .4byte gUnknown_02024BEC +_08017D14: .4byte gUnknown_02024D28 +_08017D18: .4byte gUnknown_02024C6C +_08017D1C: .4byte gUnknown_02024C10 +_08017D20: .4byte gUnknown_081D9595 +_08017D24: + bl b_movescr_stack_push_cursor + ldr r1, _08017D34 @ =gUnknown_02024C10 + ldr r0, _08017D38 @ =gUnknown_081D95D4 +_08017D2C: + str r0, [r1] + movs r7, 0x1 + b _08017F8E + .align 2, 0 +_08017D34: .4byte gUnknown_02024C10 +_08017D38: .4byte gUnknown_081D95D4 +_08017D3C: + ldr r1, _08017DA0 @ =gBattleMons + ldr r4, _08017DA4 @ =gUnknown_02024C07 + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08017D90 + bl Random + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + cmp r1, 0 + bne _08017D90 + ldr r0, _08017DA8 @ =gUnknown_02024D28 + ldrb r2, [r4] + lsls r2, 4 + adds r2, r0 + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08017DAC @ =gUnknown_02024C10 + ldr r0, _08017DB0 @ =gUnknown_081D9566 +_08017D7E: + str r0, [r1] + ldr r2, _08017DB4 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] + movs r1, 0x1 +_08017D8E: + mov r9, r1 +_08017D90: + ldr r2, _08017DB8 @ =0x02000000 + ldr r4, _08017DBC @ =0x000160e7 + adds r1, r2, r4 +_08017D96: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r8, r2 + b _08017F9E + .align 2, 0 +_08017DA0: .4byte gBattleMons +_08017DA4: .4byte gUnknown_02024C07 +_08017DA8: .4byte gUnknown_02024D28 +_08017DAC: .4byte gUnknown_02024C10 +_08017DB0: .4byte gUnknown_081D9566 +_08017DB4: .4byte gUnknown_02024C6C +_08017DB8: .4byte 0x02000000 +_08017DBC: .4byte 0x000160e7 +_08017DC0: + ldr r1, _08017DFC @ =gBattleMons + ldr r4, _08017E00 @ =gUnknown_02024C07 + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0xF0 + lsls r0, 12 + ands r1, r0 + cmp r1, 0 + bne _08017DDC + b _08017F94 +_08017DDC: + lsrs r0, r1, 16 + bl sub_804114C + ldr r1, _08017E04 @ =0x02000000 + ldr r7, _08017E08 @ =0x00016003 + adds r1, r7 + strb r0, [r1] + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08017E0C + bl b_movescr_stack_push_cursor + b _08017E34 + .align 2, 0 +_08017DFC: .4byte gBattleMons +_08017E00: .4byte gUnknown_02024C07 +_08017E04: .4byte 0x02000000 +_08017E08: .4byte 0x00016003 +_08017E0C: + ldr r0, _08017E44 @ =gUnknown_081D9608 + bl b_movescr_stack_push + ldr r2, _08017E48 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 + orrs r0, r1 + str r0, [r2] + ldr r0, _08017E4C @ =gUnknown_02024D28 + ldrb r2, [r4] + lsls r2, 4 + adds r2, r0 + ldrb r0, [r2, 0x1] + movs r1, 0x40 + orrs r0, r1 + strb r0, [r2, 0x1] + ldrb r0, [r4] + bl b_cancel_multi_turn_move_maybe +_08017E34: + ldr r1, _08017E50 @ =gUnknown_02024C10 + ldr r0, _08017E54 @ =gUnknown_081D95FB + str r0, [r1] + movs r0, 0x1 +_08017E3C: + mov r9, r0 + ldr r1, _08017E58 @ =0x02000000 + mov r8, r1 + b _08017F94 + .align 2, 0 +_08017E44: .4byte gUnknown_081D9608 +_08017E48: .4byte gUnknown_02024C6C +_08017E4C: .4byte gUnknown_02024D28 +_08017E50: .4byte gUnknown_02024C10 +_08017E54: .4byte gUnknown_081D95FB +_08017E58: .4byte 0x02000000 +_08017E5C: + ldr r1, _08017E98 @ =gBattleMons + ldr r6, _08017E9C @ =gUnknown_02024C07 + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r1, 0x50 + adds r3, r0, r1 + ldr r2, [r3] + movs r4, 0xC0 + lsls r4, 2 + adds r0, r2, 0 + ands r0, r4 + cmp r0, 0 + bne _08017E7A + b _08017F94 +_08017E7A: + ldr r7, _08017EA0 @ =0xffffff00 + adds r0, r2, r7 + str r0, [r3] + ldrb r0, [r6] + muls r0, r5 + adds r1, r0, r1 + ldr r2, [r1] + adds r0, r2, 0 + ands r0, r4 + cmp r0, 0 + beq _08017EAC + ldr r1, _08017EA4 @ =gUnknown_02024C10 + ldr r0, _08017EA8 @ =gUnknown_081D90A7 + b _08017F38 + .align 2, 0 +_08017E98: .4byte gBattleMons +_08017E9C: .4byte gUnknown_02024C07 +_08017EA0: .4byte 0xffffff00 +_08017EA4: .4byte gUnknown_02024C10 +_08017EA8: .4byte gUnknown_081D90A7 +_08017EAC: + ldr r0, _08017F0C @ =0xffffefff + ands r2, r0 + str r2, [r1] + ldr r2, _08017F10 @ =gUnknown_02024BF4 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, 0 + beq _08017F34 + ldr r1, _08017F14 @ =gUnknown_02024BE6 + movs r0, 0x75 + strh r0, [r1] + ldrb r0, [r6] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + lsls r0, 1 + mov r1, r10 + str r0, [r1] + ldr r4, _08017F18 @ =gUnknown_02024C08 + ldr r1, _08017F1C @ =gUnknown_02024C74 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + strb r0, [r4] + ldr r0, _08017F20 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08017F24 @ =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08017EFE + movs r0, 0x75 + movs r1, 0x1 + bl sub_801B5C0 + strb r0, [r4] +_08017EFE: + ldr r1, _08017F28 @ =gUnknown_02024C10 + ldr r0, _08017F2C @ =gUnknown_081D90B2 + str r0, [r1] + ldr r2, _08017F30 @ =0x02000000 + mov r8, r2 + b _08017F3A + .align 2, 0 +_08017F0C: .4byte 0xffffefff +_08017F10: .4byte gUnknown_02024BF4 +_08017F14: .4byte gUnknown_02024BE6 +_08017F18: .4byte gUnknown_02024C08 +_08017F1C: .4byte gUnknown_02024C74 +_08017F20: .4byte gUnknown_02024C0C +_08017F24: .4byte gBitTable +_08017F28: .4byte gUnknown_02024C10 +_08017F2C: .4byte gUnknown_081D90B2 +_08017F30: .4byte 0x02000000 +_08017F34: + ldr r1, _08017F40 @ =gUnknown_02024C10 + ldr r0, _08017F44 @ =gUnknown_081D90F1 +_08017F38: + str r0, [r1] +_08017F3A: + movs r4, 0x1 + mov r9, r4 + b _08017F94 + .align 2, 0 +_08017F40: .4byte gUnknown_02024C10 +_08017F44: .4byte gUnknown_081D90F1 +_08017F48: + ldr r1, _08017FEC @ =gBattleMons + ldr r0, _08017FF0 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r4, r0, r1 + ldr r3, [r4] + movs r0, 0x20 + ands r0, r3 + cmp r0, 0 + beq _08017F94 + ldr r2, _08017FF4 @ =gBattleMoves + ldr r0, _08017FF8 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x7D + bne _08017F8C + movs r0, 0x21 + negs r0, r0 + ands r3, r0 + str r3, [r4] + bl b_movescr_stack_push_cursor + ldr r1, _08017FFC @ =gUnknown_02024C10 + ldr r0, _08018000 @ =gUnknown_081D9552 + str r0, [r1] + ldr r1, _08018004 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] +_08017F8C: + movs r7, 0x2 +_08017F8E: + mov r9, r7 + ldr r0, _08018008 @ =0x02000000 + mov r8, r0 +_08017F94: + ldr r1, _0801800C @ =0x000160e7 + add r1, r8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_08017F9E: + ldr r0, _0801800C @ =0x000160e7 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0xE + beq _08017FAC + bl _0801773C +_08017FAC: + mov r1, r9 + cmp r1, 0x2 + bne _08017FD8 + ldr r4, _08018010 @ =gUnknown_02024A60 + ldr r0, _08017FF0 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r4] + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + ldr r1, _08018014 @ =gUnknown_02024ACC + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08017FD8: + mov r0, r9 + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08017FEC: .4byte gBattleMons +_08017FF0: .4byte gUnknown_02024C07 +_08017FF4: .4byte gBattleMoves +_08017FF8: .4byte gUnknown_02024BE6 +_08017FFC: .4byte gUnknown_02024C10 +_08018000: .4byte gUnknown_081D9552 +_08018004: .4byte gUnknown_02024D1E +_08018008: .4byte 0x02000000 +_0801800C: .4byte 0x000160e7 +_08018010: .4byte gUnknown_02024A60 +_08018014: .4byte gUnknown_02024ACC + thumb_func_end sub_8017718 + + thumb_func_start sub_8018018 +sub_8018018: @ 8018018 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r4, r0, 24 + adds r3, r4, 0 + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + ldr r0, _08018044 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08018048 + movs r0, 0 + b _08018198 + .align 2, 0 +_08018044: .4byte gUnknown_020239F8 +_08018048: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080180D4 + adds r0, r4, 0 + bl sub_803FC34 + lsls r0, 24 + lsrs r7, r0, 24 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _080180CC @ =gEnemyParty + mov r8, r1 + cmp r0, 0 + bne _0801806E + ldr r2, _080180D0 @ =gPlayerParty + mov r8, r2 +_0801806E: + adds r0, r7, 0 + bl sub_803FBFC + lsls r0, 24 + lsrs r6, r0, 24 + lsls r0, r6, 1 + adds r5, r0, r6 + adds r0, r5, 0x3 + cmp r5, r0 + bge _080180BA + adds r7, r0, 0 +_08018084: + 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 _080180B4 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080180B4 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + bne _080180BA +_080180B4: + adds r5, 0x1 + cmp r5, r7 + blt _08018084 +_080180BA: + movs r1, 0 + lsls r0, r6, 1 + adds r0, r6 + adds r0, 0x3 + cmp r5, r0 + bne _080180C8 + movs r1, 0x1 +_080180C8: + adds r0, r1, 0 + b _08018198 + .align 2, 0 +_080180CC: .4byte gEnemyParty +_080180D0: .4byte gPlayerParty +_080180D4: + adds r0, r3, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08018100 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + ldr r2, _080180FC @ =gEnemyParty + mov r8, r2 + b _08018118 + .align 2, 0 +_080180FC: .4byte gEnemyParty +_08018100: + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r7, r0, 24 + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _080181A8 @ =gPlayerParty + mov r8, r0 +_08018118: + mov r1, r10 + cmp r1, 0x6 + bne _08018128 + ldr r1, _080181AC @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrb r0, [r0] + mov r10, r0 +_08018128: + mov r2, r9 + cmp r2, 0x6 + bne _08018138 + ldr r1, _080181AC @ =gUnknown_02024A6A + lsls r0, r6, 1 + adds r0, r1 + ldrb r0, [r0] + mov r9, r0 +_08018138: + movs r5, 0 +_0801813A: + 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 _0801818A + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _0801818A + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _0801818A + cmp r5, r10 + beq _0801818A + cmp r5, r9 + beq _0801818A + ldr r1, _080181B0 @ =0x02000000 + ldr r2, _080181B4 @ =0x00016068 + adds r0, r7, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r5, r0 + beq _0801818A + adds r0, r6, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r5, r0 + bne _08018190 +_0801818A: + adds r5, 0x1 + cmp r5, 0x5 + ble _0801813A +_08018190: + movs r0, 0 + cmp r5, 0x6 + bne _08018198 + movs r0, 0x1 +_08018198: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080181A8: .4byte gPlayerParty +_080181AC: .4byte gUnknown_02024A6A +_080181B0: .4byte 0x02000000 +_080181B4: .4byte 0x00016068 + thumb_func_end sub_8018018 + + thumb_func_start castform_switch +castform_switch: @ 80181B8 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r6, r0, 24 + movs r5, 0 + ldr r1, _08018228 @ =gBattleMons + movs r0, 0x58 + muls r0, r6 + adds r4, r0, r1 + ldrh r1, [r4] + ldr r0, _0801822C @ =SPECIES_CASTFORM + cmp r1, r0 + bne _0801825C + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3B + bne _0801825C + ldrh r0, [r4, 0x28] + cmp r0, 0 + beq _0801825C + str r5, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0801820A + str r5, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08018230 +_0801820A: + adds r2, r4, 0 + adds r2, 0x21 + ldrb r0, [r2] + cmp r0, 0 + beq _08018230 + adds r1, r4, 0 + adds r1, 0x22 + ldrb r0, [r1] + cmp r0, 0 + beq _08018230 + strb r5, [r2] + strb r5, [r1] + movs r0, 0x1 + b _08018314 + .align 2, 0 +_08018228: .4byte gBattleMons +_0801822C: .4byte SPECIES_CASTFORM +_08018230: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0801825C + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08018260 +_0801825C: + movs r0, 0 + b _08018314 +_08018260: + ldr r1, _0801831C @ =word_2024DB8 + ldrh r0, [r1] + movs r2, 0xE7 + ands r2, r0 + adds r4, r1, 0 + cmp r2, 0 + bne _0801828E + ldr r1, _08018320 @ =gBattleMons + movs r0, 0x58 + muls r0, r6 + adds r1, r0, r1 + adds r3, r1, 0 + adds r3, 0x21 + ldrb r0, [r3] + cmp r0, 0 + beq _0801828E + adds r1, 0x22 + ldrb r0, [r1] + cmp r0, 0 + beq _0801828E + strb r2, [r3] + strb r2, [r1] + movs r5, 0x1 +_0801828E: + ldrh r1, [r4] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _080182BA + ldr r1, _08018320 @ =gBattleMons + movs r0, 0x58 + muls r0, r6 + adds r1, r0, r1 + adds r2, r1, 0 + adds r2, 0x21 + ldrb r0, [r2] + cmp r0, 0xA + beq _080182BA + adds r1, 0x22 + ldrb r0, [r1] + cmp r0, 0xA + beq _080182BA + movs r0, 0xA + strb r0, [r2] + strb r0, [r1] + movs r5, 0x2 +_080182BA: + ldrh r1, [r4] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080182E6 + ldr r1, _08018320 @ =gBattleMons + movs r0, 0x58 + muls r0, r6 + adds r1, r0, r1 + adds r2, r1, 0 + adds r2, 0x21 + ldrb r0, [r2] + cmp r0, 0xB + beq _080182E6 + adds r1, 0x22 + ldrb r0, [r1] + cmp r0, 0xB + beq _080182E6 + movs r0, 0xB + strb r0, [r2] + strb r0, [r1] + movs r5, 0x3 +_080182E6: + ldrh r1, [r4] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08018312 + ldr r1, _08018320 @ =gBattleMons + movs r0, 0x58 + muls r0, r6 + adds r1, r0, r1 + adds r2, r1, 0 + adds r2, 0x21 + ldrb r0, [r2] + cmp r0, 0xF + beq _08018312 + adds r1, 0x22 + ldrb r0, [r1] + cmp r0, 0xF + beq _08018312 + movs r0, 0xF + strb r0, [r2] + strb r0, [r1] + movs r5, 0x4 +_08018312: + adds r0, r5, 0 +_08018314: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0801831C: .4byte word_2024DB8 +_08018320: .4byte gBattleMons + thumb_func_end castform_switch + + thumb_func_start sub_8018324 +sub_8018324: @ 8018324 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + ldr r4, [sp, 0x48] + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + lsls r1, 24 + lsrs r1, 24 + mov r10, r1 + lsls r2, 24 + lsrs r6, r2, 24 + lsls r3, 24 + lsrs r3, 24 + mov r8, r3 + lsls r4, 16 + lsrs r4, 16 + movs r0, 0 + mov r9, r0 + ldr r5, _08018380 @ =gUnknown_02024C07 + ldr r1, _08018384 @ =gUnknown_02024A68 + ldrb r0, [r5] + ldrb r1, [r1] + cmp r0, r1 + bcc _08018360 + mov r1, r10 + strb r1, [r5] +_08018360: + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08018390 + ldr r1, _08018388 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0801838C @ =gPlayerParty + b _080183A0 + .align 2, 0 +_08018380: .4byte gUnknown_02024C07 +_08018384: .4byte gUnknown_02024A68 +_08018388: .4byte gUnknown_02024A6A +_0801838C: .4byte gPlayerParty +_08018390: + ldr r1, _080183D0 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080183D4 @ =gEnemyParty +_080183A0: + adds r7, r1, r0 + ldr r5, _080183D8 @ =gUnknown_02024C08 + ldr r1, _080183DC @ =gUnknown_02024A68 + ldrb r0, [r5] + ldrb r1, [r1] + cmp r0, r1 + bcc _080183B2 + mov r2, r10 + strb r2, [r5] +_080183B2: + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080183E4 + ldr r1, _080183D0 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080183E0 @ =gPlayerParty + b _080183F4 + .align 2, 0 +_080183D0: .4byte gUnknown_02024A6A +_080183D4: .4byte gEnemyParty +_080183D8: .4byte gUnknown_02024C08 +_080183DC: .4byte gUnknown_02024A68 +_080183E0: .4byte gPlayerParty +_080183E4: + ldr r1, _08018444 @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08018448 @ =gEnemyParty +_080183F4: + adds r5, r1, r0 + adds r0, r7, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0x8] + adds r0, r7, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x10] + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + str r0, [sp, 0xC] + adds r0, r5, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x14] + ldr r0, _0801844C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08018436 + bl _08019F92 +_08018436: + mov r3, r8 + cmp r3, 0 + beq _08018454 + ldr r0, _08018450 @ =byte_2024C06 + strb r3, [r0] + mov r8, r0 + b _0801846A + .align 2, 0 +_08018444: .4byte gUnknown_02024A6A +_08018448: .4byte gEnemyParty +_0801844C: .4byte gUnknown_020239F8 +_08018450: .4byte byte_2024C06 +_08018454: + ldr r2, _08018474 @ =byte_2024C06 + ldr r1, _08018478 @ =gBattleMons + movs r0, 0x58 + mov r5, r10 + muls r5, r0 + adds r0, r5, 0 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r2] + mov r8, r2 +_0801846A: + cmp r4, 0 + beq _0801847C + adds r3, r4, 0 + b _08018480 + .align 2, 0 +_08018474: .4byte byte_2024C06 +_08018478: .4byte gBattleMons +_0801847C: + ldr r0, _08018494 @ =gUnknown_02024BE6 + ldrh r3, [r0] +_08018480: + ldr r1, _08018498 @ =0x02000000 + ldr r2, _0801849C @ =0x0001601c + adds r0, r1, r2 + ldrb r0, [r0] + adds r7, r1, 0 + cmp r0, 0 + beq _080184A0 + movs r4, 0x3F + ands r4, r0 + b _080184AC + .align 2, 0 +_08018494: .4byte gUnknown_02024BE6 +_08018498: .4byte 0x02000000 +_0801849C: .4byte 0x0001601c +_080184A0: + ldr r1, _080184C0 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x2] +_080184AC: + ldr r5, [sp, 0x4] + cmp r5, 0x13 + bls _080184B6 + bl _08019F76 +_080184B6: + lsls r0, r5, 2 + ldr r1, _080184C4 @ =_080184C8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080184C0: .4byte gBattleMoves +_080184C4: .4byte _080184C8 + .align 2, 0 +_080184C8: + .4byte _08018518 + .4byte _08018814 + .4byte _08018A40 + .4byte _08018AD8 + .4byte _08018CF0 + .4byte _08019448 + .4byte _080197B4 + .4byte _08019804 + .4byte _08019880 + .4byte _080198FC + .4byte _08019B1C + .4byte _08019940 + .4byte _08019B60 + .4byte _08019BBC + .4byte _08019C18 + .4byte _08019D18 + .4byte _08019D5C + .4byte _08019DB8 + .4byte _08019F44 + .4byte _08019CD4 +_08018518: + ldr r2, _0801854C @ =gUnknown_02024C07 + ldr r0, _08018550 @ =gUnknown_02024A68 + ldrb r1, [r2] + adds r5, r0, 0 + ldrb r0, [r5] + cmp r1, r0 + bcc _0801852A + mov r1, r10 + strb r1, [r2] +_0801852A: + mov r2, r8 + ldrb r0, [r2] + cmp r0, 0x2D + bne _08018534 + b _080186B8 +_08018534: + cmp r0, 0x2D + bgt _08018564 + cmp r0, 0xD + bne _0801853E + b _080187DC +_0801853E: + cmp r0, 0xD + bgt _08018554 + cmp r0, 0x2 + bne _08018548 + b _08018680 +_08018548: + bl _08019F76 + .align 2, 0 +_0801854C: .4byte gUnknown_02024C07 +_08018550: .4byte gUnknown_02024A68 +_08018554: + cmp r0, 0x16 + bne _0801855A + b _08018728 +_0801855A: + cmp r0, 0x24 + bne _08018560 + b _080187A0 +_08018560: + bl _08019F76 +_08018564: + cmp r0, 0x46 + bne _0801856A + b _080186F0 +_0801856A: + cmp r0, 0x46 + bgt _08018578 + cmp r0, 0x3B + bne _08018574 + b _0801875C +_08018574: + bl _08019F76 +_08018578: + cmp r0, 0x4D + bne _0801857E + b _080187DC +_0801857E: + cmp r0, 0xFF + beq _08018586 + bl _08019F76 +_08018586: + bl weather_get_current + lsls r0, 24 + lsrs r0, 24 + subs r0, 0x3 + cmp r0, 0xA + bhi _0801864C + lsls r0, 2 + ldr r1, _080185A0 @ =_080185A4 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080185A0: .4byte _080185A4 + .align 2, 0 +_080185A4: + .4byte _080185D0 + .4byte _0801864C + .4byte _080185D0 + .4byte _0801864C + .4byte _0801864C + .4byte _080185F8 + .4byte _0801864C + .4byte _0801864C + .4byte _0801864C + .4byte _08018620 + .4byte _080185D0 +_080185D0: + ldr r2, _080185EC @ =word_2024DB8 + ldrh r1, [r2] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801864C + movs r0, 0x5 + strh r0, [r2] + ldr r0, _080185F0 @ =0x02000000 + ldr r3, _080185F4 @ =0x000160a4 + adds r2, r0, r3 + movs r1, 0xA + b _08018638 + .align 2, 0 +_080185EC: .4byte word_2024DB8 +_080185F0: .4byte 0x02000000 +_080185F4: .4byte 0x000160a4 +_080185F8: + ldr r3, _08018614 @ =word_2024DB8 + ldrh r1, [r3] + movs r2, 0x18 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0801864C + strh r2, [r3] + ldr r0, _08018618 @ =0x02000000 + ldr r3, _0801861C @ =0x000160a4 + adds r2, r0, r3 + movs r1, 0xC + b _08018638 + .align 2, 0 +_08018614: .4byte word_2024DB8 +_08018618: .4byte 0x02000000 +_0801861C: .4byte 0x000160a4 +_08018620: + ldr r3, _08018668 @ =word_2024DB8 + ldrh r1, [r3] + movs r2, 0x60 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0801864C + strh r2, [r3] + ldr r0, _0801866C @ =0x02000000 + ldr r3, _08018670 @ =0x000160a4 + adds r2, r0, r3 + movs r1, 0xB +_08018638: + strb r1, [r2] + ldr r5, _08018674 @ =0x00016003 + adds r0, r5 + mov r1, r10 + strb r1, [r0] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_0801864C: + mov r2, r9 + cmp r2, 0 + bne _08018656 + bl _08019F92 +_08018656: + bl weather_get_current + ldr r1, _08018678 @ =gUnknown_02024D1E + strb r0, [r1, 0x5] + ldr r0, _0801867C @ =gUnknown_081D901D + bl b_push_move_exec + bl _08019F76 + .align 2, 0 +_08018668: .4byte word_2024DB8 +_0801866C: .4byte 0x02000000 +_08018670: .4byte 0x000160a4 +_08018674: .4byte 0x00016003 +_08018678: .4byte gUnknown_02024D1E +_0801867C: .4byte gUnknown_081D901D +_08018680: + ldr r2, _080186A8 @ =word_2024DB8 + ldrh r1, [r2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08018690 + bl _08019F76 +_08018690: + movs r0, 0x5 + strh r0, [r2] + ldr r0, _080186AC @ =gUnknown_081D9704 + bl b_push_move_exec + ldr r0, _080186B0 @ =0x02000000 + ldr r3, _080186B4 @ =0x00016003 + adds r0, r3 + mov r5, r10 + strb r5, [r0] + bl _08019F22 + .align 2, 0 +_080186A8: .4byte word_2024DB8 +_080186AC: .4byte gUnknown_081D9704 +_080186B0: .4byte 0x02000000 +_080186B4: .4byte 0x00016003 +_080186B8: + ldr r2, _080186E0 @ =word_2024DB8 + ldrh r1, [r2] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080186C8 + bl _08019F76 +_080186C8: + movs r0, 0x18 + strh r0, [r2] + ldr r0, _080186E4 @ =gUnknown_081D9744 + bl b_push_move_exec + ldr r0, _080186E8 @ =0x02000000 + ldr r1, _080186EC @ =0x00016003 + adds r0, r1 + mov r2, r10 + strb r2, [r0] + bl _08019F22 + .align 2, 0 +_080186E0: .4byte word_2024DB8 +_080186E4: .4byte gUnknown_081D9744 +_080186E8: .4byte 0x02000000 +_080186EC: .4byte 0x00016003 +_080186F0: + ldr r2, _08018718 @ =word_2024DB8 + ldrh r1, [r2] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08018700 + bl _08019F76 +_08018700: + movs r0, 0x60 + strh r0, [r2] + ldr r0, _0801871C @ =gUnknown_081D97FE + bl b_push_move_exec + ldr r0, _08018720 @ =0x02000000 + ldr r3, _08018724 @ =0x00016003 + adds r0, r3 + mov r5, r10 + strb r5, [r0] + bl _08019F22 + .align 2, 0 +_08018718: .4byte word_2024DB8 +_0801871C: .4byte gUnknown_081D97FE +_08018720: .4byte 0x02000000 +_08018724: .4byte 0x00016003 +_08018728: + ldr r0, _08018754 @ =gUnknown_02024D68 + mov r1, r10 + lsls r2, r1, 2 + adds r1, r2, r1 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3] + lsls r0, 28 + cmp r0, 0 + bge _08018740 + bl _08019F76 +_08018740: + ldr r1, _08018758 @ =gUnknown_02024C98 + adds r1, r2, r1 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 12 + orrs r0, r2 + str r0, [r1] + ldrb r0, [r3] + movs r1, 0x8 + b _080187CA + .align 2, 0 +_08018754: .4byte gUnknown_02024D68 +_08018758: .4byte gUnknown_02024C98 +_0801875C: + mov r0, r10 + bl castform_switch + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r0, 0 + bne _08018770 + bl _08019F92 +_08018770: + ldr r0, _08018790 @ =gUnknown_081D977D + bl b_push_move_exec + ldr r0, _08018794 @ =0x02000000 + ldr r2, _08018798 @ =0x00016003 + adds r1, r0, r2 + mov r3, r10 + strb r3, [r1] + mov r1, r9 + subs r1, 0x1 + ldr r5, _0801879C @ =0x0001609b + adds r0, r5 + strb r1, [r0] + bl _08019F76 + .align 2, 0 +_08018790: .4byte gUnknown_081D977D +_08018794: .4byte 0x02000000 +_08018798: .4byte 0x00016003 +_0801879C: .4byte 0x0001609b +_080187A0: + ldr r0, _080187D4 @ =gUnknown_02024D68 + mov r1, r10 + lsls r2, r1, 2 + adds r1, r2, r1 + lsls r1, 2 + adds r3, r1, r0 + ldrb r0, [r3] + lsls r0, 27 + cmp r0, 0 + bge _080187B8 + bl _08019F76 +_080187B8: + ldr r1, _080187D8 @ =gUnknown_02024C98 + adds r1, r2, r1 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 13 + orrs r0, r2 + str r0, [r1] + ldrb r0, [r3] + movs r1, 0x10 +_080187CA: + orrs r0, r1 + strb r0, [r3] + bl _08019F76 + .align 2, 0 +_080187D4: .4byte gUnknown_02024D68 +_080187D8: .4byte gUnknown_02024C98 +_080187DC: + movs r6, 0 + ldrb r5, [r5] + cmp r6, r5 + bcc _080187E8 + bl _08019F76 +_080187E8: + adds r0, r6, 0 + bl castform_switch + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r0, 0 + beq _080187FC + bl _08019E14 +_080187FC: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _08018810 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r6, r0 + bcc _080187E8 + bl _08019F76 + .align 2, 0 +_08018810: .4byte gUnknown_02024A68 +_08018814: + ldr r2, _08018844 @ =gBattleMons + movs r0, 0x58 + mov r1, r10 + muls r1, r0 + adds r4, r1, r2 + ldrh r0, [r4, 0x28] + cmp r0, 0 + bne _08018828 + bl _08019F76 +_08018828: + ldr r0, _08018848 @ =gUnknown_02024C07 + mov r3, r10 + strb r3, [r0] + mov r3, r8 + ldrb r5, [r3] + cmp r5, 0x2C + beq _0801885A + cmp r5, 0x2C + bgt _0801884C + cmp r5, 0x3 + bne _08018840 + b _080189B8 +_08018840: + bl _08019F76 + .align 2, 0 +_08018844: .4byte gBattleMons +_08018848: .4byte gUnknown_02024C07 +_0801884C: + cmp r5, 0x36 + bne _08018852 + b _08018A18 +_08018852: + cmp r5, 0x3D + beq _080188DC + bl _08019F76 +_0801885A: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08018876 + bl _08019F76 +_08018876: + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _0801888E + bl _08019F76 +_0801888E: + ldr r0, _080188D0 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801889E + bl _08019F76 +_0801889E: + ldrh r0, [r4, 0x2C] + ldrh r1, [r4, 0x28] + cmp r0, r1 + bhi _080188AA + bl _08019F76 +_080188AA: + mov r2, r8 + strb r5, [r2] + ldr r0, _080188D4 @ =gUnknown_081D9730 + bl b_push_move_exec + ldr r1, _080188D8 @ =gUnknown_02024BEC + ldrh r0, [r4, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _080188C4 + movs r0, 0x1 + str r0, [r1] +_080188C4: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + bl _08019F22 + .align 2, 0 +_080188D0: .4byte word_2024DB8 +_080188D4: .4byte gUnknown_081D9730 +_080188D8: .4byte gUnknown_02024BEC +_080188DC: + adds r0, r2, 0 + adds r0, 0x4C + adds r5, r1, r0 + ldrb r0, [r5] + cmp r0, 0 + bne _080188EC + bl _08019F76 +_080188EC: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08018906 + bl _08019F76 +_08018906: + ldr r0, [r5] + movs r1, 0x88 + ands r0, r1 + cmp r0, 0 + beq _08018918 + ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r1, _08018994 @ =gStatusConditionString_PoisonJpn + bl StringCopy +_08018918: + ldr r0, [r5] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0801892A + ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r1, _08018998 @ =gStatusConditionString_SleepJpn + bl StringCopy +_0801892A: + ldr r0, [r5] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801893C + ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r1, _0801899C @ =gStatusConditionString_ParalysisJpn + bl StringCopy +_0801893C: + ldr r0, [r5] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0801894E + ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r1, _080189A0 @ =gStatusConditionString_BurnJpn + bl StringCopy +_0801894E: + ldr r0, [r5] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08018960 + ldr r0, _08018990 @ =gUnknown_030041C0 + ldr r1, _080189A4 @ =gStatusConditionString_IceJpn + bl StringCopy +_08018960: + str r4, [r5] + ldr r0, _080189A8 @ =0x02000000 + ldr r4, _080189AC @ =gUnknown_02024A60 + mov r3, r10 + strb r3, [r4] + ldr r1, _080189B0 @ =0x00016003 + adds r0, r1 + strb r3, [r0] + ldr r0, _080189B4 @ =gUnknown_081D9758 + bl b_push_move_exec + str r5, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + bl _08019F22 + .align 2, 0 +_08018990: .4byte gUnknown_030041C0 +_08018994: .4byte gStatusConditionString_PoisonJpn +_08018998: .4byte gStatusConditionString_SleepJpn +_0801899C: .4byte gStatusConditionString_ParalysisJpn +_080189A0: .4byte gStatusConditionString_BurnJpn +_080189A4: .4byte gStatusConditionString_IceJpn +_080189A8: .4byte 0x02000000 +_080189AC: .4byte gUnknown_02024A60 +_080189B0: .4byte 0x00016003 +_080189B4: .4byte gUnknown_081D9758 +_080189B8: + ldrb r2, [r4, 0x1B] + movs r0, 0x1B + ldrsb r0, [r4, r0] + cmp r0, 0xB + ble _080189C6 + bl _08019F76 +_080189C6: + ldr r0, _08018A04 @ =gUnknown_02024CA8 + mov r3, r10 + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x16] + cmp r0, 0x2 + bne _080189DC + bl _08019F76 +_080189DC: + adds r0, r2, 0x1 + movs r2, 0 + strb r0, [r4, 0x1B] + ldr r5, _08018A08 @ =0x000160a4 + adds r1, r7, r5 + movs r0, 0x11 + strb r0, [r1] + ldr r1, _08018A0C @ =0x000160a5 + adds r0, r7, r1 + strb r2, [r0] + ldr r0, _08018A10 @ =gUnknown_081D9718 + bl b_push_move_exec + ldr r2, _08018A14 @ =0x00016003 + adds r0, r7, r2 + mov r3, r10 + strb r3, [r0] + bl _08019F22 + .align 2, 0 +_08018A04: .4byte gUnknown_02024CA8 +_08018A08: .4byte 0x000160a4 +_08018A0C: .4byte 0x000160a5 +_08018A10: .4byte gUnknown_081D9718 +_08018A14: .4byte 0x00016003 +_08018A18: + ldr r2, _08018A3C @ =gUnknown_02024CA8 + ldrb r0, [r0] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r3, [r1, 0x18] + lsls r0, r3, 31 + lsrs r0, 31 + movs r2, 0x1 + eors r2, r0 + movs r0, 0x2 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0x18] + bl _08019F76 + .align 2, 0 +_08018A3C: .4byte gUnknown_02024CA8 +_08018A40: + mov r5, r8 + ldrb r0, [r5] + cmp r0, 0x2B + beq _08018A4C + bl _08019F76 +_08018A4C: + movs r4, 0 + ldr r0, _08018ABC @ =gUnknown_081FA724 + ldrh r2, [r0] + ldr r5, _08018AC0 @ =0x0000ffff + adds r1, r0, 0 + cmp r2, r5 + bne _08018A5E + bl _08019F76 +_08018A5E: + cmp r2, r3 + beq _08018A76 + adds r2, r1, 0 +_08018A64: + adds r2, 0x2 + adds r4, 0x1 + ldrh r0, [r2] + cmp r0, r5 + bne _08018A72 + bl _08019F76 +_08018A72: + cmp r0, r3 + bne _08018A64 +_08018A76: + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + ldr r0, _08018AC0 @ =0x0000ffff + cmp r1, r0 + bne _08018A86 + bl _08019F76 +_08018A86: + ldr r1, _08018AC4 @ =gBattleMons + ldr r0, _08018AC8 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + beq _08018AAC + ldr r0, _08018ACC @ =gUnknown_02024C6C + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 4 + orrs r1, r2 + str r1, [r0] +_08018AAC: + ldr r1, _08018AD0 @ =gUnknown_02024C10 + ldr r0, _08018AD4 @ =gUnknown_081D98F3 + str r0, [r1] + movs r0, 0x1 + mov r9, r0 + bl _08019F7C + .align 2, 0 +_08018ABC: .4byte gUnknown_081FA724 +_08018AC0: .4byte 0x0000ffff +_08018AC4: .4byte gBattleMons +_08018AC8: .4byte gUnknown_02024C07 +_08018ACC: .4byte gUnknown_02024C6C +_08018AD0: .4byte gUnknown_02024C10 +_08018AD4: .4byte gUnknown_081D98F3 +_08018AD8: + cmp r3, 0 + bne _08018AE0 + bl _08019F76 +_08018AE0: + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0xB + beq _08018B50 + cmp r0, 0xB + bgt _08018AF2 + cmp r0, 0xA + beq _08018AF8 + b _08018C6A +_08018AF2: + cmp r0, 0x12 + beq _08018BA8 + b _08018C6A +_08018AF8: + cmp r4, 0xD + beq _08018AFE + b _08018C6A +_08018AFE: + ldr r0, _08018B28 @ =gBattleMoves + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08018B10 + b _08018C6A +_08018B10: + ldr r1, _08018B2C @ =gUnknown_02024D28 + ldr r0, _08018B30 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r0, 28 + cmp r0, 0 + bge _08018B3C + ldr r1, _08018B34 @ =gUnknown_02024C10 + ldr r0, _08018B38 @ =gUnknown_081D9843 + b _08018B40 + .align 2, 0 +_08018B28: .4byte gBattleMoves +_08018B2C: .4byte gUnknown_02024D28 +_08018B30: .4byte gUnknown_02024C07 +_08018B34: .4byte gUnknown_02024C10 +_08018B38: .4byte gUnknown_081D9843 +_08018B3C: + ldr r1, _08018B48 @ =gUnknown_02024C10 + ldr r0, _08018B4C @ =gUnknown_081D9842 +_08018B40: + str r0, [r1] + movs r2, 0x1 + b _08018C68 + .align 2, 0 +_08018B48: .4byte gUnknown_02024C10 +_08018B4C: .4byte gUnknown_081D9842 +_08018B50: + cmp r4, 0xB + beq _08018B56 + b _08018C6A +_08018B56: + ldr r0, _08018B80 @ =gBattleMoves + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08018B68 + b _08018C6A +_08018B68: + ldr r1, _08018B84 @ =gUnknown_02024D28 + ldr r0, _08018B88 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r0, 28 + cmp r0, 0 + bge _08018B94 + ldr r1, _08018B8C @ =gUnknown_02024C10 + ldr r0, _08018B90 @ =gUnknown_081D9843 + b _08018B98 + .align 2, 0 +_08018B80: .4byte gBattleMoves +_08018B84: .4byte gUnknown_02024D28 +_08018B88: .4byte gUnknown_02024C07 +_08018B8C: .4byte gUnknown_02024C10 +_08018B90: .4byte gUnknown_081D9843 +_08018B94: + ldr r1, _08018BA0 @ =gUnknown_02024C10 + ldr r0, _08018BA4 @ =gUnknown_081D9842 +_08018B98: + str r0, [r1] + movs r3, 0x1 + mov r9, r3 + b _08018C6A + .align 2, 0 +_08018BA0: .4byte gUnknown_02024C10 +_08018BA4: .4byte gUnknown_081D9842 +_08018BA8: + cmp r4, 0xA + bne _08018C6A + ldr r1, _08018BF4 @ =gBattleMons + movs r0, 0x58 + mov r5, r10 + muls r5, r0 + adds r0, r5, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08018C6A + ldr r2, _08018BF8 @ =0x02017100 + mov r0, r10 + lsls r1, r0, 2 + adds r0, r1, r2 + ldr r3, [r0] + movs r4, 0x1 + ands r3, r4 + adds r5, r1, 0 + cmp r3, 0 + bne _08018C30 + ldr r0, _08018BFC @ =gUnknown_02024D1E + strb r3, [r0, 0x5] + ldr r1, _08018C00 @ =gUnknown_02024D28 + ldr r0, _08018C04 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r0, 28 + cmp r0, 0 + bge _08018C10 + ldr r1, _08018C08 @ =gUnknown_02024C10 + ldr r0, _08018C0C @ =gUnknown_081D987C + b _08018C14 + .align 2, 0 +_08018BF4: .4byte gBattleMons +_08018BF8: .4byte 0x02017100 +_08018BFC: .4byte gUnknown_02024D1E +_08018C00: .4byte gUnknown_02024D28 +_08018C04: .4byte gUnknown_02024C07 +_08018C08: .4byte gUnknown_02024C10 +_08018C0C: .4byte gUnknown_081D987C +_08018C10: + ldr r1, _08018C28 @ =gUnknown_02024C10 + ldr r0, _08018C2C @ =gUnknown_081D987B +_08018C14: + str r0, [r1] + adds r0, r5, r2 + ldr r1, [r0] + movs r2, 0x1 + orrs r1, r2 + str r1, [r0] + movs r1, 0x2 + mov r9, r1 + b _08018C6A + .align 2, 0 +_08018C28: .4byte gUnknown_02024C10 +_08018C2C: .4byte gUnknown_081D987B +_08018C30: + ldr r0, _08018C4C @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + ldr r1, _08018C50 @ =gUnknown_02024D28 + ldr r0, _08018C54 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r0, 28 + cmp r0, 0 + bge _08018C60 + ldr r1, _08018C58 @ =gUnknown_02024C10 + ldr r0, _08018C5C @ =gUnknown_081D987C + b _08018C64 + .align 2, 0 +_08018C4C: .4byte gUnknown_02024D1E +_08018C50: .4byte gUnknown_02024D28 +_08018C54: .4byte gUnknown_02024C07 +_08018C58: .4byte gUnknown_02024C10 +_08018C5C: .4byte gUnknown_081D987C +_08018C60: + ldr r1, _08018CA4 @ =gUnknown_02024C10 + ldr r0, _08018CA8 @ =gUnknown_081D987B +_08018C64: + str r0, [r1] + movs r2, 0x2 +_08018C68: + mov r9, r2 +_08018C6A: + mov r3, r9 + cmp r3, 0x1 + beq _08018C74 + bl _08019F76 +_08018C74: + ldr r1, _08018CAC @ =gBattleMons + movs r0, 0x58 + mov r5, r10 + muls r5, r0 + adds r0, r5, 0 + adds r1, r0, r1 + ldrh r0, [r1, 0x2C] + ldrh r2, [r1, 0x28] + cmp r0, r2 + bne _08018CD0 + ldr r1, _08018CB0 @ =gUnknown_02024D28 + ldr r0, _08018CB4 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x2] + lsls r0, 28 + cmp r0, 0 + bge _08018CBC + ldr r1, _08018CA4 @ =gUnknown_02024C10 + ldr r0, _08018CB8 @ =gUnknown_081D9866 + str r0, [r1] + bl _08019F76 + .align 2, 0 +_08018CA4: .4byte gUnknown_02024C10 +_08018CA8: .4byte gUnknown_081D987B +_08018CAC: .4byte gBattleMons +_08018CB0: .4byte gUnknown_02024D28 +_08018CB4: .4byte gUnknown_02024C07 +_08018CB8: .4byte gUnknown_081D9866 +_08018CBC: + ldr r1, _08018CC8 @ =gUnknown_02024C10 + ldr r0, _08018CCC @ =gUnknown_081D9865 + str r0, [r1] + bl _08019F76 + .align 2, 0 +_08018CC8: .4byte gUnknown_02024C10 +_08018CCC: .4byte gUnknown_081D9865 +_08018CD0: + ldr r2, _08018CEC @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + lsrs r0, 2 + str r0, [r2] + cmp r0, 0 + bne _08018CE0 + mov r3, r9 + str r3, [r2] +_08018CE0: + ldr r0, [r2] + negs r0, r0 + str r0, [r2] + bl _08019F76 + .align 2, 0 +_08018CEC: .4byte gUnknown_02024BEC +_08018CF0: + mov r5, r8 + ldrb r0, [r5] + subs r0, 0x9 + cmp r0, 0x2F + bls _08018CFE + bl _08019F76 +_08018CFE: + lsls r0, 2 + ldr r1, _08018D08 @ =_08018D0C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08018D08: .4byte _08018D0C + .align 2, 0 +_08018D0C: + .4byte _08019128 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08018DCC + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08018E94 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08018F54 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _0801904C + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019204 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _08019F76 + .4byte _080192E0 +_08018DCC: + ldr r0, _08018E74 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08018DDC + bl _08019F76 +_08018DDC: + cmp r3, 0xA5 + bne _08018DE4 + bl _08019F76 +_08018DE4: + ldr r0, _08018E78 @ =gBattleMoves + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _08018DF8 + bl _08019F76 +_08018DF8: + ldr r2, _08018E7C @ =gUnknown_02024D68 + ldr r0, _08018E80 @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08018E20 + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08018E20 + bl _08019F76 +_08018E20: + ldr r1, _08018E84 @ =gBattleMons + movs r0, 0x58 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + adds r1, r0, r1 + adds r3, r1, 0 + adds r3, 0x21 + ldrb r0, [r3] + cmp r0, r4 + bne _08018E3A + bl _08019F76 +_08018E3A: + adds r2, r1, 0 + adds r2, 0x22 + ldrb r0, [r2] + cmp r0, r4 + bne _08018E48 + bl _08019F76 +_08018E48: + ldrh r0, [r1, 0x28] + cmp r0, 0 + bne _08018E52 + bl _08019F76 +_08018E52: + strb r4, [r3] + strb r4, [r2] + ldr r1, _08018E88 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r4, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + bl b_movescr_stack_push_cursor + ldr r1, _08018E8C @ =gUnknown_02024C10 + ldr r0, _08018E90 @ =gUnknown_081D9921 + str r0, [r1] + bl _08019F22 + .align 2, 0 +_08018E74: .4byte gUnknown_02024C68 +_08018E78: .4byte gBattleMoves +_08018E7C: .4byte gUnknown_02024D68 +_08018E80: .4byte gUnknown_02024C08 +_08018E84: .4byte gBattleMons +_08018E88: .4byte gUnknown_030041C0 +_08018E8C: .4byte gUnknown_02024C10 +_08018E90: .4byte gUnknown_081D9921 +_08018E94: + ldr r0, _08018F2C @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08018EA4 + bl _08019F76 +_08018EA4: + ldr r1, _08018F30 @ =gBattleMons + ldr r0, _08018F34 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r4, r0, r1 + ldrh r0, [r4, 0x28] + cmp r0, 0 + bne _08018EBA + bl _08019F76 +_08018EBA: + ldr r0, _08018F38 @ =gUnknown_02024D28 + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 31 + cmp r0, 0 + beq _08018ECC + bl _08019F76 +_08018ECC: + ldr r2, _08018F3C @ =gUnknown_02024D68 + ldr r0, _08018F40 @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08018EF4 + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08018EF4 + bl _08019F76 +_08018EF4: + ldr r1, _08018F44 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08018F0E + bl _08019F76 +_08018F0E: + ldr r1, _08018F48 @ =gUnknown_02024BEC + ldrh r0, [r4, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08018F1C + str r2, [r1] +_08018F1C: + bl b_movescr_stack_push_cursor + ldr r1, _08018F4C @ =gUnknown_02024C10 + ldr r0, _08018F50 @ =gUnknown_081D9928 + str r0, [r1] + bl _08019F22 + .align 2, 0 +_08018F2C: .4byte gUnknown_02024C68 +_08018F30: .4byte gBattleMons +_08018F34: .4byte gUnknown_02024C07 +_08018F38: .4byte gUnknown_02024D28 +_08018F3C: .4byte gUnknown_02024D68 +_08018F40: .4byte gUnknown_02024C08 +_08018F44: .4byte gBattleMoves +_08018F48: .4byte gUnknown_02024BEC +_08018F4C: .4byte gUnknown_02024C10 +_08018F50: .4byte gUnknown_081D9928 +_08018F54: + ldr r0, _08019020 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08018F64 + bl _08019F76 +_08018F64: + ldr r1, _08019024 @ =gBattleMons + ldr r0, _08019028 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08018F7A + bl _08019F76 +_08018F7A: + ldr r0, _0801902C @ =gUnknown_02024D28 + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 31 + cmp r0, 0 + beq _08018F8C + bl _08019F76 +_08018F8C: + ldr r2, _08019030 @ =gUnknown_02024D68 + ldr r0, _08019034 @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08018FB4 + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08018FB4 + bl _08019F76 +_08018FB4: + ldr r1, _08019038 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08018FCC + bl _08019F76 +_08018FCC: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08018FE4 + bl _08019F76 +_08018FE4: + ldr r5, _0801903C @ =gUnknown_02024D1E + movs r4, 0x3 +_08018FE8: + bl Random + ands r0, r4 + strb r0, [r5, 0x3] + cmp r0, 0 + beq _08018FE8 + ldr r1, _0801903C @ =gUnknown_02024D1E + ldrb r0, [r1, 0x3] + cmp r0, 0x3 + bne _08019000 + adds r0, 0x2 + strb r0, [r1, 0x3] +_08019000: + ldrb r0, [r1, 0x3] + adds r0, 0x40 + strb r0, [r1, 0x3] + bl b_movescr_stack_push_cursor + ldr r1, _08019040 @ =gUnknown_02024C10 + ldr r0, _08019044 @ =gUnknown_081D9950 + str r0, [r1] + ldr r2, _08019048 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + str r0, [r2] + bl _08019F22 + .align 2, 0 +_08019020: .4byte gUnknown_02024C68 +_08019024: .4byte gBattleMons +_08019028: .4byte gUnknown_02024C07 +_0801902C: .4byte gUnknown_02024D28 +_08019030: .4byte gUnknown_02024D68 +_08019034: .4byte gUnknown_02024C08 +_08019038: .4byte gBattleMoves +_0801903C: .4byte gUnknown_02024D1E +_08019040: .4byte gUnknown_02024C10 +_08019044: .4byte gUnknown_081D9950 +_08019048: .4byte gUnknown_02024C6C +_0801904C: + ldr r0, _080190FC @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0801905C + bl _08019F76 +_0801905C: + ldr r1, _08019100 @ =gBattleMons + ldr r0, _08019104 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08019072 + bl _08019F76 +_08019072: + ldr r0, _08019108 @ =gUnknown_02024D28 + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 31 + cmp r0, 0 + beq _08019084 + bl _08019F76 +_08019084: + ldr r2, _0801910C @ =gUnknown_02024D68 + ldr r0, _08019110 @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _080190AC + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _080190AC + bl _08019F76 +_080190AC: + ldr r1, _08019114 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080190C4 + bl _08019F76 +_080190C4: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _080190DC + bl _08019F76 +_080190DC: + ldr r1, _08019118 @ =gUnknown_02024D1E + movs r0, 0x42 + strb r0, [r1, 0x3] + bl b_movescr_stack_push_cursor + ldr r1, _0801911C @ =gUnknown_02024C10 + ldr r0, _08019120 @ =gUnknown_081D9950 + str r0, [r1] + ldr r2, _08019124 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + str r0, [r2] + bl _08019F22 + .align 2, 0 +_080190FC: .4byte gUnknown_02024C68 +_08019100: .4byte gBattleMons +_08019104: .4byte gUnknown_02024C07 +_08019108: .4byte gUnknown_02024D28 +_0801910C: .4byte gUnknown_02024D68 +_08019110: .4byte gUnknown_02024C08 +_08019114: .4byte gBattleMoves +_08019118: .4byte gUnknown_02024D1E +_0801911C: .4byte gUnknown_02024C10 +_08019120: .4byte gUnknown_081D9950 +_08019124: .4byte gUnknown_02024C6C +_08019128: + ldr r0, _080191D8 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08019138 + bl _08019F76 +_08019138: + ldr r1, _080191DC @ =gBattleMons + ldr r0, _080191E0 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0801914E + bl _08019F76 +_0801914E: + ldr r0, _080191E4 @ =gUnknown_02024D28 + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 31 + cmp r0, 0 + beq _08019160 + bl _08019F76 +_08019160: + ldr r2, _080191E8 @ =gUnknown_02024D68 + ldr r0, _080191EC @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08019188 + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08019188 + bl _08019F76 +_08019188: + ldr r1, _080191F0 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080191A0 + bl _08019F76 +_080191A0: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _080191B8 + bl _08019F76 +_080191B8: + ldr r1, _080191F4 @ =gUnknown_02024D1E + movs r0, 0x45 + strb r0, [r1, 0x3] + bl b_movescr_stack_push_cursor + ldr r1, _080191F8 @ =gUnknown_02024C10 + ldr r0, _080191FC @ =gUnknown_081D9950 + str r0, [r1] + ldr r2, _08019200 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + str r0, [r2] + bl _08019F22 + .align 2, 0 +_080191D8: .4byte gUnknown_02024C68 +_080191DC: .4byte gBattleMons +_080191E0: .4byte gUnknown_02024C07 +_080191E4: .4byte gUnknown_02024D28 +_080191E8: .4byte gUnknown_02024D68 +_080191EC: .4byte gUnknown_02024C08 +_080191F0: .4byte gBattleMoves +_080191F4: .4byte gUnknown_02024D1E +_080191F8: .4byte gUnknown_02024C10 +_080191FC: .4byte gUnknown_081D9950 +_08019200: .4byte gUnknown_02024C6C +_08019204: + ldr r0, _080192B4 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08019214 + bl _08019F76 +_08019214: + ldr r1, _080192B8 @ =gBattleMons + ldr r0, _080192BC @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0801922A + bl _08019F76 +_0801922A: + ldr r0, _080192C0 @ =gUnknown_02024D28 + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 31 + cmp r0, 0 + beq _0801923C + bl _08019F76 +_0801923C: + ldr r1, _080192C4 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08019254 + bl _08019F76 +_08019254: + ldr r2, _080192C8 @ =gUnknown_02024D68 + ldr r0, _080192CC @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0801927C + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0801927C + bl _08019F76 +_0801927C: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08019294 + bl _08019F76 +_08019294: + ldr r1, _080192D0 @ =gUnknown_02024D1E + movs r0, 0x43 + strb r0, [r1, 0x3] + bl b_movescr_stack_push_cursor + ldr r1, _080192D4 @ =gUnknown_02024C10 + ldr r0, _080192D8 @ =gUnknown_081D9950 + str r0, [r1] + ldr r2, _080192DC @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + str r0, [r2] + bl _08019F22 + .align 2, 0 +_080192B4: .4byte gUnknown_02024C68 +_080192B8: .4byte gBattleMons +_080192BC: .4byte gUnknown_02024C07 +_080192C0: .4byte gUnknown_02024D28 +_080192C4: .4byte gBattleMoves +_080192C8: .4byte gUnknown_02024D68 +_080192CC: .4byte gUnknown_02024C08 +_080192D0: .4byte gUnknown_02024D1E +_080192D4: .4byte gUnknown_02024C10 +_080192D8: .4byte gUnknown_081D9950 +_080192DC: .4byte gUnknown_02024C6C +_080192E0: + ldr r0, _08019420 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _080192F0 + bl _08019F76 +_080192F0: + ldr r5, _08019424 @ =gBattleMons + ldr r7, _08019428 @ =gUnknown_02024C07 + ldrb r1, [r7] + movs r6, 0x58 + adds r0, r1, 0 + muls r0, r6 + adds r0, r5 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08019308 + bl _08019F76 +_08019308: + ldr r0, _0801942C @ =gUnknown_02024D28 + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + lsls r0, 31 + cmp r0, 0 + beq _0801931A + bl _08019F76 +_0801931A: + ldr r1, _08019430 @ =gBattleMoves + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08019332 + bl _08019F76 +_08019332: + ldr r3, _08019434 @ =gUnknown_02024D68 + ldr r0, _08019438 @ =gUnknown_02024C08 + mov r8, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0801935C + adds r0, r3, 0 + adds r0, 0xC + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0801935C + bl _08019F76 +_0801935C: + adds r0, r1, 0 + muls r0, r6 + adds r0, r5 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0801936C + bl _08019F76 +_0801936C: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08019384 + bl _08019F76 +_08019384: + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0xC + bne _08019396 + bl _08019F76 +_08019396: + ldr r0, [sp, 0x8] + ldr r1, [sp, 0x10] + bl GetGenderFromSpeciesAndPersonality + adds r4, r0, 0 + ldr r0, [sp, 0xC] + ldr r1, [sp, 0x14] + bl GetGenderFromSpeciesAndPersonality + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + bne _080193B4 + bl _08019F76 +_080193B4: + ldrb r0, [r7] + muls r0, r6 + adds r4, r5, 0 + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r1, 0xF0 + lsls r1, 12 + ands r0, r1 + cmp r0, 0 + beq _080193CE + bl _08019F76 +_080193CE: + ldr r0, [sp, 0x8] + ldr r1, [sp, 0x10] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080193E2 + bl _08019F76 +_080193E2: + ldr r0, [sp, 0xC] + ldr r1, [sp, 0x14] + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080193F6 + bl _08019F76 +_080193F6: + ldrb r0, [r7] + adds r2, r0, 0 + muls r2, r6 + adds r2, r4 + ldr r1, _0801943C @ =gBitTable + mov r3, r8 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 16 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _08019440 @ =gUnknown_02024C10 + ldr r0, _08019444 @ =gUnknown_081D9943 + str r0, [r1] + bl _08019F22 + .align 2, 0 +_08019420: .4byte gUnknown_02024C68 +_08019424: .4byte gBattleMons +_08019428: .4byte gUnknown_02024C07 +_0801942C: .4byte gUnknown_02024D28 +_08019430: .4byte gBattleMoves +_08019434: .4byte gUnknown_02024D68 +_08019438: .4byte gUnknown_02024C08 +_0801943C: .4byte gBitTable +_08019440: .4byte gUnknown_02024C10 +_08019444: .4byte gUnknown_081D9943 +_08019448: + movs r5, 0 + mov r10, r5 + ldr r0, _0801947C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r10, r0 + bcc _08019458 + bl _08019F76 +_08019458: + ldr r1, _08019480 @ =gBattleMons + movs r0, 0x58 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + subs r0, 0x7 + adds r2, r1, 0 + cmp r0, 0x41 + bls _08019472 + b _080196D6 +_08019472: + lsls r0, 2 + ldr r1, _08019484 @ =_08019488 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801947C: .4byte gUnknown_02024A68 +_08019480: .4byte gBattleMons +_08019484: .4byte _08019488 + .align 2, 0 +_08019488: + .4byte _080195EC + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196B0 + .4byte _080196D6 + .4byte _080196D6 + .4byte _08019614 + .4byte _080196D6 + .4byte _08019590 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080195BC + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _08019680 + .4byte _08019650 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _080196D6 + .4byte _08019614 +_08019590: + movs r0, 0x58 + mov r3, r10 + muls r3, r0 + adds r0, r3, 0 + adds r1, r2, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + ldr r1, _080195B0 @ =0x00000f88 + ands r0, r1 + cmp r0, 0 + bne _080195AA + b _080196D6 +_080195AA: + ldr r0, _080195B4 @ =gUnknown_030041C0 + ldr r1, _080195B8 @ =gStatusConditionString_PoisonJpn + b _0801969C + .align 2, 0 +_080195B0: .4byte 0x00000f88 +_080195B4: .4byte gUnknown_030041C0 +_080195B8: .4byte gStatusConditionString_PoisonJpn +_080195BC: + movs r0, 0x58 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _080195D6 + b _080196D6 +_080195D6: + ldr r0, _080195E4 @ =gUnknown_030041C0 + ldr r1, _080195E8 @ =gStatusConditionString_ConfusionJpn + bl StringCopy + movs r2, 0x2 + mov r9, r2 + b _080196DC + .align 2, 0 +_080195E4: .4byte gUnknown_030041C0 +_080195E8: .4byte gStatusConditionString_ConfusionJpn +_080195EC: + movs r0, 0x58 + mov r3, r10 + muls r3, r0 + adds r0, r3, 0 + adds r1, r2, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080196D6 + ldr r0, _0801960C @ =gUnknown_030041C0 + ldr r1, _08019610 @ =gStatusConditionString_ParalysisJpn + b _0801969C + .align 2, 0 +_0801960C: .4byte gUnknown_030041C0 +_08019610: .4byte gStatusConditionString_ParalysisJpn +_08019614: + movs r0, 0x58 + mov r3, r10 + muls r3, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080196D6 + adds r2, 0x50 + adds r2, r3, r2 + ldr r0, [r2] + ldr r1, _08019644 @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + ldr r0, _08019648 @ =gUnknown_030041C0 + ldr r1, _0801964C @ =gStatusConditionString_SleepJpn + bl StringCopy + movs r0, 0x1 + mov r9, r0 + b _080196DC + .align 2, 0 +_08019644: .4byte 0xf7ffffff +_08019648: .4byte gUnknown_030041C0 +_0801964C: .4byte gStatusConditionString_SleepJpn +_08019650: + movs r0, 0x58 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + adds r1, r2, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080196D6 + ldr r0, _08019678 @ =gUnknown_030041C0 + ldr r1, _0801967C @ =gStatusConditionString_BurnJpn + bl StringCopy + movs r2, 0x1 + mov r9, r2 + b _080196DC + .align 2, 0 +_08019678: .4byte gUnknown_030041C0 +_0801967C: .4byte gStatusConditionString_BurnJpn +_08019680: + movs r0, 0x58 + mov r3, r10 + muls r3, r0 + adds r0, r3, 0 + adds r1, r2, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _080196D6 + ldr r0, _080196A8 @ =gUnknown_030041C0 + ldr r1, _080196AC @ =gStatusConditionString_IceJpn +_0801969C: + bl StringCopy + movs r5, 0x1 + mov r9, r5 + b _080196DC + .align 2, 0 +_080196A8: .4byte gUnknown_030041C0 +_080196AC: .4byte gStatusConditionString_IceJpn +_080196B0: + movs r0, 0x58 + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xF0 + lsls r1, 12 + ands r0, r1 + cmp r0, 0 + beq _080196D6 + ldr r0, _080196EC @ =gUnknown_030041C0 + ldr r1, _080196F0 @ =gStatusConditionString_LoveJpn + bl StringCopy + movs r2, 0x3 + mov r9, r2 +_080196D6: + mov r3, r9 + cmp r3, 0 + beq _08019798 +_080196DC: + mov r5, r9 + cmp r5, 0x2 + beq _08019710 + cmp r5, 0x2 + bgt _080196F4 + cmp r5, 0x1 + beq _080196FC + b _0801973C + .align 2, 0 +_080196EC: .4byte gUnknown_030041C0 +_080196F0: .4byte gStatusConditionString_LoveJpn +_080196F4: + mov r0, r9 + cmp r0, 0x3 + beq _08019728 + b _0801973C +_080196FC: + ldr r1, _0801970C @ =gBattleMons + movs r0, 0x58 + mov r2, r10 + muls r2, r0 + adds r1, 0x4C + adds r2, r1 + movs r0, 0 + b _0801973A + .align 2, 0 +_0801970C: .4byte gBattleMons +_08019710: + ldr r1, _08019724 @ =gBattleMons + movs r0, 0x58 + mov r2, r10 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x8 + negs r1, r1 + b _08019738 + .align 2, 0 +_08019724: .4byte gBattleMons +_08019728: + ldr r1, _08019778 @ =gBattleMons + movs r0, 0x58 + mov r2, r10 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + ldr r1, _0801977C @ =0xfff0ffff +_08019738: + ands r0, r1 +_0801973A: + str r0, [r2] +_0801973C: + bl b_movescr_stack_push_cursor + ldr r1, _08019780 @ =gUnknown_02024C10 + ldr r0, _08019784 @ =gUnknown_081D9956 + str r0, [r1] + ldr r0, _08019788 @ =0x02000000 + ldr r1, _0801978C @ =0x00016003 + adds r0, r1 + mov r2, r10 + strb r2, [r0] + ldr r4, _08019790 @ =gUnknown_02024A60 + strb r2, [r4] + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + ldr r1, _08019794 @ =gUnknown_02024ACC + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + bl _08019F92 + .align 2, 0 +_08019778: .4byte gBattleMons +_0801977C: .4byte 0xfff0ffff +_08019780: .4byte gUnknown_02024C10 +_08019784: .4byte gUnknown_081D9956 +_08019788: .4byte 0x02000000 +_0801978C: .4byte 0x00016003 +_08019790: .4byte gUnknown_02024A60 +_08019794: .4byte gUnknown_02024ACC +_08019798: + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _080197B0 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r10, r0 + bcs _080197AC + b _08019458 +_080197AC: + bl _08019F76 + .align 2, 0 +_080197B0: .4byte gUnknown_02024A68 +_080197B4: + movs r3, 0 + mov r10, r3 + ldr r0, _080197FC @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r10, r0 + bcc _080197C2 + b _08019F76 +_080197C2: + ldr r4, _08019800 @ =gBattleMons +_080197C4: + movs r0, 0x58 + mov r5, r10 + muls r5, r0 + adds r0, r5, 0 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3B + bne _080197E8 + mov r0, r10 + bl castform_switch + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + cmp r0, 0 + beq _080197E8 + b _08019E40 +_080197E8: + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _080197FC @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r10, r0 + bcc _080197C4 + b _08019F76 + .align 2, 0 +_080197FC: .4byte gUnknown_02024A68 +_08019800: .4byte gBattleMons +_08019804: + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0x1C + beq _0801980E + b _08019F76 +_0801980E: + ldr r4, _08019860 @ =gUnknown_02024C6C + ldr r1, [r4] + movs r0, 0x80 + lsls r0, 7 + ands r0, r1 + cmp r0, 0 + bne _0801981E + b _08019F76 +_0801981E: + ldr r0, _08019864 @ =0xffffbfff + ands r1, r0 + str r1, [r4] + ldr r3, _08019868 @ =0x000160ca + adds r2, r7, r3 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2] + cmp r0, 0x6 + bne _08019838 + movs r0, 0x2 + strb r0, [r2] +_08019838: + ldr r1, _0801986C @ =gUnknown_02024D1E + ldrb r0, [r2] + adds r0, 0x40 + strb r0, [r1, 0x3] + ldr r0, _08019870 @ =gUnknown_02024C08 + ldrb r1, [r0] + ldr r5, _08019874 @ =0x00016003 + adds r0, r7, r5 + strb r1, [r0] + bl b_movescr_stack_push_cursor + ldr r1, _08019878 @ =gUnknown_02024C10 + ldr r0, _0801987C @ =gUnknown_081D9953 + str r0, [r1] + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + str r0, [r4] + b _08019F22 + .align 2, 0 +_08019860: .4byte gUnknown_02024C6C +_08019864: .4byte 0xffffbfff +_08019868: .4byte 0x000160ca +_0801986C: .4byte gUnknown_02024D1E +_08019870: .4byte gUnknown_02024C08 +_08019874: .4byte 0x00016003 +_08019878: .4byte gUnknown_02024C10 +_0801987C: .4byte gUnknown_081D9953 +_08019880: + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0x1C + beq _0801988A + b _08019F76 +_0801988A: + ldr r4, _080198DC @ =gUnknown_02024C6C + ldr r1, [r4] + movs r0, 0x80 + lsls r0, 7 + ands r0, r1 + cmp r0, 0 + bne _0801989A + b _08019F76 +_0801989A: + ldr r0, _080198E0 @ =0xffffbfff + ands r1, r0 + str r1, [r4] + ldr r3, _080198E4 @ =0x000160ca + adds r2, r7, r3 + ldrb r1, [r2] + movs r0, 0x3F + ands r0, r1 + strb r0, [r2] + cmp r0, 0x6 + bne _080198B4 + movs r0, 0x2 + strb r0, [r2] +_080198B4: + ldr r1, _080198E8 @ =gUnknown_02024D1E + ldrb r0, [r2] + strb r0, [r1, 0x3] + ldr r0, _080198EC @ =gUnknown_02024C07 + ldrb r1, [r0] + ldr r5, _080198F0 @ =0x00016003 + adds r0, r7, r5 + strb r1, [r0] + bl b_movescr_stack_push_cursor + ldr r1, _080198F4 @ =gUnknown_02024C10 + ldr r0, _080198F8 @ =gUnknown_081D9953 + str r0, [r1] + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 6 + orrs r0, r1 + str r0, [r4] + b _08019F22 + .align 2, 0 +_080198DC: .4byte gUnknown_02024C6C +_080198E0: .4byte 0xffffbfff +_080198E4: .4byte 0x000160ca +_080198E8: .4byte gUnknown_02024D1E +_080198EC: .4byte gUnknown_02024C07 +_080198F0: .4byte 0x00016003 +_080198F4: .4byte gUnknown_02024C10 +_080198F8: .4byte gUnknown_081D9953 +_080198FC: + movs r4, 0 + ldr r0, _08019934 @ =gUnknown_02024A68 + ldrb r1, [r0] + cmp r4, r1 + blt _08019908 + b _08019F76 +_08019908: + ldr r0, _08019938 @ =gBattleMons + adds r5, r1, 0 + ldr r2, _0801993C @ =gUnknown_02024C98 + adds r3, r0, 0 + adds r3, 0x20 + movs r6, 0x80 + lsls r6, 12 +_08019916: + ldrb r1, [r3] + cmp r1, 0x16 + bne _08019926 + ldr r0, [r2] + ands r0, r6 + cmp r0, 0 + beq _08019926 + b _08019E6C +_08019926: + adds r2, 0x4 + adds r3, 0x58 + adds r4, 0x1 + cmp r4, r5 + blt _08019916 + b _08019F76 + .align 2, 0 +_08019934: .4byte gUnknown_02024A68 +_08019938: .4byte gBattleMons +_0801993C: .4byte gUnknown_02024C98 +_08019940: + movs r4, 0 + ldr r0, _08019A1C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _0801994C + b _08019F76 +_0801994C: + ldr r0, _08019A20 @ =gUnknown_02024A60 + mov r8, r0 + ldr r1, _08019A24 @ =gBattleMons + adds r1, 0x20 + str r1, [sp, 0x1C] + movs r2, 0 + str r2, [sp, 0x20] +_0801995A: + ldr r3, [sp, 0x1C] + ldrb r0, [r3] + cmp r0, 0x24 + beq _08019964 + b _08019AF6 +_08019964: + ldr r0, _08019A28 @ =gUnknown_02024C98 + ldr r5, [sp, 0x20] + adds r0, r5, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 13 + ands r1, r0 + str r5, [sp, 0x18] + cmp r1, 0 + bne _0801997A + b _08019AF6 +_0801997A: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_get_per_side_status + movs r1, 0x1 + adds r5, r0, 0 + eors r5, r1 + ands r5, r1 + adds r0, r5, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + adds r0, r5, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _08019A2C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080199AE + b _08019ABC +_080199AE: + movs r1, 0x58 + adds r0, r6, 0 + muls r0, r1 + ldr r3, _08019A24 @ =gBattleMons + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08019A78 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _08019A34 + movs r1, 0x58 + adds r0, r7, 0 + muls r0, r1 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08019A34 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _08019A34 + str r2, [sp, 0x24] + bl Random + ldr r2, [sp, 0x24] + adds r1, r2, 0 + ands r1, r0 + lsls r1, 1 + orrs r5, r1 + adds r0, r5, 0 + bl battle_get_side_with_given_state + mov r2, r8 + strb r0, [r2] + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + ldr r5, _08019A24 @ =gBattleMons + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + ldr r1, [sp, 0x1C] + strb r0, [r1] + ldrb r0, [r2] + muls r0, r3 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + ldr r2, _08019A30 @ =byte_2024C06 + strb r0, [r2] + b _08019AE4 + .align 2, 0 +_08019A1C: .4byte gUnknown_02024A68 +_08019A20: .4byte gUnknown_02024A60 +_08019A24: .4byte gBattleMons +_08019A28: .4byte gUnknown_02024C98 +_08019A2C: .4byte gUnknown_020239F8 +_08019A30: .4byte byte_2024C06 +_08019A34: + ldr r3, _08019A74 @ =gBattleMons + movs r2, 0x58 + adds r0, r6, 0 + muls r0, r2 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08019A78 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _08019A78 + mov r5, r8 + strb r6, [r5] + adds r1, r4, 0 + muls r1, r2 + adds r1, r3 + ldrb r0, [r5] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + adds r1, 0x20 + strb r0, [r1] + ldrb r0, [r5] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + b _08019AE0 + .align 2, 0 +_08019A74: .4byte gBattleMons +_08019A78: + ldr r3, _08019AB8 @ =gBattleMons + movs r2, 0x58 + adds r0, r7, 0 + muls r0, r2 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _08019AEE + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _08019AEE + mov r5, r8 + strb r7, [r5] + adds r1, r4, 0 + muls r1, r2 + adds r1, r3 + ldrb r0, [r5] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + adds r1, 0x20 + strb r0, [r1] + ldrb r0, [r5] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + b _08019AE0 + .align 2, 0 +_08019AB8: .4byte gBattleMons +_08019ABC: + mov r2, r8 + strb r6, [r2] + movs r3, 0x58 + adds r0, r6, 0 + muls r0, r3 + ldr r5, _08019B10 @ =gBattleMons + adds r0, r5 + adds r2, r0, 0 + adds r2, 0x20 + ldrb r1, [r2] + cmp r1, 0 + beq _08019AEE + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08019AEE + ldr r0, [sp, 0x1C] + strb r1, [r0] + ldrb r0, [r2] +_08019AE0: + ldr r1, _08019B14 @ =byte_2024C06 + strb r0, [r1] +_08019AE4: + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08019AEE: + mov r2, r9 + cmp r2, 0 + beq _08019AF6 + b _08019E88 +_08019AF6: + ldr r3, [sp, 0x1C] + adds r3, 0x58 + str r3, [sp, 0x1C] + ldr r5, [sp, 0x20] + adds r5, 0x4 + str r5, [sp, 0x20] + adds r4, 0x1 + ldr r0, _08019B18 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + bge _08019B0E + b _0801995A +_08019B0E: + b _08019F76 + .align 2, 0 +_08019B10: .4byte gBattleMons +_08019B14: .4byte byte_2024C06 +_08019B18: .4byte gUnknown_02024A68 +_08019B1C: + movs r4, 0 + ldr r0, _08019B54 @ =gUnknown_02024A68 + ldrb r1, [r0] + cmp r4, r1 + blt _08019B28 + b _08019F76 +_08019B28: + ldr r0, _08019B58 @ =gBattleMons + adds r5, r1, 0 + ldr r2, _08019B5C @ =gUnknown_02024C98 + adds r3, r0, 0 + adds r3, 0x20 + movs r6, 0x80 + lsls r6, 12 +_08019B36: + ldrb r1, [r3] + cmp r1, 0x16 + bne _08019B46 + ldr r0, [r2] + ands r0, r6 + cmp r0, 0 + beq _08019B46 + b _08019F04 +_08019B46: + adds r2, 0x4 + adds r3, 0x58 + adds r4, 0x1 + cmp r4, r5 + blt _08019B36 + b _08019F76 + .align 2, 0 +_08019B54: .4byte gUnknown_02024A68 +_08019B58: .4byte gBattleMons +_08019B5C: .4byte gUnknown_02024C98 +_08019B60: + mov r0, r10 + bl battle_side_get_owner + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _08019BB0 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019B76 + b _08019F76 +_08019B76: + ldr r7, _08019BB4 @ =gBattleMons +_08019B78: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + adds r3, r4, 0x1 + cmp r0, r5 + beq _08019BA2 + movs r0, 0x58 + muls r0, r4 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08019BA2 + ldr r0, _08019BB8 @ =byte_2024C06 + strb r6, [r0] + lsls r0, r3, 24 + lsrs r0, 24 + mov r9, r0 +_08019BA2: + adds r4, r3, 0 + ldr r0, _08019BB0 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019B78 + b _08019F76 + .align 2, 0 +_08019BB0: .4byte gUnknown_02024A68 +_08019BB4: .4byte gBattleMons +_08019BB8: .4byte byte_2024C06 +_08019BBC: + mov r0, r10 + bl battle_side_get_owner + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _08019C0C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019BD2 + b _08019F76 +_08019BD2: + ldr r7, _08019C10 @ =gBattleMons +_08019BD4: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + adds r3, r4, 0x1 + cmp r0, r5 + bne _08019BFE + movs r0, 0x58 + muls r0, r4 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08019BFE + ldr r0, _08019C14 @ =byte_2024C06 + strb r6, [r0] + lsls r0, r3, 24 + lsrs r0, 24 + mov r9, r0 +_08019BFE: + adds r4, r3, 0 + ldr r0, _08019C0C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019BD4 + b _08019F76 + .align 2, 0 +_08019C0C: .4byte gUnknown_02024A68 +_08019C10: .4byte gBattleMons +_08019C14: .4byte byte_2024C06 +_08019C18: + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0xFD + beq _08019C40 + cmp r0, 0xFE + beq _08019C78 + movs r4, 0 + ldr r0, _08019C38 @ =gUnknown_02024A68 + adds r5, r0, 0 + ldrb r2, [r5] + cmp r4, r2 + blt _08019C32 + b _08019F76 +_08019C32: + ldr r2, _08019C3C @ =gBattleMons + b _08019CB0 + .align 2, 0 +_08019C38: .4byte gUnknown_02024A68 +_08019C3C: .4byte gBattleMons +_08019C40: + movs r4, 0 + ldr r0, _08019C70 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019C4C + b _08019F76 +_08019C4C: + ldr r5, _08019C74 @ =gUnknown_02024C98 + movs r2, 0x80 + lsls r2, 9 + adds r1, r0, 0 +_08019C54: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + ands r0, r2 + adds r3, r4, 0x1 + cmp r0, 0 + beq _08019C68 + lsls r0, r3, 24 + lsrs r0, 24 + mov r9, r0 +_08019C68: + adds r4, r3, 0 + cmp r4, r1 + blt _08019C54 + b _08019F76 + .align 2, 0 +_08019C70: .4byte gUnknown_02024A68 +_08019C74: .4byte gUnknown_02024C98 +_08019C78: + movs r4, 0 + ldr r0, _08019CA8 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019C84 + b _08019F76 +_08019C84: + ldr r5, _08019CAC @ =gUnknown_02024C98 + movs r2, 0x80 + lsls r2, 10 + adds r1, r0, 0 +_08019C8C: + lsls r0, r4, 2 + adds r0, r5 + ldr r0, [r0] + ands r0, r2 + adds r3, r4, 0x1 + cmp r0, 0 + beq _08019CA0 + lsls r0, r3, 24 + lsrs r0, 24 + mov r9, r0 +_08019CA0: + adds r4, r3, 0 + cmp r4, r1 + blt _08019C8C + b _08019F76 + .align 2, 0 +_08019CA8: .4byte gUnknown_02024A68 +_08019CAC: .4byte gUnknown_02024C98 +_08019CB0: + movs r0, 0x58 + muls r0, r4 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + adds r3, r4, 0x1 + cmp r0, r6 + bne _08019CCA + mov r0, r8 + strb r6, [r0] + lsls r0, r3, 24 + lsrs r0, 24 + mov r9, r0 +_08019CCA: + adds r4, r3, 0 + ldrb r1, [r5] + cmp r4, r1 + blt _08019CB0 + b _08019F76 +_08019CD4: + movs r4, 0 + ldr r0, _08019D10 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019CE0 + b _08019F76 +_08019CE0: + ldr r7, _08019D14 @ =gBattleMons + adds r2, r0, 0 + movs r5, 0x58 +_08019CE6: + adds r0, r4, 0 + muls r0, r5 + adds r1, r0, r7 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + adds r3, r4, 0x1 + cmp r0, r6 + bne _08019D08 + ldrh r0, [r1, 0x28] + cmp r0, 0 + beq _08019D08 + mov r0, r8 + strb r6, [r0] + lsls r0, r3, 24 + lsrs r0, 24 + mov r9, r0 +_08019D08: + adds r4, r3, 0 + cmp r4, r2 + blt _08019CE6 + b _08019F76 + .align 2, 0 +_08019D10: .4byte gUnknown_02024A68 +_08019D14: .4byte gBattleMons +_08019D18: + movs r4, 0 + ldr r0, _08019D50 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019D24 + b _08019F76 +_08019D24: + ldr r7, _08019D54 @ =gBattleMons + adds r1, r0, 0 + movs r5, 0x58 + ldr r2, _08019D58 @ =byte_2024C06 +_08019D2C: + adds r0, r4, 0 + muls r0, r5 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + adds r3, r4, 0x1 + cmp r0, r6 + bne _08019D48 + cmp r4, r10 + beq _08019D48 + strb r6, [r2] + lsls r0, r3, 24 + lsrs r0, 24 + mov r9, r0 +_08019D48: + adds r4, r3, 0 + cmp r4, r1 + blt _08019D2C + b _08019F76 + .align 2, 0 +_08019D50: .4byte gUnknown_02024A68 +_08019D54: .4byte gBattleMons +_08019D58: .4byte byte_2024C06 +_08019D5C: + mov r0, r10 + bl battle_side_get_owner + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _08019DAC @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019D72 + b _08019F76 +_08019D72: + ldr r7, _08019DB0 @ =gBattleMons +_08019D74: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, r5 + beq _08019DA0 + movs r0, 0x58 + muls r0, r4 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08019DA0 + ldr r0, _08019DB4 @ =byte_2024C06 + strb r6, [r0] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08019DA0: + adds r4, 0x1 + ldr r0, _08019DAC @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019D74 + b _08019F76 + .align 2, 0 +_08019DAC: .4byte gUnknown_02024A68 +_08019DB0: .4byte gBattleMons +_08019DB4: .4byte byte_2024C06 +_08019DB8: + mov r0, r10 + bl battle_side_get_owner + lsls r0, 24 + lsrs r5, r0, 24 + movs r4, 0 + ldr r0, _08019E08 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019DCE + b _08019F76 +_08019DCE: + ldr r7, _08019E0C @ =gBattleMons +_08019DD0: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, r5 + bne _08019DFC + movs r0, 0x58 + muls r0, r4 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, r6 + bne _08019DFC + ldr r0, _08019E10 @ =byte_2024C06 + strb r6, [r0] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08019DFC: + adds r4, 0x1 + ldr r0, _08019E08 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08019DD0 + b _08019F76 + .align 2, 0 +_08019E08: .4byte gUnknown_02024A68 +_08019E0C: .4byte gBattleMons +_08019E10: .4byte byte_2024C06 +_08019E14: + ldr r0, _08019E30 @ =gUnknown_081D977D + bl b_push_move_exec + ldr r0, _08019E34 @ =0x02000000 + ldr r2, _08019E38 @ =0x00016003 + adds r1, r0, r2 + strb r6, [r1] + mov r1, r9 + subs r1, 0x1 + ldr r3, _08019E3C @ =0x0001609b + adds r0, r3 + strb r1, [r0] + b _08019F76 + .align 2, 0 +_08019E30: .4byte gUnknown_081D977D +_08019E34: .4byte 0x02000000 +_08019E38: .4byte 0x00016003 +_08019E3C: .4byte 0x0001609b +_08019E40: + ldr r0, _08019E5C @ =gUnknown_081D977D + bl b_push_move_exec + ldr r0, _08019E60 @ =0x02000000 + ldr r5, _08019E64 @ =0x00016003 + adds r1, r0, r5 + mov r2, r10 + strb r2, [r1] + mov r1, r9 + subs r1, 0x1 + ldr r3, _08019E68 @ =0x0001609b + adds r0, r3 + strb r1, [r0] + b _08019F92 + .align 2, 0 +_08019E5C: .4byte gUnknown_081D977D +_08019E60: .4byte 0x02000000 +_08019E64: .4byte 0x00016003 +_08019E68: .4byte 0x0001609b +_08019E6C: + mov r5, r8 + strb r1, [r5] + ldr r0, [r2] + ldr r1, _08019E80 @ =0xfff7ffff + ands r0, r1 + str r0, [r2] + ldr r0, _08019E84 @ =gUnknown_081D978C + bl b_push_move_exec + b _08019F1A + .align 2, 0 +_08019E80: .4byte 0xfff7ffff +_08019E84: .4byte gUnknown_081D978C +_08019E88: + ldr r0, _08019EDC @ =gUnknown_081D9726 + bl b_push_move_exec + ldr r1, _08019EE0 @ =gUnknown_02024C98 + ldr r2, [sp, 0x18] + adds r1, r2, r1 + ldr r0, [r1] + ldr r2, _08019EE4 @ =0xffefffff + ands r0, r2 + str r0, [r1] + ldr r0, _08019EE8 @ =0x02000000 + ldr r3, _08019EEC @ =0x00016003 + adds r0, r3 + strb r4, [r0] + ldr r1, _08019EF0 @ =gUnknown_030041C0 + movs r4, 0xFD + strb r4, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r2, _08019EF4 @ =gUnknown_02024A60 + ldrb r0, [r2] + strb r0, [r1, 0x2] + ldr r3, _08019EF8 @ =gUnknown_02024A6A + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08019EFC @ =gUnknown_03004290 + strb r4, [r1] + movs r0, 0x9 + strb r0, [r1, 0x1] + ldr r0, _08019F00 @ =byte_2024C06 + ldrb r0, [r0] + strb r0, [r1, 0x2] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x3] + b _08019F76 + .align 2, 0 +_08019EDC: .4byte gUnknown_081D9726 +_08019EE0: .4byte gUnknown_02024C98 +_08019EE4: .4byte 0xffefffff +_08019EE8: .4byte 0x02000000 +_08019EEC: .4byte 0x00016003 +_08019EF0: .4byte gUnknown_030041C0 +_08019EF4: .4byte gUnknown_02024A60 +_08019EF8: .4byte gUnknown_02024A6A +_08019EFC: .4byte gUnknown_03004290 +_08019F00: .4byte byte_2024C06 +_08019F04: + mov r5, r8 + strb r1, [r5] + ldr r0, [r2] + ldr r1, _08019F30 @ =0xfff7ffff + ands r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _08019F34 @ =gUnknown_02024C10 + ldr r0, _08019F38 @ =gUnknown_081D9795 + str r0, [r1] +_08019F1A: + ldr r0, _08019F3C @ =0x02000000 + ldr r1, _08019F40 @ =0x000160dd + adds r0, r1 + strb r4, [r0] +_08019F22: + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + b _08019F76 + .align 2, 0 +_08019F30: .4byte 0xfff7ffff +_08019F34: .4byte gUnknown_02024C10 +_08019F38: .4byte gUnknown_081D9795 +_08019F3C: .4byte 0x02000000 +_08019F40: .4byte 0x000160dd +_08019F44: + movs r4, 0 + ldr r0, _08019FA4 @ =gUnknown_02024A68 + ldrb r1, [r0] + cmp r4, r1 + bge _08019F76 + ldr r0, _08019FA8 @ =gBattleMons + adds r2, r1, 0 + adds r1, r0, 0 + adds r1, 0x20 + ldr r3, _08019FAC @ =byte_2024C06 +_08019F58: + ldrb r0, [r1] + cmp r0, r6 + bne _08019F6E + cmp r4, r10 + beq _08019F6E + strb r6, [r3] + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08019F6E: + adds r1, 0x58 + adds r4, 0x1 + cmp r4, r2 + blt _08019F58 +_08019F76: + mov r2, r9 + cmp r2, 0 + beq _08019F92 +_08019F7C: + ldr r3, [sp, 0x4] + cmp r3, 0xB + bhi _08019F92 + ldr r1, _08019FAC @ =byte_2024C06 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08019F92 + adds r1, r0, 0 + mov r0, r10 + bl sub_81074C4 +_08019F92: + mov r0, r9 + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08019FA4: .4byte gUnknown_02024A68 +_08019FA8: .4byte gBattleMons +_08019FAC: .4byte byte_2024C06 + thumb_func_end sub_8018324 + + thumb_func_start b_call_bc_move_exec +b_call_bc_move_exec: @ 8019FB0 + ldr r1, _08019FD8 @ =gUnknown_02024C10 + str r0, [r1] + ldr r3, _08019FDC @ =0x02017140 + adds r2, r3, 0 + adds r2, 0x20 + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 22 + adds r0, r3 + ldr r2, _08019FE0 @ =gUnknown_030042D4 + ldr r1, [r2] + str r1, [r0] + ldr r0, _08019FE4 @ =sub_8013F54 + str r0, [r2] + ldr r1, _08019FE8 @ =gUnknown_02024A7F + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_08019FD8: .4byte gUnknown_02024C10 +_08019FDC: .4byte 0x02017140 +_08019FE0: .4byte gUnknown_030042D4 +_08019FE4: .4byte sub_8013F54 +_08019FE8: .4byte gUnknown_02024A7F + thumb_func_end b_call_bc_move_exec + + thumb_func_start b_push_move_exec +b_push_move_exec: @ 8019FEC + push {r4,lr} + adds r4, r0, 0 + bl b_movescr_stack_push_cursor + ldr r0, _0801A01C @ =gUnknown_02024C10 + str r4, [r0] + ldr r3, _0801A020 @ =0x02017140 + adds r2, r3, 0 + adds r2, 0x20 + ldrb r0, [r2] + adds r1, r0, 0x1 + strb r1, [r2] + lsls r0, 24 + lsrs r0, 22 + adds r0, r3 + ldr r2, _0801A024 @ =gUnknown_030042D4 + ldr r1, [r2] + str r1, [r0] + ldr r0, _0801A028 @ =sub_8013FBC + str r0, [r2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801A01C: .4byte gUnknown_02024C10 +_0801A020: .4byte 0x02017140 +_0801A024: .4byte gUnknown_030042D4 +_0801A028: .4byte sub_8013FBC + thumb_func_end b_push_move_exec + + thumb_func_start sub_801A02C +sub_801A02C: @ 801A02C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r6, r2, 24 + movs r0, 0 + mov r10, r0 + movs r1, 0 + str r1, [sp, 0xC] + add r0, sp, 0x4 + strb r1, [r0] + ldr r4, _0801A078 @ =gUnknown_02024C04 + ldr r1, _0801A07C @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r0, r1 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0801A084 + ldr r1, _0801A080 @ =gEnigmaBerries + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x7] + ldrb r0, [r0, 0x1A] + b _0801A098 + .align 2, 0 +_0801A078: .4byte gUnknown_02024C04 +_0801A07C: .4byte gBattleMons +_0801A080: .4byte gEnigmaBerries +_0801A084: + ldrh r0, [r4] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r4] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r0, 24 +_0801A098: + mov r9, r0 + ldr r1, _0801A0C0 @ =gBattleMons + ldr r0, _0801A0C4 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x2E] + str r0, [sp, 0x14] + cmp r0, 0xAF + bne _0801A0CC + ldr r1, _0801A0C8 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r3, [r0, 0x7] + mov r8, r3 + ldrb r0, [r0, 0x1A] + b _0801A0E2 + .align 2, 0 +_0801A0C0: .4byte gBattleMons +_0801A0C4: .4byte gUnknown_02024C07 +_0801A0C8: .4byte gEnigmaBerries +_0801A0CC: + ldr r0, [sp, 0x14] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r0, [sp, 0x14] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r0, 24 +_0801A0E2: + str r0, [sp, 0x10] + ldr r2, _0801A118 @ =gBattleMons + ldr r0, _0801A11C @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r4, [r0, 0x2E] + cmp r4, 0xAF + beq _0801A102 + adds r0, r4, 0 + bl ItemId_GetHoldEffect + adds r0, r4, 0 + bl ItemId_GetHoldEffectParam +_0801A102: + ldr r4, [sp, 0x8] + cmp r4, 0x4 + bls _0801A10C + bl _0801B3CA +_0801A10C: + lsls r0, r4, 2 + ldr r1, _0801A120 @ =_0801A124 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801A118: .4byte gBattleMons +_0801A11C: .4byte gUnknown_02024C08 +_0801A120: .4byte _0801A124 + .align 2, 0 +_0801A124: + .4byte _0801A138 + .4byte _0801A1D4 + .4byte _0801B3CA + .4byte _0801AE0C + .4byte _0801B26C +_0801A138: + cmp r5, 0x17 + beq _0801A15C + cmp r5, 0x20 + beq _0801A144 + bl _0801B3CA +_0801A144: + ldr r0, _0801A154 @ =0x02000000 + ldr r5, _0801A158 @ =0x00016056 + adds r0, r5 + movs r1, 0x2 + strb r1, [r0] + bl _0801B3CA + .align 2, 0 +_0801A154: .4byte 0x02000000 +_0801A158: .4byte 0x00016056 +_0801A15C: + ldr r0, _0801A1B8 @ =gBattleMons + mov r8, r0 + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x18 + adds r1, r0 + movs r2, 0x6 + movs r3, 0x7 + mov r10, r3 +_0801A172: + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _0801A180 + strb r2, [r1] + movs r4, 0x5 + str r4, [sp, 0xC] +_0801A180: + adds r1, 0x1 + movs r5, 0x1 + negs r5, r5 + add r10, r5 + mov r0, r10 + cmp r0, 0 + bge _0801A172 + ldr r1, [sp, 0xC] + cmp r1, 0 + bne _0801A198 + bl _0801B3CA +_0801A198: + ldr r0, _0801A1BC @ =0x02000000 + ldr r2, _0801A1C0 @ =0x00016003 + adds r0, r2 + strb r7, [r0] + ldr r0, _0801A1C4 @ =gUnknown_02024C0B + strb r7, [r0] + ldr r1, _0801A1C8 @ =gUnknown_02024A60 + ldr r0, _0801A1CC @ =gUnknown_02024C07 + strb r7, [r0] + strb r7, [r1] + ldr r0, _0801A1D0 @ =gUnknown_081D9A5E + bl b_call_bc_move_exec + bl _0801B3CA + .align 2, 0 +_0801A1B8: .4byte gBattleMons +_0801A1BC: .4byte 0x02000000 +_0801A1C0: .4byte 0x00016003 +_0801A1C4: .4byte gUnknown_02024C0B +_0801A1C8: .4byte gUnknown_02024A60 +_0801A1CC: .4byte gUnknown_02024C07 +_0801A1D0: .4byte gUnknown_081D9A5E +_0801A1D4: + ldr r1, _0801A1FC @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r0, r1 + ldrh r0, [r0, 0x28] + mov r8, r1 + cmp r0, 0 + bne _0801A1E8 + bl _0801B3CA +_0801A1E8: + subs r0, r5, 0x1 + cmp r0, 0x2A + bls _0801A1F2 + bl _0801AD5A +_0801A1F2: + lsls r0, 2 + ldr r1, _0801A200 @ =_0801A204 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801A1FC: .4byte gBattleMons +_0801A200: .4byte _0801A204 + .align 2, 0 +_0801A204: + .4byte _0801A2B0 + .4byte _0801AAC8 + .4byte _0801AB84 + .4byte _0801AAF8 + .4byte _0801AB2C + .4byte _0801AB5C + .4byte _0801A2F8 + .4byte _0801ABC8 + .4byte _0801ABF8 + .4byte _0801A4CC + .4byte _0801A548 + .4byte _0801A5C4 + .4byte _0801A634 + .4byte _0801A6C8 + .4byte _0801A75C + .4byte _0801A7D4 + .4byte _0801A838 + .4byte _0801A89C + .4byte _0801A900 + .4byte _0801A97C + .4byte _0801A9C8 + .4byte _0801AD5A + .4byte _0801A3F8 + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD24 + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801AD5A + .4byte _0801A46C +_0801A2B0: + movs r0, 0x58 + muls r0, r7 + mov r3, r8 + adds r2, r0, r3 + ldrh r0, [r2, 0x2C] + ldrh r1, [r2, 0x28] + lsrs r0, 1 + cmp r1, r0 + bls _0801A2C6 + bl _0801AD5A +_0801A2C6: + cmp r6, 0 + beq _0801A2CE + bl _0801AD5A +_0801A2CE: + ldr r4, _0801A2F0 @ =gUnknown_02024BEC + mov r5, r9 + str r5, [r4] + ldrh r3, [r2, 0x28] + adds r0, r3, r5 + ldrh r1, [r2, 0x2C] + cmp r0, r1 + ble _0801A2E2 + subs r0, r1, r3 + str r0, [r4] +_0801A2E2: + ldr r0, [r4] + negs r0, r0 + str r0, [r4] + ldr r0, _0801A2F4 @ =gUnknown_081D9A74 + bl b_call_bc_move_exec + b _0801A752 + .align 2, 0 +_0801A2F0: .4byte gUnknown_02024BEC +_0801A2F4: .4byte gUnknown_081D9A74 +_0801A2F8: + cmp r6, 0 + beq _0801A300 + bl _0801AD5A +_0801A300: + adds r0, r7, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0801A324 + ldr r1, _0801A31C @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0801A320 @ =gPlayerParty + b _0801A332 + .align 2, 0 +_0801A31C: .4byte gUnknown_02024A6A +_0801A320: .4byte gPlayerParty +_0801A324: + ldr r1, _0801A3A0 @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0801A3A4 @ =gEnemyParty +_0801A332: + adds r4, r1, r0 + movs r1, 0 + mov r10, r1 + add r5, sp, 0x4 +_0801A33A: + mov r1, r10 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + mov r1, r10 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + strb r0, [r5] + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + lsls r0, 24 + lsrs r1, r0, 24 + cmp r6, 0 + beq _0801A36A + ldrb r0, [r5] + cmp r0, 0 + beq _0801A374 +_0801A36A: + movs r2, 0x1 + add r10, r2 + mov r3, r10 + cmp r3, 0x3 + ble _0801A33A +_0801A374: + mov r4, r10 + cmp r4, 0x4 + bne _0801A37E + bl _0801AD5A +_0801A37E: + lsls r2, r4, 24 + lsrs r2, 24 + adds r0, r6, 0 + bl CalculatePPWithBonus + lsls r0, 24 + lsrs r2, r0, 24 + add r0, sp, 0x4 + ldrb r0, [r0] + mov r5, r9 + adds r1, r0, r5 + cmp r1, r2 + ble _0801A3A8 + add r0, sp, 0x4 + strb r2, [r0] + b _0801A3AC + .align 2, 0 +_0801A3A0: .4byte gUnknown_02024A6A +_0801A3A4: .4byte gEnemyParty +_0801A3A8: + add r0, sp, 0x4 + strb r1, [r0] +_0801A3AC: + ldr r1, _0801A3EC @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + strb r6, [r1, 0x2] + lsrs r0, r6, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r0, _0801A3F0 @ =gUnknown_081D9A91 + bl b_call_bc_move_exec + mov r1, r10 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + add r0, sp, 0x4 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldr r0, _0801A3F4 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + movs r1, 0x3 + str r1, [sp, 0xC] + bl _0801AD62 + .align 2, 0 +_0801A3EC: .4byte gUnknown_030041C0 +_0801A3F0: .4byte gUnknown_081D9A91 +_0801A3F4: .4byte gUnknown_02024A60 +_0801A3F8: + ldr r0, _0801A450 @ =gBattleMons + movs r1, 0x58 + muls r1, r7 + adds r0, 0x18 + adds r1, r0 + movs r2, 0x6 + movs r3, 0x7 + mov r10, r3 +_0801A408: + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _0801A416 + strb r2, [r1] + movs r4, 0x5 + str r4, [sp, 0xC] +_0801A416: + adds r1, 0x1 + movs r5, 0x1 + negs r5, r5 + add r10, r5 + mov r0, r10 + cmp r0, 0 + bge _0801A408 + movs r1, 0x8 + mov r10, r1 + ldr r2, [sp, 0xC] + cmp r2, 0 + bne _0801A432 + bl _0801B3CA +_0801A432: + ldr r0, _0801A454 @ =0x02000000 + ldr r3, _0801A458 @ =0x00016003 + adds r0, r3 + strb r7, [r0] + ldr r0, _0801A45C @ =gUnknown_02024C0B + strb r7, [r0] + ldr r1, _0801A460 @ =gUnknown_02024A60 + ldr r0, _0801A464 @ =gUnknown_02024C07 + strb r7, [r0] + strb r7, [r1] + ldr r0, _0801A468 @ =gUnknown_081D9A5E + bl b_call_bc_move_exec + bl _0801AD5A + .align 2, 0 +_0801A450: .4byte gBattleMons +_0801A454: .4byte 0x02000000 +_0801A458: .4byte 0x00016003 +_0801A45C: .4byte gUnknown_02024C0B +_0801A460: .4byte gUnknown_02024A60 +_0801A464: .4byte gUnknown_02024C07 +_0801A468: .4byte gUnknown_081D9A5E +_0801A46C: + movs r0, 0x58 + muls r0, r7 + mov r4, r8 + adds r1, r0, r4 + ldrh r0, [r1, 0x28] + ldrh r2, [r1, 0x2C] + cmp r0, r2 + bcc _0801A480 + bl _0801AD5A +_0801A480: + cmp r6, 0 + beq _0801A488 + bl _0801AD5A +_0801A488: + ldr r3, _0801A4C4 @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + lsrs r0, 4 + str r0, [r3] + cmp r0, 0 + bne _0801A498 + movs r0, 0x1 + str r0, [r3] +_0801A498: + ldrh r2, [r1, 0x28] + ldr r0, [r3] + adds r0, r2, r0 + ldrh r1, [r1, 0x2C] + cmp r0, r1 + ble _0801A4A8 + subs r0, r1, r2 + str r0, [r3] +_0801A4A8: + ldr r0, [r3] + negs r0, r0 + str r0, [r3] + ldr r0, _0801A4C8 @ =gUnknown_081D9AA1 + bl b_call_bc_move_exec + movs r3, 0x4 + str r3, [sp, 0xC] + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_81074F8 + bl _0801AD5A + .align 2, 0 +_0801A4C4: .4byte gUnknown_02024BEC +_0801A4C8: .4byte gUnknown_081D9AA1 +_0801A4CC: + movs r0, 0x58 + adds r4, r7, 0 + muls r4, r0 + str r4, [sp, 0x18] + add r4, r8 + ldrh r0, [r4, 0x2C] + ldrh r1, [r4, 0x28] + lsrs r0, 1 + cmp r1, r0 + bls _0801A4E4 + bl _0801AD5A +_0801A4E4: + cmp r6, 0 + beq _0801A4EC + bl _0801AD5A +_0801A4EC: + ldr r1, _0801A540 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x8 + strb r0, [r1, 0x1] + strb r6, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r5, _0801A544 @ =gUnknown_02024BEC + ldrh r0, [r4, 0x2C] + mov r1, r9 + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _0801A510 + movs r0, 0x1 + str r0, [r5] +_0801A510: + ldrh r2, [r4, 0x28] + ldr r0, [r5] + adds r0, r2, r0 + ldrh r1, [r4, 0x2C] + cmp r0, r1 + ble _0801A520 + subs r0, r1, r2 + str r0, [r5] +_0801A520: + ldr r0, [r5] + negs r0, r0 + str r0, [r5] + mov r0, r8 + adds r0, 0x48 + ldr r5, [sp, 0x18] + adds r0, r5, r0 + ldr r0, [r0] + movs r1, 0 +_0801A532: + bl sub_8040A7C + lsls r0, 24 + cmp r0, 0 + bge _0801A53E + b _0801A738 +_0801A53E: + b _0801A74C + .align 2, 0 +_0801A540: .4byte gUnknown_030041C0 +_0801A544: .4byte gUnknown_02024BEC +_0801A548: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + str r1, [sp, 0x1C] + adds r5, r1, 0 + add r5, r8 + ldrh r0, [r5, 0x2C] + ldrh r1, [r5, 0x28] + lsrs r0, 1 + cmp r1, r0 + bls _0801A562 + bl _0801AD5A +_0801A562: + cmp r6, 0 + beq _0801A56A + bl _0801AD5A +_0801A56A: + ldr r1, _0801A5BC @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x8 + strb r0, [r1, 0x1] + movs r6, 0x1 + strb r6, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r4, _0801A5C0 @ =gUnknown_02024BEC + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801A58E + str r6, [r4] +_0801A58E: + ldrh r2, [r5, 0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, 0x2C] + cmp r0, r1 + ble _0801A59E + subs r0, r1, r2 + str r0, [r4] +_0801A59E: + ldr r0, [r4] + negs r0, r0 + str r0, [r4] + mov r0, r8 + adds r0, 0x48 + ldr r2, [sp, 0x1C] + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x1 + bl sub_8040A7C + lsls r0, 24 + cmp r0, 0 + blt _0801A6A4 + b _0801A6B8 + .align 2, 0 +_0801A5BC: .4byte gUnknown_030041C0 +_0801A5C0: .4byte gUnknown_02024BEC +_0801A5C4: + movs r0, 0x58 + adds r4, r7, 0 + muls r4, r0 + str r4, [sp, 0x20] + adds r5, r4, 0 + add r5, r8 + ldrh r0, [r5, 0x2C] + ldrh r1, [r5, 0x28] + lsrs r0, 1 + cmp r1, r0 + bls _0801A5DC + b _0801AD5A +_0801A5DC: + cmp r6, 0 + beq _0801A5E2 + b _0801AD5A +_0801A5E2: + ldr r1, _0801A62C @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x8 + strb r0, [r1, 0x1] + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r4, _0801A630 @ =gUnknown_02024BEC + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801A608 + movs r0, 0x1 + str r0, [r4] +_0801A608: + ldrh r2, [r5, 0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, 0x2C] + cmp r0, r1 + ble _0801A618 + subs r0, r1, r2 + str r0, [r4] +_0801A618: + ldr r0, [r4] + negs r0, r0 + str r0, [r4] + mov r0, r8 + adds r0, 0x48 + ldr r5, [sp, 0x20] + adds r0, r5, r0 + ldr r0, [r0] + movs r1, 0x2 + b _0801A532 + .align 2, 0 +_0801A62C: .4byte gUnknown_030041C0 +_0801A630: .4byte gUnknown_02024BEC +_0801A634: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + str r1, [sp, 0x24] + adds r5, r1, 0 + add r5, r8 + ldrh r0, [r5, 0x2C] + ldrh r1, [r5, 0x28] + lsrs r0, 1 + cmp r1, r0 + bls _0801A64C + b _0801AD5A +_0801A64C: + cmp r6, 0 + beq _0801A652 + b _0801AD5A +_0801A652: + ldr r1, _0801A6AC @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x8 + strb r0, [r1, 0x1] + movs r0, 0x3 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r4, _0801A6B0 @ =gUnknown_02024BEC + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801A678 + movs r0, 0x1 + str r0, [r4] +_0801A678: + ldrh r2, [r5, 0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, 0x2C] + cmp r0, r1 + ble _0801A688 + subs r0, r1, r2 + str r0, [r4] +_0801A688: + ldr r0, [r4] + negs r0, r0 + str r0, [r4] + mov r0, r8 + adds r0, 0x48 + ldr r2, [sp, 0x24] + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x3 + bl sub_8040A7C + lsls r0, 24 + cmp r0, 0 + bge _0801A6B8 +_0801A6A4: + ldr r0, _0801A6B4 @ =gUnknown_081D9AD4 + bl b_call_bc_move_exec + b _0801A6BE + .align 2, 0 +_0801A6AC: .4byte gUnknown_030041C0 +_0801A6B0: .4byte gUnknown_02024BEC +_0801A6B4: .4byte gUnknown_081D9AD4 +_0801A6B8: + ldr r0, _0801A6C4 @ =gUnknown_081D9A74 + bl b_call_bc_move_exec +_0801A6BE: + movs r3, 0x4 + str r3, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801A6C4: .4byte gUnknown_081D9A74 +_0801A6C8: + movs r0, 0x58 + adds r4, r7, 0 + muls r4, r0 + str r4, [sp, 0x28] + adds r5, r4, 0 + add r5, r8 + ldrh r0, [r5, 0x2C] + ldrh r1, [r5, 0x28] + lsrs r0, 1 + cmp r1, r0 + bls _0801A6E0 + b _0801AD5A +_0801A6E0: + cmp r6, 0 + beq _0801A6E6 + b _0801AD5A +_0801A6E6: + ldr r1, _0801A740 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x8 + strb r0, [r1, 0x1] + movs r0, 0x4 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r4, _0801A744 @ =gUnknown_02024BEC + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801A70C + movs r0, 0x1 + str r0, [r4] +_0801A70C: + ldrh r2, [r5, 0x28] + ldr r0, [r4] + adds r0, r2, r0 + ldrh r1, [r5, 0x2C] + cmp r0, r1 + ble _0801A71C + subs r0, r1, r2 + str r0, [r4] +_0801A71C: + ldr r0, [r4] + negs r0, r0 + str r0, [r4] + mov r0, r8 + adds r0, 0x48 + ldr r5, [sp, 0x28] + adds r0, r5, r0 + ldr r0, [r0] + movs r1, 0x4 + bl sub_8040A7C + lsls r0, 24 + cmp r0, 0 + bge _0801A74C +_0801A738: + ldr r0, _0801A748 @ =gUnknown_081D9AD4 + bl b_call_bc_move_exec + b _0801A752 + .align 2, 0 +_0801A740: .4byte gUnknown_030041C0 +_0801A744: .4byte gUnknown_02024BEC +_0801A748: .4byte gUnknown_081D9AD4 +_0801A74C: + ldr r0, _0801A758 @ =gUnknown_081D9A74 + bl b_call_bc_move_exec +_0801A752: + movs r0, 0x4 + str r0, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801A758: .4byte gUnknown_081D9A74 +_0801A75C: + movs r0, 0x58 + muls r0, r7 + mov r1, r8 + adds r5, r0, r1 + ldrh r4, [r5, 0x28] + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + cmp r4, r0 + ble _0801A774 + b _0801AD5A +_0801A774: + cmp r6, 0 + beq _0801A77A + b _0801AD5A +_0801A77A: + movs r0, 0x19 + ldrsb r0, [r5, r0] + cmp r0, 0xB + ble _0801A784 + b _0801AD5A +_0801A784: + ldr r1, _0801A7BC @ =gUnknown_030041C0 + movs r2, 0xFD + strb r2, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + movs r0, 0x1 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, _0801A7C0 @ =gUnknown_03004290 + strb r2, [r1] + strb r6, [r1, 0x1] + movs r0, 0xD2 + strb r0, [r1, 0x2] + strb r6, [r1, 0x3] + subs r0, 0xD3 + strb r0, [r1, 0x4] + ldr r0, _0801A7C4 @ =gUnknown_02024C0A + strb r7, [r0] + ldr r1, _0801A7C8 @ =0x02000000 + ldr r3, _0801A7CC @ =0x0001601e + adds r2, r1, r3 + movs r0, 0x11 + strb r0, [r2] + ldr r4, _0801A7D0 @ =0x000160a4 + adds r2, r1, r4 + movs r0, 0xF + b _0801A94C + .align 2, 0 +_0801A7BC: .4byte gUnknown_030041C0 +_0801A7C0: .4byte gUnknown_03004290 +_0801A7C4: .4byte gUnknown_02024C0A +_0801A7C8: .4byte 0x02000000 +_0801A7CC: .4byte 0x0001601e +_0801A7D0: .4byte 0x000160a4 +_0801A7D4: + movs r0, 0x58 + muls r0, r7 + mov r1, r8 + adds r5, r0, r1 + ldrh r4, [r5, 0x28] + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + cmp r4, r0 + ble _0801A7EC + b _0801AD5A +_0801A7EC: + cmp r6, 0 + beq _0801A7F2 + b _0801AD5A +_0801A7F2: + movs r0, 0x1A + ldrsb r0, [r5, r0] + cmp r0, 0xB + ble _0801A7FC + b _0801AD5A +_0801A7FC: + ldr r1, _0801A824 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r0, _0801A828 @ =gUnknown_02024C0A + strb r7, [r0] + ldr r1, _0801A82C @ =0x02000000 + ldr r3, _0801A830 @ =0x0001601e + adds r2, r1, r3 + movs r0, 0x12 + strb r0, [r2] + ldr r4, _0801A834 @ =0x000160a4 + adds r2, r1, r4 + movs r0, 0x10 + b _0801A94C + .align 2, 0 +_0801A824: .4byte gUnknown_030041C0 +_0801A828: .4byte gUnknown_02024C0A +_0801A82C: .4byte 0x02000000 +_0801A830: .4byte 0x0001601e +_0801A834: .4byte 0x000160a4 +_0801A838: + movs r0, 0x58 + muls r0, r7 + mov r1, r8 + adds r5, r0, r1 + ldrh r4, [r5, 0x28] + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + cmp r4, r0 + ble _0801A850 + b _0801AD5A +_0801A850: + cmp r6, 0 + beq _0801A856 + b _0801AD5A +_0801A856: + movs r0, 0x1B + ldrsb r0, [r5, r0] + cmp r0, 0xB + ble _0801A860 + b _0801AD5A +_0801A860: + ldr r1, _0801A888 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + movs r0, 0x3 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r0, _0801A88C @ =gUnknown_02024C0A + strb r7, [r0] + ldr r1, _0801A890 @ =0x02000000 + ldr r3, _0801A894 @ =0x0001601e + adds r2, r1, r3 + movs r0, 0x13 + strb r0, [r2] + ldr r4, _0801A898 @ =0x000160a4 + adds r2, r1, r4 + movs r0, 0x11 + b _0801A94C + .align 2, 0 +_0801A888: .4byte gUnknown_030041C0 +_0801A88C: .4byte gUnknown_02024C0A +_0801A890: .4byte 0x02000000 +_0801A894: .4byte 0x0001601e +_0801A898: .4byte 0x000160a4 +_0801A89C: + movs r0, 0x58 + muls r0, r7 + mov r1, r8 + adds r5, r0, r1 + ldrh r4, [r5, 0x28] + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + cmp r4, r0 + ble _0801A8B4 + b _0801AD5A +_0801A8B4: + cmp r6, 0 + beq _0801A8BA + b _0801AD5A +_0801A8BA: + movs r0, 0x1C + ldrsb r0, [r5, r0] + cmp r0, 0xB + ble _0801A8C4 + b _0801AD5A +_0801A8C4: + ldr r1, _0801A8EC @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + movs r0, 0x4 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r0, _0801A8F0 @ =gUnknown_02024C0A + strb r7, [r0] + ldr r1, _0801A8F4 @ =0x02000000 + ldr r3, _0801A8F8 @ =0x0001601e + adds r2, r1, r3 + movs r0, 0x14 + strb r0, [r2] + ldr r4, _0801A8FC @ =0x000160a4 + adds r2, r1, r4 + movs r0, 0x12 + b _0801A94C + .align 2, 0 +_0801A8EC: .4byte gUnknown_030041C0 +_0801A8F0: .4byte gUnknown_02024C0A +_0801A8F4: .4byte 0x02000000 +_0801A8F8: .4byte 0x0001601e +_0801A8FC: .4byte 0x000160a4 +_0801A900: + movs r0, 0x58 + muls r0, r7 + mov r1, r8 + adds r5, r0, r1 + ldrh r4, [r5, 0x28] + ldrh r0, [r5, 0x2C] + mov r1, r9 + bl __divsi3 + cmp r4, r0 + ble _0801A918 + b _0801AD5A +_0801A918: + cmp r6, 0 + beq _0801A91E + b _0801AD5A +_0801A91E: + movs r0, 0x1D + ldrsb r0, [r5, r0] + cmp r0, 0xB + ble _0801A928 + b _0801AD5A +_0801A928: + ldr r1, _0801A960 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r0, _0801A964 @ =gUnknown_02024C0A + strb r7, [r0] + ldr r1, _0801A968 @ =0x02000000 + ldr r3, _0801A96C @ =0x0001601e + adds r2, r1, r3 + movs r0, 0x15 + strb r0, [r2] + ldr r4, _0801A970 @ =0x000160a4 + adds r2, r1, r4 + movs r0, 0x13 +_0801A94C: + strb r0, [r2] + ldr r5, _0801A974 @ =0x000160a5 + adds r1, r5 + strb r6, [r1] + ldr r0, _0801A978 @ =gUnknown_081D9AFE + bl b_call_bc_move_exec + movs r0, 0x5 + str r0, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801A960: .4byte gUnknown_030041C0 +_0801A964: .4byte gUnknown_02024C0A +_0801A968: .4byte 0x02000000 +_0801A96C: .4byte 0x0001601e +_0801A970: .4byte 0x000160a4 +_0801A974: .4byte 0x000160a5 +_0801A978: .4byte gUnknown_081D9AFE +_0801A97C: + movs r0, 0x58 + adds r5, r7, 0 + muls r5, r0 + mov r1, r8 + adds r0, r5, r1 + ldrh r4, [r0, 0x28] + ldrh r0, [r0, 0x2C] + mov r1, r9 + bl __divsi3 + cmp r4, r0 + ble _0801A996 + b _0801AD5A +_0801A996: + cmp r6, 0 + beq _0801A99C + b _0801AD5A +_0801A99C: + mov r0, r8 + adds r0, 0x50 + adds r1, r5, r0 + ldr r2, [r1] + movs r3, 0x80 + lsls r3, 13 + adds r0, r2, 0 + ands r0, r3 + cmp r0, 0 + beq _0801A9B2 + b _0801AD5A +_0801A9B2: + orrs r2, r3 + str r2, [r1] + ldr r0, _0801A9C4 @ =gUnknown_081D9B19 + bl b_call_bc_move_exec + movs r2, 0x2 + str r2, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801A9C4: .4byte gUnknown_081D9B19 +_0801A9C8: + cmp r6, 0 + beq _0801A9CE + b _0801AD5A +_0801A9CE: + movs r0, 0x58 + adds r5, r7, 0 + muls r5, r0 + mov r3, r8 + adds r0, r5, r3 + ldrh r4, [r0, 0x28] + ldrh r0, [r0, 0x2C] + mov r1, r9 + bl __divsi3 + cmp r4, r0 + ble _0801A9E8 + b _0801AD5A +_0801A9E8: + movs r4, 0 + mov r10, r4 + adds r0, r5, 0x1 + mov r1, r8 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xB + ble _0801AA18 + mov r0, r8 + adds r0, 0x19 + adds r1, r5, r0 +_0801AA04: + adds r1, 0x1 + movs r5, 0x1 + add r10, r5 + mov r0, r10 + cmp r0, 0x4 + bgt _0801AA18 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0xB + bgt _0801AA04 +_0801AA18: + mov r1, r10 + cmp r1, 0x5 + bne _0801AA20 + b _0801AD5A +_0801AA20: + movs r0, 0x58 + muls r0, r7 + adds r4, r0, 0x1 + ldr r5, _0801AAA4 @ =gUnknown_02024A98 +_0801AA28: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x5 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r4 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xC + beq _0801AA28 + ldr r1, _0801AAA8 @ =gUnknown_030041C0 + movs r3, 0 + movs r2, 0xFD + strb r2, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + mov r0, r10 + adds r0, 0x1 + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r0, _0801AAAC @ =gUnknown_03004290 + strb r2, [r0] + strb r3, [r0, 0x1] + movs r1, 0xD1 + strb r1, [r0, 0x2] + strb r3, [r0, 0x3] + strb r3, [r0, 0x4] + movs r1, 0xD2 + strb r1, [r0, 0x5] + strb r3, [r0, 0x6] + subs r1, 0xD3 + strb r1, [r0, 0x7] + ldr r0, _0801AAB0 @ =gUnknown_02024C0A + strb r7, [r0] + ldr r1, _0801AAB4 @ =0x02000000 + mov r2, r10 + adds r2, 0x21 + ldr r4, _0801AAB8 @ =0x0001601e + adds r0, r1, r4 + strb r2, [r0] + adds r2, 0x6 + ldr r5, _0801AABC @ =0x000160a4 + adds r0, r1, r5 + strb r2, [r0] + ldr r0, _0801AAC0 @ =0x000160a5 + adds r1, r0 + strb r3, [r1] + ldr r0, _0801AAC4 @ =gUnknown_081D9AFE + bl b_call_bc_move_exec + movs r1, 0x5 + str r1, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801AAA4: .4byte gUnknown_02024A98 +_0801AAA8: .4byte gUnknown_030041C0 +_0801AAAC: .4byte gUnknown_03004290 +_0801AAB0: .4byte gUnknown_02024C0A +_0801AAB4: .4byte 0x02000000 +_0801AAB8: .4byte 0x0001601e +_0801AABC: .4byte 0x000160a4 +_0801AAC0: .4byte 0x000160a5 +_0801AAC4: .4byte gUnknown_081D9AFE +_0801AAC8: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x4C + adds r1, r0 + ldr r2, [r1] + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + bne _0801AAE0 + b _0801AD5A +_0801AAE0: + movs r0, 0x41 + negs r0, r0 + ands r2, r0 + str r2, [r1] + ldr r0, _0801AAF4 @ =gUnknown_081D99B6 + bl b_call_bc_move_exec + movs r2, 0x1 + str r2, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801AAF4: .4byte gUnknown_081D99B6 +_0801AAF8: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x4C + adds r1, r0 + ldr r2, [r1] + movs r0, 0x88 + ands r0, r2 + cmp r0, 0 + bne _0801AB10 + b _0801AD5A +_0801AB10: + ldr r0, _0801AB24 @ =0xfffff077 + ands r2, r0 + str r2, [r1] + ldr r0, _0801AB28 @ =gUnknown_081D99CE + bl b_call_bc_move_exec + movs r3, 0x1 + str r3, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801AB24: .4byte 0xfffff077 +_0801AB28: .4byte gUnknown_081D99CE +_0801AB2C: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x4C + adds r1, r0 + ldr r2, [r1] + movs r0, 0x10 + ands r0, r2 + cmp r0, 0 + bne _0801AB44 + b _0801AD5A +_0801AB44: + movs r0, 0x11 + negs r0, r0 + ands r2, r0 + str r2, [r1] + ldr r0, _0801AB58 @ =gUnknown_081D99E6 + bl b_call_bc_move_exec + movs r4, 0x1 + str r4, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801AB58: .4byte gUnknown_081D99E6 +_0801AB5C: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x4C + adds r1, r0 + ldr r2, [r1] + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + bne _0801AB74 + b _0801AD5A +_0801AB74: + movs r0, 0x21 + negs r0, r0 + ands r2, r0 + str r2, [r1] + ldr r0, _0801AB80 @ =gUnknown_081D99FE + b _0801AD0E + .align 2, 0 +_0801AB80: .4byte gUnknown_081D99FE +_0801AB84: + movs r0, 0x58 + adds r3, r7, 0 + muls r3, r0 + mov r0, r8 + adds r0, 0x4C + adds r2, r3, r0 + ldr r1, [r2] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801AB9C + b _0801AD5A +_0801AB9C: + movs r0, 0x8 + negs r0, r0 + ands r1, r0 + str r1, [r2] + mov r1, r8 + adds r1, 0x50 + adds r1, r3, r1 + ldr r0, [r1] + ldr r2, _0801ABC0 @ =0xf7ffffff + ands r0, r2 + str r0, [r1] + ldr r0, _0801ABC4 @ =gUnknown_081D9A16 + bl b_call_bc_move_exec + movs r0, 0x1 + str r0, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801ABC0: .4byte 0xf7ffffff +_0801ABC4: .4byte gUnknown_081D9A16 +_0801ABC8: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x50 + adds r1, r0 + ldr r2, [r1] + movs r0, 0x7 + ands r0, r2 + cmp r0, 0 + bne _0801ABE0 + b _0801AD5A +_0801ABE0: + movs r0, 0x8 + negs r0, r0 + ands r2, r0 + str r2, [r1] + ldr r0, _0801ABF4 @ =gUnknown_081D9A2E + bl b_call_bc_move_exec + movs r1, 0x2 + str r1, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801ABF4: .4byte gUnknown_081D9A2E +_0801ABF8: + movs r0, 0x58 + adds r5, r7, 0 + muls r5, r0 + mov r0, r8 + adds r0, 0x4C + adds r4, r5, r0 + ldr r2, [r4] + ldrb r0, [r4] + cmp r0, 0 + bne _0801AC1E + mov r0, r8 + adds r0, 0x50 + adds r0, r5, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801AC1E + b _0801AD5A +_0801AC1E: + movs r3, 0 + mov r10, r3 + movs r0, 0x88 + ands r2, r0 + cmp r2, 0 + beq _0801AC36 + ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r1, _0801ACC8 @ =gStatusConditionString_PoisonJpn + bl StringCopy + movs r0, 0x1 + mov r10, r0 +_0801AC36: + ldr r0, [r4] + movs r1, 0x7 + mov r9, r1 + ands r0, r1 + mov r6, r8 + adds r6, 0x50 + cmp r0, 0 + beq _0801AC5C + adds r2, r5, r6 + ldr r0, [r2] + ldr r1, _0801ACCC @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r1, _0801ACD0 @ =gStatusConditionString_SleepJpn + bl StringCopy + movs r2, 0x1 + add r10, r2 +_0801AC5C: + ldr r0, [r4] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801AC72 + ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r1, _0801ACD4 @ =gStatusConditionString_ParalysisJpn + bl StringCopy + movs r3, 0x1 + add r10, r3 +_0801AC72: + ldr r0, [r4] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0801AC88 + ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r1, _0801ACD8 @ =gStatusConditionString_BurnJpn + bl StringCopy + movs r0, 0x1 + add r10, r0 +_0801AC88: + ldr r0, [r4] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0801AC9E + ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r1, _0801ACDC @ =gStatusConditionString_IceJpn + bl StringCopy + movs r1, 0x1 + add r10, r1 +_0801AC9E: + adds r0, r5, r6 + ldr r0, [r0] + mov r2, r9 + ands r0, r2 + cmp r0, 0 + beq _0801ACB6 + ldr r0, _0801ACC4 @ =gUnknown_030041C0 + ldr r1, _0801ACE0 @ =gStatusConditionString_ConfusionJpn + bl StringCopy + movs r3, 0x1 + add r10, r3 +_0801ACB6: + mov r4, r10 + cmp r4, 0x1 + bgt _0801ACE8 + ldr r1, _0801ACE4 @ =gUnknown_02024D1E + movs r0, 0 + b _0801ACEC + .align 2, 0 +_0801ACC4: .4byte gUnknown_030041C0 +_0801ACC8: .4byte gStatusConditionString_PoisonJpn +_0801ACCC: .4byte 0xf7ffffff +_0801ACD0: .4byte gStatusConditionString_SleepJpn +_0801ACD4: .4byte gStatusConditionString_ParalysisJpn +_0801ACD8: .4byte gStatusConditionString_BurnJpn +_0801ACDC: .4byte gStatusConditionString_IceJpn +_0801ACE0: .4byte gStatusConditionString_ConfusionJpn +_0801ACE4: .4byte gUnknown_02024D1E +_0801ACE8: + ldr r1, _0801AD18 @ =gUnknown_02024D1E + movs r0, 0x1 +_0801ACEC: + strb r0, [r1, 0x5] + ldr r2, _0801AD1C @ =gBattleMons + movs r0, 0x58 + adds r3, r7, 0 + muls r3, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r3, r0 + movs r1, 0 + str r1, [r0] + adds r2, 0x50 + adds r3, r2 + ldr r0, [r3] + subs r1, 0x8 + ands r0, r1 + str r0, [r3] + ldr r0, _0801AD20 @ =gUnknown_081D9A44 +_0801AD0E: + bl b_call_bc_move_exec + movs r5, 0x1 + str r5, [sp, 0xC] + b _0801AD62 + .align 2, 0 +_0801AD18: .4byte gUnknown_02024D1E +_0801AD1C: .4byte gBattleMons +_0801AD20: .4byte gUnknown_081D9A44 +_0801AD24: + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x50 + adds r1, r0 + ldr r2, [r1] + movs r0, 0xF0 + lsls r0, 12 + ands r0, r2 + cmp r0, 0 + beq _0801AD5A + ldr r0, _0801AD84 @ =0xfff0ffff + ands r2, r0 + str r2, [r1] + ldr r0, _0801AD88 @ =gUnknown_030041C0 + ldr r1, _0801AD8C @ =gStatusConditionString_LoveJpn + bl StringCopy + ldr r0, _0801AD90 @ =gUnknown_081D9A44 + bl b_call_bc_move_exec + ldr r1, _0801AD94 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] + movs r0, 0x2 + str r0, [sp, 0xC] +_0801AD5A: + ldr r1, [sp, 0xC] + cmp r1, 0 + bne _0801AD62 + b _0801B3CA +_0801AD62: + ldr r0, _0801AD98 @ =0x02000000 + ldr r2, _0801AD9C @ =0x00016003 + adds r0, r2 + strb r7, [r0] + ldr r0, _0801ADA0 @ =gUnknown_02024C0B + strb r7, [r0] + ldr r4, _0801ADA4 @ =gUnknown_02024A60 + ldr r0, _0801ADA8 @ =gUnknown_02024C07 + strb r7, [r0] + strb r7, [r4] + ldr r3, [sp, 0xC] + cmp r3, 0x1 + beq _0801ADAC + cmp r3, 0x3 + beq _0801ADB2 + b _0801B3CA + .align 2, 0 +_0801AD84: .4byte 0xfff0ffff +_0801AD88: .4byte gUnknown_030041C0 +_0801AD8C: .4byte gStatusConditionString_LoveJpn +_0801AD90: .4byte gUnknown_081D9A44 +_0801AD94: .4byte gUnknown_02024D1E +_0801AD98: .4byte 0x02000000 +_0801AD9C: .4byte 0x00016003 +_0801ADA0: .4byte gUnknown_02024C0B +_0801ADA4: .4byte gUnknown_02024A60 +_0801ADA8: .4byte gUnknown_02024C07 +_0801ADAC: + movs r0, 0x58 + muls r0, r7 + b _0801B224 +_0801ADB2: + ldr r4, _0801AE00 @ =gBattleMons + movs r0, 0x58 + adds r3, r7, 0 + muls r3, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + beq _0801ADCE + b _0801B3CA +_0801ADCE: + ldr r1, _0801AE04 @ =gUnknown_02024CA8 + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _0801AE08 @ =gBitTable + mov r5, r10 + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0801ADEE + b _0801B3CA +_0801ADEE: + adds r1, r5, r3 + adds r0, r4, 0 + adds r0, 0x24 + adds r1, r0 + add r0, sp, 0x4 + ldrb r0, [r0] + strb r0, [r1] + b _0801B3CA + .align 2, 0 +_0801AE00: .4byte gBattleMons +_0801AE04: .4byte gUnknown_02024CA8 +_0801AE08: .4byte gBitTable +_0801AE0C: + movs r7, 0 + ldr r0, _0801AE3C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r7, r0 + bcc _0801AE18 + b _0801B3CA +_0801AE18: + ldr r4, _0801AE40 @ =gUnknown_02024C04 + ldr r1, _0801AE44 @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r0, r1 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0801AE4C + ldr r1, _0801AE48 @ =gEnigmaBerries + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x7] + b _0801AE5C + .align 2, 0 +_0801AE3C: .4byte gUnknown_02024A68 +_0801AE40: .4byte gUnknown_02024C04 +_0801AE44: .4byte gBattleMons +_0801AE48: .4byte gEnigmaBerries +_0801AE4C: + ldrh r0, [r4] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r5, r0, 24 + ldrh r0, [r4] + bl ItemId_GetHoldEffectParam +_0801AE5C: + subs r0, r5, 0x2 + cmp r0, 0x1A + bls _0801AE64 + b _0801B208 +_0801AE64: + lsls r0, 2 + ldr r1, _0801AE70 @ =_0801AE74 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801AE70: .4byte _0801AE74 + .align 2, 0 +_0801AE74: + .4byte _0801AEE0 + .4byte _0801AFC8 + .4byte _0801AF1C + .4byte _0801AF58 + .4byte _0801AF94 + .4byte _0801B208 + .4byte _0801B018 + .4byte _0801B0AC + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B1A0 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B208 + .4byte _0801B054 +_0801AEE0: + ldr r1, _0801AF10 @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r1, 0x4C + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0801AEF6 + b _0801B208 +_0801AEF6: + movs r0, 0x41 + negs r0, r0 + ands r1, r0 + str r1, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801AF14 @ =gUnknown_02024C10 + ldr r0, _0801AF18 @ =gUnknown_081D99BC + str r0, [r1] + movs r0, 0x1 + str r0, [sp, 0xC] + b _0801B20E + .align 2, 0 +_0801AF10: .4byte gBattleMons +_0801AF14: .4byte gUnknown_02024C10 +_0801AF18: .4byte gUnknown_081D99BC +_0801AF1C: + ldr r1, _0801AF48 @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r1, 0x4C + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0801AF32 + b _0801B208 +_0801AF32: + ldr r0, _0801AF4C @ =0xfffff077 + ands r1, r0 + str r1, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801AF50 @ =gUnknown_02024C10 + ldr r0, _0801AF54 @ =gUnknown_081D99D4 + str r0, [r1] + movs r1, 0x1 + str r1, [sp, 0xC] + b _0801B20E + .align 2, 0 +_0801AF48: .4byte gBattleMons +_0801AF4C: .4byte 0xfffff077 +_0801AF50: .4byte gUnknown_02024C10 +_0801AF54: .4byte gUnknown_081D99D4 +_0801AF58: + ldr r1, _0801AF88 @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r1, 0x4C + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0801AF6E + b _0801B208 +_0801AF6E: + movs r0, 0x11 + negs r0, r0 + ands r1, r0 + str r1, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801AF8C @ =gUnknown_02024C10 + ldr r0, _0801AF90 @ =gUnknown_081D99EC + str r0, [r1] + movs r2, 0x1 + str r2, [sp, 0xC] + b _0801B20E + .align 2, 0 +_0801AF88: .4byte gBattleMons +_0801AF8C: .4byte gUnknown_02024C10 +_0801AF90: .4byte gUnknown_081D99EC +_0801AF94: + ldr r1, _0801AFBC @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r1, 0x4C + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0801AFAA + b _0801B208 +_0801AFAA: + movs r0, 0x21 + negs r0, r0 + ands r1, r0 + str r1, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801AFC0 @ =gUnknown_02024C10 + ldr r0, _0801AFC4 @ =gUnknown_081D9A04 + b _0801B168 + .align 2, 0 +_0801AFBC: .4byte gBattleMons +_0801AFC0: .4byte gUnknown_02024C10 +_0801AFC4: .4byte gUnknown_081D9A04 +_0801AFC8: + ldr r2, _0801B008 @ =gBattleMons + movs r0, 0x58 + adds r4, r7, 0 + muls r4, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r3, r4, r0 + ldr r1, [r3] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801AFE2 + b _0801B208 +_0801AFE2: + movs r0, 0x8 + negs r0, r0 + ands r1, r0 + str r1, [r3] + adds r2, 0x50 + adds r2, r4, r2 + ldr r0, [r2] + ldr r1, _0801B00C @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801B010 @ =gUnknown_02024C10 + ldr r0, _0801B014 @ =gUnknown_081D9A1C + str r0, [r1] + movs r4, 0x1 + str r4, [sp, 0xC] + b _0801B20E + .align 2, 0 +_0801B008: .4byte gBattleMons +_0801B00C: .4byte 0xf7ffffff +_0801B010: .4byte gUnknown_02024C10 +_0801B014: .4byte gUnknown_081D9A1C +_0801B018: + ldr r1, _0801B048 @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r1, 0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801B02E + b _0801B208 +_0801B02E: + movs r0, 0x8 + negs r0, r0 + ands r1, r0 + str r1, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801B04C @ =gUnknown_02024C10 + ldr r0, _0801B050 @ =gUnknown_081D9A34 + str r0, [r1] + movs r5, 0x2 + str r5, [sp, 0xC] + b _0801B20E + .align 2, 0 +_0801B048: .4byte gBattleMons +_0801B04C: .4byte gUnknown_02024C10 +_0801B050: .4byte gUnknown_081D9A34 +_0801B054: + ldr r1, _0801B090 @ =gBattleMons + movs r0, 0x58 + muls r0, r7 + adds r1, 0x50 + adds r2, r0, r1 + ldr r1, [r2] + movs r0, 0xF0 + lsls r0, 12 + ands r0, r1 + cmp r0, 0 + bne _0801B06C + b _0801B208 +_0801B06C: + ldr r0, _0801B094 @ =0xfff0ffff + ands r1, r0 + str r1, [r2] + ldr r0, _0801B098 @ =gUnknown_030041C0 + ldr r1, _0801B09C @ =gStatusConditionString_LoveJpn + bl StringCopy + bl b_movescr_stack_push_cursor + ldr r1, _0801B0A0 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] + ldr r1, _0801B0A4 @ =gUnknown_02024C10 + ldr r0, _0801B0A8 @ =gUnknown_081D9A4A + str r0, [r1] + movs r0, 0x2 + str r0, [sp, 0xC] + b _0801B20E + .align 2, 0 +_0801B090: .4byte gBattleMons +_0801B094: .4byte 0xfff0ffff +_0801B098: .4byte gUnknown_030041C0 +_0801B09C: .4byte gStatusConditionString_LoveJpn +_0801B0A0: .4byte gUnknown_02024D1E +_0801B0A4: .4byte gUnknown_02024C10 +_0801B0A8: .4byte gUnknown_081D9A4A +_0801B0AC: + ldr r4, _0801B170 @ =gBattleMons + movs r0, 0x58 + adds r5, r7, 0 + muls r5, r0 + adds r0, r4, 0 + adds r0, 0x4C + adds r6, r5, r0 + ldr r2, [r6] + ldrb r0, [r6] + cmp r0, 0 + bne _0801B0D4 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r5, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _0801B0D4 + b _0801B208 +_0801B0D4: + movs r0, 0x88 + ands r2, r0 + cmp r2, 0 + beq _0801B0E4 + ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r1, _0801B178 @ =gStatusConditionString_PoisonJpn + bl StringCopy +_0801B0E4: + ldr r0, [r6] + movs r1, 0x7 + mov r8, r1 + ands r0, r1 + adds r4, 0x50 + cmp r0, 0 + beq _0801B104 + adds r2, r5, r4 + ldr r0, [r2] + ldr r1, _0801B17C @ =0xf7ffffff + ands r0, r1 + str r0, [r2] + ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r1, _0801B180 @ =gStatusConditionString_SleepJpn + bl StringCopy +_0801B104: + ldr r0, [r6] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801B116 + ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r1, _0801B184 @ =gStatusConditionString_ParalysisJpn + bl StringCopy +_0801B116: + ldr r0, [r6] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0801B128 + ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r1, _0801B188 @ =gStatusConditionString_BurnJpn + bl StringCopy +_0801B128: + ldr r0, [r6] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0801B13A + ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r1, _0801B18C @ =gStatusConditionString_IceJpn + bl StringCopy +_0801B13A: + adds r5, r4 + ldr r0, [r5] + mov r2, r8 + ands r0, r2 + cmp r0, 0 + beq _0801B14E + ldr r0, _0801B174 @ =gUnknown_030041C0 + ldr r1, _0801B190 @ =gStatusConditionString_ConfusionJpn + bl StringCopy +_0801B14E: + movs r4, 0 + str r4, [r6] + ldr r0, [r5] + movs r1, 0x8 + negs r1, r1 + ands r0, r1 + str r0, [r5] + bl b_movescr_stack_push_cursor + ldr r0, _0801B194 @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + ldr r1, _0801B198 @ =gUnknown_02024C10 + ldr r0, _0801B19C @ =gUnknown_081D9A4A +_0801B168: + str r0, [r1] + movs r3, 0x1 + str r3, [sp, 0xC] + b _0801B20E + .align 2, 0 +_0801B170: .4byte gBattleMons +_0801B174: .4byte gUnknown_030041C0 +_0801B178: .4byte gStatusConditionString_PoisonJpn +_0801B17C: .4byte 0xf7ffffff +_0801B180: .4byte gStatusConditionString_SleepJpn +_0801B184: .4byte gStatusConditionString_ParalysisJpn +_0801B188: .4byte gStatusConditionString_BurnJpn +_0801B18C: .4byte gStatusConditionString_IceJpn +_0801B190: .4byte gStatusConditionString_ConfusionJpn +_0801B194: .4byte gUnknown_02024D1E +_0801B198: .4byte gUnknown_02024C10 +_0801B19C: .4byte gUnknown_081D9A4A +_0801B1A0: + ldr r4, _0801B1F0 @ =gBattleMons + mov r8, r4 + movs r0, 0x58 + adds r1, r7, 0 + muls r1, r0 + mov r0, r8 + adds r0, 0x18 + adds r1, r0 + movs r2, 0x6 + movs r5, 0x7 + mov r10, r5 +_0801B1B6: + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0x5 + bgt _0801B1C4 + strb r2, [r1] + movs r0, 0x5 + str r0, [sp, 0xC] +_0801B1C4: + adds r1, 0x1 + movs r3, 0x1 + negs r3, r3 + add r10, r3 + mov r4, r10 + cmp r4, 0 + bge _0801B1B6 + ldr r5, [sp, 0xC] + cmp r5, 0 + beq _0801B254 + ldr r0, _0801B1F4 @ =0x02000000 + ldr r1, _0801B1F8 @ =0x00016003 + adds r0, r1 + strb r7, [r0] + ldr r0, _0801B1FC @ =gUnknown_02024C0B + strb r7, [r0] + bl b_movescr_stack_push_cursor + ldr r1, _0801B200 @ =gUnknown_02024C10 + ldr r0, _0801B204 @ =gUnknown_081D9A64 + str r0, [r1] + b _0801B3CA + .align 2, 0 +_0801B1F0: .4byte gBattleMons +_0801B1F4: .4byte 0x02000000 +_0801B1F8: .4byte 0x00016003 +_0801B1FC: .4byte gUnknown_02024C0B +_0801B200: .4byte gUnknown_02024C10 +_0801B204: .4byte gUnknown_081D9A64 +_0801B208: + ldr r2, [sp, 0xC] + cmp r2, 0 + beq _0801B254 +_0801B20E: + ldr r0, _0801B240 @ =0x02000000 + ldr r3, _0801B244 @ =0x00016003 + adds r0, r3 + strb r7, [r0] + ldr r0, _0801B248 @ =gUnknown_02024C0B + strb r7, [r0] + ldr r4, _0801B24C @ =gUnknown_02024A60 + strb r7, [r4] + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 +_0801B224: + ldr r1, _0801B250 @ =gUnknown_02024ACC + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0801B3CA + .align 2, 0 +_0801B240: .4byte 0x02000000 +_0801B244: .4byte 0x00016003 +_0801B248: .4byte gUnknown_02024C0B +_0801B24C: .4byte gUnknown_02024A60 +_0801B250: .4byte gUnknown_02024ACC +_0801B254: + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r0, _0801B268 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r7, r0 + bcs _0801B264 + b _0801AE18 +_0801B264: + b _0801B3CA + .align 2, 0 +_0801B268: .4byte gUnknown_02024A68 +_0801B26C: + ldr r7, _0801B284 @ =gUnknown_02024BEC + ldr r0, [r7] + cmp r0, 0 + bne _0801B276 + b _0801B3CA +_0801B276: + mov r4, r8 + cmp r4, 0x1E + beq _0801B288 + cmp r4, 0x3E + beq _0801B330 + b _0801B3CA + .align 2, 0 +_0801B284: .4byte gUnknown_02024BEC +_0801B288: + ldr r0, _0801B314 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0801B296 + b _0801B3CA +_0801B296: + ldr r2, _0801B318 @ =gUnknown_02024D68 + ldr r4, _0801B31C @ =gUnknown_02024C08 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r1, r0, 2 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0801B2BC + adds r0, r2, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0801B2BC + b _0801B3CA +_0801B2BC: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r9 + bcs _0801B3CA + ldr r2, _0801B320 @ =gBattleMoves + ldr r0, _0801B324 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0801B3CA + ldr r2, _0801B328 @ =gBattleMons + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801B3CA + ldr r1, _0801B32C @ =gUnknown_02024D1E + movs r0, 0x8 + strb r0, [r1, 0x3] + bl b_movescr_stack_push_cursor + movs r0, 0 + movs r1, 0 + bl sub_801E3EC + bl b_movescr_stack_pop_cursor + b _0801B3CA + .align 2, 0 +_0801B314: .4byte gUnknown_02024C68 +_0801B318: .4byte gUnknown_02024D68 +_0801B31C: .4byte gUnknown_02024C08 +_0801B320: .4byte gBattleMoves +_0801B324: .4byte gUnknown_02024BE6 +_0801B328: .4byte gBattleMons +_0801B32C: .4byte gUnknown_02024D1E +_0801B330: + ldr r0, _0801B3DC @ =gUnknown_02024C68 + ldrb r0, [r0] + movs r4, 0x29 + ands r4, r0 + cmp r4, 0 + bne _0801B3CA + ldr r1, _0801B3E0 @ =gUnknown_02024D68 + ldr r5, _0801B3E4 @ =gUnknown_02024C08 + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 2 + adds r6, r1, 0x4 + adds r0, r6 + ldr r1, [r0] + cmp r1, 0 + beq _0801B3CA + ldr r0, _0801B3E8 @ =0x0000ffff + cmp r1, r0 + beq _0801B3CA + ldr r0, _0801B3EC @ =gUnknown_02024C07 + ldrb r3, [r0] + cmp r3, r2 + beq _0801B3CA + ldr r2, _0801B3F0 @ =gBattleMons + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + beq _0801B3CA + cmp r1, 0 + beq _0801B3CA + ldr r0, _0801B3F4 @ =gUnknown_02024C04 + mov r1, sp + ldrh r1, [r1, 0x14] + strh r1, [r0] + ldr r0, _0801B3F8 @ =gUnknown_02024C0B + strb r3, [r0] + ldr r0, _0801B3FC @ =0x02000000 + ldr r2, _0801B400 @ =0x00016003 + adds r0, r2 + strb r3, [r0] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldr r1, [sp, 0x10] + bl __divsi3 + negs r0, r0 + str r0, [r7] + ldrb r1, [r5] + cmp r0, 0 + bne _0801B3AC + movs r0, 0x1 + negs r0, r0 + str r0, [r7] +_0801B3AC: + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + str r4, [r0] + bl b_movescr_stack_push_cursor + ldr r1, _0801B404 @ =gUnknown_02024C10 + ldr r0, _0801B408 @ =gUnknown_081D9AA7 + str r0, [r1] + ldr r0, [sp, 0xC] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0xC] +_0801B3CA: + ldr r0, [sp, 0xC] + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801B3DC: .4byte gUnknown_02024C68 +_0801B3E0: .4byte gUnknown_02024D68 +_0801B3E4: .4byte gUnknown_02024C08 +_0801B3E8: .4byte 0x0000ffff +_0801B3EC: .4byte gUnknown_02024C07 +_0801B3F0: .4byte gBattleMons +_0801B3F4: .4byte gUnknown_02024C04 +_0801B3F8: .4byte gUnknown_02024C0B +_0801B3FC: .4byte 0x02000000 +_0801B400: .4byte 0x00016003 +_0801B404: .4byte gUnknown_02024C10 +_0801B408: .4byte gUnknown_081D9AA7 + thumb_func_end sub_801A02C + + thumb_func_start unref_sub_801B40C +unref_sub_801B40C: @ 801B40C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + str r0, [sp] + ldr r0, _0801B464 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0801B42A + b _0801B56E +_0801B42A: + movs r1, 0x1 + mov r9, r1 +_0801B42E: + movs r5, 0 + ldr r4, _0801B468 @ =gUnknown_081FC1D0 + ldr r2, [sp] + adds r2, 0x1 + str r2, [sp, 0x4] +_0801B438: + ldr r0, _0801B46C @ =gUnknown_02024C0C + ldrb r2, [r0] + ldr r3, _0801B470 @ =gBitTable + lsls r0, r5, 2 + adds r0, r3 + ldr r0, [r0] + ands r0, r2 + cmp r0, 0 + bne _0801B45A + adds r0, r5, 0x2 + lsls r1, r0, 2 + adds r1, r3 + ldr r1, [r1] + ands r2, r1 + adds r7, r0, 0 + cmp r2, 0 + beq _0801B474 +_0801B45A: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + b _0801B556 + .align 2, 0 +_0801B464: .4byte gUnknown_020239F8 +_0801B468: .4byte gUnknown_081FC1D0 +_0801B46C: .4byte gUnknown_02024C0C +_0801B470: .4byte gBitTable +_0801B474: + ldr r0, _0801B580 @ =gUnknown_081FC1D0 + ldr r2, [sp] + lsls r1, r2, 3 + adds r6, r1, r0 + ldr r4, _0801B584 @ =gUnknown_02024C60 + lsls r0, r5, 1 + adds r3, r0, r4 + ldrh r2, [r6] + mov r8, r1 + mov r10, r0 + ldrh r3, [r3] + cmp r2, r3 + bne _0801B4E4 + lsls r0, r7, 1 + adds r0, r4 + ldrh r1, [r6, 0x2] + ldrh r0, [r0] + cmp r1, r0 + bne _0801B4E4 + adds r0, r5, 0 + bl battle_get_per_side_status + mov r2, r9 + ands r2, r0 + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + ldr r0, _0801B588 @ =gUnknown_02024C80 + adds r1, r0 + lsls r0, r7, 4 + orrs r0, r5 + strb r0, [r1, 0x3] + adds r0, r5, 0 + bl battle_get_per_side_status + mov r1, r9 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0801B588 @ =gUnknown_02024C80 + adds r0, r1 + ldrh r1, [r6, 0x4] + strh r1, [r0, 0x4] + adds r0, r5, 0 + bl battle_get_per_side_status + mov r1, r9 + ands r1, r0 + lsls r1, 1 + ldr r2, _0801B58C @ =gUnknown_02024C7A + adds r1, r2 + ldrh r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strh r0, [r1] +_0801B4E4: + ldr r0, _0801B580 @ =gUnknown_081FC1D0 + mov r1, r8 + adds r4, r1, r0 + ldr r2, _0801B584 @ =gUnknown_02024C60 + lsls r0, r7, 1 + adds r0, r2 + ldrh r1, [r4] + ldrh r0, [r0] + cmp r1, r0 + bne _0801B54E + mov r0, r10 + adds r1, r0, r2 + ldrh r0, [r4, 0x2] + ldrh r1, [r1] + cmp r0, r1 + bne _0801B54E + adds r0, r5, 0 + bl battle_get_per_side_status + mov r2, r9 + ands r2, r0 + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + ldr r2, _0801B588 @ =gUnknown_02024C80 + adds r1, r2 + lsls r0, r5, 4 + orrs r0, r7 + strb r0, [r1, 0x3] + adds r0, r5, 0 + bl battle_get_per_side_status + mov r1, r9 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0801B588 @ =gUnknown_02024C80 + adds r0, r1 + ldrh r1, [r4, 0x4] + strh r1, [r0, 0x4] + adds r0, r5, 0 + bl battle_get_per_side_status + mov r1, r9 + ands r1, r0 + lsls r1, 1 + ldr r2, _0801B58C @ =gUnknown_02024C7A + adds r1, r2 + ldrh r0, [r1] + movs r2, 0x4 + orrs r0, r2 + strh r0, [r1] +_0801B54E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _0801B580 @ =gUnknown_081FC1D0 +_0801B556: + cmp r5, 0x1 + bhi _0801B55C + b _0801B438 +_0801B55C: + ldr r0, [sp, 0x4] + str r0, [sp] + lsls r0, 3 + adds r0, r4 + ldrh r1, [r0] + ldr r0, _0801B590 @ =0x0000ffff + cmp r1, r0 + beq _0801B56E + b _0801B42E +_0801B56E: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801B580: .4byte gUnknown_081FC1D0 +_0801B584: .4byte gUnknown_02024C60 +_0801B588: .4byte gUnknown_02024C80 +_0801B58C: .4byte gUnknown_02024C7A +_0801B590: .4byte 0x0000ffff + thumb_func_end unref_sub_801B40C + + thumb_func_start sub_801B594 +sub_801B594: @ 801B594 + push {lr} + ldr r0, _0801B5B4 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801B5B0 + ldr r1, _0801B5B8 @ =gUnknown_081FA73C + ldr r0, _0801B5BC @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _call_via_r0 +_0801B5B0: + pop {r0} + bx r0 + .align 2, 0 +_0801B5B4: .4byte gUnknown_02024A64 +_0801B5B8: .4byte gUnknown_081FA73C +_0801B5BC: .4byte gUnknown_02024C10 + thumb_func_end sub_801B594 + + thumb_func_start sub_801B5C0 +sub_801B5C0: @ 801B5C0 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + lsls r0, 16 + lsrs r7, r0, 16 + lsls r1, 24 + lsrs r0, r1, 24 + movs r5, 0 + cmp r0, 0 + beq _0801B5DE + subs r0, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + b _0801B5EA +_0801B5DE: + ldr r1, _0801B5FC @ =gBattleMoves + lsls r0, r7, 1 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r6, [r0, 0x6] +_0801B5EA: + cmp r6, 0x40 + bls _0801B5F0 + b _0801B900 +_0801B5F0: + lsls r0, r6, 2 + ldr r1, _0801B600 @ =_0801B604 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801B5FC: .4byte gBattleMoves +_0801B600: .4byte _0801B604 + .align 2, 0 +_0801B604: + .4byte _0801B708 + .4byte _0801B808 + .4byte _0801B8FC + .4byte _0801B900 + .4byte _0801B820 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B808 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B8FC + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B808 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B900 + .4byte _0801B808 +_0801B708: + ldr r0, _0801B7E8 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _0801B7EC @ =gUnknown_02024C80 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r2, r0, r1 + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0801B73A + ldr r1, _0801B7F0 @ =gBattleMons + ldrb r4, [r2, 0x9] + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801B73A + b _0801B850 +_0801B73A: + ldr r0, _0801B7E8 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r4, r0, 24 + lsls r0, r7, 1 + mov r8, r0 +_0801B74A: + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, _0801B7F4 @ =gUnknown_02024A68 + ldrb r1, [r1] + bl __modsi3 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r6, _0801B7E8 @ =gUnknown_02024C07 + ldrb r2, [r6] + cmp r5, r2 + beq _0801B74A + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r4, r0 + beq _0801B74A + ldr r0, _0801B7F8 @ =gUnknown_02024C0C + ldrb r2, [r0] + ldr r1, _0801B7FC @ =gBitTable + lsls r0, r5, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _0801B74A + ldr r0, _0801B800 @ =gBattleMoves + mov r3, r8 + adds r1, r3, r7 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x2] + cmp r0, 0xD + beq _0801B798 + b _0801B900 +_0801B798: + ldrb r1, [r6] + str r2, [sp] + movs r0, 0x10 + movs r2, 0x1F + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0801B7AE + b _0801B900 +_0801B7AE: + ldr r2, _0801B7F0 @ =gBattleMons + movs r1, 0x58 + adds r0, r5, 0 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1F + bne _0801B7C2 + b _0801B900 +_0801B7C2: + movs r4, 0x2 + eors r5, r4 + adds r0, r5, 0 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r1, [r0] + adds r0, r5, 0 + bl sub_81074C4 + ldr r1, _0801B804 @ =gUnknown_02024D68 + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0] + orrs r1, r4 + strb r1, [r0] + b _0801B900 + .align 2, 0 +_0801B7E8: .4byte gUnknown_02024C07 +_0801B7EC: .4byte gUnknown_02024C80 +_0801B7F0: .4byte gBattleMons +_0801B7F4: .4byte gUnknown_02024A68 +_0801B7F8: .4byte gUnknown_02024C0C +_0801B7FC: .4byte gBitTable +_0801B800: .4byte gBattleMoves +_0801B804: .4byte gUnknown_02024D68 +_0801B808: + ldr r0, _0801B81C @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_get_per_side_status + adds r1, r0, 0 + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + b _0801B8B2 + .align 2, 0 +_0801B81C: .4byte gUnknown_02024C07 +_0801B820: + ldr r0, _0801B854 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _0801B858 @ =gUnknown_02024C80 + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r2, r0, r1 + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0801B860 + ldr r1, _0801B85C @ =gBattleMons + ldrb r4, [r2, 0x9] + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801B860 +_0801B850: + adds r5, r4, 0 + b _0801B900 + .align 2, 0 +_0801B854: .4byte gUnknown_02024C07 +_0801B858: .4byte gUnknown_02024C80 +_0801B85C: .4byte gBattleMons +_0801B860: + ldr r0, _0801B894 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0801B8DC + movs r0, 0x4 + ands r6, r0 + cmp r6, 0 + beq _0801B8DC + ldr r0, _0801B898 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0801B8A0 + bl Random + adds r1, r4, 0 + ands r1, r0 + cmp r1, 0 + beq _0801B89C + movs r0, 0x1 + b _0801B8B2 + .align 2, 0 +_0801B894: .4byte gUnknown_020239F8 +_0801B898: .4byte gUnknown_02024C07 +_0801B89C: + movs r0, 0x3 + b _0801B8B2 +_0801B8A0: + bl Random + adds r1, r4, 0 + ands r1, r0 + cmp r1, 0 + beq _0801B8B0 + movs r0, 0 + b _0801B8B2 +_0801B8B0: + movs r0, 0x2 +_0801B8B2: + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0801B8D4 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _0801B8D8 @ =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0801B900 + movs r0, 0x2 + eors r5, r0 + b _0801B900 + .align 2, 0 +_0801B8D4: .4byte gUnknown_02024C0C +_0801B8D8: .4byte gBitTable +_0801B8DC: + ldr r0, _0801B8F8 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_get_per_side_status + adds r1, r0, 0 + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 + b _0801B900 + .align 2, 0 +_0801B8F8: .4byte gUnknown_02024C07 +_0801B8FC: + ldr r0, _0801B91C @ =gUnknown_02024C07 + ldrb r5, [r0] +_0801B900: + ldr r1, _0801B920 @ =0x02000000 + ldr r0, _0801B91C @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r2, _0801B924 @ =0x00016010 + adds r0, r2 + adds r0, r1 + strb r5, [r0] + adds r0, r5, 0 + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801B91C: .4byte gUnknown_02024C07 +_0801B920: .4byte 0x02000000 +_0801B924: .4byte 0x00016010 + thumb_func_end sub_801B5C0 + + thumb_func_start sub_801B928 +sub_801B928: @ 801B928 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + ldr r0, _0801B9E0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0801B9DA + ldr r7, _0801B9E4 @ =gUnknown_02024C07 + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0801B9DA + ldr r5, _0801B9E8 @ =gBattleMons + ldrb r0, [r7] + movs r1, 0x58 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r5, 0 + adds r0, 0x54 + adds r0, r1, r0 + ldr r0, [r0] + adds r2, r5, 0 + adds r2, 0x3C + adds r1, r2 + bl sub_8040AD0 + lsls r0, 24 + cmp r0, 0 + beq _0801B9DA + ldr r0, _0801B9EC @ =0x0000080e + bl FlagGet + lsls r0, 24 + cmp r0, 0 + bne _0801B9DA + movs r6, 0xA + ldr r0, _0801B9F0 @ =0x00000808 + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0801B98E + movs r6, 0x1E +_0801B98E: + ldr r0, _0801B9F4 @ =0x0000080a + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0801B99C + movs r6, 0x32 +_0801B99C: + ldr r0, _0801B9F8 @ =0x0000080c + bl FlagGet + lsls r0, 24 + cmp r0, 0 + beq _0801B9AA + movs r6, 0x46 +_0801B9AA: + ldrb r0, [r7] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r5 + adds r0, 0x2A + ldrb r0, [r0] + cmp r0, r6 + bls _0801B9DA + bl Random + movs r1, 0xFF + ands r1, r0 + ldrb r0, [r7] + mov r2, r8 + muls r2, r0 + adds r0, r2, r5 + adds r0, 0x2A + ldrb r0, [r0] + adds r0, r6 + muls r0, r1 + asrs r4, r0, 8 + cmp r4, r6 + bge _0801B9FC +_0801B9DA: + movs r0, 0 + b _0801BC24 + .align 2, 0 +_0801B9E0: .4byte gUnknown_020239F8 +_0801B9E4: .4byte gUnknown_02024C07 +_0801B9E8: .4byte gBattleMons +_0801B9EC: .4byte 0x0000080e +_0801B9F0: .4byte 0x00000808 +_0801B9F4: .4byte 0x0000080a +_0801B9F8: .4byte 0x0000080c +_0801B9FC: + ldr r3, _0801BA3C @ =gUnknown_02024BE6 + ldrh r0, [r3] + cmp r0, 0x63 + bne _0801BA12 + adds r0, r5, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r1, [r0] + ldr r2, _0801BA40 @ =0xff7fffff + ands r1, r2 + str r1, [r0] +_0801BA12: + ldrb r0, [r7] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r1, r5, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0801BA4C + ldrh r0, [r3] + cmp r0, 0xAD + beq _0801BA34 + cmp r0, 0xD6 + bne _0801BA4C +_0801BA34: + ldr r1, _0801BA44 @ =gUnknown_02024C10 + ldr r0, _0801BA48 @ =gUnknown_081D995F + b _0801BBCE + .align 2, 0 +_0801BA3C: .4byte gUnknown_02024BE6 +_0801BA40: .4byte 0xff7fffff +_0801BA44: .4byte gUnknown_02024C10 +_0801BA48: .4byte gUnknown_081D995F +_0801BA4C: + bl Random + movs r5, 0xFF + adds r1, r5, 0 + ands r1, r0 + ldr r7, _0801BB04 @ =gBattleMons + ldr r2, _0801BB08 @ =gUnknown_02024C07 + mov r9, r2 + ldrb r3, [r2] + movs r0, 0x58 + mov r8, r0 + mov r0, r8 + muls r0, r3 + adds r0, r7 + adds r0, 0x2A + ldrb r2, [r0] + adds r0, r2, r6 + muls r0, r1 + asrs r4, r0, 8 + cmp r4, r6 + bge _0801BB3C + ldr r7, _0801BB0C @ =gBitTable + ldr r5, _0801BB10 @ =gUnknown_02024BE4 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0] + adds r0, r3, 0 + movs r2, 0xFF + bl sub_8015A98 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xF + bne _0801BA94 + b _0801BBBE +_0801BA94: + adds r6, r5, 0 + ldr r1, _0801BB14 @ =gUnknown_02024BE5 + mov r9, r1 + movs r2, 0x3 + mov r8, r2 +_0801BA9E: + bl Random + mov r1, r8 + ands r0, r1 + mov r2, r9 + strb r0, [r2] + strb r0, [r6] + ldrb r0, [r6] + lsls r0, 2 + adds r0, r7 + ldr r5, [r0] + ands r5, r4 + cmp r5, 0 + bne _0801BA9E + ldr r4, _0801BB18 @ =gUnknown_02024BEA + ldr r3, _0801BB04 @ =gBattleMons + ldr r0, _0801BB10 @ =gUnknown_02024BE4 + ldrb r0, [r0] + lsls r0, 1 + ldr r1, _0801BB08 @ =gUnknown_02024C07 + ldrb r2, [r1] + movs r1, 0x58 + muls r1, r2 + adds r0, r1 + adds r3, 0xC + adds r0, r3 + ldrh r0, [r0] + strh r0, [r4] + ldr r0, _0801BB1C @ =gUnknown_02024D1E + strb r5, [r0, 0x3] + ldr r0, _0801BB20 @ =gUnknown_02024DEC + movs r1, 0 + strh r5, [r0] + ldr r0, _0801BB24 @ =0x02000000 + ldr r2, _0801BB28 @ =0x0001601c + adds r0, r2 + strb r1, [r0] + ldr r1, _0801BB2C @ =gUnknown_02024C10 + ldr r0, _0801BB30 @ =gUnknown_081D996F + str r0, [r1] + ldrh r0, [r4] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _0801BB34 @ =gUnknown_02024C08 + strb r0, [r1] + ldr r2, _0801BB38 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 14 + b _0801BC1E + .align 2, 0 +_0801BB04: .4byte gBattleMons +_0801BB08: .4byte gUnknown_02024C07 +_0801BB0C: .4byte gBitTable +_0801BB10: .4byte gUnknown_02024BE4 +_0801BB14: .4byte gUnknown_02024BE5 +_0801BB18: .4byte gUnknown_02024BEA +_0801BB1C: .4byte gUnknown_02024D1E +_0801BB20: .4byte gUnknown_02024DEC +_0801BB24: .4byte 0x02000000 +_0801BB28: .4byte 0x0001601c +_0801BB2C: .4byte gUnknown_02024C10 +_0801BB30: .4byte gUnknown_081D996F +_0801BB34: .4byte gUnknown_02024C08 +_0801BB38: .4byte gUnknown_02024C6C +_0801BB3C: + subs r0, r2, r6 + lsls r0, 24 + lsrs r6, r0, 24 + bl Random + adds r4, r5, 0 + ands r4, r0 + cmp r4, r6 + bge _0801BBB8 + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r7, 0 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + bne _0801BBB8 + adds r0, r1, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x48 + beq _0801BBB8 + cmp r0, 0xF + beq _0801BBB8 + movs r2, 0 + ldr r0, _0801BBAC @ =gUnknown_02024A68 + ldrb r3, [r0] + mov r8, r0 + cmp r2, r3 + bge _0801BB9E + ldr r0, [r7, 0x50] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + bne _0801BB9E + adds r1, r7, 0 + adds r1, 0x50 + movs r5, 0x70 +_0801BB8E: + adds r1, 0x58 + adds r2, 0x1 + cmp r2, r3 + bge _0801BB9E + ldr r0, [r1] + ands r0, r5 + cmp r0, 0 + beq _0801BB8E +_0801BB9E: + mov r0, r8 + ldrb r0, [r0] + cmp r2, r0 + bne _0801BBB8 + ldr r1, _0801BBB0 @ =gUnknown_02024C10 + ldr r0, _0801BBB4 @ =gUnknown_081D9989 + b _0801BBCE + .align 2, 0 +_0801BBAC: .4byte gUnknown_02024A68 +_0801BBB0: .4byte gUnknown_02024C10 +_0801BBB4: .4byte gUnknown_081D9989 +_0801BBB8: + subs r4, r6 + cmp r4, r6 + blt _0801BBE0 +_0801BBBE: + bl Random + ldr r2, _0801BBD4 @ =gUnknown_02024D1E + movs r1, 0x3 + ands r1, r0 + strb r1, [r2, 0x5] + ldr r1, _0801BBD8 @ =gUnknown_02024C10 + ldr r0, _0801BBDC @ =gUnknown_081D9977 +_0801BBCE: + str r0, [r1] + movs r0, 0x1 + b _0801BC24 + .align 2, 0 +_0801BBD4: .4byte gUnknown_02024D1E +_0801BBD8: .4byte gUnknown_02024C10 +_0801BBDC: .4byte gUnknown_081D9977 +_0801BBE0: + ldr r4, _0801BC34 @ =gUnknown_02024C07 + ldrb r1, [r4] + movs r0, 0x58 + muls r1, r0 + ldr r0, _0801BC38 @ =gBattleMons + adds r1, r0 + movs r0, 0x28 + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + ldrb r0, [r4] + str r0, [sp, 0x8] + ldrb r0, [r4] + str r0, [sp, 0xC] + adds r0, r1, 0 + movs r2, 0x1 + movs r3, 0 + bl CalculateBaseDamage + ldr r1, _0801BC3C @ =gUnknown_02024BEC + str r0, [r1] + ldr r1, _0801BC40 @ =gUnknown_02024C08 + ldrb r0, [r4] + strb r0, [r1] + ldr r1, _0801BC44 @ =gUnknown_02024C10 + ldr r0, _0801BC48 @ =gUnknown_081D99A0 + str r0, [r1] + ldr r2, _0801BC4C @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 12 +_0801BC1E: + orrs r0, r1 + str r0, [r2] + movs r0, 0x2 +_0801BC24: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801BC34: .4byte gUnknown_02024C07 +_0801BC38: .4byte gBattleMons +_0801BC3C: .4byte gUnknown_02024BEC +_0801BC40: .4byte gUnknown_02024C08 +_0801BC44: .4byte gUnknown_02024C10 +_0801BC48: .4byte gUnknown_081D99A0 +_0801BC4C: .4byte gUnknown_02024C6C + thumb_func_end sub_801B928 + + thumb_func_start atk00_attackcanceler +atk00_attackcanceler: @ 801BC50 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r0, _0801BC6C @ =gUnknown_02024D26 + ldrb r0, [r0] + cmp r0, 0 + beq _0801BC74 + ldr r1, _0801BC70 @ =gUnknown_02024A7F + movs r0, 0xC + strb r0, [r1] + b _0801BFF4 + .align 2, 0 +_0801BC6C: .4byte gUnknown_02024D26 +_0801BC70: .4byte gUnknown_02024A7F +_0801BC74: + ldr r2, _0801BCA4 @ =gBattleMons + ldr r0, _0801BCA8 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0801BCB8 + ldr r2, _0801BCAC @ =gUnknown_02024C6C + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _0801BCB8 + movs r0, 0x80 + lsls r0, 12 + orrs r1, r0 + str r1, [r2] + ldr r1, _0801BCB0 @ =gUnknown_02024C10 + ldr r0, _0801BCB4 @ =BattleScript_1D6F62 + b _0801BFF2 + .align 2, 0 +_0801BCA4: .4byte gBattleMons +_0801BCA8: .4byte gUnknown_02024C07 +_0801BCAC: .4byte gUnknown_02024C6C +_0801BCB0: .4byte gUnknown_02024C10 +_0801BCB4: .4byte BattleScript_1D6F62 +_0801BCB8: + bl sub_8017718 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _0801BCC6 + b _0801BFF4 +_0801BCC6: + ldr r0, _0801BD34 @ =gUnknown_02024C08 + ldrb r1, [r0] + str r2, [sp] + movs r0, 0x2 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _0801BCDE + b _0801BFF4 +_0801BCDE: + ldr r4, _0801BD38 @ =gBattleMons + ldr r0, _0801BD3C @ =gUnknown_02024BE4 + ldrb r1, [r0] + ldr r3, _0801BD40 @ =gUnknown_02024C07 + ldrb r2, [r3] + movs r0, 0x58 + muls r2, r0 + adds r1, r2 + adds r0, r4, 0 + adds r0, 0x24 + adds r1, r0 + ldrb r0, [r1] + ldr r5, _0801BD44 @ =gUnknown_02024C6C + cmp r0, 0 + bne _0801BD5C + ldr r0, _0801BD48 @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xA5 + beq _0801BD5C + ldr r0, [r5] + ldr r1, _0801BD4C @ =0x00800200 + ands r0, r1 + cmp r0, 0 + bne _0801BD5C + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + bne _0801BD5C + ldr r1, _0801BD50 @ =gUnknown_02024C10 + ldr r0, _0801BD54 @ =gUnknown_081D936D + str r0, [r1] + ldr r2, _0801BD58 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + b _0801BFF4 + .align 2, 0 +_0801BD34: .4byte gUnknown_02024C08 +_0801BD38: .4byte gBattleMons +_0801BD3C: .4byte gUnknown_02024BE4 +_0801BD40: .4byte gUnknown_02024C07 +_0801BD44: .4byte gUnknown_02024C6C +_0801BD48: .4byte gUnknown_02024BE6 +_0801BD4C: .4byte 0x00800200 +_0801BD50: .4byte gUnknown_02024C10 +_0801BD54: .4byte gUnknown_081D936D +_0801BD58: .4byte gUnknown_02024C68 +_0801BD5C: + ldr r0, [r5] + ldr r1, _0801BDA0 @ =0xff7fffff + ands r0, r1 + str r0, [r5] + movs r6, 0x80 + lsls r6, 18 + ands r0, r6 + cmp r0, 0 + bne _0801BDB4 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r1, r4, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + bne _0801BDB4 + bl sub_801B928 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _0801BDB4 + cmp r2, 0x2 + bne _0801BDA4 + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + b _0801BFF4 + .align 2, 0 +_0801BDA0: .4byte 0xff7fffff +_0801BDA4: + ldr r0, _0801BDB0 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _0801BFF4 + .align 2, 0 +_0801BDB0: .4byte gUnknown_02024C68 +_0801BDB4: + ldr r2, _0801BE18 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 18 + orrs r0, r1 + str r0, [r2] + ldr r2, _0801BE1C @ =gUnknown_02024D28 + ldr r1, _0801BE20 @ =gUnknown_02024C08 + ldrb r3, [r1] + lsls r0, r3, 4 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 27 + mov r8, r1 + mov r9, r2 + cmp r0, 0 + bge _0801BE3C + ldr r2, _0801BE24 @ =gBattleMoves + ldr r0, _0801BE28 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801BE3C + ldr r0, _0801BE2C @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r2, _0801BE30 @ =0x00000115 + adds r1, r3, 0 + bl sub_80151D4 + mov r0, r8 + ldrb r1, [r0] + lsls r1, 4 + add r1, r9 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + bl b_movescr_stack_push_cursor + ldr r1, _0801BE34 @ =gUnknown_02024C10 + ldr r0, _0801BE38 @ =gUnknown_081D946F + b _0801BFF2 + .align 2, 0 +_0801BE18: .4byte gUnknown_02024C6C +_0801BE1C: .4byte gUnknown_02024D28 +_0801BE20: .4byte gUnknown_02024C08 +_0801BE24: .4byte gBattleMoves +_0801BE28: .4byte gUnknown_02024BE6 +_0801BE2C: .4byte gUnknown_02024C07 +_0801BE30: .4byte 0x00000115 +_0801BE34: .4byte gUnknown_02024C10 +_0801BE38: .4byte gUnknown_081D946F +_0801BE3C: + movs r2, 0 + ldr r0, _0801BEB8 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r2, r0 + bge _0801BE7E + ldr r6, _0801BEBC @ =gUnknown_02024D28 + ldr r1, _0801BEC0 @ =gBattleMoves + mov r12, r1 + adds r5, r0, 0 + ldr r7, _0801BEC4 @ =gUnknown_02024A7A +_0801BE50: + adds r4, r2, r7 + ldrb r3, [r4] + lsls r0, r3, 4 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 26 + cmp r0, 0 + bge _0801BE78 + ldr r0, _0801BEC8 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r1, [r0, 0x8] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0801BE78 + b _0801BFA4 +_0801BE78: + adds r2, 0x1 + cmp r2, r5 + blt _0801BE50 +_0801BE7E: + ldr r0, _0801BECC @ =gUnknown_02024D68 + mov r1, r8 + ldrb r2, [r1] + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r3, [r1] + lsls r0, r3, 30 + cmp r0, 0 + bge _0801BEDC + movs r0, 0x3 + negs r0, r0 + ands r0, r3 + strb r0, [r1] + ldr r4, _0801BED0 @ =byte_2024C06 + movs r0, 0x1F + strb r0, [r4] + bl b_movescr_stack_push_cursor + ldr r1, _0801BED4 @ =gUnknown_02024C10 + ldr r0, _0801BED8 @ =gUnknown_081D9812 + str r0, [r1] + mov r2, r8 + ldrb r0, [r2] + ldrb r1, [r4] + bl sub_81074C4 + b _0801BFF4 + .align 2, 0 +_0801BEB8: .4byte gUnknown_02024A68 +_0801BEBC: .4byte gUnknown_02024D28 +_0801BEC0: .4byte gBattleMoves +_0801BEC4: .4byte gUnknown_02024A7A +_0801BEC8: .4byte gUnknown_02024BE6 +_0801BECC: .4byte gUnknown_02024D68 +_0801BED0: .4byte byte_2024C06 +_0801BED4: .4byte gUnknown_02024C10 +_0801BED8: .4byte gUnknown_081D9812 +_0801BEDC: + lsls r0, r2, 4 + add r0, r9 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _0801BEEA + b _0801BFEC +_0801BEEA: + ldr r1, _0801BF80 @ =gBattleMoves + ldr r2, _0801BF84 @ =gUnknown_02024BE6 + ldrh r3, [r2] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + adds r4, r2, 0 + cmp r0, 0 + beq _0801BFEC + cmp r3, 0xAE + bne _0801BF28 + ldr r2, _0801BF88 @ =gBattleMons + ldr r0, _0801BF8C @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _0801BF28 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _0801BFEC +_0801BF28: + ldrh r0, [r4] + bl sub_8028350 + lsls r0, 24 + cmp r0, 0 + beq _0801BF4E + ldr r1, _0801BF88 @ =gBattleMons + ldr r0, _0801BF8C @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 5 + ands r0, r1 + cmp r0, 0 + beq _0801BFEC +_0801BF4E: + ldr r0, _0801BF8C @ =gUnknown_02024C07 + ldrb r0, [r0] + bl b_cancel_multi_turn_move_maybe + ldr r2, _0801BF90 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801BF94 @ =gUnknown_02024C3C + ldr r3, _0801BF98 @ =gUnknown_02024C08 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801BF9C @ =gUnknown_02024C44 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r1, _0801BFA0 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x6] + b _0801BFEC + .align 2, 0 +_0801BF80: .4byte gBattleMoves +_0801BF84: .4byte gUnknown_02024BE6 +_0801BF88: .4byte gBattleMons +_0801BF8C: .4byte gUnknown_02024C07 +_0801BF90: .4byte gUnknown_02024C68 +_0801BF94: .4byte gUnknown_02024C3C +_0801BF98: .4byte gUnknown_02024C08 +_0801BF9C: .4byte gUnknown_02024C44 +_0801BFA0: .4byte gUnknown_02024D1E +_0801BFA4: + ldr r0, _0801BFD4 @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r2, _0801BFD8 @ =0x00000121 + adds r1, r3, 0 + bl sub_80151D4 + ldrb r1, [r4] + lsls r1, 4 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r0, _0801BFDC @ =0x02000000 + ldrb r1, [r4] + ldr r2, _0801BFE0 @ =0x00016003 + adds r0, r2 + strb r1, [r0] + bl b_movescr_stack_push_cursor + ldr r1, _0801BFE4 @ =gUnknown_02024C10 + ldr r0, _0801BFE8 @ =gUnknown_081D9487 + b _0801BFF2 + .align 2, 0 +_0801BFD4: .4byte gUnknown_02024C07 +_0801BFD8: .4byte 0x00000121 +_0801BFDC: .4byte 0x02000000 +_0801BFE0: .4byte 0x00016003 +_0801BFE4: .4byte gUnknown_02024C10 +_0801BFE8: .4byte gUnknown_081D9487 +_0801BFEC: + ldr r1, _0801C004 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 +_0801BFF2: + str r0, [r1] +_0801BFF4: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801C004: .4byte gUnknown_02024C10 + thumb_func_end atk00_attackcanceler + + thumb_func_start mcmd_jump_if_move_not_executed +mcmd_jump_if_move_not_executed: @ 801C008 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r6, r1, 16 + ldr r1, _0801C054 @ =gUnknown_02024C10 + ldr r5, [r1] + adds r4, r5, r0 + ldr r0, _0801C058 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0801C068 + ldr r1, _0801C05C @ =gUnknown_02024C3C + ldr r3, _0801C060 @ =gUnknown_02024C08 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801C064 @ =gUnknown_02024C44 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldrb r4, [r5, 0x1] + ldrb r0, [r5, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r5, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r5, 0x4] + lsls r0, 24 + orrs r4, r0 + b _0801C082 + .align 2, 0 +_0801C054: .4byte gUnknown_02024C10 +_0801C058: .4byte gUnknown_02024C68 +_0801C05C: .4byte gUnknown_02024C3C +_0801C060: .4byte gUnknown_02024C08 +_0801C064: .4byte gUnknown_02024C44 +_0801C068: + bl b_feature_update_destiny_bond + ldr r0, _0801C090 @ =gUnknown_02024C08 + ldrb r1, [r0] + str r6, [sp] + movs r0, 0x3 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0801C086 +_0801C082: + ldr r0, _0801C094 @ =gUnknown_02024C10 + str r4, [r0] +_0801C086: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801C090: .4byte gUnknown_02024C08 +_0801C094: .4byte gUnknown_02024C10 + thumb_func_end mcmd_jump_if_move_not_executed + + thumb_func_start atk40_801DBA0 +atk40_801DBA0: @ 801C098 + push {lr} + ldr r1, _0801C0E0 @ =gUnknown_02024D28 + ldr r0, _0801C0E4 @ =gUnknown_02024C08 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _0801C0F8 + ldr r2, _0801C0E8 @ =gBattleMoves + ldr r0, _0801C0EC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801C0F8 + ldr r2, _0801C0F0 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x5 + movs r1, 0 + bl mcmd_jump_if_move_not_executed + ldr r1, _0801C0F4 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x6] + b _0801C100 + .align 2, 0 +_0801C0E0: .4byte gUnknown_02024D28 +_0801C0E4: .4byte gUnknown_02024C08 +_0801C0E8: .4byte gBattleMoves +_0801C0EC: .4byte gUnknown_02024BE6 +_0801C0F0: .4byte gUnknown_02024C68 +_0801C0F4: .4byte gUnknown_02024D1E +_0801C0F8: + ldr r1, _0801C104 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0801C100: + pop {r0} + bx r0 + .align 2, 0 +_0801C104: .4byte gUnknown_02024C10 + thumb_func_end atk40_801DBA0 + + thumb_func_start sub_801C108 +sub_801C108: @ 801C108 + push {r4,lr} + lsls r0, 16 + lsrs r3, r0, 16 + movs r4, 0 + ldr r1, _0801C15C @ =gUnknown_02024D28 + ldr r0, _0801C160 @ =gUnknown_02024C08 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _0801C154 + ldr r2, _0801C164 @ =gBattleMoves + ldr r0, _0801C168 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x8] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801C154 + ldr r2, _0801C16C @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + movs r0, 0x7 + adds r1, r3, 0 + bl mcmd_jump_if_move_not_executed + ldr r1, _0801C170 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x6] + movs r4, 0x1 +_0801C154: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801C15C: .4byte gUnknown_02024D28 +_0801C160: .4byte gUnknown_02024C08 +_0801C164: .4byte gBattleMoves +_0801C168: .4byte gUnknown_02024BE6 +_0801C16C: .4byte gUnknown_02024C68 +_0801C170: .4byte gUnknown_02024D1E + thumb_func_end sub_801C108 + + thumb_func_start sub_801C174 +sub_801C174: @ 801C174 + push {r4-r6,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r2, _0801C1D4 @ =gUnknown_02024C98 + ldr r3, _0801C1D8 @ =gUnknown_02024C08 + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r1, [r0] + movs r0, 0x18 + ands r1, r0 + adds r6, r2, 0 + cmp r1, 0 + beq _0801C1A6 + ldr r1, _0801C1DC @ =gUnknown_02024CA8 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, _0801C1E0 @ =gUnknown_02024C07 + ldrb r0, [r0, 0x15] + ldrb r1, [r1] + cmp r0, r1 + beq _0801C290 +_0801C1A6: + ldr r0, _0801C1E4 @ =gUnknown_02024C6C + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 9 + ands r1, r2 + adds r2, r0, 0 + cmp r1, 0 + bne _0801C1EC + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801C1EC +_0801C1C6: + ldr r0, _0801C1E8 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _0801C290 + .align 2, 0 +_0801C1D4: .4byte gUnknown_02024C98 +_0801C1D8: .4byte gUnknown_02024C08 +_0801C1DC: .4byte gUnknown_02024CA8 +_0801C1E0: .4byte gUnknown_02024C07 +_0801C1E4: .4byte gUnknown_02024C6C +_0801C1E8: .4byte gUnknown_02024C68 +_0801C1EC: + ldr r0, [r2] + ldr r1, _0801C29C @ =0xfffeffff + ands r0, r1 + str r0, [r2] + movs r1, 0x80 + lsls r1, 10 + ands r0, r1 + cmp r0, 0 + bne _0801C20E + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0801C1C6 +_0801C20E: + ldr r0, [r2] + ldr r1, _0801C2A0 @ =0xfffdffff + ands r0, r1 + str r0, [r2] + movs r1, 0x80 + lsls r1, 11 + ands r0, r1 + cmp r0, 0 + bne _0801C22E + ldrb r0, [r3] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ands r0, r1 + cmp r0, 0 + bne _0801C1C6 +_0801C22E: + ldr r0, [r2] + ldr r1, _0801C2A4 @ =0xfffbffff + ands r0, r1 + str r0, [r2] + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + lsls r4, r5, 1 + cmp r0, 0 + bne _0801C27E + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0801C27E + ldr r0, _0801C2A8 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0801C27E + ldr r0, _0801C2AC @ =gBattleMoves + adds r1, r4, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x98 + beq _0801C290 +_0801C27E: + ldr r1, _0801C2AC @ =gBattleMoves + adds r0, r4, r5 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x11 + beq _0801C290 + cmp r0, 0x4E + bne _0801C2B0 +_0801C290: + movs r0, 0x7 + adds r1, r5, 0 + bl mcmd_jump_if_move_not_executed + movs r0, 0x1 + b _0801C2B2 + .align 2, 0 +_0801C29C: .4byte 0xfffeffff +_0801C2A0: .4byte 0xfffdffff +_0801C2A4: .4byte 0xfffbffff +_0801C2A8: .4byte word_2024DB8 +_0801C2AC: .4byte gBattleMoves +_0801C2B0: + movs r0, 0 +_0801C2B2: + add sp, 0x4 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_801C174 + + thumb_func_start atk01_accuracycheck +atk01_accuracycheck: @ 801C2BC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _0801C314 @ =gUnknown_02024C10 + ldr r5, [r0] + ldrb r6, [r5, 0x5] + ldrb r1, [r5, 0x6] + lsls r1, 8 + orrs r6, r1 + adds r1, r6, 0x2 + lsls r1, 16 + lsrs r1, 16 + adds r7, r0, 0 + cmp r1, 0x1 + bhi _0801C378 + ldr r2, _0801C318 @ =gUnknown_02024C98 + ldr r3, _0801C31C @ =gUnknown_02024C08 + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r1, [r0] + movs r0, 0x18 + ands r1, r0 + cmp r1, 0 + beq _0801C32C + ldr r0, _0801C320 @ =0x0000ffff + cmp r6, r0 + bne _0801C32C + ldr r1, _0801C324 @ =gUnknown_02024CA8 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + adds r0, r1 + ldr r1, _0801C328 @ =gUnknown_02024C07 + ldrb r0, [r0, 0x15] + ldrb r1, [r1] + cmp r0, r1 + bne _0801C32C + adds r0, r5, 0x7 + str r0, [r7] + b _0801C632 + .align 2, 0 +_0801C314: .4byte gUnknown_02024C10 +_0801C318: .4byte gUnknown_02024C98 +_0801C31C: .4byte gUnknown_02024C08 +_0801C320: .4byte 0x0000ffff +_0801C324: .4byte gUnknown_02024CA8 +_0801C328: .4byte gUnknown_02024C07 +_0801C32C: + ldrb r0, [r3] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ldr r1, _0801C358 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _0801C35C + ldr r2, [r7] + 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, [r7] + b _0801C632 + .align 2, 0 +_0801C358: .4byte 0x000400c0 +_0801C35C: + movs r0, 0 + bl sub_801C108 + lsls r0, 24 + cmp r0, 0 + beq _0801C36A + b _0801C632 +_0801C36A: + ldr r1, _0801C374 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x7 + str r0, [r1] + b _0801C632 + .align 2, 0 +_0801C374: .4byte gUnknown_02024C10 +_0801C378: + cmp r6, 0 + bne _0801C380 + ldr r0, _0801C398 @ =gUnknown_02024BE6 + ldrh r6, [r0] +_0801C380: + ldr r0, _0801C39C @ =0x02000000 + ldr r1, _0801C3A0 @ =0x0001601c + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0801C3A4 + movs r2, 0x3F + mov r10, r2 + mov r3, r10 + ands r3, r0 + mov r10, r3 + b _0801C3B2 + .align 2, 0 +_0801C398: .4byte gUnknown_02024BE6 +_0801C39C: .4byte 0x02000000 +_0801C3A0: .4byte 0x0001601c +_0801C3A4: + ldr r1, _0801C3F8 @ =gBattleMoves + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + mov r10, r0 +_0801C3B2: + adds r0, r6, 0 + bl sub_801C108 + lsls r0, 24 + cmp r0, 0 + beq _0801C3C0 + b _0801C632 +_0801C3C0: + adds r0, r6, 0 + bl sub_801C174 + lsls r0, 24 + cmp r0, 0 + beq _0801C3CE + b _0801C632 +_0801C3CE: + ldr r3, _0801C3FC @ =gBattleMons + ldr r0, _0801C400 @ =gUnknown_02024C08 + ldrb r0, [r0] + movs r2, 0x58 + adds r4, r0, 0 + muls r4, r2 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801C408 + ldr r0, _0801C404 @ =gUnknown_02024C07 + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + ldrb r5, [r0, 0x1E] + b _0801C41E + .align 2, 0 +_0801C3F8: .4byte gBattleMoves +_0801C3FC: .4byte gBattleMons +_0801C400: .4byte gUnknown_02024C08 +_0801C404: .4byte gUnknown_02024C07 +_0801C408: + ldr r0, _0801C56C @ =gUnknown_02024C07 + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + ldrb r0, [r0, 0x1E] + adds r0, 0x6 + adds r1, r4, r3 + ldrb r1, [r1, 0x1F] + subs r0, r1 + lsls r0, 24 + lsrs r5, r0, 24 +_0801C41E: + lsls r0, r5, 24 + cmp r0, 0 + bge _0801C426 + movs r5, 0 +_0801C426: + lsls r0, r5, 24 + asrs r0, 24 + cmp r0, 0xC + ble _0801C430 + movs r5, 0xC +_0801C430: + ldr r1, _0801C570 @ =gBattleMoves + lsls r4, r6, 1 + adds r0, r4, r6 + lsls r0, 2 + adds r7, r0, r1 + ldrb r0, [r7, 0x3] + mov r8, r0 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + str r4, [sp, 0x4] + cmp r0, 0 + bne _0801C482 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0801C482 + ldr r0, _0801C574 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _0801C482 + ldrb r0, [r7] + cmp r0, 0x98 + bne _0801C482 + movs r1, 0x32 + mov r8, r1 +_0801C482: + ldr r1, _0801C578 @ =gAccuracyStageRatios + lsls r0, r5, 24 + asrs r0, 22 + adds r0, r1 + ldrb r1, [r0] + mov r4, r8 + muls r4, r1 + ldrb r1, [r0, 0x1] + adds r0, r4, 0 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 + ldr r7, _0801C57C @ =gBattleMons + ldr r0, _0801C56C @ =gUnknown_02024C07 + ldrb r0, [r0] + movs r5, 0x58 + muls r0, r5 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0xE + bne _0801C4C0 + lsls r0, r4, 6 + adds r0, r4 + lsls r0, 1 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801C4C0: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0801C518 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0801C518 + ldr r0, _0801C580 @ =gUnknown_02024C08 + ldrb r0, [r0] + muls r0, r5 + adds r0, r7 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x8 + bne _0801C518 + ldr r0, _0801C574 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _0801C518 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801C518: + ldr r2, _0801C57C @ =gBattleMons + ldr r0, _0801C56C @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r9, r2 + cmp r0, 0x37 + bne _0801C544 + mov r2, r10 + cmp r2, 0x8 + bhi _0801C544 + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801C544: + ldr r3, _0801C580 @ =gUnknown_02024C08 + mov r8, r3 + ldrb r2, [r3] + movs r7, 0x58 + adds r0, r2, 0 + muls r0, r7 + mov r3, r9 + adds r1, r0, r3 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0801C588 + ldr r1, _0801C584 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x7] + ldrb r2, [r0, 0x1A] + b _0801C5A4 + .align 2, 0 +_0801C56C: .4byte gUnknown_02024C07 +_0801C570: .4byte gBattleMoves +_0801C574: .4byte word_2024DB8 +_0801C578: .4byte gAccuracyStageRatios +_0801C57C: .4byte gBattleMons +_0801C580: .4byte gUnknown_02024C08 +_0801C584: .4byte gEnigmaBerries +_0801C588: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r5, r0, 24 + mov r1, r8 + ldrb r0, [r1] + muls r0, r7 + add r0, r9 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r2, r0, 24 +_0801C5A4: + ldr r0, _0801C608 @ =gUnknown_02024C0B + ldr r1, _0801C60C @ =gUnknown_02024C08 + ldrb r1, [r1] + strb r1, [r0] + cmp r5, 0x16 + bne _0801C5C0 + movs r0, 0x64 + subs r0, r2 + muls r0, r4 + movs r1, 0x64 + bl __divsi3 + lsls r0, 16 + lsrs r4, r0, 16 +_0801C5C0: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + ble _0801C62A + ldr r2, _0801C610 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r0, _0801C614 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0801C620 + ldr r1, _0801C618 @ =gBattleMoves + ldr r2, [sp, 0x4] + adds r0, r2, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x6] + cmp r0, 0x8 + beq _0801C602 + cmp r0, 0x20 + bne _0801C620 +_0801C602: + ldr r1, _0801C61C @ =gUnknown_02024D1E + movs r0, 0x2 + b _0801C624 + .align 2, 0 +_0801C608: .4byte gUnknown_02024C0B +_0801C60C: .4byte gUnknown_02024C08 +_0801C610: .4byte gUnknown_02024C68 +_0801C614: .4byte gUnknown_020239F8 +_0801C618: .4byte gBattleMoves +_0801C61C: .4byte gUnknown_02024D1E +_0801C620: + ldr r1, _0801C644 @ =gUnknown_02024D1E + movs r0, 0 +_0801C624: + strb r0, [r1, 0x6] + bl b_wonderguard_and_levitate +_0801C62A: + movs r0, 0x7 + adds r1, r6, 0 + bl mcmd_jump_if_move_not_executed +_0801C632: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801C644: .4byte gUnknown_02024D1E + thumb_func_end atk01_accuracycheck + + thumb_func_start atk02_attackstring +atk02_attackstring: @ 801C648 + push {r4,r5,lr} + ldr r0, _0801C688 @ =gUnknown_02024A64 + ldr r5, [r0] + cmp r5, 0 + bne _0801C680 + ldr r4, _0801C68C @ =gUnknown_02024C6C + ldr r0, [r4] + movs r1, 0xC0 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + bne _0801C674 + ldr r0, _0801C690 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x4 + bl b_std_message + ldr r0, [r4] + movs r1, 0x80 + lsls r1, 3 + orrs r0, r1 + str r0, [r4] +_0801C674: + ldr r0, _0801C694 @ =gUnknown_02024C10 + ldr r1, [r0] + adds r1, 0x1 + str r1, [r0] + ldr r0, _0801C698 @ =gUnknown_02024D1E + strb r5, [r0, 0x7] +_0801C680: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801C688: .4byte gUnknown_02024A64 +_0801C68C: .4byte gUnknown_02024C6C +_0801C690: .4byte gUnknown_02024C07 +_0801C694: .4byte gUnknown_02024C10 +_0801C698: .4byte gUnknown_02024D1E + thumb_func_end atk02_attackstring + + thumb_func_start atk03_ppreduce +atk03_ppreduce: @ 801C69C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r6, 0x1 + ldr r0, _0801C6EC @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _0801C6B4 + b _0801C84E +_0801C6B4: + ldr r1, _0801C6F0 @ =gUnknown_02024D68 + ldr r2, _0801C6F4 @ =gUnknown_02024C07 + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 26 + lsrs r4, r0, 31 + mov r9, r2 + cmp r4, 0 + bne _0801C756 + ldr r2, _0801C6F8 @ =gBattleMoves + ldr r0, _0801C6FC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x6] + cmp r0, 0x20 + beq _0801C706 + cmp r0, 0x20 + bgt _0801C700 + cmp r0, 0x8 + beq _0801C71C + b _0801C736 + .align 2, 0 +_0801C6EC: .4byte gUnknown_02024A64 +_0801C6F0: .4byte gUnknown_02024D68 +_0801C6F4: .4byte gUnknown_02024C07 +_0801C6F8: .4byte gBattleMoves +_0801C6FC: .4byte gUnknown_02024BE6 +_0801C700: + cmp r0, 0x40 + beq _0801C71C + b _0801C736 +_0801C706: + str r4, [sp] + movs r0, 0x12 + adds r1, r3, 0 + movs r2, 0x2E + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0, 0x1 + b _0801C756 +_0801C71C: + mov r0, r9 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x10 + movs r2, 0x2E + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + adds r6, r0 + b _0801C756 +_0801C736: + ldr r1, _0801C7B8 @ =gUnknown_02024C08 + mov r2, r9 + ldrb r0, [r2] + ldrb r7, [r1] + cmp r0, r7 + beq _0801C756 + ldr r2, _0801C7BC @ =gBattleMons + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2E + bne _0801C756 + adds r6, 0x1 +_0801C756: + ldr r0, _0801C7C0 @ =gUnknown_02024C6C + ldr r4, [r0] + movs r0, 0xA0 + lsls r0, 4 + ands r4, r0 + cmp r4, 0 + bne _0801C83C + ldr r2, _0801C7BC @ =gBattleMons + ldr r3, _0801C7C4 @ =gUnknown_02024BE4 + ldr r1, _0801C7C8 @ =gUnknown_02024C07 + ldrb r5, [r1] + movs r0, 0x58 + mov r8, r0 + mov r0, r8 + muls r0, r5 + ldrb r7, [r3] + adds r0, r7 + movs r7, 0x24 + adds r7, r2 + mov r12, r7 + add r0, r12 + ldrb r0, [r0] + mov r9, r1 + mov r10, r2 + adds r7, r3, 0 + cmp r0, 0 + beq _0801C83C + ldr r0, _0801C7CC @ =gUnknown_02024D28 + lsls r1, r5, 4 + adds r1, r0 + ldrb r0, [r1, 0x2] + movs r2, 0x8 + orrs r0, r2 + strb r0, [r1, 0x2] + mov r1, r9 + ldrb r0, [r1] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldrb r1, [r7] + adds r0, r1 + mov r1, r12 + adds r2, r0, r1 + ldrb r0, [r2] + cmp r0, r6 + ble _0801C7D0 + subs r0, r6 + strb r0, [r2] + b _0801C7D2 + .align 2, 0 +_0801C7B8: .4byte gUnknown_02024C08 +_0801C7BC: .4byte gBattleMons +_0801C7C0: .4byte gUnknown_02024C6C +_0801C7C4: .4byte gUnknown_02024BE4 +_0801C7C8: .4byte gUnknown_02024C07 +_0801C7CC: .4byte gUnknown_02024D28 +_0801C7D0: + strb r4, [r2] +_0801C7D2: + mov r2, r9 + ldrb r3, [r2] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + mov r1, r10 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _0801C83C + ldr r1, _0801C860 @ =gUnknown_02024CA8 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _0801C864 @ =gBitTable + ldrb r0, [r7] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0801C83C + ldr r0, _0801C868 @ =gUnknown_02024A60 + strb r3, [r0] + ldrb r1, [r7] + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + mov r2, r9 + ldrb r0, [r2] + muls r0, r4 + mov r2, r10 + adds r2, 0x24 + adds r0, r2 + ldrb r7, [r7] + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + mov r7, r9 + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution +_0801C83C: + ldr r2, _0801C86C @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0801C870 @ =0xfffff7ff + ands r0, r1 + str r0, [r2] + ldr r1, _0801C874 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801C84E: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801C860: .4byte gUnknown_02024CA8 +_0801C864: .4byte gBitTable +_0801C868: .4byte gUnknown_02024A60 +_0801C86C: .4byte gUnknown_02024C6C +_0801C870: .4byte 0xfffff7ff +_0801C874: .4byte gUnknown_02024C10 + thumb_func_end atk03_ppreduce + + thumb_func_start atk04_critcalc +atk04_critcalc: @ 801C878 + push {r4-r7,lr} + ldr r1, _0801C89C @ =gBattleMons + ldr r0, _0801C8A0 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x2E] + cmp r0, 0xAF + bne _0801C8A8 + ldr r1, _0801C8A4 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r6, [r0, 0x7] + b _0801C8B0 + .align 2, 0 +_0801C89C: .4byte gBattleMons +_0801C8A0: .4byte gUnknown_02024C07 +_0801C8A4: .4byte gEnigmaBerries +_0801C8A8: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r6, r0, 24 +_0801C8B0: + ldr r1, _0801C93C @ =gUnknown_02024C0B + ldr r3, _0801C940 @ =gUnknown_02024C07 + ldrb r0, [r3] + strb r0, [r1] + ldr r4, _0801C944 @ =gBattleMons + ldrb r1, [r3] + movs r0, 0x58 + adds r7, r1, 0 + muls r7, r0 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r7, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + negs r0, r0 + asrs r5, r0, 31 + movs r0, 0x2 + ands r5, r0 + ldr r2, _0801C948 @ =gBattleMoves + ldr r0, _0801C94C @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + mov r12, r3 + cmp r1, 0x2B + bne _0801C8F0 + adds r5, 0x1 +_0801C8F0: + adds r0, r5, 0 + cmp r1, 0x4B + bne _0801C8F8 + adds r0, 0x1 +_0801C8F8: + cmp r1, 0xC8 + bne _0801C8FE + adds r0, 0x1 +_0801C8FE: + adds r2, r0, 0 + cmp r1, 0xD1 + bne _0801C906 + adds r2, 0x1 +_0801C906: + movs r1, 0 + cmp r6, 0x3F + bne _0801C916 + adds r0, r7, r4 + ldrh r0, [r0] + cmp r0, 0x71 + bne _0801C916 + movs r1, 0x1 +_0801C916: + lsls r5, r1, 1 + movs r3, 0 + cmp r6, 0x42 + bne _0801C930 + mov r0, r12 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r4 + ldrh r0, [r0] + cmp r0, 0x53 + bne _0801C930 + movs r3, 0x1 +_0801C930: + lsls r1, r3, 1 + cmp r6, 0x29 + bne _0801C950 + adds r0, r5, 0x1 + adds r0, r2, r0 + b _0801C952 + .align 2, 0 +_0801C93C: .4byte gUnknown_02024C0B +_0801C940: .4byte gUnknown_02024C07 +_0801C944: .4byte gBattleMons +_0801C948: .4byte gBattleMoves +_0801C94C: .4byte gUnknown_02024BE6 +_0801C950: + adds r0, r2, r5 +_0801C952: + adds r0, r1 + lsls r0, 16 + lsrs r0, 16 + adds r5, r0, 0 + cmp r5, 0x4 + bls _0801C960 + movs r5, 0x4 +_0801C960: + ldr r0, _0801C9BC @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + ldrb r4, [r0] + cmp r4, 0x4 + beq _0801C9D0 + cmp r4, 0x4B + beq _0801C9D0 + ldr r1, _0801C9C0 @ =gUnknown_02024C98 + mov r2, r12 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 8 + ands r0, r1 + cmp r0, 0 + bne _0801C9D0 + ldr r0, _0801C9C4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x84 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + bne _0801C9D0 + bl Random + ldr r2, _0801C9C8 @ =gCriticalHitChance + lsls r1, r5, 1 + adds r1, r2 + lsls r0, 16 + lsrs r0, 16 + ldrh r1, [r1] + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _0801C9D0 + ldr r1, _0801C9CC @ =gCritMultiplier + movs r0, 0x2 + b _0801C9D4 + .align 2, 0 +_0801C9BC: .4byte gUnknown_02024C08 +_0801C9C0: .4byte gUnknown_02024C98 +_0801C9C4: .4byte gUnknown_020239F8 +_0801C9C8: .4byte gCriticalHitChance +_0801C9CC: .4byte gCritMultiplier +_0801C9D0: + ldr r1, _0801C9E4 @ =gCritMultiplier + movs r0, 0x1 +_0801C9D4: + strb r0, [r1] + ldr r1, _0801C9E8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801C9E4: .4byte gCritMultiplier +_0801C9E8: .4byte gUnknown_02024C10 + thumb_func_end atk04_critcalc + + thumb_func_start atk05_damagecalc1 +atk05_damagecalc1: @ 801C9EC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + ldr r4, _0801CABC @ =gUnknown_02024C7A + ldr r6, _0801CAC0 @ =gUnknown_02024C08 + ldrb r0, [r6] + bl battle_get_per_side_status + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldr r0, _0801CAC4 @ =gUnknown_02024C07 + mov r8, r0 + ldrb r0, [r0] + movs r4, 0x58 + muls r0, r4 + ldr r2, _0801CAC8 @ =gBattleMons + adds r0, r2 + ldrb r1, [r6] + muls r1, r4 + adds r1, r2 + ldr r2, _0801CACC @ =gUnknown_02024BE6 + mov r9, r2 + ldrh r2, [r2] + ldr r4, _0801CAD0 @ =gUnknown_02024DEC + ldrh r4, [r4] + str r4, [sp] + ldr r5, _0801CAD4 @ =0x02000000 + ldr r7, _0801CAD8 @ =0x0001601c + adds r4, r5, r7 + ldrb r4, [r4] + str r4, [sp, 0x4] + mov r7, r8 + ldrb r4, [r7] + str r4, [sp, 0x8] + ldrb r4, [r6] + str r4, [sp, 0xC] + bl CalculateBaseDamage + ldr r4, _0801CADC @ =gUnknown_02024BEC + ldr r1, _0801CAE0 @ =gCritMultiplier + ldrb r1, [r1] + muls r1, r0 + ldr r0, _0801CAE4 @ =0x0001601f + adds r5, r0 + ldrb r0, [r5] + adds r3, r1, 0 + muls r3, r0 + str r3, [r4] + ldr r1, _0801CAE8 @ =gUnknown_02024C98 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _0801CA82 + ldr r2, _0801CAEC @ =gBattleMoves + mov r7, r9 + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0xD + bne _0801CA82 + lsls r0, r3, 1 + str r0, [r4] +_0801CA82: + ldr r1, _0801CAF0 @ =gUnknown_02024D28 + ldr r0, _0801CAC4 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _0801CAA4 + ldr r4, _0801CADC @ =gUnknown_02024BEC + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0801CAA4: + ldr r1, _0801CAF4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801CABC: .4byte gUnknown_02024C7A +_0801CAC0: .4byte gUnknown_02024C08 +_0801CAC4: .4byte gUnknown_02024C07 +_0801CAC8: .4byte gBattleMons +_0801CACC: .4byte gUnknown_02024BE6 +_0801CAD0: .4byte gUnknown_02024DEC +_0801CAD4: .4byte 0x02000000 +_0801CAD8: .4byte 0x0001601c +_0801CADC: .4byte gUnknown_02024BEC +_0801CAE0: .4byte gCritMultiplier +_0801CAE4: .4byte 0x0001601f +_0801CAE8: .4byte gUnknown_02024C98 +_0801CAEC: .4byte gBattleMoves +_0801CAF0: .4byte gUnknown_02024D28 +_0801CAF4: .4byte gUnknown_02024C10 + thumb_func_end atk05_damagecalc1 + + thumb_func_start sub_801CAF8 +sub_801CAF8: @ 801CAF8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x10 + adds r5, r1, 0 + lsls r0, 24 + lsrs r7, r0, 24 + lsls r5, 24 + lsrs r5, 24 + ldr r4, _0801CBBC @ =gUnknown_02024C7A + adds r0, r5, 0 + bl battle_get_per_side_status + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + movs r1, 0x58 + adds r0, r7, 0 + muls r0, r1 + ldr r2, _0801CBC0 @ =gBattleMons + adds r0, r2 + muls r1, r5 + adds r1, r2 + ldr r2, _0801CBC4 @ =gUnknown_02024BE6 + mov r9, r2 + ldrh r2, [r2] + ldr r4, _0801CBC8 @ =gUnknown_02024DEC + mov r8, r4 + ldrh r4, [r4] + str r4, [sp] + ldr r6, _0801CBCC @ =0x02000000 + ldr r4, _0801CBD0 @ =0x0001601c + ldrb r4, [r4, r6] + str r4, [sp, 0x4] + str r7, [sp, 0x8] + str r5, [sp, 0xC] + bl CalculateBaseDamage + ldr r4, _0801CBD4 @ =gUnknown_02024BEC + movs r1, 0 + mov r2, r8 + strh r1, [r2] + ldr r1, _0801CBD8 @ =gCritMultiplier + ldrb r1, [r1] + muls r1, r0 + ldr r0, _0801CBDC @ =0x0001601f + adds r6, r0 + ldrb r0, [r6] + adds r3, r1, 0 + muls r3, r0 + str r3, [r4] + ldr r1, _0801CBE0 @ =gUnknown_02024C98 + lsls r0, r7, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 2 + ands r0, r1 + cmp r0, 0 + beq _0801CB8E + ldr r2, _0801CBE4 @ =gBattleMoves + mov r6, r9 + ldrh r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + cmp r0, 0xD + bne _0801CB8E + lsls r0, r3, 1 + str r0, [r4] +_0801CB8E: + ldr r0, _0801CBE8 @ =gUnknown_02024D28 + lsls r1, r7, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 28 + cmp r0, 0 + bge _0801CBAC + ldr r4, _0801CBD4 @ =gUnknown_02024BEC + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0801CBAC: + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801CBBC: .4byte gUnknown_02024C7A +_0801CBC0: .4byte gBattleMons +_0801CBC4: .4byte gUnknown_02024BE6 +_0801CBC8: .4byte gUnknown_02024DEC +_0801CBCC: .4byte 0x02000000 +_0801CBD0: .4byte 0x0001601c +_0801CBD4: .4byte gUnknown_02024BEC +_0801CBD8: .4byte gCritMultiplier +_0801CBDC: .4byte 0x0001601f +_0801CBE0: .4byte gUnknown_02024C98 +_0801CBE4: .4byte gBattleMoves +_0801CBE8: .4byte gUnknown_02024D28 + thumb_func_end sub_801CAF8 + + thumb_func_start battle_attack_damage_modulate_by_effectivity +battle_attack_damage_modulate_by_effectivity: @ 801CBEC + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r5, _0801CC1C @ =gUnknown_02024BEC + ldr r0, [r5] + muls r0, r4 + movs r1, 0xA + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _0801CC0C + cmp r4, 0 + beq _0801CC0C + movs r0, 0x1 + str r0, [r5] +_0801CC0C: + cmp r4, 0x5 + beq _0801CC3C + cmp r4, 0x5 + bgt _0801CC20 + cmp r4, 0 + beq _0801CC26 + b _0801CCBE + .align 2, 0 +_0801CC1C: .4byte gUnknown_02024BEC +_0801CC20: + cmp r4, 0x14 + beq _0801CC7C + b _0801CCBE +_0801CC26: + ldr r2, _0801CC38 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + movs r1, 0xFB + ands r0, r1 + movs r1, 0xFD + ands r0, r1 + b _0801CCBC + .align 2, 0 +_0801CC38: .4byte gUnknown_02024C68 +_0801CC3C: + ldr r2, _0801CC6C @ =gBattleMoves + ldr r0, _0801CC70 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801CCBE + ldr r2, _0801CC74 @ =gUnknown_02024C68 + ldrb r1, [r2] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801CCBE + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801CC78 + movs r0, 0xFD + ands r0, r1 + b _0801CCBC + .align 2, 0 +_0801CC6C: .4byte gBattleMoves +_0801CC70: .4byte gUnknown_02024BE6 +_0801CC74: .4byte gUnknown_02024C68 +_0801CC78: + movs r0, 0x4 + b _0801CCBA +_0801CC7C: + ldr r2, _0801CCAC @ =gBattleMoves + ldr r0, _0801CCB0 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801CCBE + ldr r2, _0801CCB4 @ =gUnknown_02024C68 + ldrb r1, [r2] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801CCBE + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801CCB8 + movs r0, 0xFB + ands r0, r1 + b _0801CCBC + .align 2, 0 +_0801CCAC: .4byte gBattleMoves +_0801CCB0: .4byte gUnknown_02024BE6 +_0801CCB4: .4byte gUnknown_02024C68 +_0801CCB8: + movs r0, 0x2 +_0801CCBA: + orrs r0, r1 +_0801CCBC: + strb r0, [r2] +_0801CCBE: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end battle_attack_damage_modulate_by_effectivity + + thumb_func_start atk06_damagecalc2 +atk06_damagecalc2: @ 801CCC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r3, 0 + ldr r1, _0801CCF0 @ =gUnknown_02024BE6 + ldrh r0, [r1] + cmp r0, 0xA5 + bne _0801CCD8 + b _0801CEF4 +_0801CCD8: + ldr r0, _0801CCF4 @ =0x02000000 + ldr r2, _0801CCF8 @ =0x0001601c + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0801CCFC + movs r1, 0x3F + mov r8, r1 + mov r2, r8 + ands r2, r0 + mov r8, r2 + b _0801CD0C + .align 2, 0 +_0801CCF0: .4byte gUnknown_02024BE6 +_0801CCF4: .4byte 0x02000000 +_0801CCF8: .4byte 0x0001601c +_0801CCFC: + ldr r2, _0801CD94 @ =gBattleMoves + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r8, r0 +_0801CD0C: + ldr r2, _0801CD98 @ =gBattleMons + ldr r0, _0801CD9C @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + adds r5, r2, 0 + cmp r0, r8 + beq _0801CD2E + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r8 + bne _0801CD44 +_0801CD2E: + ldr r4, _0801CDA0 @ =gUnknown_02024BEC + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + str r0, [r4] + movs r1, 0xA + str r3, [sp, 0x4] + bl __divsi3 + str r0, [r4] + ldr r3, [sp, 0x4] +_0801CD44: + ldr r2, _0801CDA4 @ =gUnknown_02024C08 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + adds r4, r2, 0 + cmp r0, 0x1A + bne _0801CDBC + mov r1, r8 + cmp r1, 0x4 + bne _0801CDBC + ldr r3, _0801CDA8 @ =byte_2024C06 + strb r0, [r3] + ldr r2, _0801CDAC @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x9 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801CDB0 @ =gUnknown_02024C3C + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801CDB4 @ =gUnknown_02024C44 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r0, _0801CDB8 @ =gUnknown_02024D1E + mov r2, r8 + strb r2, [r0, 0x6] + ldrb r0, [r4] + ldrb r1, [r3] + bl sub_81074C4 + b _0801CE58 + .align 2, 0 +_0801CD94: .4byte gBattleMoves +_0801CD98: .4byte gBattleMons +_0801CD9C: .4byte gUnknown_02024C07 +_0801CDA0: .4byte gUnknown_02024BEC +_0801CDA4: .4byte gUnknown_02024C08 +_0801CDA8: .4byte byte_2024C06 +_0801CDAC: .4byte gUnknown_02024C68 +_0801CDB0: .4byte gUnknown_02024C3C +_0801CDB4: .4byte gUnknown_02024C44 +_0801CDB8: .4byte gUnknown_02024D1E +_0801CDBC: + ldr r1, _0801CDC8 @ =gTypeEffectiveness + adds r0, r3, r1 + ldrb r0, [r0] + adds r2, r1, 0 + b _0801CE38 + .align 2, 0 +_0801CDC8: .4byte gTypeEffectiveness +_0801CDCC: + adds r3, 0x3 + b _0801CE34 +_0801CDD0: + ldr r5, _0801CF08 @ =gTypeEffectiveness + adds r0, r3, r5 + ldrb r0, [r0] + cmp r0, r8 + bne _0801CE2C + adds r1, r3, 0x1 + adds r1, r5 + ldr r2, _0801CF0C @ =gBattleMons + ldr r7, _0801CF10 @ =gUnknown_02024C08 + ldrb r0, [r7] + movs r6, 0x58 + muls r0, r6 + adds r0, r2 + adds r0, 0x21 + ldrb r4, [r1] + ldrb r0, [r0] + cmp r4, r0 + bne _0801CE06 + adds r0, r3, 0x2 + adds r0, r5 + ldrb r0, [r0] + str r2, [sp] + str r3, [sp, 0x4] + bl battle_attack_damage_modulate_by_effectivity + ldr r3, [sp, 0x4] + ldr r2, [sp] +_0801CE06: + ldrb r0, [r7] + muls r0, r6 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r1, [r1] + cmp r4, r1 + bne _0801CE2C + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r4 + beq _0801CE2C + adds r0, r3, 0x2 + adds r0, r5 + ldrb r0, [r0] + str r3, [sp, 0x4] + bl battle_attack_damage_modulate_by_effectivity + ldr r3, [sp, 0x4] +_0801CE2C: + adds r3, 0x3 + ldr r5, _0801CF0C @ =gBattleMons + ldr r4, _0801CF10 @ =gUnknown_02024C08 + ldr r2, _0801CF08 @ =gTypeEffectiveness +_0801CE34: + adds r0, r3, r2 + ldrb r0, [r0] +_0801CE38: + cmp r0, 0xFF + beq _0801CE58 + cmp r0, 0xFE + bne _0801CDD0 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r1, r5, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801CDCC +_0801CE58: + ldr r2, _0801CF0C @ =gBattleMons + ldr r5, _0801CF10 @ =gUnknown_02024C08 + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r6, [r0] + cmp r6, 0x19 + bne _0801CED6 + ldr r0, _0801CF14 @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r7, _0801CF18 @ =gUnknown_02024BE6 + ldrh r1, [r7] + bl move_weather_interaction + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0801CED6 + ldr r1, _0801CF1C @ =gUnknown_02024C68 + mov r8, r1 + ldrb r4, [r1] + ands r0, r4 + cmp r0, 0 + beq _0801CE94 + movs r0, 0x6 + ands r0, r4 + cmp r0, 0x6 + bne _0801CED6 +_0801CE94: + ldr r2, _0801CF20 @ =gBattleMoves + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801CED6 + ldr r3, _0801CF24 @ =byte_2024C06 + strb r6, [r3] + movs r0, 0x1 + orrs r0, r4 + mov r2, r8 + strb r0, [r2] + ldr r1, _0801CF28 @ =gUnknown_02024C3C + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + movs r2, 0 + strh r2, [r0] + ldr r1, _0801CF2C @ =gUnknown_02024C44 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + ldr r1, _0801CF30 @ =gUnknown_02024D1E + movs r0, 0x3 + strb r0, [r1, 0x6] + ldrb r0, [r5] + ldrb r1, [r3] + bl sub_81074C4 +_0801CED6: + ldr r0, _0801CF1C @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0801CEF4 + ldr r2, _0801CF34 @ =gUnknown_02024D28 + ldr r0, _0801CF14 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 4 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x1] +_0801CEF4: + ldr r1, _0801CF38 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801CF08: .4byte gTypeEffectiveness +_0801CF0C: .4byte gBattleMons +_0801CF10: .4byte gUnknown_02024C08 +_0801CF14: .4byte gUnknown_02024C07 +_0801CF18: .4byte gUnknown_02024BE6 +_0801CF1C: .4byte gUnknown_02024C68 +_0801CF20: .4byte gBattleMoves +_0801CF24: .4byte byte_2024C06 +_0801CF28: .4byte gUnknown_02024C3C +_0801CF2C: .4byte gUnknown_02024C44 +_0801CF30: .4byte gUnknown_02024D1E +_0801CF34: .4byte gUnknown_02024D28 +_0801CF38: .4byte gUnknown_02024C10 + thumb_func_end atk06_damagecalc2 + + thumb_func_start b_wonderguard_and_levitate +b_wonderguard_and_levitate: @ 801CF3C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + movs r5, 0 + ldr r0, _0801CF80 @ =gUnknown_02024BE6 + ldrh r1, [r0] + mov r9, r0 + cmp r1, 0xA5 + bne _0801CF54 + b _0801D1A4 +_0801CF54: + ldr r2, _0801CF84 @ =gBattleMoves + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _0801CF66 + b _0801D1A4 +_0801CF66: + ldr r0, _0801CF88 @ =0x02000000 + ldr r2, _0801CF8C @ =0x0001601c + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0801CF90 + movs r1, 0x3F + mov r12, r1 + mov r2, r12 + ands r2, r0 + mov r12, r2 + b _0801CF94 + .align 2, 0 +_0801CF80: .4byte gUnknown_02024BE6 +_0801CF84: .4byte gBattleMoves +_0801CF88: .4byte 0x02000000 +_0801CF8C: .4byte 0x0001601c +_0801CF90: + ldrb r1, [r1, 0x2] + mov r12, r1 +_0801CF94: + ldr r2, _0801CFC8 @ =gBattleMons + ldr r3, _0801CFCC @ =gUnknown_02024C08 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r1, [r0] + adds r7, r2, 0 + mov r8, r3 + cmp r1, 0x1A + bne _0801CFD8 + mov r0, r12 + cmp r0, 0x4 + bne _0801CFD8 + ldr r0, _0801CFD0 @ =byte_2024C06 + strb r1, [r0] + ldr r0, _0801CFD4 @ =gUnknown_02024D1E + mov r1, r12 + strb r1, [r0, 0x6] + ldrb r0, [r3] + movs r1, 0x1A + bl sub_81074C4 + b _0801D1A4 + .align 2, 0 +_0801CFC8: .4byte gBattleMons +_0801CFCC: .4byte gUnknown_02024C08 +_0801CFD0: .4byte byte_2024C06 +_0801CFD4: .4byte gUnknown_02024D1E +_0801CFD8: + ldr r1, _0801CFE4 @ =gTypeEffectiveness + adds r0, r5, r1 + ldrb r0, [r0] + adds r4, r1, 0 + b _0801D12A + .align 2, 0 +_0801CFE4: .4byte gTypeEffectiveness +_0801CFE8: + adds r0, r5, r4 + ldrb r0, [r0] + cmp r0, r12 + beq _0801CFF2 + b _0801D124 +_0801CFF2: + adds r2, r5, 0x1 + adds r3, r2, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r3] + adds r3, r2, 0 + ldrb r0, [r0] + cmp r1, r0 + bne _0801D032 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _0801D032 + ldr r2, _0801D1B0 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801D1B4 @ =gUnknown_02024D28 + ldr r0, _0801D1B8 @ =gUnknown_02024C07 + ldrb r2, [r0] + lsls r2, 4 + adds r2, r1 + ldrb r0, [r2, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x1] +_0801D032: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0801D078 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0801D078 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + bne _0801D078 + ldr r2, _0801D1B0 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801D1B4 @ =gUnknown_02024D28 + ldr r0, _0801D1B8 @ =gUnknown_02024C07 + ldrb r2, [r0] + lsls r2, 4 + adds r2, r1 + ldrb r0, [r2, 0x1] + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x1] +_0801D078: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _0801D09C + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0801D09C + movs r0, 0x1 + orrs r6, r0 +_0801D09C: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0801D0CA + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0801D0CA + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0801D0CA + movs r0, 0x1 + orrs r6, r0 +_0801D0CA: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x21 + ldrb r1, [r2] + ldrb r0, [r0] + cmp r1, r0 + bne _0801D0F2 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x5 + bne _0801D0F2 + movs r0, 0x2 + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_0801D0F2: + adds r2, r3, r4 + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0801D124 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0801D124 + adds r0, r5, 0x2 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x5 + bne _0801D124 + movs r0, 0x2 + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_0801D124: + adds r5, 0x3 + adds r0, r5, r4 + ldrb r0, [r0] +_0801D12A: + cmp r0, 0xFF + beq _0801D14E + cmp r0, 0xFE + beq _0801D134 + b _0801CFE8 +_0801D134: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r1, r7, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801D124 +_0801D14E: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7 + adds r0, 0x20 + ldrb r4, [r0] + cmp r4, 0x19 + bne _0801D1A4 + ldr r0, _0801D1B8 @ =gUnknown_02024C07 + ldrb r0, [r0] + mov r2, r9 + ldrh r1, [r2] + bl move_weather_interaction + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0801D1A4 + movs r0, 0x3 + ands r6, r0 + cmp r6, 0x1 + beq _0801D1A4 + ldr r2, _0801D1BC @ =gBattleMoves + mov r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _0801D1A4 + ldr r0, _0801D1C0 @ =byte_2024C06 + strb r4, [r0] + ldr r1, _0801D1C4 @ =gUnknown_02024D1E + movs r0, 0x3 + strb r0, [r1, 0x6] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x19 + bl sub_81074C4 +_0801D1A4: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801D1B0: .4byte gUnknown_02024C68 +_0801D1B4: .4byte gUnknown_02024D28 +_0801D1B8: .4byte gUnknown_02024C07 +_0801D1BC: .4byte gBattleMoves +_0801D1C0: .4byte byte_2024C06 +_0801D1C4: .4byte gUnknown_02024D1E + thumb_func_end b_wonderguard_and_levitate + + thumb_func_start b_attack_effectivity_adapt +b_attack_effectivity_adapt: @ 801D1C8 + push {r4-r7,lr} + adds r6, r2, 0 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + lsrs r5, r1, 16 + ldr r7, _0801D1FC @ =gUnknown_02024BEC + ldr r0, [r7] + muls r0, r4 + movs r1, 0xA + bl __divsi3 + str r0, [r7] + cmp r0, 0 + bne _0801D1EE + cmp r4, 0 + beq _0801D1EE + movs r0, 0x1 + str r0, [r7] +_0801D1EE: + cmp r4, 0x5 + beq _0801D216 + cmp r4, 0x5 + bgt _0801D200 + cmp r4, 0 + beq _0801D206 + b _0801D27A + .align 2, 0 +_0801D1FC: .4byte gUnknown_02024BEC +_0801D200: + cmp r4, 0x14 + beq _0801D248 + b _0801D27A +_0801D206: + ldrb r0, [r6] + movs r1, 0x8 + orrs r0, r1 + movs r1, 0xFB + ands r0, r1 + movs r1, 0xFD + ands r0, r1 + b _0801D278 +_0801D216: + ldr r0, _0801D240 @ =gBattleMoves + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801D27A + ldrb r1, [r6] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801D27A + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801D244 + movs r0, 0xFD + ands r0, r1 + b _0801D278 + .align 2, 0 +_0801D240: .4byte gBattleMoves +_0801D244: + movs r0, 0x4 + b _0801D276 +_0801D248: + ldr r0, _0801D270 @ =gBattleMoves + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801D27A + ldrb r1, [r6] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801D27A + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801D274 + movs r0, 0xFB + ands r0, r1 + b _0801D278 + .align 2, 0 +_0801D270: .4byte gBattleMoves +_0801D274: + movs r0, 0x2 +_0801D276: + orrs r0, r1 +_0801D278: + strb r0, [r6] +_0801D27A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end b_attack_effectivity_adapt + + thumb_func_start move_effectiveness_something +move_effectiveness_something: @ 801D280 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + lsls r2, 24 + lsrs r2, 24 + mov r9, r2 + movs r7, 0 + mov r0, sp + strb r7, [r0] + mov r0, r10 + cmp r0, 0xA5 + bne _0801D2AE + movs r0, 0 + b _0801D43A +_0801D2AE: + ldr r1, _0801D31C @ =gBattleMoves + mov r3, r10 + lsls r2, r3, 1 + adds r0, r2, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x2] + str r0, [sp, 0x8] + ldr r1, _0801D320 @ =gBattleMons + movs r0, 0x58 + ldr r3, [sp, 0x4] + muls r0, r3 + adds r3, r0, r1 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r0, [r0] + str r2, [sp, 0xC] + adds r5, r1, 0 + ldr r1, [sp, 0x8] + cmp r0, r1 + beq _0801D2E2 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _0801D2F4 +_0801D2E2: + ldr r4, _0801D324 @ =gUnknown_02024BEC + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + str r0, [r4] + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_0801D2F4: + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + bne _0801D328 + ldr r3, [sp, 0x8] + cmp r3, 0x4 + bne _0801D328 + movs r1, 0x9 + mov r0, sp + ldrb r0, [r0] + orrs r0, r1 + mov r1, sp + strb r0, [r1] + b _0801D3DC + .align 2, 0 +_0801D31C: .4byte gBattleMoves +_0801D320: .4byte gBattleMons +_0801D324: .4byte gUnknown_02024BEC +_0801D328: + ldr r1, _0801D344 @ =gTypeEffectiveness + adds r0, r7, r1 + ldrb r0, [r0] + adds r2, r1, 0 + cmp r0, 0xFF + beq _0801D3DC + cmp r0, 0xFE + bne _0801D34C + movs r0, 0x58 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + b _0801D3CA + .align 2, 0 +_0801D344: .4byte gTypeEffectiveness +_0801D348: + adds r7, 0x3 + b _0801D3B6 +_0801D34C: + ldr r6, _0801D44C @ =gTypeEffectiveness + adds r0, r7, r6 + ldrb r0, [r0] + ldr r2, [sp, 0x8] + cmp r0, r2 + bne _0801D3B0 + adds r1, r7, 0x1 + adds r1, r6 + ldr r3, _0801D450 @ =gBattleMons + mov r8, r3 + movs r3, 0x58 + mov r0, r9 + muls r0, r3 + mov r2, r8 + adds r5, r0, r2 + adds r0, r5, 0 + adds r0, 0x21 + ldrb r4, [r1] + ldrb r0, [r0] + cmp r4, r0 + bne _0801D388 + adds r0, r7, 0x2 + adds r0, r6 + ldrb r0, [r0] + mov r1, r10 + mov r2, sp + str r3, [sp, 0x10] + bl b_attack_effectivity_adapt + ldr r3, [sp, 0x10] +_0801D388: + adds r0, r5, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r4, r0 + bne _0801D3B0 + ldr r0, _0801D454 @ =gUnknown_02024C08 + ldrb r0, [r0] + muls r0, r3 + add r0, r8 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r4 + beq _0801D3B0 + adds r0, r7, 0x2 + adds r0, r6 + ldrb r0, [r0] + mov r1, r10 + mov r2, sp + bl b_attack_effectivity_adapt +_0801D3B0: + adds r7, 0x3 + ldr r5, _0801D450 @ =gBattleMons + ldr r2, _0801D44C @ =gTypeEffectiveness +_0801D3B6: + adds r0, r7, r2 + ldrb r0, [r0] + cmp r0, 0xFF + beq _0801D3DC + cmp r0, 0xFE + bne _0801D34C + movs r0, 0x58 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 +_0801D3CA: + adds r1, r5, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0801D348 +_0801D3DC: + movs r0, 0x58 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x19 + bne _0801D436 + mov r0, sp + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0801D436 + ldr r0, [sp, 0x4] + mov r1, r10 + bl move_weather_interaction + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _0801D436 + mov r0, sp + ldrb r3, [r0] + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0801D41E + movs r0, 0x6 + ands r0, r3 + cmp r0, 0x6 + bne _0801D436 +_0801D41E: + ldr r0, _0801D458 @ =gBattleMoves + ldr r1, [sp, 0xC] + add r1, r10 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801D436 + mov r0, sp + movs r1, 0x1 + orrs r1, r3 + strb r1, [r0] +_0801D436: + mov r0, sp + ldrb r0, [r0] +_0801D43A: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801D44C: .4byte gTypeEffectiveness +_0801D450: .4byte gBattleMons +_0801D454: .4byte gUnknown_02024C08 +_0801D458: .4byte gBattleMoves + thumb_func_end move_effectiveness_something + + thumb_func_start ai_rate_move +ai_rate_move: @ 801D45C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 16 + lsrs r6, r0, 16 + lsls r1, 16 + lsrs r1, 16 + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x4] + movs r7, 0 + mov r0, sp + strb r7, [r0] + ldr r2, _0801D498 @ =gBaseStats + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + str r1, [sp, 0x8] + ldrb r0, [r0, 0x7] + mov r8, r0 + cmp r6, 0xA5 + bne _0801D49C + movs r0, 0 + b _0801D554 + .align 2, 0 +_0801D498: .4byte gBaseStats +_0801D49C: + ldr r2, _0801D4C0 @ =gBattleMoves + lsls r1, r6, 1 + adds r0, r1, r6 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r9, r0 + str r1, [sp, 0xC] + ldr r3, [sp, 0x4] + cmp r3, 0x1A + bne _0801D4C4 + cmp r0, 0x4 + bne _0801D4C4 + movs r1, 0x9 + mov r0, sp + strb r1, [r0] + b _0801D51E + .align 2, 0 +_0801D4C0: .4byte gBattleMoves +_0801D4C4: + ldr r0, _0801D564 @ =gTypeEffectiveness + mov r10, r0 + adds r1, r7, r0 + ldrb r0, [r1] + cmp r0, 0xFF + beq _0801D51E + adds r4, r1, 0 +_0801D4D2: + ldrb r0, [r4] + cmp r0, 0xFE + beq _0801D510 + cmp r0, r9 + bne _0801D510 + ldrb r5, [r4, 0x1] + ldr r1, [sp, 0x8] + cmp r5, r1 + bne _0801D4EE + ldrb r0, [r4, 0x2] + adds r1, r6, 0 + mov r2, sp + bl b_attack_effectivity_adapt +_0801D4EE: + cmp r5, r8 + bne _0801D510 + ldr r0, _0801D568 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + ldr r3, _0801D56C @ =gBattleMons + adds r0, r3 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r8 + beq _0801D510 + ldrb r0, [r4, 0x2] + adds r1, r6, 0 + mov r2, sp + bl b_attack_effectivity_adapt +_0801D510: + adds r4, 0x3 + adds r7, 0x3 + mov r1, r10 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _0801D4D2 +_0801D51E: + ldr r3, [sp, 0x4] + cmp r3, 0x19 + bne _0801D550 + mov r0, sp + ldrb r2, [r0] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0801D538 + movs r0, 0x6 + ands r0, r2 + cmp r0, 0x6 + bne _0801D550 +_0801D538: + ldr r0, _0801D570 @ =gBattleMoves + ldr r3, [sp, 0xC] + adds r1, r3, r6 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0 + beq _0801D550 + mov r0, sp + movs r1, 0x8 + orrs r1, r2 + strb r1, [r0] +_0801D550: + mov r0, sp + ldrb r0, [r0] +_0801D554: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0801D564: .4byte gTypeEffectiveness +_0801D568: .4byte gUnknown_02024C08 +_0801D56C: .4byte gBattleMons +_0801D570: .4byte gBattleMoves + thumb_func_end ai_rate_move + + thumb_func_start unref_sub_801D574 +unref_sub_801D574: @ 801D574 + push {r4,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _0801D5AC @ =gUnknown_02024BEC + ldr r0, [r4] + cmp r0, 0 + beq _0801D5A6 + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801D5A6 + movs r0, 0x1 + str r0, [r4] +_0801D5A6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801D5AC: .4byte gUnknown_02024BEC + thumb_func_end unref_sub_801D574 + + thumb_func_start atk07_damagecalc3 +atk07_damagecalc3: @ 801D5B0 + push {r4-r7,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _0801D608 @ =gUnknown_02024BEC + ldr r0, [r4] + cmp r0, 0 + beq _0801D5E2 + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801D5E2 + movs r0, 0x1 + str r0, [r4] +_0801D5E2: + ldr r7, _0801D60C @ =gBattleMons + ldr r6, _0801D610 @ =gUnknown_02024C08 + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0801D618 + ldr r1, _0801D614 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _0801D632 + .align 2, 0 +_0801D608: .4byte gUnknown_02024BEC +_0801D60C: .4byte gBattleMons +_0801D610: .4byte gUnknown_02024C08 +_0801D614: .4byte gEnigmaBerries +_0801D618: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_0801D632: + ldr r1, _0801D6F4 @ =gUnknown_02024C0B + ldr r5, _0801D6F8 @ =gUnknown_02024C08 + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _0801D670 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _0801D670 + ldrb r0, [r5] + movs r1, 0x27 + bl sub_81074F8 + ldr r2, _0801D6FC @ =gUnknown_02024D68 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_0801D670: + ldr r2, _0801D700 @ =gBattleMons + ldr r3, _0801D6F8 @ =gUnknown_02024C08 + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r1, r0 + adds r5, r2, 0 + cmp r1, 0 + bne _0801D740 + ldr r2, _0801D704 @ =gBattleMoves + ldr r0, _0801D708 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x65 + beq _0801D6C2 + ldr r0, _0801D70C @ =gUnknown_02024D28 + lsls r1, r4, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + blt _0801D6C2 + ldr r0, _0801D6FC @ =gUnknown_02024D68 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801D740 +_0801D6C2: + ldrb r0, [r3] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r1, [r0, 0x28] + ldr r2, _0801D710 @ =gUnknown_02024BEC + ldr r0, [r2] + cmp r1, r0 + bgt _0801D740 + subs r0, r1, 0x1 + str r0, [r2] + ldr r1, _0801D70C @ =gUnknown_02024D28 + ldrb r3, [r3] + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _0801D718 + ldr r0, _0801D714 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0801D740 + .align 2, 0 +_0801D6F4: .4byte gUnknown_02024C0B +_0801D6F8: .4byte gUnknown_02024C08 +_0801D6FC: .4byte gUnknown_02024D68 +_0801D700: .4byte gBattleMons +_0801D704: .4byte gBattleMoves +_0801D708: .4byte gUnknown_02024BE6 +_0801D70C: .4byte gUnknown_02024D28 +_0801D710: .4byte gUnknown_02024BEC +_0801D714: .4byte gUnknown_02024C68 +_0801D718: + ldr r0, _0801D750 @ =gUnknown_02024D68 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801D740 + ldr r2, _0801D754 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801D758 @ =gUnknown_02024C04 + adds r0, r3, 0 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_0801D740: + ldr r1, _0801D75C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801D750: .4byte gUnknown_02024D68 +_0801D754: .4byte gUnknown_02024C68 +_0801D758: .4byte gUnknown_02024C04 +_0801D75C: .4byte gUnknown_02024C10 + thumb_func_end atk07_damagecalc3 + + thumb_func_start atk08_cmd8 +atk08_cmd8: @ 801D760 + push {r4-r7,lr} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xF + ands r0, r1 + movs r1, 0x64 + subs r1, r0 + lsls r1, 16 + lsrs r1, 16 + ldr r4, _0801D7B8 @ =gUnknown_02024BEC + ldr r0, [r4] + cmp r0, 0 + beq _0801D792 + muls r0, r1 + str r0, [r4] + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801D792 + movs r0, 0x1 + str r0, [r4] +_0801D792: + ldr r7, _0801D7BC @ =gBattleMons + ldr r6, _0801D7C0 @ =gUnknown_02024C08 + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0801D7C8 + ldr r1, _0801D7C4 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _0801D7E2 + .align 2, 0 +_0801D7B8: .4byte gUnknown_02024BEC +_0801D7BC: .4byte gBattleMons +_0801D7C0: .4byte gUnknown_02024C08 +_0801D7C4: .4byte gEnigmaBerries +_0801D7C8: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_0801D7E2: + ldr r1, _0801D888 @ =gUnknown_02024C0B + ldr r5, _0801D88C @ =gUnknown_02024C08 + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _0801D820 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _0801D820 + ldrb r0, [r5] + movs r1, 0x27 + bl sub_81074F8 + ldr r2, _0801D890 @ =gUnknown_02024D68 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_0801D820: + ldr r4, _0801D894 @ =gBattleMons + ldr r6, _0801D88C @ =gUnknown_02024C08 + ldrb r2, [r6] + movs r7, 0x58 + adds r3, r2, 0 + muls r3, r7 + adds r0, r4, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _0801D8CC + ldr r5, _0801D898 @ =gUnknown_02024D28 + lsls r0, r2, 4 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + blt _0801D85E + ldr r0, _0801D890 @ =gUnknown_02024D68 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801D8CC +_0801D85E: + adds r0, r3, r4 + ldrh r1, [r0, 0x28] + ldr r2, _0801D89C @ =gUnknown_02024BEC + ldr r0, [r2] + cmp r1, r0 + bgt _0801D8CC + subs r0, r1, 0x1 + str r0, [r2] + ldrb r3, [r6] + lsls r0, r3, 4 + adds r0, r5 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _0801D8A4 + ldr r0, _0801D8A0 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _0801D8CC + .align 2, 0 +_0801D888: .4byte gUnknown_02024C0B +_0801D88C: .4byte gUnknown_02024C08 +_0801D890: .4byte gUnknown_02024D68 +_0801D894: .4byte gBattleMons +_0801D898: .4byte gUnknown_02024D28 +_0801D89C: .4byte gUnknown_02024BEC +_0801D8A0: .4byte gUnknown_02024C68 +_0801D8A4: + ldr r0, _0801D8DC @ =gUnknown_02024D68 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _0801D8CC + ldr r2, _0801D8E0 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0801D8E4 @ =gUnknown_02024C04 + adds r0, r3, 0 + muls r0, r7 + adds r0, r4 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_0801D8CC: + ldr r1, _0801D8E8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801D8DC: .4byte gUnknown_02024D68 +_0801D8E0: .4byte gUnknown_02024C68 +_0801D8E4: .4byte gUnknown_02024C04 +_0801D8E8: .4byte gUnknown_02024C10 + thumb_func_end atk08_cmd8 + + thumb_func_start sub_801D8EC +sub_801D8EC: @ 801D8EC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0xC + ldr r0, _0801D940 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _0801D900 + b _0801DA4A +_0801D900: + ldr r0, _0801D944 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + ldr r3, _0801D948 @ =gUnknown_02024BE6 + cmp r0, 0 + beq _0801D960 + ldrh r0, [r3] + cmp r0, 0x90 + beq _0801D960 + cmp r0, 0xA4 + beq _0801D960 + ldr r4, _0801D94C @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801D950 @ =gUnknown_081D8EEF + str r0, [r4] + ldr r1, _0801D954 @ =0x02000000 + ldr r0, _0801D958 @ =0x00016002 + adds r2, r1, r0 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + ldr r2, _0801D95C @ =0x000160a1 + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0801DA4A + .align 2, 0 +_0801D940: .4byte gUnknown_02024A64 +_0801D944: .4byte gUnknown_02024C6C +_0801D948: .4byte gUnknown_02024BE6 +_0801D94C: .4byte gUnknown_02024C10 +_0801D950: .4byte gUnknown_081D8EEF +_0801D954: .4byte 0x02000000 +_0801D958: .4byte 0x00016002 +_0801D95C: .4byte 0x000160a1 +_0801D960: + ldr r2, _0801DA0C @ =gBattleMoves + ldrh r1, [r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0, 0x6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0801D986 + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0801D986 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0801D992 +_0801D986: + ldr r0, _0801DA10 @ =0x02000000 + ldr r1, _0801DA14 @ =0x000160a1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0801DA00 +_0801D992: + ldr r0, _0801DA18 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801DA3C + ldr r1, _0801DA1C @ =gUnknown_02024A60 + ldr r2, _0801DA20 @ =gUnknown_02024C07 + mov r9, r2 + ldrb r0, [r2] + strb r0, [r1] + ldrh r1, [r3] + ldr r6, _0801DA10 @ =0x02000000 + ldr r0, _0801DA24 @ =0x00016002 + adds r0, r6 + mov r8, r0 + ldrb r2, [r0] + ldr r0, _0801DA28 @ =gBattleMovePower + ldrh r3, [r0] + ldr r0, _0801DA2C @ =gUnknown_02024BEC + ldr r0, [r0] + str r0, [sp] + ldr r5, _0801DA30 @ =gBattleMons + mov r0, r9 + ldrb r4, [r0] + movs r0, 0x58 + muls r0, r4 + adds r0, r5 + adds r0, 0x2B + ldrb r0, [r0] + str r0, [sp, 0x4] + mov r0, r9 + ldrb r4, [r0] + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r4, _0801DA34 @ =gUnknown_02024CA8 + adds r0, r4 + str r0, [sp, 0x8] + movs r0, 0 + bl dp01_build_cmdbuf_x0F_aa_b_cc_dddd_e_mlc_weather_00_x1Cbytes + mov r1, r8 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r2, _0801DA14 @ =0x000160a1 + adds r6, r2 + ldrb r0, [r6] + adds r0, 0x1 + strb r0, [r6] + mov r1, r9 + ldrb r0, [r1] + bl dp01_battle_side_mark_buffer_for_execution +_0801DA00: + ldr r1, _0801DA38 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _0801DA4A + .align 2, 0 +_0801DA0C: .4byte gBattleMoves +_0801DA10: .4byte 0x02000000 +_0801DA14: .4byte 0x000160a1 +_0801DA18: .4byte gUnknown_02024C68 +_0801DA1C: .4byte gUnknown_02024A60 +_0801DA20: .4byte gUnknown_02024C07 +_0801DA24: .4byte 0x00016002 +_0801DA28: .4byte gBattleMovePower +_0801DA2C: .4byte gUnknown_02024BEC +_0801DA30: .4byte gBattleMons +_0801DA34: .4byte gUnknown_02024CA8 +_0801DA38: .4byte gUnknown_02024C10 +_0801DA3C: + ldr r4, _0801DA58 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801DA5C @ =gUnknown_081D8EEF + str r0, [r4] +_0801DA4A: + add sp, 0xC + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801DA58: .4byte gUnknown_02024C10 +_0801DA5C: .4byte gUnknown_081D8EEF + thumb_func_end sub_801D8EC + + thumb_func_start sub_801DA60 +sub_801DA60: @ 801DA60 + push {lr} + ldr r0, _0801DA78 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801DA72 + ldr r1, _0801DA7C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801DA72: + pop {r0} + bx r0 + .align 2, 0 +_0801DA78: .4byte gUnknown_02024A64 +_0801DA7C: .4byte gUnknown_02024C10 + thumb_func_end sub_801DA60 + + thumb_func_start sub_801DA80 +sub_801DA80: @ 801DA80 + push {r4,r5,lr} + ldr r0, _0801DAE4 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801DB36 + ldr r0, _0801DAE8 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801DB2E + ldr r0, _0801DAEC @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r2, _0801DAF0 @ =gUnknown_02024A60 + strb r0, [r2] + ldr r1, _0801DAF4 @ =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0801DB00 + ldr r0, _0801DAF8 @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + beq _0801DB00 + ldr r0, _0801DAFC @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + bne _0801DB00 + movs r0, 0x80 + adds r1, r2, 0 + bl b_std_message + b _0801DB2E + .align 2, 0 +_0801DAE4: .4byte gUnknown_02024A64 +_0801DAE8: .4byte gUnknown_02024C68 +_0801DAEC: .4byte gUnknown_02024C10 +_0801DAF0: .4byte gUnknown_02024A60 +_0801DAF4: .4byte gBattleMons +_0801DAF8: .4byte gUnknown_02024CA8 +_0801DAFC: .4byte gUnknown_02024C6C +_0801DB00: + ldr r5, _0801DB3C @ =gUnknown_02024BEC + ldrh r1, [r5] + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldr r4, _0801DB40 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0801DB2E + ldr r0, [r5] + cmp r0, 0 + ble _0801DB2E + ldr r0, _0801DB44 @ =gUnknown_030042E0 + ldrb r1, [r0, 0x5] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x5] +_0801DB2E: + ldr r1, _0801DB48 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0801DB36: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801DB3C: .4byte gUnknown_02024BEC +_0801DB40: .4byte gUnknown_02024A60 +_0801DB44: .4byte gUnknown_030042E0 +_0801DB48: .4byte gUnknown_02024C10 + thumb_func_end sub_801DA80 + + thumb_func_start atk0C_datahpupdate +atk0C_datahpupdate: @ 801DB4C + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, _0801DB74 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _0801DB5A + b _0801DF2E +_0801DB5A: + ldr r0, _0801DB78 @ =0x02000000 + ldr r1, _0801DB7C @ =0x0001601c + adds r0, r1 + ldrb r1, [r0] + cmp r1, 0 + beq _0801DB80 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0801DB80 + movs r6, 0x3F + ands r6, r1 + b _0801DB90 + .align 2, 0 +_0801DB74: .4byte gUnknown_02024A64 +_0801DB78: .4byte 0x02000000 +_0801DB7C: .4byte 0x0001601c +_0801DB80: + ldr r2, _0801DC1C @ =gBattleMoves + ldr r0, _0801DC20 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r6, [r0, 0x2] +_0801DB90: + ldr r0, _0801DC24 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0801DB9E + b _0801DF00 +_0801DB9E: + ldr r0, _0801DC28 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r7, _0801DC2C @ =gUnknown_02024A60 + strb r0, [r7] + ldr r1, _0801DC30 @ =gBattleMons + ldrb r2, [r7] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0801DCB4 + ldr r0, _0801DC34 @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r4, r1, r0 + ldrb r1, [r4, 0xA] + mov r12, r0 + cmp r1, 0 + beq _0801DCB4 + ldr r0, _0801DC38 @ =gUnknown_02024C6C + ldr r3, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r3, r0 + cmp r3, 0 + bne _0801DCB4 + adds r5, r1, 0 + ldr r6, _0801DC3C @ =gUnknown_02024BEC + ldr r4, [r6] + cmp r5, r4 + blt _0801DC48 + ldr r0, _0801DC40 @ =gUnknown_02024D68 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _0801DC02 + str r4, [r1] +_0801DC02: + ldrb r0, [r7] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r12 + ldr r2, [r6] + ldrb r0, [r1, 0xA] + subs r0, r2 + strb r0, [r1, 0xA] + ldr r1, _0801DC44 @ =gUnknown_02024BF0 + ldr r0, [r6] + str r0, [r1] + b _0801DC78 + .align 2, 0 +_0801DC1C: .4byte gBattleMoves +_0801DC20: .4byte gUnknown_02024BE6 +_0801DC24: .4byte gUnknown_02024C68 +_0801DC28: .4byte gUnknown_02024C10 +_0801DC2C: .4byte gUnknown_02024A60 +_0801DC30: .4byte gBattleMons +_0801DC34: .4byte gUnknown_02024CA8 +_0801DC38: .4byte gUnknown_02024C6C +_0801DC3C: .4byte gUnknown_02024BEC +_0801DC40: .4byte gUnknown_02024D68 +_0801DC44: .4byte gUnknown_02024BF0 +_0801DC48: + ldr r0, _0801DCA0 @ =gUnknown_02024D68 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _0801DC5C + str r5, [r1] +_0801DC5C: + ldr r2, _0801DCA4 @ =gUnknown_02024BF0 + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r0, [r0, 0xA] + str r0, [r2] + ldrb r1, [r7] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + strb r3, [r0, 0xA] +_0801DC78: + ldr r0, _0801DCA8 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r0, [r0, 0xA] + cmp r0, 0 + beq _0801DC8C + b _0801DF26 +_0801DC8C: + ldr r4, _0801DCAC @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + bl b_movescr_stack_push_cursor + ldr r0, _0801DCB0 @ =gUnknown_081D99AB + str r0, [r4] + b _0801DF2E + .align 2, 0 +_0801DCA0: .4byte gUnknown_02024D68 +_0801DCA4: .4byte gUnknown_02024BF0 +_0801DCA8: .4byte gUnknown_02024A60 +_0801DCAC: .4byte gUnknown_02024C10 +_0801DCB0: .4byte gUnknown_081D99AB +_0801DCB4: + ldr r0, _0801DCF4 @ =gUnknown_02024C6C + ldr r2, [r0] + ldr r1, _0801DCF8 @ =0xfffffeff + ands r2, r1 + str r2, [r0] + ldr r1, _0801DCFC @ =gUnknown_02024BEC + ldr r5, [r1] + mov r12, r0 + adds r7, r1, 0 + cmp r5, 0 + bge _0801DD08 + ldr r4, _0801DD00 @ =gBattleMons + ldr r2, _0801DD04 @ =gUnknown_02024A60 + ldrb r0, [r2] + movs r3, 0x58 + adds r1, r0, 0 + muls r1, r3 + adds r1, r4 + ldrh r0, [r1, 0x28] + subs r0, r5 + strh r0, [r1, 0x28] + ldrb r0, [r2] + muls r0, r3 + adds r1, r0, r4 + ldrh r3, [r1, 0x2C] + ldrh r0, [r1, 0x28] + adds r5, r2, 0 + cmp r0, r3 + bhi _0801DCF0 + b _0801DEC6 +_0801DCF0: + strh r3, [r1, 0x28] + b _0801DEC6 + .align 2, 0 +_0801DCF4: .4byte gUnknown_02024C6C +_0801DCF8: .4byte 0xfffffeff +_0801DCFC: .4byte gUnknown_02024BEC +_0801DD00: .4byte gBattleMons +_0801DD04: .4byte gUnknown_02024A60 +_0801DD08: + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _0801DD24 + movs r0, 0x21 + negs r0, r0 + ands r2, r0 + mov r0, r12 + str r2, [r0] + ldr r5, _0801DD20 @ =gUnknown_02024A60 + b _0801DD6C + .align 2, 0 +_0801DD20: .4byte gUnknown_02024A60 +_0801DD24: + ldr r0, _0801DD4C @ =gUnknown_02024BF4 + ldr r2, _0801DD50 @ =gUnknown_02024A60 + ldrb r1, [r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + adds r0, r5 + str r0, [r1] + ldr r0, _0801DD54 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + adds r5, r2, 0 + cmp r0, 0 + bne _0801DD60 + ldr r1, _0801DD58 @ =gUnknown_02024C74 + ldrb r0, [r5] + adds r0, r1 + ldr r1, _0801DD5C @ =gUnknown_02024C07 + b _0801DD68 + .align 2, 0 +_0801DD4C: .4byte gUnknown_02024BF4 +_0801DD50: .4byte gUnknown_02024A60 +_0801DD54: .4byte gUnknown_02024C10 +_0801DD58: .4byte gUnknown_02024C74 +_0801DD5C: .4byte gUnknown_02024C07 +_0801DD60: + ldr r1, _0801DD8C @ =gUnknown_02024C74 + ldrb r0, [r5] + adds r0, r1 + ldr r1, _0801DD90 @ =gUnknown_02024C08 +_0801DD68: + ldrb r1, [r1] + strb r1, [r0] +_0801DD6C: + ldr r4, _0801DD94 @ =gBattleMons + ldrb r0, [r5] + movs r3, 0x58 + muls r0, r3 + adds r2, r0, r4 + ldrh r0, [r2, 0x28] + ldr r1, [r7] + cmp r0, r1 + ble _0801DD9C + subs r0, r1 + strh r0, [r2, 0x28] + ldr r0, _0801DD98 @ =gUnknown_02024BF0 + str r1, [r0] + adds r7, r0, 0 + b _0801DDAC + .align 2, 0 +_0801DD8C: .4byte gUnknown_02024C74 +_0801DD90: .4byte gUnknown_02024C08 +_0801DD94: .4byte gBattleMons +_0801DD98: .4byte gUnknown_02024BF0 +_0801DD9C: + ldr r2, _0801DE20 @ =gUnknown_02024BF0 + str r0, [r2] + ldrb r0, [r5] + muls r0, r3 + adds r0, r4 + movs r1, 0 + strh r1, [r0, 0x28] + adds r7, r2, 0 +_0801DDAC: + ldr r2, _0801DE24 @ =gUnknown_02024D68 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r2, 0x4 + adds r3, r0, r1 + ldr r0, [r3] + adds r4, r2, 0 + cmp r0, 0 + bne _0801DDD4 + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _0801DDD4 + ldr r0, [r7] + str r0, [r3] +_0801DDD4: + cmp r6, 0x8 + bhi _0801DE5C + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _0801DE58 + ldr r0, _0801DE28 @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xDC + beq _0801DE58 + ldr r3, _0801DE2C @ =gUnknown_02024D28 + ldrb r0, [r5] + lsls r0, 4 + adds r1, r3, 0x4 + adds r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x8 + adds r0, r1 + str r2, [r0] + ldr r0, _0801DE30 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0801DE38 + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801DE34 @ =gUnknown_02024C07 + b _0801DE40 + .align 2, 0 +_0801DE20: .4byte gUnknown_02024BF0 +_0801DE24: .4byte gUnknown_02024D68 +_0801DE28: .4byte gUnknown_02024BE6 +_0801DE2C: .4byte gUnknown_02024D28 +_0801DE30: .4byte gUnknown_02024C10 +_0801DE34: .4byte gUnknown_02024C07 +_0801DE38: + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801DE54 @ =gUnknown_02024C08 +_0801DE40: + ldrb r1, [r2] + strb r1, [r0, 0xC] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r2] + strb r1, [r0, 0x10] + b _0801DEC6 + .align 2, 0 +_0801DE54: .4byte gUnknown_02024C08 +_0801DE58: + cmp r6, 0x8 + bls _0801DEC6 +_0801DE5C: + mov r1, r12 + ldr r0, [r1] + movs r1, 0x80 + lsls r1, 13 + ands r0, r1 + cmp r0, 0 + bne _0801DEC6 + ldr r3, _0801DEA0 @ =gUnknown_02024D28 + ldrb r0, [r5] + lsls r0, 4 + adds r1, r3, 0 + adds r1, 0x8 + adds r0, r1 + ldr r2, [r7] + str r2, [r0] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0xC + adds r0, r1 + str r2, [r0] + ldr r0, _0801DEA4 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0801DEAC + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801DEA8 @ =gUnknown_02024C07 + b _0801DEB4 + .align 2, 0 +_0801DEA0: .4byte gUnknown_02024D28 +_0801DEA4: .4byte gUnknown_02024C10 +_0801DEA8: .4byte gUnknown_02024C07 +_0801DEAC: + ldrb r0, [r5] + lsls r0, 4 + adds r0, r3 + ldr r2, _0801DEF4 @ =gUnknown_02024C08 +_0801DEB4: + ldrb r1, [r2] + strb r1, [r0, 0xD] + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r2] + strb r1, [r0, 0x11] +_0801DEC6: + mov r1, r12 + ldr r0, [r1] + ldr r1, _0801DEF8 @ =0xffefffff + ands r0, r1 + mov r1, r12 + str r0, [r1] + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + ldr r1, _0801DEFC @ =gUnknown_02024AA8 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2A + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + b _0801DF26 + .align 2, 0 +_0801DEF4: .4byte gUnknown_02024C08 +_0801DEF8: .4byte 0xffefffff +_0801DEFC: .4byte gUnknown_02024AA8 +_0801DF00: + ldr r0, _0801DF38 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r1, _0801DF3C @ =gUnknown_02024A60 + strb r0, [r1] + ldr r2, _0801DF40 @ =gUnknown_02024D68 + ldrb r1, [r1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r1, r0, r2 + ldr r0, [r1] + cmp r0, 0 + bne _0801DF26 + ldr r0, _0801DF44 @ =0x0000ffff + str r0, [r1] +_0801DF26: + ldr r1, _0801DF38 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0801DF2E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801DF38: .4byte gUnknown_02024C10 +_0801DF3C: .4byte gUnknown_02024A60 +_0801DF40: .4byte gUnknown_02024D68 +_0801DF44: .4byte 0x0000ffff + thumb_func_end atk0C_datahpupdate + + thumb_func_start atk0D_critmessage +atk0D_critmessage: @ 801DF48 + push {lr} + ldr r0, _0801DF84 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801DF7E + ldr r0, _0801DF88 @ =gCritMultiplier + ldrb r0, [r0] + cmp r0, 0x2 + bne _0801DF76 + ldr r0, _0801DF8C @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801DF76 + ldr r0, _0801DF90 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0xD9 + bl b_std_message + ldr r1, _0801DF94 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x7] +_0801DF76: + ldr r1, _0801DF98 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801DF7E: + pop {r0} + bx r0 + .align 2, 0 +_0801DF84: .4byte gUnknown_02024A64 +_0801DF88: .4byte gCritMultiplier +_0801DF8C: .4byte gUnknown_02024C68 +_0801DF90: .4byte gUnknown_02024C07 +_0801DF94: .4byte gUnknown_02024D1E +_0801DF98: .4byte gUnknown_02024C10 + thumb_func_end atk0D_critmessage + + thumb_func_start atk0E_missmessage +atk0E_missmessage: @ 801DF9C + push {r4,lr} + ldr r0, _0801DFD4 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801E05C + ldr r4, _0801DFD8 @ =gUnknown_02024A60 + ldr r0, _0801DFDC @ =gUnknown_02024C08 + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _0801DFE0 @ =gUnknown_02024C68 + ldrb r2, [r1] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _0801E054 + movs r0, 0xFE + ands r0, r2 + cmp r0, 0x10 + beq _0801E00E + cmp r0, 0x10 + bgt _0801DFEA + cmp r0, 0x4 + beq _0801DFFE + cmp r0, 0x4 + bgt _0801DFE4 + cmp r0, 0x2 + beq _0801DFF8 + b _0801E00E + .align 2, 0 +_0801DFD4: .4byte gUnknown_02024A64 +_0801DFD8: .4byte gUnknown_02024A60 +_0801DFDC: .4byte gUnknown_02024C08 +_0801DFE0: .4byte gUnknown_02024C68 +_0801DFE4: + cmp r0, 0x8 + beq _0801E054 + b _0801E00E +_0801DFEA: + cmp r0, 0x40 + beq _0801E00E + cmp r0, 0x40 + bgt _0801E00E + cmp r0, 0x20 + beq _0801E054 + b _0801E00E +_0801DFF8: + movs r0, 0 + movs r1, 0xE + b _0801E002 +_0801DFFE: + movs r0, 0 + movs r1, 0xC +_0801E002: + bl dp01_build_cmdbuf_x2B_aa_0 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0801E054 +_0801E00E: + ldrb r1, [r1] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0801E01E + movs r0, 0 + movs r1, 0xE + b _0801E02A +_0801E01E: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0801E03C + movs r0, 0 + movs r1, 0xC +_0801E02A: + bl dp01_build_cmdbuf_x2B_aa_0 + ldr r0, _0801E038 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + b _0801E054 + .align 2, 0 +_0801E038: .4byte gUnknown_02024A60 +_0801E03C: + movs r0, 0x28 + ands r0, r1 + cmp r0, 0 + bne _0801E054 + movs r0, 0 + movs r1, 0xD + bl dp01_build_cmdbuf_x2B_aa_0 + ldr r0, _0801E064 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution +_0801E054: + ldr r1, _0801E068 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801E05C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801E064: .4byte gUnknown_02024A60 +_0801E068: .4byte gUnknown_02024C10 + thumb_func_end atk0E_missmessage + + thumb_func_start atk0F_resultmessage +atk0F_resultmessage: @ 801E06C + push {r4-r7,lr} + movs r3, 0 + ldr r0, _0801E0A8 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _0801E07A + b _0801E20C +_0801E07A: + ldr r1, _0801E0AC @ =gUnknown_02024C68 + ldrb r2, [r1] + movs r4, 0x1 + adds r0, r4, 0 + ands r0, r2 + adds r6, r1, 0 + ldr r7, _0801E0B0 @ =gUnknown_02024D1E + cmp r0, 0 + beq _0801E0B8 + movs r0, 0x8 + ands r0, r2 + cmp r0, 0 + beq _0801E09A + ldrb r0, [r7, 0x6] + cmp r0, 0x2 + bls _0801E0B8 +_0801E09A: + ldr r1, _0801E0B4 @ =gUnknown_08401508 + ldrb r0, [r7, 0x6] + lsls r0, 1 + adds r0, r1 + ldrh r3, [r0] + strb r4, [r7, 0x7] + b _0801E1F6 + .align 2, 0 +_0801E0A8: .4byte gUnknown_02024A64 +_0801E0AC: .4byte gUnknown_02024C68 +_0801E0B0: .4byte gUnknown_02024D1E +_0801E0B4: .4byte gUnknown_08401508 +_0801E0B8: + movs r0, 0x1 + strb r0, [r7, 0x7] + ldrb r5, [r6] + movs r0, 0xFE + ands r0, r5 + cmp r0, 0x10 + beq _0801E0FC + cmp r0, 0x10 + bgt _0801E0DE + cmp r0, 0x4 + beq _0801E0F8 + cmp r0, 0x4 + bgt _0801E0D8 + cmp r0, 0x2 + beq _0801E0F4 + b _0801E144 +_0801E0D8: + cmp r0, 0x8 + beq _0801E150 + b _0801E144 +_0801E0DE: + cmp r0, 0x40 + beq _0801E100 + cmp r0, 0x40 + bgt _0801E0EE + cmp r0, 0x20 + bne _0801E0EC + b _0801E1F0 +_0801E0EC: + b _0801E144 +_0801E0EE: + cmp r0, 0x80 + beq _0801E104 + b _0801E144 +_0801E0F4: + movs r3, 0xDE + b _0801E1FA +_0801E0F8: + movs r3, 0xDD + b _0801E1FA +_0801E0FC: + movs r3, 0xDA + b _0801E1FA +_0801E100: + movs r3, 0x99 + b _0801E1FA +_0801E104: + ldr r4, _0801E12C @ =gUnknown_02024C04 + ldr r2, _0801E130 @ =gBattleMons + ldr r3, _0801E134 @ =gUnknown_02024C08 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + ldr r1, _0801E138 @ =gUnknown_02024C0B + ldrb r0, [r3] + strb r0, [r1] + movs r0, 0x3F + ands r0, r5 + strb r0, [r6] + bl b_movescr_stack_push_cursor + ldr r1, _0801E13C @ =gUnknown_02024C10 + ldr r0, _0801E140 @ =gUnknown_081D9AC6 + b _0801E20A + .align 2, 0 +_0801E12C: .4byte gUnknown_02024C04 +_0801E130: .4byte gBattleMons +_0801E134: .4byte gUnknown_02024C08 +_0801E138: .4byte gUnknown_02024C0B +_0801E13C: .4byte gUnknown_02024C10 +_0801E140: .4byte gUnknown_081D9AC6 +_0801E144: + adds r2, r6, 0 + ldrb r5, [r2] + movs r0, 0x8 + ands r0, r5 + cmp r0, 0 + beq _0801E154 +_0801E150: + movs r3, 0x1B + b _0801E1FA +_0801E154: + movs r0, 0x10 + ands r0, r5 + cmp r0, 0 + beq _0801E17C + movs r0, 0xEF + ands r0, r5 + movs r1, 0xFD + ands r0, r1 + movs r1, 0xFB + ands r0, r1 + strb r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801E174 @ =gUnknown_02024C10 + ldr r0, _0801E178 @ =gUnknown_081D94A9 + b _0801E20A + .align 2, 0 +_0801E174: .4byte gUnknown_02024C10 +_0801E178: .4byte gUnknown_081D94A9 +_0801E17C: + movs r0, 0x40 + ands r0, r5 + cmp r0, 0 + beq _0801E19C + movs r0, 0x3F + ands r0, r5 + strb r0, [r2] + bl b_movescr_stack_push_cursor + ldr r1, _0801E194 @ =gUnknown_02024C10 + ldr r0, _0801E198 @ =gUnknown_081D94A2 + b _0801E20A + .align 2, 0 +_0801E194: .4byte gUnknown_02024C10 +_0801E198: .4byte gUnknown_081D94A2 +_0801E19C: + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + beq _0801E1E4 + ldr r4, _0801E1CC @ =gUnknown_02024C04 + ldr r2, _0801E1D0 @ =gBattleMons + ldr r3, _0801E1D4 @ =gUnknown_02024C08 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r4] + ldr r1, _0801E1D8 @ =gUnknown_02024C0B + ldrb r0, [r3] + strb r0, [r1] + movs r0, 0x3F + ands r0, r5 + strb r0, [r6] + bl b_movescr_stack_push_cursor + ldr r1, _0801E1DC @ =gUnknown_02024C10 + ldr r0, _0801E1E0 @ =gUnknown_081D9AC6 + b _0801E20A + .align 2, 0 +_0801E1CC: .4byte gUnknown_02024C04 +_0801E1D0: .4byte gBattleMons +_0801E1D4: .4byte gUnknown_02024C08 +_0801E1D8: .4byte gUnknown_02024C0B +_0801E1DC: .4byte gUnknown_02024C10 +_0801E1E0: .4byte gUnknown_081D9AC6 +_0801E1E4: + movs r0, 0x20 + ands r0, r5 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0801E1F4 +_0801E1F0: + movs r3, 0xE5 + b _0801E1FA +_0801E1F4: + strb r0, [r7, 0x7] +_0801E1F6: + cmp r3, 0 + beq _0801E204 +_0801E1FA: + adds r0, r3, 0 + ldr r1, _0801E214 @ =gUnknown_02024C07 + ldrb r1, [r1] + bl b_std_message +_0801E204: + ldr r1, _0801E218 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 +_0801E20A: + str r0, [r1] +_0801E20C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801E214: .4byte gUnknown_02024C07 +_0801E218: .4byte gUnknown_02024C10 + thumb_func_end atk0F_resultmessage + + thumb_func_start atk10_printstring +atk10_printstring: @ 801E21C + push {r4,lr} + ldr r0, _0801E24C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801E246 + ldr r4, _0801E250 @ =gUnknown_02024C10 + ldr r1, [r4] + ldrb r0, [r1, 0x1] + ldrb r1, [r1, 0x2] + lsls r1, 8 + orrs r0, r1 + ldr r1, _0801E254 @ =gUnknown_02024C07 + ldrb r1, [r1] + bl b_std_message + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + ldr r1, _0801E258 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x7] +_0801E246: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801E24C: .4byte gUnknown_02024A64 +_0801E250: .4byte gUnknown_02024C10 +_0801E254: .4byte gUnknown_02024C07 +_0801E258: .4byte gUnknown_02024D1E + thumb_func_end atk10_printstring + + thumb_func_start atk11_printstring2 +atk11_printstring2: @ 801E25C + push {r4,r5,lr} + ldr r5, _0801E290 @ =gUnknown_02024A60 + ldr r0, _0801E294 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _0801E298 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl dp01_build_cmdbuf_x11_TODO + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + ldr r1, _0801E29C @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x7] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801E290: .4byte gUnknown_02024A60 +_0801E294: .4byte gUnknown_02024C07 +_0801E298: .4byte gUnknown_02024C10 +_0801E29C: .4byte gUnknown_02024D1E + thumb_func_end atk11_printstring2 + + thumb_func_start atk12_waitmessage +atk12_waitmessage: @ 801E2A0 + push {r4-r6,lr} + ldr r0, _0801E2BC @ =gUnknown_02024A64 + ldr r4, [r0] + cmp r4, 0 + bne _0801E2EE + ldr r6, _0801E2C0 @ =gUnknown_02024D1E + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _0801E2C8 + ldr r1, _0801E2C4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] + b _0801E2EE + .align 2, 0 +_0801E2BC: .4byte gUnknown_02024A64 +_0801E2C0: .4byte gUnknown_02024D1E +_0801E2C4: .4byte gUnknown_02024C10 +_0801E2C8: + ldr r5, _0801E2F4 @ =gUnknown_02024C10 + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r3, _0801E2F8 @ =gUnknown_02024D18 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _0801E2EE + movs r1, 0 + strh r4, [r3] + adds r0, r2, 0x3 + str r0, [r5] + strb r1, [r6, 0x7] +_0801E2EE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801E2F4: .4byte gUnknown_02024C10 +_0801E2F8: .4byte gUnknown_02024D18 + thumb_func_end atk12_waitmessage + + thumb_func_start atk13_printfromtable +atk13_printfromtable: @ 801E2FC + push {r4,r5,lr} + ldr r0, _0801E340 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801E33A + ldr r4, _0801E344 @ =gUnknown_02024C10 + 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 + ldr r5, _0801E348 @ =gUnknown_02024D1E + ldrb r0, [r5, 0x5] + lsls r0, 1 + adds r1, r0 + ldrh r0, [r1] + ldr r1, _0801E34C @ =gUnknown_02024C07 + ldrb r1, [r1] + bl b_std_message + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + movs r0, 0x1 + strb r0, [r5, 0x7] +_0801E33A: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801E340: .4byte gUnknown_02024A64 +_0801E344: .4byte gUnknown_02024C10 +_0801E348: .4byte gUnknown_02024D1E +_0801E34C: .4byte gUnknown_02024C07 + thumb_func_end atk13_printfromtable + + thumb_func_start atk14_printfromtable2 +atk14_printfromtable2: @ 801E350 + push {r4-r6,lr} + ldr r0, _0801E3A0 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801E39A + ldr r5, _0801E3A4 @ =gUnknown_02024C10 + ldr r2, [r5] + 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 r6, _0801E3A8 @ =gUnknown_02024D1E + ldrb r0, [r6, 0x5] + lsls r0, 1 + adds r1, r0 + ldr r4, _0801E3AC @ =gUnknown_02024A60 + ldr r0, _0801E3B0 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r4] + ldrh r1, [r1] + movs r0, 0 + bl dp01_build_cmdbuf_x11_TODO + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x5 + str r0, [r5] + movs r0, 0x1 + strb r0, [r6, 0x7] +_0801E39A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801E3A0: .4byte gUnknown_02024A64 +_0801E3A4: .4byte gUnknown_02024C10 +_0801E3A8: .4byte gUnknown_02024D1E +_0801E3AC: .4byte gUnknown_02024A60 +_0801E3B0: .4byte gUnknown_02024C07 + thumb_func_end atk14_printfromtable2 + + thumb_func_start sub_801E3B4 +sub_801E3B4: @ 801E3B4 + push {r4,lr} + lsls r0, 24 + lsrs r2, r0, 24 + movs r1, 0 + ldr r0, _0801E3E4 @ =gUnknown_02024A68 + ldrb r3, [r0] + cmp r1, r3 + bge _0801E3DA + ldr r4, _0801E3E8 @ =gUnknown_02024A7A + ldrb r0, [r4] + cmp r0, r2 + beq _0801E3DA +_0801E3CC: + adds r1, 0x1 + cmp r1, r3 + bge _0801E3DA + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, r2 + bne _0801E3CC +_0801E3DA: + lsls r0, r1, 24 + lsrs r0, 24 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0801E3E4: .4byte gUnknown_02024A68 +_0801E3E8: .4byte gUnknown_02024A7A + thumb_func_end sub_801E3B4 + + thumb_func_start sub_801E3EC +sub_801E3EC: @ 801E3EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + movs r0, 0 + mov r10, r0 + movs r6, 0 + movs r1, 0x1 + str r1, [sp, 0x4] + ldr r1, _0801E430 @ =gUnknown_02024D1E + ldrb r3, [r1, 0x3] + movs r0, 0x40 + ands r0, r3 + adds r7, r1, 0 + cmp r0, 0 + beq _0801E444 + ldr r2, _0801E434 @ =gUnknown_02024C0A + ldr r0, _0801E438 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0xBF + ands r0, r3 + strb r0, [r7, 0x3] + movs r6, 0x40 + ldr r0, _0801E43C @ =0x02000000 + ldr r1, _0801E440 @ =gUnknown_02024C08 + b _0801E450 + .align 2, 0 +_0801E430: .4byte gUnknown_02024D1E +_0801E434: .4byte gUnknown_02024C0A +_0801E438: .4byte gUnknown_02024C07 +_0801E43C: .4byte 0x02000000 +_0801E440: .4byte gUnknown_02024C08 +_0801E444: + ldr r2, _0801E538 @ =gUnknown_02024C0A + ldr r0, _0801E53C @ =gUnknown_02024C08 + ldrb r0, [r0] + strb r0, [r2] + ldr r0, _0801E540 @ =0x02000000 + ldr r1, _0801E544 @ =gUnknown_02024C07 +_0801E450: + ldrb r1, [r1] + ldr r3, _0801E548 @ =0x00016003 + adds r0, r3 + strb r1, [r0] + mov r8, r2 + ldr r2, _0801E54C @ =gBattleMons + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x13 + bne _0801E48A + ldr r0, _0801E550 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + bne _0801E48A + cmp r4, 0 + bne _0801E48A + ldrb r0, [r7, 0x3] + cmp r0, 0x9 + bhi _0801E48A + bl _0801F5DC +_0801E48A: + mov r1, r8 + ldrb r0, [r1] + bl battle_get_per_side_status + ldr r2, _0801E554 @ =gUnknown_02024C7A + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r2 + ldrh r1, [r1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0801E4C4 + ldr r0, _0801E550 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + bne _0801E4C4 + cmp r4, 0 + bne _0801E4C4 + ldr r0, _0801E558 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + cmp r0, 0x7 + bhi _0801E4C4 + bl _0801F5DC +_0801E4C4: + ldr r3, _0801E54C @ =gBattleMons + ldr r2, _0801E538 @ =gUnknown_02024C0A + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x28] + mov r8, r2 + mov r9, r3 + cmp r0, 0 + bne _0801E4EA + ldr r0, _0801E558 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + cmp r0, 0xB + beq _0801E4EA + cmp r0, 0x1F + beq _0801E4EA + bl _0801F5DC +_0801E4EA: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + mov r1, r9 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0801E50C + cmp r6, 0x40 + beq _0801E50C + bl _0801F5DC +_0801E50C: + ldr r0, _0801E558 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x3] + adds r7, r0, 0 + cmp r1, 0x6 + bls _0801E518 + b _0801EB4A +_0801E518: + ldr r1, _0801E55C @ =gUnknown_081FAB5C + ldrb r0, [r7, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0x10 + bne _0801E528 + b _0801E714 +_0801E528: + cmp r0, 0x10 + bhi _0801E560 + cmp r0, 0x7 + beq _0801E57A + cmp r0, 0x8 + bne _0801E536 + b _0801E630 +_0801E536: + b _0801EA14 + .align 2, 0 +_0801E538: .4byte gUnknown_02024C0A +_0801E53C: .4byte gUnknown_02024C08 +_0801E540: .4byte 0x02000000 +_0801E544: .4byte gUnknown_02024C07 +_0801E548: .4byte 0x00016003 +_0801E54C: .4byte gBattleMons +_0801E550: .4byte gUnknown_02024C6C +_0801E554: .4byte gUnknown_02024C7A +_0801E558: .4byte gUnknown_02024D1E +_0801E55C: .4byte gUnknown_081FAB5C +_0801E560: + cmp r0, 0x40 + bne _0801E566 + b _0801E888 +_0801E566: + cmp r0, 0x40 + bhi _0801E572 + cmp r0, 0x20 + bne _0801E570 + b _0801E7EA +_0801E570: + b _0801EA14 +_0801E572: + cmp r0, 0x80 + bne _0801E578 + b _0801E8E4 +_0801E578: + b _0801EA14 +_0801E57A: + mov r3, r8 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + add r0, r9 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2B + beq _0801E5DC + ldr r0, _0801E5D4 @ =gUnknown_02024A60 + movs r1, 0 + strb r1, [r0] + ldr r1, _0801E5D8 @ =gUnknown_02024A68 + ldrb r3, [r1] + adds r7, r0, 0 + mov r12, r1 + cmp r3, 0 + beq _0801E5E8 + mov r4, r9 + ldr r0, [r4, 0x50] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + bne _0801E5E8 + adds r1, r7, 0 + mov r6, r9 + adds r6, 0x50 + movs r5, 0x58 + movs r4, 0x70 +_0801E5B4: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r3 + bcs _0801E5E8 + ldrb r0, [r7] + muls r0, r5 + adds r0, r6 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _0801E5B4 + b _0801E5E8 + .align 2, 0 +_0801E5D4: .4byte gUnknown_02024A60 +_0801E5D8: .4byte gUnknown_02024A68 +_0801E5DC: + ldr r0, _0801E628 @ =gUnknown_02024A60 + ldr r2, _0801E62C @ =gUnknown_02024A68 + ldrb r1, [r2] + strb r1, [r0] + adds r7, r0, 0 + mov r12, r2 +_0801E5E8: + mov r0, r8 + ldrb r2, [r0] + movs r0, 0x58 + adds r1, r2, 0 + muls r1, r0 + mov r0, r9 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0801E600 + b _0801EA14 +_0801E600: + ldrb r0, [r7] + mov r3, r12 + ldrb r3, [r3] + cmp r0, r3 + beq _0801E60C + b _0801EA14 +_0801E60C: + mov r4, r9 + adds r0, r1, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x48 + bne _0801E61A + b _0801EA14 +_0801E61A: + cmp r0, 0xF + bne _0801E620 + b _0801EA14 +_0801E620: + adds r0, r2, 0 + bl b_cancel_multi_turn_move_maybe + b _0801EA04 + .align 2, 0 +_0801E628: .4byte gUnknown_02024A60 +_0801E62C: .4byte gUnknown_02024A68 +_0801E630: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r9 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x11 + bne _0801E688 + cmp r4, 0x1 + beq _0801E64A + cmp r5, 0x80 + bne _0801E688 +_0801E64A: + ldr r0, _0801E678 @ =byte_2024C06 + strb r1, [r0] + mov r3, r8 + ldrb r0, [r3] + movs r1, 0x11 + bl sub_81074C4 + ldr r4, _0801E67C @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801E680 @ =BattleScript_1D98BD +_0801E664: + str r0, [r4] + ldr r2, _0801E684 @ =gUnknown_02024C6C + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _0801E676 + b _0801E928 +_0801E676: + b _0801E94C + .align 2, 0 +_0801E678: .4byte byte_2024C06 +_0801E67C: .4byte gUnknown_02024C10 +_0801E680: .4byte BattleScript_1D98BD +_0801E684: .4byte gUnknown_02024C6C +_0801E688: + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x58 + muls r0, r1 + add r0, r9 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0x3 + beq _0801E6AC + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x3 + beq _0801E6AC + cmp r1, 0x8 + beq _0801E6AC + cmp r0, 0x8 + bne _0801E6C6 +_0801E6AC: + ldr r0, _0801E710 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _0801E6C6 + cmp r4, 0x1 + bne _0801E6C0 + b _0801E98C +_0801E6C0: + cmp r5, 0x80 + bne _0801E6C6 + b _0801E98C +_0801E6C6: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + muls r1, r0 + mov r4, r9 + adds r3, r1, r4 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r4, [r0] + cmp r4, 0x3 + bne _0801E6DE + b _0801EA14 +_0801E6DE: + adds r0, 0x1 + ldrb r0, [r0] + cmp r0, 0x3 + bne _0801E6E8 + b _0801EA14 +_0801E6E8: + cmp r4, 0x8 + bne _0801E6EE + b _0801EA14 +_0801E6EE: + cmp r0, 0x8 + bne _0801E6F4 + b _0801EA14 +_0801E6F4: + mov r0, r9 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0801E702 + b _0801EA14 +_0801E702: + adds r0, r3, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x11 + bne _0801E70E + b _0801EA14 +_0801E70E: + b _0801EA04 + .align 2, 0 +_0801E710: .4byte gUnknown_02024C6C +_0801E714: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + add r0, r9 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x29 + bne _0801E758 + cmp r4, 0x1 + beq _0801E72E + cmp r5, 0x80 + bne _0801E758 +_0801E72E: + ldr r0, _0801E74C @ =byte_2024C06 + strb r1, [r0] + mov r3, r8 + ldrb r0, [r3] + movs r1, 0x29 + bl sub_81074C4 + ldr r4, _0801E750 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801E754 @ =BattleScript_1D98A5 + b _0801E664 + .align 2, 0 +_0801E74C: .4byte byte_2024C06 +_0801E750: .4byte gUnknown_02024C10 +_0801E754: .4byte BattleScript_1D98A5 +_0801E758: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + mov r2, r9 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xA + beq _0801E778 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xA + bne _0801E7A8 +_0801E778: + ldr r0, _0801E79C @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _0801E7A8 + cmp r4, 0x1 + beq _0801E78E + cmp r5, 0x80 + bne _0801E7A8 +_0801E78E: + ldr r4, _0801E7A0 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801E7A4 @ =BattleScript_1D98A5 + b _0801E998 + .align 2, 0 +_0801E79C: .4byte gUnknown_02024C6C +_0801E7A0: .4byte gUnknown_02024C10 +_0801E7A4: .4byte BattleScript_1D98A5 +_0801E7A8: + mov r3, r8 + ldrb r0, [r3] + movs r1, 0x58 + adds r2, r0, 0 + muls r2, r1 + mov r4, r9 + adds r1, r2, r4 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xA + bne _0801E7C2 + b _0801EA14 +_0801E7C2: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xA + bne _0801E7CE + b _0801EA14 +_0801E7CE: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x29 + bne _0801E7DA + b _0801EA14 +_0801E7DA: + mov r0, r9 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0801E7E8 + b _0801EA14 +_0801E7E8: + b _0801EA04 +_0801E7EA: + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0801E826 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0801E826 + ldr r0, _0801E87C @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _0801E826 + movs r1, 0 + str r1, [sp, 0x4] +_0801E826: + ldr r4, _0801E880 @ =gBattleMons + ldr r0, _0801E884 @ =gUnknown_02024C0A + ldrb r3, [r0] + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r1, r2, r4 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xF + bne _0801E840 + b _0801EA14 +_0801E840: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xF + bne _0801E84C + b _0801EA14 +_0801E84C: + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0801E85A + b _0801EA14 +_0801E85A: + ldr r2, [sp, 0x4] + cmp r2, 0 + bne _0801E862 + b _0801EA14 +_0801E862: + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x28 + bne _0801E86E + b _0801EA14 +_0801E86E: + adds r0, r3, 0 + bl b_cancel_multi_turn_move_maybe + movs r3, 0x1 + mov r10, r3 + b _0801EA14 + .align 2, 0 +_0801E87C: .4byte word_2024DB8 +_0801E880: .4byte gBattleMons +_0801E884: .4byte gUnknown_02024C0A +_0801E888: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + mov r2, r9 + adds r0, r1, r2 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0x7 + bne _0801E8D0 + cmp r4, 0x1 + beq _0801E8A6 + cmp r5, 0x80 + beq _0801E8A6 + b _0801EA14 +_0801E8A6: + ldr r0, _0801E8C4 @ =byte_2024C06 + strb r2, [r0] + mov r3, r8 + ldrb r0, [r3] + movs r1, 0x7 + bl sub_81074C4 + ldr r4, _0801E8C8 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801E8CC @ =BattleScript_1D98B1 + b _0801E664 + .align 2, 0 +_0801E8C4: .4byte byte_2024C06 +_0801E8C8: .4byte gUnknown_02024C10 +_0801E8CC: .4byte BattleScript_1D98B1 +_0801E8D0: + mov r0, r9 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0801E8DE + b _0801EA14 +_0801E8DE: + movs r4, 0x1 + mov r10, r4 + b _0801EA14 +_0801E8E4: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r9 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x11 + bne _0801E952 + cmp r4, 0x1 + beq _0801E8FE + cmp r5, 0x80 + bne _0801E952 +_0801E8FE: + ldr r0, _0801E938 @ =byte_2024C06 + strb r1, [r0] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x11 + bl sub_81074C4 + ldr r4, _0801E93C @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801E940 @ =BattleScript_1D98BD + str r0, [r4] + ldr r2, _0801E944 @ =gUnknown_02024C6C + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _0801E94C +_0801E928: + movs r0, 0x1 + strb r0, [r7, 0x5] + ldr r0, _0801E948 @ =0xffffdfff + ands r1, r0 + str r1, [r2] + bl _0801F5FA + .align 2, 0 +_0801E938: .4byte byte_2024C06 +_0801E93C: .4byte gUnknown_02024C10 +_0801E940: .4byte BattleScript_1D98BD +_0801E944: .4byte gUnknown_02024C6C +_0801E948: .4byte 0xffffdfff +_0801E94C: + strb r0, [r7, 0x5] + bl _0801F5FA +_0801E952: + mov r2, r8 + ldrb r0, [r2] + movs r1, 0x58 + muls r0, r1 + add r0, r9 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0x3 + beq _0801E976 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x3 + beq _0801E976 + cmp r1, 0x8 + beq _0801E976 + cmp r0, 0x8 + bne _0801E9B4 +_0801E976: + ldr r0, _0801E9A4 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _0801E9B4 + cmp r4, 0x1 + beq _0801E98C + cmp r5, 0x80 + bne _0801E9B4 +_0801E98C: + ldr r4, _0801E9A8 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801E9AC @ =BattleScript_1D98BD +_0801E998: + str r0, [r4] + ldr r1, _0801E9B0 @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + bl _0801F5FA + .align 2, 0 +_0801E9A4: .4byte gUnknown_02024C6C +_0801E9A8: .4byte gUnknown_02024C10 +_0801E9AC: .4byte BattleScript_1D98BD +_0801E9B0: .4byte gUnknown_02024D1E +_0801E9B4: + mov r3, r8 + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + mov r2, r9 + adds r2, 0x4C + adds r5, r0, r2 + ldr r4, [r5] + cmp r4, 0 + bne _0801EA14 + mov r3, r9 + adds r1, r0, r3 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r3, [r0] + cmp r3, 0x3 + beq _0801EA0A + adds r0, 0x1 + ldrb r0, [r0] + cmp r0, 0x3 + beq _0801EA0A + cmp r3, 0x8 + beq _0801EA0A + cmp r0, 0x8 + beq _0801EA0A + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x11 + beq _0801EA14 + mov r4, r8 + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r6 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x9 + negs r2, r2 + ands r0, r2 + str r0, [r1] +_0801EA04: + movs r0, 0x1 + mov r10, r0 + b _0801EA14 +_0801EA0A: + ldr r0, _0801EA58 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_0801EA14: + mov r1, r10 + cmp r1, 0x1 + beq _0801EA1C + b _0801EB3C +_0801EA1C: + ldr r0, _0801EA5C @ =gUnknown_02024C10 + ldr r0, [r0] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, _0801EA60 @ =gUnknown_081FAB5C + ldr r0, _0801EA64 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r3, [r0] + cmp r3, 0x7 + bne _0801EA70 + bl Random + ldr r2, _0801EA68 @ =gBattleMons + ldr r1, _0801EA6C @ =gUnknown_02024C0A + ldrb r3, [r1] + movs r1, 0x58 + muls r3, r1 + adds r2, 0x4C + adds r3, r2 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x2 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + b _0801EA84 + .align 2, 0 +_0801EA58: .4byte gUnknown_02024C68 +_0801EA5C: .4byte gUnknown_02024C10 +_0801EA60: .4byte gUnknown_081FAB5C +_0801EA64: .4byte gUnknown_02024D1E +_0801EA68: .4byte gBattleMons +_0801EA6C: .4byte gUnknown_02024C0A +_0801EA70: + ldr r2, _0801EAD4 @ =gBattleMons + ldr r0, _0801EAD8 @ =gUnknown_02024C0A + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r2, 0x4C + adds r1, r2 + ldr r0, [r1] + orrs r0, r3 + str r0, [r1] +_0801EA84: + ldr r2, _0801EADC @ =gUnknown_02024C10 + ldr r1, _0801EAE0 @ =gUnknown_081FAC4C + ldr r5, _0801EAE4 @ =gUnknown_02024D1E + ldrb r0, [r5, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r2] + ldr r4, _0801EAE8 @ =gUnknown_02024A60 + ldr r1, _0801EAD8 @ =gUnknown_02024C0A + ldrb r0, [r1] + strb r0, [r4] + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + ldr r1, _0801EAEC @ =gUnknown_02024ACC + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r2, _0801EAF0 @ =gUnknown_02024C6C + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 6 + ands r0, r1 + cmp r0, 0 + beq _0801EAF8 + movs r0, 0x1 + strb r0, [r5, 0x5] + ldr r0, _0801EAF4 @ =0xffffdfff + ands r1, r0 + str r1, [r2] + b _0801EAFA + .align 2, 0 +_0801EAD4: .4byte gBattleMons +_0801EAD8: .4byte gUnknown_02024C0A +_0801EADC: .4byte gUnknown_02024C10 +_0801EAE0: .4byte gUnknown_081FAC4C +_0801EAE4: .4byte gUnknown_02024D1E +_0801EAE8: .4byte gUnknown_02024A60 +_0801EAEC: .4byte gUnknown_02024ACC +_0801EAF0: .4byte gUnknown_02024C6C +_0801EAF4: .4byte 0xffffdfff +_0801EAF8: + strb r0, [r5, 0x5] +_0801EAFA: + ldr r0, _0801EB2C @ =gUnknown_02024D1E + ldrb r2, [r0, 0x3] + adds r7, r0, 0 + cmp r2, 0x2 + beq _0801EB14 + cmp r2, 0x6 + beq _0801EB14 + cmp r2, 0x5 + beq _0801EB14 + cmp r2, 0x3 + beq _0801EB14 + bl _0801F5FA +_0801EB14: + ldr r0, _0801EB30 @ =0x02000000 + ldrb r1, [r7, 0x3] + ldr r2, _0801EB34 @ =0x000160ca + adds r0, r2 + strb r1, [r0] + ldr r2, _0801EB38 @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 7 + bl _0801F4F2 + .align 2, 0 +_0801EB2C: .4byte gUnknown_02024D1E +_0801EB30: .4byte 0x02000000 +_0801EB34: .4byte 0x000160ca +_0801EB38: .4byte gUnknown_02024C6C +_0801EB3C: + mov r3, r10 + cmp r3, 0 + beq _0801EB46 + bl _0801F5FA +_0801EB46: + bl _0801F5DC +_0801EB4A: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + mov r0, r9 + adds r0, 0x50 + adds r1, r0 + ldr r2, _0801EB84 @ =gUnknown_081FAB5C + ldrb r3, [r7, 0x3] + lsls r0, r3, 2 + adds r0, r2 + ldr r1, [r1] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0801EB6E + bl _0801F5DC +_0801EB6E: + subs r0, r3, 0x7 + cmp r0, 0x34 + bls _0801EB78 + bl _0801F5FA +_0801EB78: + lsls r0, 2 + ldr r1, _0801EB88 @ =_0801EB8C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801EB84: .4byte gUnknown_081FAB5C +_0801EB88: .4byte _0801EB8C + .align 2, 0 +_0801EB8C: + .4byte _0801EC60 + .4byte _0801ECD4 + .4byte _0801EE4C + .4byte _0801ED60 + .4byte _0801EDDC + .4byte _0801EE84 + .4byte _0801EECC + .4byte _0801EFA8 + .4byte _0801EFEC + .4byte _0801EFEC + .4byte _0801EFEC + .4byte _0801EFEC + .4byte _0801EFEC + .4byte _0801EFEC + .4byte _0801EFEC + .4byte _0801F040 + .4byte _0801F040 + .4byte _0801F040 + .4byte _0801F040 + .4byte _0801F040 + .4byte _0801F040 + .4byte _0801F040 + .4byte _0801F13C + .4byte _0801F184 + .4byte _0801F1A4 + .4byte _0801F364 + .4byte _0801F3A0 + .4byte _0801F3BC + .4byte _0801F3D4 + .4byte _0801F3EC + .4byte _0801F44C + .4byte _0801F464 + .4byte _0801F094 + .4byte _0801F094 + .4byte _0801F094 + .4byte _0801F094 + .4byte _0801F094 + .4byte _0801F094 + .4byte _0801F094 + .4byte _0801F0E8 + .4byte _0801F0E8 + .4byte _0801F0E8 + .4byte _0801F0E8 + .4byte _0801F0E8 + .4byte _0801F0E8 + .4byte _0801F0E8 + .4byte _0801F4A8 + .4byte _0801F500 + .4byte _0801F5FA + .4byte _0801F5FA + .4byte _0801F5FA + .4byte _0801F5FA + .4byte _0801F5EC +_0801EC60: + mov r1, r8 + ldrb r0, [r1] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + mov r2, r9 + adds r0, r1, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0801EC7A + bl _0801F5DC +_0801EC7A: + mov r4, r9 + adds r4, 0x50 + adds r0, r1, r4 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0801EC8E + bl _0801F5DC +_0801EC8E: + bl Random + mov r3, r8 + ldrb r1, [r3] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + lsls r0, 16 + movs r1, 0xC0 + lsls r1, 10 + ands r1, r0 + lsrs r1, 16 + adds r1, 0x2 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, _0801ECC8 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, _0801ECCC @ =gUnknown_081FAC4C + ldr r0, _0801ECD0 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _0801F5F8 + .align 2, 0 +_0801ECC8: .4byte gUnknown_02024C10 +_0801ECCC: .4byte gUnknown_081FAC4C +_0801ECD0: .4byte gUnknown_02024D1E +_0801ECD4: + mov r0, r8 + ldrb r2, [r0] + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + add r0, r9 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, 0x27 + bne _0801ED18 + cmp r4, 0x1 + beq _0801ECF4 + cmp r5, 0x80 + beq _0801ECF4 + bl _0801F5DC +_0801ECF4: + ldr r0, _0801ED0C @ =byte_2024C06 + strb r1, [r0] + mov r1, r8 + ldrb r0, [r1] + movs r1, 0x27 + bl sub_81074C4 + ldr r1, _0801ED10 @ =gUnknown_02024C10 + ldr r0, _0801ED14 @ =gUnknown_081D98D7 + str r0, [r1] + bl _0801F5FA + .align 2, 0 +_0801ED0C: .4byte byte_2024C06 +_0801ED10: .4byte gUnknown_02024C10 +_0801ED14: .4byte gUnknown_081D98D7 +_0801ED18: + adds r0, r2, 0 + bl sub_801E3B4 + ldr r1, _0801ED54 @ =gUnknown_02024A7E + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bhi _0801ED2E + bl _0801F5DC +_0801ED2E: + mov r2, r8 + ldrb r0, [r2] + adds r2, r0, 0 + muls r2, r6 + mov r0, r9 + adds r0, 0x50 + adds r2, r0 + ldr r1, _0801ED58 @ =gUnknown_081FAB5C + ldr r0, _0801ED5C @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + orrs r1, r0 + str r1, [r2] + bl _0801F5DC + .align 2, 0 +_0801ED54: .4byte gUnknown_02024A7E +_0801ED58: .4byte gUnknown_081FAB5C +_0801ED5C: .4byte gUnknown_02024D1E +_0801ED60: + mov r3, r8 + ldrb r0, [r3] + movs r5, 0x58 + muls r0, r5 + mov r4, r9 + adds r4, 0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, 0x70 + ands r0, r1 + cmp r0, 0 + beq _0801ED7C + bl _0801F5DC +_0801ED7C: + movs r0, 0x80 + lsls r0, 5 + orrs r1, r0 + str r1, [r2] + ldr r1, _0801EDC8 @ =gUnknown_02024C54 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, _0801EDCC @ =gUnknown_02024BE6 + ldrh r1, [r1] + strh r1, [r0] + bl Random + mov r2, r8 + ldrb r1, [r2] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x2 + lsls r1, 4 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r4, _0801EDD0 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, _0801EDD4 @ =gUnknown_081FAC4C + ldr r0, _0801EDD8 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _0801F5F8 + .align 2, 0 +_0801EDC8: .4byte gUnknown_02024C54 +_0801EDCC: .4byte gUnknown_02024BE6 +_0801EDD0: .4byte gUnknown_02024C10 +_0801EDD4: .4byte gUnknown_081FAC4C +_0801EDD8: .4byte gUnknown_02024D1E +_0801EDDC: + ldr r5, _0801EE30 @ =gUnknown_02024C07 + ldrb r0, [r5] + bl battle_get_per_side_status + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _0801EE14 + ldr r4, _0801EE34 @ =gUnknown_02024D1A + ldrh r3, [r4] + ldr r2, _0801EE38 @ =gBattleMons + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + adds r0, r3, r0 + strh r0, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r3, r0 + bls _0801EE14 + ldr r3, _0801EE3C @ =0x0000ffff + adds r0, r3, 0 + strh r0, [r4] +_0801EE14: + ldr r4, _0801EE40 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, _0801EE44 @ =gUnknown_081FAC4C + ldr r0, _0801EE48 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bl _0801F5F8 + .align 2, 0 +_0801EE30: .4byte gUnknown_02024C07 +_0801EE34: .4byte gUnknown_02024D1A +_0801EE38: .4byte gBattleMons +_0801EE3C: .4byte 0x0000ffff +_0801EE40: .4byte gUnknown_02024C10 +_0801EE44: .4byte gUnknown_081FAC4C +_0801EE48: .4byte gUnknown_02024D1E +_0801EE4C: + mov r4, r8 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + mov r1, r9 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _0801EE62 + b _0801F5DC +_0801EE62: + bl Random + ldr r4, _0801EE80 @ =gUnknown_02024D1E + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + adds r0, 0x3 + strb r0, [r4, 0x3] + movs r0, 0 + movs r1, 0 + bl sub_801E3EC + b _0801F5FA + .align 2, 0 +_0801EE80: .4byte gUnknown_02024D1E +_0801EE84: + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r9 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r2] + ldr r1, _0801EEC0 @ =gUnknown_02024C54 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldr r1, _0801EEC4 @ =gUnknown_02024BE6 + ldrh r1, [r1] + strh r1, [r0] + ldr r0, _0801EEC8 @ =gUnknown_02024D28 + ldrb r1, [r2] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1, 0x1] + movs r2, 0x4 + orrs r0, r2 + strb r0, [r1, 0x1] + b _0801F5DC + .align 2, 0 +_0801EEC0: .4byte gUnknown_02024C54 +_0801EEC4: .4byte gUnknown_02024BE6 +_0801EEC8: .4byte gUnknown_02024D28 +_0801EECC: + mov r3, r8 + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + mov r4, r9 + adds r4, 0x50 + adds r0, r4 + ldr r5, [r0] + movs r0, 0xE0 + lsls r0, 8 + ands r5, r0 + cmp r5, 0 + beq _0801EEE8 + b _0801F5DC +_0801EEE8: + bl Random + mov r2, r8 + ldrb r1, [r2] + adds r2, r1, 0 + muls r2, r6 + adds r2, r4 + movs r1, 0x3 + ands r1, r0 + adds r1, 0x3 + lsls r1, 13 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r2, _0801EF80 @ =0x02000000 + mov r3, r8 + ldrb r0, [r3] + lsls r0, 1 + ldr r4, _0801EF84 @ =0x00016004 + adds r0, r4 + adds r0, r2 + ldr r6, _0801EF88 @ =gUnknown_02024BE6 + ldrh r1, [r6] + strb r1, [r0] + ldrb r0, [r3] + lsls r0, 1 + ldr r1, _0801EF8C @ =0x00016005 + adds r0, r1 + adds r0, r2 + ldrh r1, [r6] + lsrs r1, 8 + strb r1, [r0] + ldrb r0, [r3] + ldr r3, _0801EF90 @ =0x00016020 + adds r0, r3 + adds r0, r2 + ldr r1, _0801EF94 @ =gUnknown_02024C07 + ldrb r1, [r1] + strb r1, [r0] + ldr r4, _0801EF98 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, _0801EF9C @ =gUnknown_081FAC4C + ldr r2, _0801EFA0 @ =gUnknown_02024D1E + ldrb r0, [r2, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + str r0, [r4] + strb r5, [r2, 0x5] + ldr r1, _0801EFA4 @ =gUnknown_0840164C + ldrh r0, [r1] + ldrh r4, [r6] + cmp r0, r4 + bne _0801EF5C + b _0801F5FA +_0801EF5C: + adds r3, r1, 0 + adds r1, r6, 0 +_0801EF60: + ldrb r0, [r2, 0x5] + adds r0, 0x1 + strb r0, [r2, 0x5] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x4 + bls _0801EF70 + b _0801F5FA +_0801EF70: + ldrb r0, [r2, 0x5] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + ldrh r4, [r1] + cmp r0, r4 + bne _0801EF60 + b _0801F5FA + .align 2, 0 +_0801EF80: .4byte 0x02000000 +_0801EF84: .4byte 0x00016004 +_0801EF88: .4byte gUnknown_02024BE6 +_0801EF8C: .4byte 0x00016005 +_0801EF90: .4byte 0x00016020 +_0801EF94: .4byte gUnknown_02024C07 +_0801EF98: .4byte gUnknown_02024C10 +_0801EF9C: .4byte gUnknown_081FAC4C +_0801EFA0: .4byte gUnknown_02024D1E +_0801EFA4: .4byte gUnknown_0840164C +_0801EFA8: + ldr r1, _0801EFD8 @ =gUnknown_02024BEC + ldr r0, _0801EFDC @ =gUnknown_02024BF0 + ldr r0, [r0] + cmp r0, 0 + bge _0801EFB4 + adds r0, 0x3 +_0801EFB4: + asrs r0, 2 + str r0, [r1] + cmp r0, 0 + bne _0801EFC0 + movs r0, 0x1 + str r0, [r1] +_0801EFC0: + ldr r4, _0801EFE0 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, _0801EFE4 @ =gUnknown_081FAC4C + ldr r0, _0801EFE8 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _0801F5F8 + .align 2, 0 +_0801EFD8: .4byte gUnknown_02024BEC +_0801EFDC: .4byte gUnknown_02024BF0 +_0801EFE0: .4byte gUnknown_02024C10 +_0801EFE4: .4byte gUnknown_081FAC4C +_0801EFE8: .4byte gUnknown_02024D1E +_0801EFEC: + ldrb r1, [r7, 0x3] + adds r1, 0xF2 + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x10 + adds r2, r6, 0 + movs r3, 0 + bl sub_8025E20 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0801F008 + b _0801F5DC +_0801F008: + ldr r2, _0801F02C @ =0x02000000 + ldrb r1, [r7, 0x3] + movs r0, 0x3F + ands r0, r1 + ldr r4, _0801F030 @ =0x000160a4 + adds r1, r2, r4 + strb r0, [r1] + ldr r0, _0801F034 @ =0x000160a5 + adds r2, r0 + strb r3, [r2] + ldr r4, _0801F038 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F03C @ =gUnknown_081D71E5 + b _0801F5F8 + .align 2, 0 +_0801F02C: .4byte 0x02000000 +_0801F030: .4byte 0x000160a4 +_0801F034: .4byte 0x000160a5 +_0801F038: .4byte gUnknown_02024C10 +_0801F03C: .4byte gUnknown_081D71E5 +_0801F040: + movs r0, 0x70 + negs r0, r0 + ldrb r1, [r7, 0x3] + adds r1, 0xEB + lsls r1, 24 + lsrs r1, 24 + adds r2, r6, 0 + movs r3, 0 + bl sub_8025E20 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0801F05E + b _0801F5DC +_0801F05E: + ldr r2, _0801F080 @ =0x02000000 + ldrb r1, [r7, 0x3] + movs r0, 0x3F + ands r0, r1 + ldr r4, _0801F084 @ =0x000160a4 + adds r1, r2, r4 + strb r0, [r1] + ldr r0, _0801F088 @ =0x000160a5 + adds r2, r0 + strb r3, [r2] + ldr r4, _0801F08C @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F090 @ =gUnknown_081D7276 + b _0801F5F8 + .align 2, 0 +_0801F080: .4byte 0x02000000 +_0801F084: .4byte 0x000160a4 +_0801F088: .4byte 0x000160a5 +_0801F08C: .4byte gUnknown_02024C10 +_0801F090: .4byte gUnknown_081D7276 +_0801F094: + ldrb r1, [r7, 0x3] + adds r1, 0xDA + lsls r1, 24 + lsrs r1, 24 + movs r0, 0x20 + adds r2, r6, 0 + movs r3, 0 + bl sub_8025E20 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0801F0B0 + b _0801F5DC +_0801F0B0: + ldr r2, _0801F0D4 @ =0x02000000 + ldrb r1, [r7, 0x3] + movs r0, 0x3F + ands r0, r1 + ldr r4, _0801F0D8 @ =0x000160a4 + adds r1, r2, r4 + strb r0, [r1] + ldr r0, _0801F0DC @ =0x000160a5 + adds r2, r0 + strb r3, [r2] + ldr r4, _0801F0E0 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F0E4 @ =gUnknown_081D71E5 + b _0801F5F8 + .align 2, 0 +_0801F0D4: .4byte 0x02000000 +_0801F0D8: .4byte 0x000160a4 +_0801F0DC: .4byte 0x000160a5 +_0801F0E0: .4byte gUnknown_02024C10 +_0801F0E4: .4byte gUnknown_081D71E5 +_0801F0E8: + movs r0, 0x60 + negs r0, r0 + ldrb r1, [r7, 0x3] + adds r1, 0xD3 + lsls r1, 24 + lsrs r1, 24 + adds r2, r6, 0 + movs r3, 0 + bl sub_8025E20 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0 + beq _0801F106 + b _0801F5DC +_0801F106: + ldr r2, _0801F128 @ =0x02000000 + ldrb r1, [r7, 0x3] + movs r0, 0x3F + ands r0, r1 + ldr r4, _0801F12C @ =0x000160a4 + adds r1, r2, r4 + strb r0, [r1] + ldr r0, _0801F130 @ =0x000160a5 + adds r2, r0 + strb r3, [r2] + ldr r4, _0801F134 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F138 @ =gUnknown_081D7276 + b _0801F5F8 + .align 2, 0 +_0801F128: .4byte 0x02000000 +_0801F12C: .4byte 0x000160a4 +_0801F130: .4byte 0x000160a5 +_0801F134: .4byte gUnknown_02024C10 +_0801F138: .4byte gUnknown_081D7276 +_0801F13C: + mov r2, r8 + ldrb r1, [r2] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r9 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 15 + orrs r0, r1 + str r0, [r2] + ldr r2, _0801F178 @ =gUnknown_02024CA8 + mov r3, r8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x2 + strb r1, [r0, 0x19] + ldr r1, _0801F17C @ =gUnknown_02024C54 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, _0801F180 @ =gUnknown_02024BE6 + ldrh r1, [r1] + strh r1, [r0] + b _0801F5DC + .align 2, 0 +_0801F178: .4byte gUnknown_02024CA8 +_0801F17C: .4byte gUnknown_02024C54 +_0801F180: .4byte gUnknown_02024BE6 +_0801F184: + ldr r0, _0801F1A0 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r9 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 16 +_0801F19A: + orrs r0, r1 + str r0, [r2] + b _0801F5DC + .align 2, 0 +_0801F1A0: .4byte gUnknown_02024C07 +_0801F1A4: + ldr r4, _0801F254 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r6, r0, 24 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0801F1D8 + ldr r0, _0801F258 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0801F25C @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _0801F214 + ldr r0, _0801F260 @ =gTrainerBattleOpponent + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _0801F1D8 + b _0801F5DC +_0801F1D8: + ldr r0, _0801F258 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0801F25C @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _0801F214 + ldr r0, _0801F260 @ =gTrainerBattleOpponent + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _0801F214 + ldr r0, _0801F264 @ =gUnknown_02024DBC + adds r0, 0x29 + adds r0, r6, r0 + ldrb r1, [r0] + ldr r3, _0801F268 @ =gBitTable + ldr r2, _0801F26C @ =gUnknown_02024A6A + ldr r0, _0801F254 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0801F214 + b _0801F5DC +_0801F214: + ldr r2, _0801F270 @ =gBattleMons + ldr r1, _0801F274 @ =gUnknown_02024C08 + ldrb r0, [r1] + movs r3, 0x58 + muls r0, r3 + adds r4, r0, r2 + ldrh r0, [r4, 0x2E] + adds r7, r1, 0 + mov r9, r2 + cmp r0, 0 + beq _0801F284 + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3C + bne _0801F284 + ldr r1, _0801F278 @ =gUnknown_02024C10 + ldr r0, _0801F27C @ =gUnknown_081D9913 + str r0, [r1] + ldr r1, _0801F280 @ =byte_2024C06 + ldrb r0, [r7] + muls r0, r3 + add r0, r9 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl sub_81074C4 + b _0801F5FA + .align 2, 0 +_0801F254: .4byte gUnknown_02024C07 +_0801F258: .4byte gUnknown_020239F8 +_0801F25C: .4byte 0x00000902 +_0801F260: .4byte gTrainerBattleOpponent +_0801F264: .4byte gUnknown_02024DBC +_0801F268: .4byte gBitTable +_0801F26C: .4byte gUnknown_02024A6A +_0801F270: .4byte gBattleMons +_0801F274: .4byte gUnknown_02024C08 +_0801F278: .4byte gUnknown_02024C10 +_0801F27C: .4byte gUnknown_081D9913 +_0801F280: .4byte byte_2024C06 +_0801F284: + ldr r4, _0801F340 @ =gUnknown_02024C07 + mov r10, r4 + ldrb r1, [r4] + movs r0, 0x58 + mov r8, r0 + mov r0, r8 + muls r0, r1 + add r0, r9 + ldrh r3, [r0, 0x2E] + cmp r3, 0 + beq _0801F29C + b _0801F5DC +_0801F29C: + ldrb r0, [r7] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + ldrh r2, [r0, 0x2E] + adds r0, r2, 0 + cmp r0, 0xAF + bne _0801F2B0 + b _0801F5DC +_0801F2B0: + cmp r0, 0 + bne _0801F2B6 + b _0801F5DC +_0801F2B6: + lsls r0, r1, 1 + ldr r5, _0801F344 @ =0x020160f0 + adds r0, r5 + ldr r1, _0801F348 @ =gUnknown_02024C04 + strh r2, [r0] + strh r2, [r1] + ldrb r0, [r7] + mov r4, r8 + muls r4, r0 + adds r0, r4, 0 + add r0, r9 + movs r6, 0 + strh r3, [r0, 0x2E] + ldr r4, _0801F34C @ =gUnknown_02024A60 + mov r2, r10 + ldrb r0, [r2] + strb r0, [r4] + str r1, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + mov r3, r10 + ldrb r0, [r3] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r7] + strb r0, [r4] + ldrb r0, [r7] + mov r4, r8 + muls r4, r0 + adds r0, r4, 0 + mov r1, r9 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r4, _0801F350 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F354 @ =gUnknown_081D96F6 + str r0, [r4] + ldr r0, _0801F358 @ =0xfffe9f10 + adds r5, r0 + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _0801F35C @ =0x000160e8 + adds r0, r1 + adds r0, r5 + strb r6, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r2, _0801F360 @ =0x000160e9 + adds r0, r2 + adds r0, r5 + strb r6, [r0] + b _0801F5FA + .align 2, 0 +_0801F340: .4byte gUnknown_02024C07 +_0801F344: .4byte 0x020160f0 +_0801F348: .4byte gUnknown_02024C04 +_0801F34C: .4byte gUnknown_02024A60 +_0801F350: .4byte gUnknown_02024C10 +_0801F354: .4byte gUnknown_081D96F6 +_0801F358: .4byte 0xfffe9f10 +_0801F35C: .4byte 0x000160e8 +_0801F360: .4byte 0x000160e9 +_0801F364: + ldr r3, _0801F394 @ =gUnknown_02024C08 + ldrb r1, [r3] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r9 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 19 + orrs r0, r1 + str r0, [r2] + ldr r2, _0801F398 @ =gUnknown_02024CA8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _0801F39C @ =gUnknown_02024C07 + ldrb r1, [r1] + strb r1, [r0, 0x14] + b _0801F5DC + .align 2, 0 +_0801F394: .4byte gUnknown_02024C08 +_0801F398: .4byte gUnknown_02024CA8 +_0801F39C: .4byte gUnknown_02024C07 +_0801F3A0: + ldr r0, _0801F3B8 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + mov r0, r9 + adds r0, 0x50 + adds r2, r0 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 20 + b _0801F19A + .align 2, 0 +_0801F3B8: .4byte gUnknown_02024C08 +_0801F3BC: + ldr r4, _0801F3CC @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F3D0 @ =gUnknown_081D9224 + b _0801F5F8 + .align 2, 0 +_0801F3CC: .4byte gUnknown_02024C10 +_0801F3D0: .4byte gUnknown_081D9224 +_0801F3D4: + ldr r4, _0801F3E4 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F3E8 @ =gUnknown_081D92C0 + b _0801F5F8 + .align 2, 0 +_0801F3E4: .4byte gUnknown_02024C10 +_0801F3E8: .4byte gUnknown_081D92C0 +_0801F3EC: + ldr r6, _0801F43C @ =gUnknown_02024C08 + ldrb r0, [r6] + movs r2, 0x58 + muls r0, r2 + mov r1, r9 + adds r1, 0x4C + adds r5, r0, r1 + ldr r4, [r5] + movs r0, 0x40 + ands r0, r4 + cmp r0, 0 + bne _0801F406 + b _0801F5DC +_0801F406: + movs r0, 0x41 + negs r0, r0 + ands r4, r0 + str r4, [r5] + ldr r4, _0801F440 @ =gUnknown_02024A60 + ldrb r0, [r6] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r4, _0801F444 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F448 @ =gUnknown_081D9635 + b _0801F5F8 + .align 2, 0 +_0801F43C: .4byte gUnknown_02024C08 +_0801F440: .4byte gUnknown_02024A60 +_0801F444: .4byte gUnknown_02024C10 +_0801F448: .4byte gUnknown_081D9635 +_0801F44C: + ldr r4, _0801F45C @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F460 @ =gUnknown_081D93FA + b _0801F5F8 + .align 2, 0 +_0801F45C: .4byte gUnknown_02024C10 +_0801F460: .4byte gUnknown_081D93FA +_0801F464: + ldr r4, _0801F494 @ =gUnknown_02024BEC + ldr r0, _0801F498 @ =gUnknown_02024BF0 + ldr r0, [r0] + movs r1, 0x3 + bl __divsi3 + str r0, [r4] + cmp r0, 0 + bne _0801F47A + movs r0, 0x1 + str r0, [r4] +_0801F47A: + ldr r4, _0801F49C @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r1, _0801F4A0 @ =gUnknown_081FAC4C + ldr r0, _0801F4A4 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + b _0801F5F8 + .align 2, 0 +_0801F494: .4byte gUnknown_02024BEC +_0801F498: .4byte gUnknown_02024BF0 +_0801F49C: .4byte gUnknown_02024C10 +_0801F4A0: .4byte gUnknown_081FAC4C +_0801F4A4: .4byte gUnknown_02024D1E +_0801F4A8: + mov r3, r8 + ldrb r0, [r3] + movs r5, 0x58 + muls r0, r5 + mov r4, r9 + adds r4, 0x50 + adds r2, r0, r4 + ldr r1, [r2] + movs r0, 0xC0 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _0801F4C4 + b _0801F5DC +_0801F4C4: + movs r0, 0x80 + lsls r0, 5 + orrs r1, r0 + str r1, [r2] + ldr r1, _0801F4F8 @ =gUnknown_02024C54 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, _0801F4FC @ =gUnknown_02024BE6 + ldrh r1, [r1] + strh r1, [r0] + bl Random + mov r2, r8 + ldrb r1, [r2] + adds r2, r1, 0 + muls r2, r5 + adds r2, r4 + movs r1, 0x1 + ands r1, r0 + adds r1, 0x2 + lsls r1, 10 + ldr r0, [r2] +_0801F4F2: + orrs r0, r1 + str r0, [r2] + b _0801F5FA + .align 2, 0 +_0801F4F8: .4byte gUnknown_02024C54 +_0801F4FC: .4byte gUnknown_02024BE6 +_0801F500: + mov r5, r8 + ldrb r3, [r5] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + mov r2, r9 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0x3C + bne _0801F540 + ldrh r0, [r1, 0x2E] + cmp r0, 0 + beq _0801F5DC + ldr r0, _0801F534 @ =byte_2024C06 + strb r2, [r0] + ldr r1, _0801F538 @ =gUnknown_02024C10 + ldr r0, _0801F53C @ =gUnknown_081D9913 + str r0, [r1] + ldrb r0, [r5] + movs r1, 0x3C + bl sub_81074C4 + b _0801F5FA + .align 2, 0 +_0801F534: .4byte byte_2024C06 +_0801F538: .4byte gUnknown_02024C10 +_0801F53C: .4byte gUnknown_081D9913 +_0801F540: + ldrh r0, [r1, 0x2E] + cmp r0, 0 + beq _0801F5DC + adds r0, r3, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0801F5B8 @ =gUnknown_02024C04 + mov r3, r8 + ldrb r0, [r3] + muls r0, r4 + add r0, r9 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + ldrb r0, [r3] + muls r0, r4 + add r0, r9 + movs r5, 0 + movs r1, 0 + strh r1, [r0, 0x2E] + ldr r2, _0801F5BC @ =gUnknown_02024DBC + adds r2, 0x29 + adds r2, r6, r2 + ldr r3, _0801F5C0 @ =gBitTable + ldr r1, _0801F5C4 @ =gUnknown_02024A6A + mov r4, r8 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r4, _0801F5C8 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F5CC @ =gUnknown_081D944B + str r0, [r4] + ldr r1, _0801F5D0 @ =0x02000000 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + ldr r3, _0801F5D4 @ =0x000160e8 + adds r0, r3 + adds r0, r1 + strb r5, [r0] + ldrb r0, [r2] + lsls r0, 1 + ldr r4, _0801F5D8 @ =0x000160e9 + adds r0, r4 + adds r0, r1 + strb r5, [r0] + b _0801F5FA + .align 2, 0 +_0801F5B8: .4byte gUnknown_02024C04 +_0801F5BC: .4byte gUnknown_02024DBC +_0801F5C0: .4byte gBitTable +_0801F5C4: .4byte gUnknown_02024A6A +_0801F5C8: .4byte gUnknown_02024C10 +_0801F5CC: .4byte gUnknown_081D944B +_0801F5D0: .4byte 0x02000000 +_0801F5D4: .4byte 0x000160e8 +_0801F5D8: .4byte 0x000160e9 +_0801F5DC: + ldr r1, _0801F5E8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + b _0801F5FA + .align 2, 0 +_0801F5E8: .4byte gUnknown_02024C10 +_0801F5EC: + ldr r4, _0801F60C @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _0801F610 @ =gUnknown_081D94B0 +_0801F5F8: + str r0, [r4] +_0801F5FA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801F60C: .4byte gUnknown_02024C10 +_0801F610: .4byte gUnknown_081D94B0 + thumb_func_end sub_801E3EC + + thumb_func_start atk15_seteffectwithchancetarget +atk15_seteffectwithchancetarget: @ 801F614 + push {r4,lr} + ldr r2, _0801F640 @ =gBattleMons + ldr r0, _0801F644 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x20 + bne _0801F650 + ldr r2, _0801F648 @ =gBattleMoves + ldr r0, _0801F64C @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x5] + lsls r4, r0, 1 + b _0801F660 + .align 2, 0 +_0801F640: .4byte gBattleMons +_0801F644: .4byte gUnknown_02024C07 +_0801F648: .4byte gBattleMoves +_0801F64C: .4byte gUnknown_02024BE6 +_0801F650: + ldr r2, _0801F680 @ =gBattleMoves + ldr r0, _0801F684 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r4, [r0, 0x5] +_0801F660: + ldr r3, _0801F688 @ =gUnknown_02024D1E + ldrb r2, [r3, 0x3] + movs r0, 0x80 + ands r0, r2 + cmp r0, 0 + beq _0801F690 + ldr r0, _0801F68C @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801F690 + movs r0, 0x7F + ands r0, r2 + strb r0, [r3, 0x3] + b _0801F6BE + .align 2, 0 +_0801F680: .4byte gBattleMoves +_0801F684: .4byte gUnknown_02024BE6 +_0801F688: .4byte gUnknown_02024D1E +_0801F68C: .4byte gUnknown_02024C68 +_0801F690: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r4 + bhi _0801F6DA + ldr r0, _0801F6C8 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x3] + cmp r0, 0 + beq _0801F6DA + ldr r0, _0801F6CC @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0801F6DA + cmp r4, 0x63 + bls _0801F6D0 +_0801F6BE: + movs r0, 0 + movs r1, 0x80 + bl sub_801E3EC + b _0801F6E2 + .align 2, 0 +_0801F6C8: .4byte gUnknown_02024D1E +_0801F6CC: .4byte gUnknown_02024C68 +_0801F6D0: + movs r0, 0 + movs r1, 0 + bl sub_801E3EC + b _0801F6E2 +_0801F6DA: + ldr r1, _0801F6F8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0801F6E2: + ldr r0, _0801F6FC @ =gUnknown_02024D1E + movs r1, 0 + strb r1, [r0, 0x3] + ldr r0, _0801F700 @ =0x02000000 + ldr r2, _0801F704 @ =0x00016112 + adds r0, r2 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801F6F8: .4byte gUnknown_02024C10 +_0801F6FC: .4byte gUnknown_02024D1E +_0801F700: .4byte 0x02000000 +_0801F704: .4byte 0x00016112 + thumb_func_end atk15_seteffectwithchancetarget + + thumb_func_start sub_801F708 +sub_801F708: @ 801F708 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl sub_801E3EC + pop {r0} + bx r0 + thumb_func_end sub_801F708 + + thumb_func_start sub_801F718 +sub_801F718: @ 801F718 + push {lr} + movs r0, 0 + movs r1, 0 + bl sub_801E3EC + pop {r0} + bx r0 + thumb_func_end sub_801F718 + + thumb_func_start sub_801F728 +sub_801F728: @ 801F728 + push {lr} + ldr r0, _0801F74C @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r2, _0801F750 @ =gUnknown_02024A60 + strb r0, [r2] + ldr r3, _0801F754 @ =gUnknown_02024D1E + ldrb r0, [r3, 0x3] + cmp r0, 0x6 + bhi _0801F75C + ldr r1, _0801F758 @ =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x4C + b _0801F766 + .align 2, 0 +_0801F74C: .4byte gUnknown_02024C10 +_0801F750: .4byte gUnknown_02024A60 +_0801F754: .4byte gUnknown_02024D1E +_0801F758: .4byte gBattleMons +_0801F75C: + ldr r1, _0801F794 @ =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 +_0801F766: + adds r2, r1 + ldr r1, _0801F798 @ =gUnknown_081FAB5C + ldrb r0, [r3, 0x3] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r0, _0801F79C @ =gUnknown_02024D1E + movs r2, 0 + strb r2, [r0, 0x3] + ldr r1, _0801F7A0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + ldr r0, _0801F7A4 @ =0x02000000 + ldr r1, _0801F7A8 @ =0x00016112 + adds r0, r1 + strb r2, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0801F794: .4byte gBattleMons +_0801F798: .4byte gUnknown_081FAB5C +_0801F79C: .4byte gUnknown_02024D1E +_0801F7A0: .4byte gUnknown_02024C10 +_0801F7A4: .4byte 0x02000000 +_0801F7A8: .4byte 0x00016112 + thumb_func_end sub_801F728 + + thumb_func_start sub_801F7AC +sub_801F7AC: @ 801F7AC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _0801F81C @ =gUnknown_02024C10 + ldr r2, [r0] + ldrb r1, [r2, 0x2] + adds r6, r0, 0 + cmp r1, 0 + beq _0801F834 + ldrb r0, [r2, 0x1] + bl sub_8015150 + ldr r5, _0801F820 @ =gUnknown_02024A60 + strb r0, [r5] + ldr r2, _0801F824 @ =gUnknown_02024C6C + ldr r1, _0801F828 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _0801F7E6 + b _0801FB1C +_0801F7E6: + ldr r1, [r6] + ldrb r4, [r1, 0x3] + ldrb r0, [r1, 0x4] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x5] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x6] + lsls r0, 24 + orrs r4, r0 + bl b_movescr_stack_pop_cursor + str r4, [r6] + ldrb r0, [r5] + bl battle_side_get_owner + ldr r1, _0801F82C @ =gUnknown_02024C7A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r2, [r0] + ldr r1, _0801F830 @ =0x0000fdff + ands r1, r2 + strh r1, [r0] + b _0801FB22 + .align 2, 0 +_0801F81C: .4byte gUnknown_02024C10 +_0801F820: .4byte gUnknown_02024A60 +_0801F824: .4byte gUnknown_02024C6C +_0801F828: .4byte gBitTable +_0801F82C: .4byte gUnknown_02024C7A +_0801F830: .4byte 0x0000fdff +_0801F834: + ldrb r0, [r2, 0x1] + cmp r0, 0x1 + bne _0801F85C + ldr r1, _0801F84C @ =gUnknown_02024A60 + ldr r0, _0801F850 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0801F854 @ =gUnknown_02024C08 + ldrb r7, [r0] + ldr r4, _0801F858 @ =gUnknown_081D8C58 + b _0801F86A + .align 2, 0 +_0801F84C: .4byte gUnknown_02024A60 +_0801F850: .4byte gUnknown_02024C07 +_0801F854: .4byte gUnknown_02024C08 +_0801F858: .4byte gUnknown_081D8C58 +_0801F85C: + ldr r1, _0801F954 @ =gUnknown_02024A60 + ldr r0, _0801F958 @ =gUnknown_02024C08 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _0801F95C @ =gUnknown_02024C07 + ldrb r7, [r0] + ldr r4, _0801F960 @ =gUnknown_081D8C65 +_0801F86A: + ldr r0, _0801F964 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r0, _0801F968 @ =gBitTable + mov r12, r0 + ldr r2, _0801F954 @ =gUnknown_02024A60 + mov r8, r2 + ldrb r2, [r2] + lsls r0, r2, 2 + add r0, r12 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0801F886 + b _0801FB1C +_0801F886: + ldr r3, _0801F96C @ =gBattleMons + mov r10, r3 + movs r5, 0x58 + mov r9, r5 + mov r0, r9 + muls r0, r2 + add r0, r10 + ldrh r3, [r0, 0x28] + cmp r3, 0 + beq _0801F89C + b _0801FB1C +_0801F89C: + ldr r2, _0801F970 @ =0x02000000 + lsls r1, r7, 1 + ldr r5, _0801F974 @ =0x000160ac + adds r0, r1, r5 + adds r0, r2 + strb r3, [r0] + ldr r0, _0801F978 @ =0x000160ad + adds r1, r0 + adds r1, r2 + strb r3, [r1] + lsls r1, r7, 2 + adds r5, 0x54 + adds r0, r1, r5 + adds r0, r2 + strb r3, [r0] + adds r5, 0x1 + adds r0, r1, r5 + adds r0, r2 + strb r3, [r0] + adds r5, 0x1 + adds r0, r1, r5 + adds r0, r2 + strb r3, [r0] + ldr r0, _0801F97C @ =0x00016103 + adds r1, r0 + adds r1, r2 + strb r3, [r1] + ldr r5, _0801F980 @ =gUnknown_02024C6C + mov r1, r8 + ldrb r0, [r1] + lsls r0, 2 + add r0, r12 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r5] + orrs r0, r1 + str r0, [r5] + ldr r0, [r6] + adds r0, 0x7 + bl b_movescr_stack_push + str r4, [r6] + mov r2, r8 + ldrb r0, [r2] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0801F9B0 + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 15 + orrs r0, r1 + str r0, [r5] + ldr r1, _0801F984 @ =gUnknown_030042E0 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _0801F914 + adds r0, 0x1 + strb r0, [r1] +_0801F914: + mov r0, r9 + muls r0, r7 + add r0, r10 + adds r3, r0, 0 + adds r3, 0x2A + mov r4, r8 + ldrb r2, [r4] + mov r0, r9 + muls r0, r2 + add r0, r10 + adds r1, r0, 0 + adds r1, 0x2A + ldrb r0, [r3] + ldrb r5, [r1] + cmp r0, r5 + bls _0801F9CC + ldrb r1, [r1] + subs r0, r1 + cmp r0, 0x1D + ble _0801F990 + ldr r1, _0801F988 @ =gUnknown_02024A6A + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0801F98C @ =gPlayerParty + adds r0, r1 + movs r1, 0x8 + bl AdjustFriendship + b _0801F9CC + .align 2, 0 +_0801F954: .4byte gUnknown_02024A60 +_0801F958: .4byte gUnknown_02024C08 +_0801F95C: .4byte gUnknown_02024C07 +_0801F960: .4byte gUnknown_081D8C65 +_0801F964: .4byte gUnknown_02024C0C +_0801F968: .4byte gBitTable +_0801F96C: .4byte gBattleMons +_0801F970: .4byte 0x02000000 +_0801F974: .4byte 0x000160ac +_0801F978: .4byte 0x000160ad +_0801F97C: .4byte 0x00016103 +_0801F980: .4byte gUnknown_02024C6C +_0801F984: .4byte gUnknown_030042E0 +_0801F988: .4byte gUnknown_02024A6A +_0801F98C: .4byte gPlayerParty +_0801F990: + ldr r1, _0801F9A8 @ =gUnknown_02024A6A + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0801F9AC @ =gPlayerParty + adds r0, r1 + movs r1, 0x6 + bl AdjustFriendship + b _0801F9CC + .align 2, 0 +_0801F9A8: .4byte gUnknown_02024A6A +_0801F9AC: .4byte gPlayerParty +_0801F9B0: + ldr r1, _0801FAE0 @ =gUnknown_030042E0 + ldrb r0, [r1, 0x1] + cmp r0, 0xFE + bhi _0801F9BC + adds r0, 0x1 + strb r0, [r1, 0x1] +_0801F9BC: + ldr r2, _0801FAE4 @ =gUnknown_02024A60 + ldrb r0, [r2] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + add r0, r10 + ldrh r0, [r0] + strh r0, [r1, 0x20] +_0801F9CC: + ldr r0, _0801FAE8 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0801FA02 + ldr r6, _0801FAEC @ =gBattleMons + ldr r0, _0801FAF0 @ =gUnknown_02024C07 + ldrb r0, [r0] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801FA02 + ldr r4, _0801FAF4 @ =gUnknown_02024C10 + ldr r0, [r4] + bl b_movescr_stack_push + ldr r1, _0801FAF8 @ =gUnknown_02024BEC + adds r0, r7, 0 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x28] + str r0, [r1] + ldr r0, _0801FAFC @ =gUnknown_081D9156 + str r0, [r4] +_0801FA02: + ldr r1, _0801FB00 @ =gUnknown_02024C98 + ldr r6, _0801FB04 @ =gUnknown_02024C08 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 7 + ands r0, r1 + cmp r0, 0 + bne _0801FA1A + b _0801FB22 +_0801FA1A: + ldr r0, _0801FAE8 @ =gUnknown_02024C6C + ldr r5, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r5, r0 + cmp r5, 0 + bne _0801FB22 + ldr r4, _0801FAF0 @ =gUnknown_02024C07 + mov r8, r4 + ldrb r0, [r4] + bl battle_side_get_owner + adds r4, r0, 0 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _0801FB22 + ldr r0, _0801FAEC @ =gBattleMons + mov r9, r0 + mov r1, r8 + ldrb r2, [r1] + movs r7, 0x58 + adds r3, r2, 0 + muls r3, r7 + adds r0, r3, r0 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801FB22 + ldr r0, _0801FB08 @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xA5 + beq _0801FB22 + ldr r1, _0801FB0C @ =0x02000000 + ldr r4, _0801FB10 @ =0x0001608c + adds r0, r2, r4 + adds r0, r1 + ldrb r4, [r0] + adds r0, r4, r3 + mov r6, r9 + adds r6, 0x24 + adds r0, r6 + strb r5, [r0] + ldr r5, _0801FAF4 @ =gUnknown_02024C10 + ldr r0, [r5] + bl b_movescr_stack_push + ldr r0, _0801FB14 @ =gUnknown_081D9468 + str r0, [r5] + ldr r5, _0801FAE4 @ =gUnknown_02024A60 + mov r1, r8 + ldrb r0, [r1] + strb r0, [r5] + adds r1, r4, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + ldrb r0, [r5] + muls r0, r7 + adds r0, r6 + adds r0, r4 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0801FB18 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + lsls r4, 1 + mov r2, r8 + ldrb r0, [r2] + muls r0, r7 + adds r0, r4, r0 + mov r2, r9 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + mov r3, r8 + ldrb r0, [r3] + muls r0, r7 + adds r4, r0 + adds r4, r2 + ldrh r0, [r4] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + b _0801FB22 + .align 2, 0 +_0801FAE0: .4byte gUnknown_030042E0 +_0801FAE4: .4byte gUnknown_02024A60 +_0801FAE8: .4byte gUnknown_02024C6C +_0801FAEC: .4byte gBattleMons +_0801FAF0: .4byte gUnknown_02024C07 +_0801FAF4: .4byte gUnknown_02024C10 +_0801FAF8: .4byte gUnknown_02024BEC +_0801FAFC: .4byte gUnknown_081D9156 +_0801FB00: .4byte gUnknown_02024C98 +_0801FB04: .4byte gUnknown_02024C08 +_0801FB08: .4byte gUnknown_02024BE6 +_0801FB0C: .4byte 0x02000000 +_0801FB10: .4byte 0x0001608c +_0801FB14: .4byte gUnknown_081D9468 +_0801FB18: .4byte gUnknown_030041C0 +_0801FB1C: + ldr r0, [r6] + adds r0, 0x7 + str r0, [r6] +_0801FB22: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_801F7AC + + thumb_func_start sub_801FB34 +sub_801FB34: @ 801FB34 + push {r4,r5,lr} + ldr r0, _0801FB64 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0801FB5E + ldr r5, _0801FB68 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _0801FB6C @ =gUnknown_02024A60 + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x0A_A_A_A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_0801FB5E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801FB64: .4byte gUnknown_02024A64 +_0801FB68: .4byte gUnknown_02024C10 +_0801FB6C: .4byte gUnknown_02024A60 + thumb_func_end sub_801FB34 + + thumb_func_start atkE2_cmde2 +atkE2_cmde2: @ 801FB70 + push {r4-r6,lr} + sub sp, 0x4 + ldr r0, _0801FBC4 @ =gUnknown_02024A64 + ldr r6, [r0] + cmp r6, 0 + bne _0801FBBC + ldr r5, _0801FBC8 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _0801FBCC @ =gUnknown_02024A60 + strb r0, [r4] + ldr r1, _0801FBD0 @ =gBattleMons + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + str r6, [r0] + ldrb r0, [r4] + muls r0, r2 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + bl sub_8010F48 + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_0801FBBC: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801FBC4: .4byte gUnknown_02024A64 +_0801FBC8: .4byte gUnknown_02024C10 +_0801FBCC: .4byte gUnknown_02024A60 +_0801FBD0: .4byte gBattleMons + thumb_func_end atkE2_cmde2 + + thumb_func_start atk1C_jumpifstatus +atk1C_jumpifstatus: @ 801FBD4 + push {r4,r5,lr} + ldr r5, _0801FC30 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [r5] + ldrb r4, [r2, 0x2] + ldrb r1, [r2, 0x3] + lsls r1, 8 + adds r4, r1 + ldrb r1, [r2, 0x4] + lsls r1, 16 + adds r4, r1 + ldrb r1, [r2, 0x5] + lsls r1, 24 + adds r4, r1 + ldrb r3, [r2, 0x6] + ldrb r1, [r2, 0x7] + lsls r1, 8 + adds r3, r1 + ldrb r1, [r2, 0x8] + lsls r1, 16 + adds r3, r1 + ldrb r1, [r2, 0x9] + lsls r1, 24 + adds r3, r1 + ldr r2, _0801FC34 @ =gBattleMons + movs r1, 0x58 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _0801FC38 + adds r0, r1, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801FC38 + str r3, [r5] + b _0801FC40 + .align 2, 0 +_0801FC30: .4byte gUnknown_02024C10 +_0801FC34: .4byte gBattleMons +_0801FC38: + ldr r1, _0801FC48 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_0801FC40: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801FC48: .4byte gUnknown_02024C10 + thumb_func_end atk1C_jumpifstatus + + thumb_func_start atk1D_jumpifsecondarystatus +atk1D_jumpifsecondarystatus: @ 801FC4C + push {r4,r5,lr} + ldr r5, _0801FCA8 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + lsls r0, 24 + lsrs r0, 24 + ldr r2, [r5] + ldrb r4, [r2, 0x2] + ldrb r1, [r2, 0x3] + lsls r1, 8 + adds r4, r1 + ldrb r1, [r2, 0x4] + lsls r1, 16 + adds r4, r1 + ldrb r1, [r2, 0x5] + lsls r1, 24 + adds r4, r1 + ldrb r3, [r2, 0x6] + ldrb r1, [r2, 0x7] + lsls r1, 8 + adds r3, r1 + ldrb r1, [r2, 0x8] + lsls r1, 16 + adds r3, r1 + ldrb r1, [r2, 0x9] + lsls r1, 24 + adds r3, r1 + ldr r2, _0801FCAC @ =gBattleMons + movs r1, 0x58 + muls r1, r0 + adds r0, r2, 0 + adds r0, 0x50 + adds r0, r1, r0 + ldr r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _0801FCB0 + adds r0, r1, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0801FCB0 + str r3, [r5] + b _0801FCB8 + .align 2, 0 +_0801FCA8: .4byte gUnknown_02024C10 +_0801FCAC: .4byte gBattleMons +_0801FCB0: + ldr r1, _0801FCC0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] +_0801FCB8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801FCC0: .4byte gUnknown_02024C10 + thumb_func_end atk1D_jumpifsecondarystatus + + thumb_func_start atk1E_jumpifability +atk1E_jumpifability: @ 801FCC4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r6, _0801FD18 @ =gUnknown_02024C10 + ldr r2, [r6] + ldrb r5, [r2, 0x2] + mov r8, r5 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + adds r7, r1, r0 + ldrb r0, [r2, 0x1] + cmp r0, 0x8 + bne _0801FD24 + ldr r0, _0801FD1C @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xD + adds r2, r5, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0801FDA0 + ldr r1, _0801FD20 @ =byte_2024C06 + strb r5, [r1] + str r7, [r6] + subs r4, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + ldrb r1, [r1] + b _0801FD80 + .align 2, 0 +_0801FD18: .4byte gUnknown_02024C10 +_0801FD1C: .4byte gUnknown_02024C07 +_0801FD20: .4byte byte_2024C06 +_0801FD24: + cmp r0, 0x9 + bne _0801FD5C + ldr r0, _0801FD54 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0xC + adds r2, r5, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0801FDA0 + ldr r1, _0801FD58 @ =byte_2024C06 + strb r5, [r1] + str r7, [r6] + subs r4, 0x1 + lsls r0, r4, 24 + lsrs r0, 24 + ldrb r1, [r1] + b _0801FD80 + .align 2, 0 +_0801FD54: .4byte gUnknown_02024C07 +_0801FD58: .4byte byte_2024C06 +_0801FD5C: + ldrb r0, [r2, 0x1] + bl sub_8015150 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r1, _0801FD90 @ =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + adds r0, 0x20 + ldrb r1, [r0] + cmp r1, r8 + bne _0801FDA0 + ldr r0, _0801FD94 @ =byte_2024C06 + strb r1, [r0] + str r7, [r6] + ldrb r1, [r0] + adds r0, r4, 0 +_0801FD80: + bl sub_81074C4 + ldr r0, _0801FD98 @ =0x02000000 + ldr r1, _0801FD9C @ =0x000160f8 + adds r0, r1 + strb r4, [r0] + b _0801FDA6 + .align 2, 0 +_0801FD90: .4byte gBattleMons +_0801FD94: .4byte byte_2024C06 +_0801FD98: .4byte 0x02000000 +_0801FD9C: .4byte 0x000160f8 +_0801FDA0: + ldr r0, [r6] + adds r0, 0x7 + str r0, [r6] +_0801FDA6: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atk1E_jumpifability + + thumb_func_start sub_801FDB4 +sub_801FDB4: @ 801FDB4 + push {r4-r6,lr} + ldr r0, _0801FDCC @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r4, [r0, 0x1] + cmp r4, 0x1 + bne _0801FDD4 + ldr r0, _0801FDD0 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_get_per_side_status + b _0801FDDE + .align 2, 0 +_0801FDCC: .4byte gUnknown_02024C10 +_0801FDD0: .4byte gUnknown_02024C07 +_0801FDD4: + ldr r0, _0801FE14 @ =gUnknown_02024C08 + ldrb r0, [r0] + bl battle_get_per_side_status + movs r4, 0x1 +_0801FDDE: + ands r4, r0 + ldr r6, _0801FE18 @ =gUnknown_02024C10 + ldr r3, [r6] + ldrb r2, [r3, 0x2] + ldrb r0, [r3, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r1, [r3, 0x4] + ldrb r0, [r3, 0x5] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x7] + lsls r0, 24 + adds r5, r1, r0 + ldr r1, _0801FE1C @ =gUnknown_02024C7A + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _0801FE20 + str r5, [r6] + b _0801FE26 + .align 2, 0 +_0801FE14: .4byte gUnknown_02024C08 +_0801FE18: .4byte gUnknown_02024C10 +_0801FE1C: .4byte gUnknown_02024C7A +_0801FE20: + adds r0, r3, 0 + adds r0, 0x8 + str r0, [r6] +_0801FE26: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_801FDB4 + + thumb_func_start sub_801FE2C +sub_801FE2C: @ 801FE2C + push {r4,r5,lr} + movs r5, 0 + ldr r4, _0801FE60 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _0801FE64 @ =gBattleMons + ldr r3, [r4] + movs r1, 0x58 + muls r0, r1 + ldrb r1, [r3, 0x3] + adds r0, r1 + adds r2, 0x18 + adds r0, r2 + ldrb r2, [r0] + ldrb r0, [r3, 0x2] + cmp r0, 0x5 + bhi _0801FEEA + lsls r0, 2 + ldr r1, _0801FE68 @ =_0801FE6C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801FE60: .4byte gUnknown_02024C10 +_0801FE64: .4byte gBattleMons +_0801FE68: .4byte _0801FE6C + .align 2, 0 +_0801FE6C: + .4byte _0801FE84 + .4byte _0801FE94 + .4byte _0801FEA4 + .4byte _0801FEB4 + .4byte _0801FEC4 + .4byte _0801FED8 +_0801FE84: + ldr r0, _0801FE90 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bne _0801FEEA + b _0801FEE4 + .align 2, 0 +_0801FE90: .4byte gUnknown_02024C10 +_0801FE94: + ldr r0, _0801FEA0 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + beq _0801FEEA + b _0801FEE4 + .align 2, 0 +_0801FEA0: .4byte gUnknown_02024C10 +_0801FEA4: + ldr r0, _0801FEB0 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bls _0801FEEA + b _0801FEE4 + .align 2, 0 +_0801FEB0: .4byte gUnknown_02024C10 +_0801FEB4: + ldr r0, _0801FEC0 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + cmp r2, r0 + bcs _0801FEEA + b _0801FEE4 + .align 2, 0 +_0801FEC0: .4byte gUnknown_02024C10 +_0801FEC4: + ldr r0, _0801FED4 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + ands r2, r0 + cmp r2, 0 + beq _0801FEEA + b _0801FEE4 + .align 2, 0 +_0801FED4: .4byte gUnknown_02024C10 +_0801FED8: + ldr r0, _0801FF0C @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x4] + ands r2, r0 + cmp r2, 0 + bne _0801FEEA +_0801FEE4: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 +_0801FEEA: + cmp r5, 0 + beq _0801FF10 + ldr r3, _0801FF0C @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + b _0801FF18 + .align 2, 0 +_0801FF0C: .4byte gUnknown_02024C10 +_0801FF10: + ldr r1, _0801FF20 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] +_0801FF18: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0801FF20: .4byte gUnknown_02024C10 + thumb_func_end sub_801FE2C + + thumb_func_start atk21_jumpifspecialstatusflag +atk21_jumpifspecialstatusflag: @ 801FF24 + push {r4-r6,lr} + ldr r4, _0801FF78 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r5, _0801FF7C @ =gUnknown_02024A60 + strb r0, [r5] + ldr r2, [r4] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + adds r6, r1, r0 + ldrb r1, [r2, 0x7] + ldrb r0, [r2, 0x8] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0xA] + lsls r0, 24 + adds r3, r1, r0 + ldrb r0, [r2, 0x6] + cmp r0, 0 + beq _0801FF84 + ldr r0, _0801FF80 @ =gUnknown_02024C98 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, 0 + bne _0801FF9C + b _0801FF94 + .align 2, 0 +_0801FF78: .4byte gUnknown_02024C10 +_0801FF7C: .4byte gUnknown_02024A60 +_0801FF80: .4byte gUnknown_02024C98 +_0801FF84: + ldr r0, _0801FF98 @ =gUnknown_02024C98 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + ands r0, r6 + cmp r0, 0 + beq _0801FF9C +_0801FF94: + str r3, [r4] + b _0801FFA2 + .align 2, 0 +_0801FF98: .4byte gUnknown_02024C98 +_0801FF9C: + adds r0, r2, 0 + adds r0, 0xB + str r0, [r4] +_0801FFA2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end atk21_jumpifspecialstatusflag + + thumb_func_start sub_801FFA8 +sub_801FFA8: @ 801FFA8 + push {r4-r6,lr} + ldr r4, _0801FFF0 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [r4] + ldrb r5, [r3, 0x2] + ldrb r2, [r3, 0x3] + ldrb r1, [r3, 0x4] + lsls r1, 8 + adds r2, r1 + ldrb r1, [r3, 0x5] + lsls r1, 16 + adds r2, r1 + ldrb r1, [r3, 0x6] + lsls r1, 24 + adds r6, r2, r1 + ldr r2, _0801FFF4 @ =gBattleMons + movs r1, 0x58 + muls r0, r1 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r5 + beq _0801FFEC + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r5 + bne _0801FFF8 +_0801FFEC: + str r6, [r4] + b _0801FFFC + .align 2, 0 +_0801FFF0: .4byte gUnknown_02024C10 +_0801FFF4: .4byte gBattleMons +_0801FFF8: + adds r0, r3, 0x7 + str r0, [r4] +_0801FFFC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_801FFA8 + + thumb_func_start sub_8020004 +sub_8020004: @ 8020004 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + ldr r0, _0802004C @ =0x0201605c + mov r10, r0 + ldr r0, _08020050 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r1, _08020054 @ =gUnknown_02024C09 + strb r0, [r1] + ldr r2, _08020058 @ =gUnknown_02024DEA + movs r1, 0x2 + ands r1, r0 + lsls r1, 24 + lsrs r1, 25 + adds r1, r2 + ldrb r1, [r1] + mov r8, r1 + mov r0, r10 + subs r0, 0x4D + ldrb r0, [r0] + cmp r0, 0x6 + bls _08020040 + bl _08020996 +_08020040: + lsls r0, 2 + ldr r1, _0802005C @ =_08020060 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802004C: .4byte 0x0201605c +_08020050: .4byte gUnknown_02024C10 +_08020054: .4byte gUnknown_02024C09 +_08020058: .4byte gUnknown_02024DEA +_0802005C: .4byte _08020060 + .align 2, 0 +_08020060: + .4byte _0802007C + .4byte _080200FC + .4byte _08020216 + .4byte _0802055C + .4byte _08020648 + .4byte _08020910 + .4byte _0802096C +_0802007C: + ldr r4, _080200A8 @ =gUnknown_02024C09 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08020098 + ldr r0, _080200AC @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _080200B0 @ =0x00000982 + ands r0, r1 + cmp r0, 0 + beq _080200BC +_08020098: + ldr r0, _080200B4 @ =0x02000000 + ldr r1, _080200B8 @ =0x0001600f + adds r0, r1 + movs r1, 0x6 + strb r1, [r0] + bl _08020996 + .align 2, 0 +_080200A8: .4byte gUnknown_02024C09 +_080200AC: .4byte gUnknown_020239F8 +_080200B0: .4byte 0x00000982 +_080200B4: .4byte 0x02000000 +_080200B8: .4byte 0x0001600f +_080200BC: + ldr r2, _080200E8 @ =0x02000000 + ldr r3, _080200EC @ =0x0001600f + adds r1, r2, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r0, _080200F0 @ =0x00016113 + adds r2, r0 + ldr r3, _080200F4 @ =gBitTable + ldr r1, _080200F8 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + bl _08020996 + .align 2, 0 +_080200E8: .4byte 0x02000000 +_080200EC: .4byte 0x0001600f +_080200F0: .4byte 0x00016113 +_080200F4: .4byte gBitTable +_080200F8: .4byte gUnknown_02024A6A +_080200FC: + movs r5, 0 + movs r7, 0 + ldr r1, _08020150 @ =gSaveBlock1 + 0x3688 + mov r9, r1 +_08020104: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08020154 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0802016A + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0802016A + ldr r0, _08020158 @ =gBitTable + lsls r1, r7, 2 + adds r1, r0 + ldr r0, [r1] + mov r2, r8 + ands r0, r2 + cmp r0, 0 + beq _08020138 + adds r5, 0x1 +_08020138: + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0802015C + mov r3, r9 + ldrb r4, [r3] + b _08020164 + .align 2, 0 +_08020150: .4byte gSaveBlock1 + 0x3688 +_08020154: .4byte gPlayerParty +_08020158: .4byte gBitTable +_0802015C: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 +_08020164: + cmp r4, 0x19 + bne _0802016A + adds r6, 0x1 +_0802016A: + adds r7, 0x1 + cmp r7, 0x5 + ble _08020104 + ldr r3, _080201D0 @ =gBaseStats + ldr r2, _080201D4 @ =gBattleMons + ldr r0, _080201D8 @ =gUnknown_02024C09 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r2, [r0, 0x9] + adds r1, 0x2A + ldrb r0, [r1] + muls r0, r2 + movs r1, 0x7 + bl __divsi3 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r6, 0 + beq _080201E0 + lsrs r4, r0, 17 + adds r0, r4, 0 + adds r1, r5, 0 + bl __divsi3 + mov r1, r10 + strh r0, [r1] + lsls r0, 16 + cmp r0, 0 + bne _080201B6 + movs r0, 0x1 + strh r0, [r1] +_080201B6: + ldr r5, _080201DC @ =gUnknown_02024DEE + adds r0, r4, 0 + adds r1, r6, 0 + bl __divsi3 + strh r0, [r5] + lsls r0, 16 + cmp r0, 0 + bne _080201FA + movs r0, 0x1 + strh r0, [r5] + b _080201FA + .align 2, 0 +_080201D0: .4byte gBaseStats +_080201D4: .4byte gBattleMons +_080201D8: .4byte gUnknown_02024C09 +_080201DC: .4byte gUnknown_02024DEE +_080201E0: + adds r0, r1, 0 + adds r1, r5, 0 + bl __divsi3 + mov r2, r10 + strh r0, [r2] + lsls r0, 16 + cmp r0, 0 + bne _080201F6 + movs r0, 0x1 + strh r0, [r2] +_080201F6: + ldr r0, _08020248 @ =gUnknown_02024DEE + strh r6, [r0] +_080201FA: + ldr r1, _0802024C @ =0x02000000 + ldr r3, _08020250 @ =0x0001600f + adds r2, r1, r3 + ldrb r0, [r2] + adds r0, 0x1 + movs r3, 0 + strb r0, [r2] + ldr r2, _08020254 @ =0x00016018 + adds r0, r1, r2 + strb r3, [r0] + ldr r3, _08020258 @ =0x0001605f + adds r1, r3 + mov r0, r8 + strb r0, [r1] +_08020216: + ldr r0, _0802025C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _08020220 + b _08020996 +_08020220: + ldr r0, _0802024C @ =0x02000000 + ldr r1, _08020254 @ =0x00016018 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08020260 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xAF + bne _0802026C + ldr r0, _08020264 @ =gSaveBlock1 + ldr r2, _08020268 @ =0x00003688 + adds r0, r2 + ldrb r4, [r0] + b _08020274 + .align 2, 0 +_08020248: .4byte gUnknown_02024DEE +_0802024C: .4byte 0x02000000 +_08020250: .4byte 0x0001600f +_08020254: .4byte 0x00016018 +_08020258: .4byte 0x0001605f +_0802025C: .4byte gUnknown_02024A64 +_08020260: .4byte gPlayerParty +_08020264: .4byte gSaveBlock1 +_08020268: .4byte 0x00003688 +_0802026C: + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 +_08020274: + ldr r5, _08020294 @ =0x02000000 + cmp r4, 0x19 + beq _080202A0 + ldr r3, _08020298 @ =0x0001605f + adds r1, r5, r3 + ldrb r0, [r1] + movs r2, 0x1 + ands r2, r0 + cmp r2, 0 + bne _080202A0 + lsrs r0, 1 + strb r0, [r1] + ldr r0, _0802029C @ =0x0001600f + adds r1, r5, r0 + b _080202C8 + .align 2, 0 +_08020294: .4byte 0x02000000 +_08020298: .4byte 0x0001605f +_0802029C: .4byte 0x0001600f +_080202A0: + ldr r1, _080202D4 @ =0x00016018 + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080202D8 @ =gPlayerParty + adds r0, r1 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x64 + bne _080202E8 + ldr r2, _080202DC @ =0x0001605f + adds r1, r5, r2 + ldrb r0, [r1] + lsrs r0, 1 + movs r2, 0 + strb r0, [r1] + ldr r3, _080202E0 @ =0x0001600f + adds r1, r5, r3 +_080202C8: + movs r0, 0x5 + strb r0, [r1] + ldr r0, _080202E4 @ =gUnknown_02024BEC + str r2, [r0] + b _08020996 + .align 2, 0 +_080202D4: .4byte 0x00016018 +_080202D8: .4byte gPlayerParty +_080202DC: .4byte 0x0001605f +_080202E0: .4byte 0x0001600f +_080202E4: .4byte gUnknown_02024BEC +_080202E8: + ldr r0, _0802034C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08020316 + ldr r0, _08020350 @ =gBattleMons + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08020316 + ldr r0, _08020354 @ =0x0001601b + adds r5, r0 + ldrb r0, [r5] + cmp r0, 0 + bne _08020316 + bl sub_80325B8 + ldr r0, _08020358 @ =0x00000161 + bl PlayBGM + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_08020316: + ldr r5, _0802035C @ =0x02000000 + ldr r1, _08020360 @ =0x00016018 + adds r0, r5, r1 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08020364 @ =gPlayerParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _08020332 + b _0802051E +_08020332: + ldr r2, _08020368 @ =0x0001605f + adds r0, r5, r2 + ldrb r0, [r0] + movs r3, 0x1 + ands r3, r0 + cmp r3, 0 + beq _08020370 + ldr r1, _0802036C @ =gUnknown_02024BEC + mov r3, r10 + ldrh r0, [r3] + str r0, [r1] + mov r8, r1 + b _08020376 + .align 2, 0 +_0802034C: .4byte gUnknown_020239F8 +_08020350: .4byte gBattleMons +_08020354: .4byte 0x0001601b +_08020358: .4byte 0x00000161 +_0802035C: .4byte 0x02000000 +_08020360: .4byte 0x00016018 +_08020364: .4byte gPlayerParty +_08020368: .4byte 0x0001605f +_0802036C: .4byte gUnknown_02024BEC +_08020370: + ldr r0, _080203EC @ =gUnknown_02024BEC + str r3, [r0] + mov r8, r0 +_08020376: + cmp r4, 0x19 + bne _08020386 + ldr r0, _080203F0 @ =gUnknown_02024DEE + ldrh r1, [r0] + mov r2, r8 + ldr r0, [r2] + adds r0, r1 + str r0, [r2] +_08020386: + cmp r4, 0x28 + bne _0802039C + mov r3, r8 + ldr r1, [r3] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + mov r1, r8 + str r0, [r1] +_0802039C: + ldr r0, _080203F4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080203B8 + ldr r4, _080203EC @ =gUnknown_02024BEC + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] +_080203B8: + ldr r0, _080203F8 @ =0x02000000 + ldr r2, _080203FC @ =0x00016018 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08020400 @ =gPlayerParty + adds r0, r1 + bl sub_8040AA4 + lsls r0, 24 + cmp r0, 0 + beq _08020404 + ldr r4, _080203EC @ =gUnknown_02024BEC + ldr r1, [r4] + movs r0, 0x96 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + movs r7, 0xA5 + lsls r7, 1 + mov r8, r4 + b _0802040A + .align 2, 0 +_080203EC: .4byte gUnknown_02024BEC +_080203F0: .4byte gUnknown_02024DEE +_080203F4: .4byte gUnknown_020239F8 +_080203F8: .4byte 0x02000000 +_080203FC: .4byte 0x00016018 +_08020400: .4byte gPlayerParty +_08020404: + ldr r7, _0802043C @ =0x00000149 + ldr r3, _08020440 @ =gUnknown_02024BEC + mov r8, r3 +_0802040A: + ldr r0, _08020444 @ =gUnknown_020239F8 + ldrh r0, [r0] + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08020488 + ldr r1, _08020448 @ =gUnknown_02024A6A + ldr r0, _0802044C @ =0x02000000 + ldr r3, _08020450 @ =0x00016018 + adds r2, r0, r3 + ldrh r1, [r1, 0x4] + adds r5, r0, 0 + ldr r4, _08020454 @ =gBitTable + ldr r3, _08020458 @ =gUnknown_02024C0C + ldrb r2, [r2] + cmp r1, r2 + bne _08020460 + ldrb r1, [r3] + ldr r0, [r4, 0x8] + ands r1, r0 + cmp r1, 0 + bne _08020460 + ldr r0, _0802045C @ =0x000160a2 + adds r1, r5, r0 + b _0802047C + .align 2, 0 +_0802043C: .4byte 0x00000149 +_08020440: .4byte gUnknown_02024BEC +_08020444: .4byte gUnknown_020239F8 +_08020448: .4byte gUnknown_02024A6A +_0802044C: .4byte 0x02000000 +_08020450: .4byte 0x00016018 +_08020454: .4byte gBitTable +_08020458: .4byte gUnknown_02024C0C +_0802045C: .4byte 0x000160a2 +_08020460: + ldrb r2, [r3] + ldr r0, [r4] + ands r2, r0 + cmp r2, 0 + bne _08020478 + ldr r1, _08020474 @ =0x000160a2 + adds r0, r5, r1 + strb r2, [r0] + b _08020490 + .align 2, 0 +_08020474: .4byte 0x000160a2 +_08020478: + ldr r2, _08020484 @ =0x000160a2 + adds r1, r5, r2 +_0802047C: + movs r0, 0x2 + strb r0, [r1] + b _08020490 + .align 2, 0 +_08020484: .4byte 0x000160a2 +_08020488: + ldr r0, _08020530 @ =0x02000000 + ldr r3, _08020534 @ =0x000160a2 + adds r0, r3 + strb r1, [r0] +_08020490: + ldr r1, _08020538 @ =gUnknown_030041C0 + movs r3, 0 + movs r2, 0xFD + strb r2, [r1] + movs r5, 0x4 + strb r5, [r1, 0x1] + ldr r4, _08020530 @ =0x02000000 + ldr r0, _08020534 @ =0x000160a2 + adds r6, r4, r0 + ldrb r0, [r6] + strb r0, [r1, 0x2] + ldr r0, _0802053C @ =0x00016018 + adds r4, r0 + ldrb r0, [r4] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08020540 @ =gUnknown_03004290 + strb r2, [r1] + strb r3, [r1, 0x1] + strb r7, [r1, 0x2] + movs r3, 0xFF + lsls r3, 8 + ands r7, r3 + asrs r0, r7, 8 + strb r0, [r1, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x4] + ldr r1, _08020544 @ =gUnknown_030042B0 + strb r2, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + strb r5, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + mov r0, r8 + ldr r2, [r0] + strb r2, [r1, 0x4] + adds r0, r2, 0 + ands r0, r3 + asrs r0, 8 + strb r0, [r1, 0x5] + movs r0, 0xFF + lsls r0, 16 + ands r0, r2 + asrs r0, 16 + strb r0, [r1, 0x6] + lsrs r2, 24 + strb r2, [r1, 0x7] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x8] + ldrb r1, [r6] + movs r0, 0xD + bl b_std_message + ldrb r1, [r4] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08020548 @ =gPlayerParty + adds r0, r1 + ldr r3, _0802054C @ =gBattleMons + ldr r1, _08020550 @ =gUnknown_02024C09 + ldrb r2, [r1] + movs r1, 0x58 + muls r1, r2 + adds r1, r3 + ldrh r1, [r1] + bl MonGainEVs +_0802051E: + ldr r1, _08020530 @ =0x02000000 + ldr r3, _08020554 @ =0x0001605f + adds r2, r1, r3 + ldrb r0, [r2] + lsrs r0, 1 + strb r0, [r2] + ldr r0, _08020558 @ =0x0001600f + adds r1, r0 + b _08020618 + .align 2, 0 +_08020530: .4byte 0x02000000 +_08020534: .4byte 0x000160a2 +_08020538: .4byte gUnknown_030041C0 +_0802053C: .4byte 0x00016018 +_08020540: .4byte gUnknown_03004290 +_08020544: .4byte gUnknown_030042B0 +_08020548: .4byte gPlayerParty +_0802054C: .4byte gBattleMons +_08020550: .4byte gUnknown_02024C09 +_08020554: .4byte 0x0001605f +_08020558: .4byte 0x0001600f +_0802055C: + ldr r0, _08020620 @ =gUnknown_02024A64 + ldr r2, [r0] + cmp r2, 0 + beq _08020566 + b _08020996 +_08020566: + ldr r1, _08020624 @ =gUnknown_02024260 + ldr r4, _08020628 @ =0x02000000 + ldr r3, _0802062C @ =0x000160a2 + adds r3, r4 + mov r8, r3 + ldrb r0, [r3] + lsls r0, 9 + adds r0, r1 + strb r2, [r0] + ldr r0, _08020630 @ =0x00016018 + adds r7, r4, r0 + ldrb r0, [r7] + movs r6, 0x64 + muls r0, r6 + ldr r5, _08020634 @ =gPlayerParty + adds r0, r5 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08020612 + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x64 + beq _08020612 + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x3A + bl GetMonData + ldr r1, _08020638 @ =0x00017180 + adds r4, r1 + strh r0, [r4] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x3B + bl GetMonData + strh r0, [r4, 0x2] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x3C + bl GetMonData + strh r0, [r4, 0x4] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x3D + bl GetMonData + strh r0, [r4, 0x6] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x3E + bl GetMonData + strh r0, [r4, 0x8] + ldrb r0, [r7] + muls r0, r6 + adds r0, r5 + movs r1, 0x3F + bl GetMonData + strh r0, [r4, 0xA] + ldr r4, _0802063C @ =gUnknown_02024A60 + mov r2, r8 + ldrb r0, [r2] + strb r0, [r4] + ldrb r1, [r7] + ldr r0, _08020640 @ =gUnknown_02024BEC + ldrh r2, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x19_a_bb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08020612: + ldr r1, _08020628 @ =0x02000000 + ldr r3, _08020644 @ =0x0001600f + adds r1, r3 +_08020618: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08020996 + .align 2, 0 +_08020620: .4byte gUnknown_02024A64 +_08020624: .4byte gUnknown_02024260 +_08020628: .4byte 0x02000000 +_0802062C: .4byte 0x000160a2 +_08020630: .4byte 0x00016018 +_08020634: .4byte gPlayerParty +_08020638: .4byte 0x00017180 +_0802063C: .4byte gUnknown_02024A60 +_08020640: .4byte gUnknown_02024BEC +_08020644: .4byte 0x0001600f +_08020648: + ldr r0, _080208AC @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _08020652 + b _08020996 +_08020652: + ldr r1, _080208B0 @ =gUnknown_02024A60 + ldr r4, _080208B4 @ =0x02000000 + ldr r2, _080208B8 @ =0x000160a2 + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r2, _080208BC @ =gUnknown_02024260 + ldrb r3, [r1] + lsls r1, r3, 9 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0x21 + beq _0802066E + b _080208F0 +_0802066E: + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0xB + beq _0802067A + b _080208F0 +_0802067A: + ldr r0, _080208C0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080206A8 + ldr r1, _080208C4 @ =gUnknown_02024A6A + lsls r0, r3, 1 + adds r2, r0, r1 + ldr r0, _080208C8 @ =0x00016018 + adds r1, r4, r0 + ldrh r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bne _080206A8 + adds r1, r0, 0 + movs r0, 0x64 + muls r0, r1 + ldr r1, _080208CC @ =gPlayerParty + adds r0, r1 + adds r1, r3, 0 + bl sub_80324F8 +_080206A8: + ldr r1, _080208D0 @ =gUnknown_030041C0 + movs r2, 0xFD + strb r2, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r5, _080208B0 @ =gUnknown_02024A60 + ldrb r0, [r5] + strb r0, [r1, 0x2] + ldr r0, _080208B4 @ =0x02000000 + ldr r3, _080208C8 @ =0x00016018 + adds r6, r0, r3 + ldrb r0, [r6] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r4, _080208D4 @ =gUnknown_03004290 + strb r2, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + movs r0, 0x3 + strb r0, [r4, 0x3] + ldrb r0, [r6] + movs r1, 0x64 + mov r8, r1 + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldr r7, _080208CC @ =gPlayerParty + adds r0, r7 + movs r1, 0x38 + bl GetMonData + strb r0, [r4, 0x4] + movs r0, 0x1 + negs r0, r0 + strb r0, [r4, 0x5] + bl b_movescr_stack_push_cursor + ldr r2, _080208D8 @ =gUnknown_03004324 + ldr r1, _080208DC @ =gBitTable + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r1, _080208E0 @ =gUnknown_02024C10 + ldr r0, _080208E4 @ =gUnknown_081D8EF3 + str r0, [r1] + ldr r4, _080208E8 @ =gUnknown_02024BEC + ldr r2, _080208BC @ =gUnknown_02024260 + ldrb r1, [r5] + lsls r1, 9 + adds r0, r2, 0x2 + adds r0, r1, r0 + ldrb r3, [r0] + adds r2, 0x3 + adds r1, r2 + ldrb r0, [r1] + lsls r0, 8 + orrs r3, r0 + str r3, [r4] + ldrb r0, [r6] + mov r3, r8 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7 + movs r1, 0 + bl AdjustFriendship + ldr r0, _080208C4 @ =gUnknown_02024A6A + ldrb r1, [r6] + ldrh r0, [r0] + cmp r0, r1 + bne _080207EC + ldr r4, _080208EC @ =gBattleMons + ldrh r0, [r4, 0x28] + cmp r0, 0 + beq _080207EC + mov r0, r8 + muls r0, r1 + adds r0, r7 + movs r1, 0x38 + bl GetMonData + adds r1, r4, 0 + adds r1, 0x2A + strb r0, [r1] + ldrb r0, [r6] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + movs r1, 0x39 + bl GetMonData + strh r0, [r4, 0x28] + ldrb r0, [r6] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3A + bl GetMonData + strh r0, [r4, 0x2C] + ldrb r0, [r6] + mov r3, r8 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7 + movs r1, 0x3B + bl GetMonData + strh r0, [r4, 0x2] + ldrb r0, [r6] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + movs r1, 0x3C + bl GetMonData + strh r0, [r4, 0x4] + ldrb r0, [r6] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3D + bl GetMonData + strh r0, [r4, 0x6] + ldrb r0, [r6] + mov r3, r8 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7 + movs r1, 0x3D + bl GetMonData + strh r0, [r4, 0x6] + ldrb r0, [r6] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + movs r1, 0x3E + bl GetMonData + strh r0, [r4, 0x8] + ldrb r0, [r6] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + movs r1, 0x3F + bl GetMonData + strh r0, [r4, 0xA] +_080207EC: + ldr r0, _080208C4 @ =gUnknown_02024A6A + ldr r1, _080208B4 @ =0x02000000 + ldr r3, _080208C8 @ =0x00016018 + adds r7, r1, r3 + ldrb r2, [r7] + ldrh r0, [r0, 0x4] + cmp r0, r2 + bne _080208F6 + ldr r6, _080208EC @ =gBattleMons + movs r0, 0xD8 + adds r0, r6 + mov r8, r0 + ldrh r0, [r0] + cmp r0, 0 + beq _080208F6 + ldr r0, _080208C0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080208F6 + movs r5, 0x64 + adds r0, r2, 0 + muls r0, r5 + ldr r4, _080208CC @ =gPlayerParty + adds r0, r4 + movs r1, 0x38 + bl GetMonData + adds r1, r6, 0 + adds r1, 0xDA + strb r0, [r1] + ldrb r0, [r7] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + mov r1, r8 + strh r0, [r1] + ldrb r0, [r7] + muls r0, r5 + adds r0, r4 + movs r1, 0x3A + bl GetMonData + adds r1, r6, 0 + adds r1, 0xDC + strh r0, [r1] + ldrb r0, [r7] + muls r0, r5 + adds r0, r4 + movs r1, 0x3B + bl GetMonData + adds r1, r6, 0 + adds r1, 0xB2 + strh r0, [r1] + ldrb r0, [r7] + muls r0, r5 + adds r0, r4 + movs r1, 0x3C + bl GetMonData + adds r1, r6, 0 + adds r1, 0xB4 + strh r0, [r1] + ldrb r0, [r7] + muls r0, r5 + adds r0, r4 + movs r1, 0x3D + bl GetMonData + movs r2, 0xB6 + adds r2, r6 + mov r8, r2 + strh r0, [r2] + ldrb r0, [r7] + muls r0, r5 + adds r0, r4 + movs r1, 0x3D + bl GetMonData + mov r3, r8 + strh r0, [r3] + ldrb r0, [r7] + muls r0, r5 + adds r0, r4 + movs r1, 0x3E + bl GetMonData + adds r1, r6, 0 + adds r1, 0xB8 + strh r0, [r1] + b _080208F6 + .align 2, 0 +_080208AC: .4byte gUnknown_02024A64 +_080208B0: .4byte gUnknown_02024A60 +_080208B4: .4byte 0x02000000 +_080208B8: .4byte 0x000160a2 +_080208BC: .4byte gUnknown_02024260 +_080208C0: .4byte gUnknown_020239F8 +_080208C4: .4byte gUnknown_02024A6A +_080208C8: .4byte 0x00016018 +_080208CC: .4byte gPlayerParty +_080208D0: .4byte gUnknown_030041C0 +_080208D4: .4byte gUnknown_03004290 +_080208D8: .4byte gUnknown_03004324 +_080208DC: .4byte gBitTable +_080208E0: .4byte gUnknown_02024C10 +_080208E4: .4byte gUnknown_081D8EF3 +_080208E8: .4byte gUnknown_02024BEC +_080208EC: .4byte gBattleMons +_080208F0: + ldr r1, _08020904 @ =gUnknown_02024BEC + movs r0, 0 + str r0, [r1] +_080208F6: + ldr r0, _08020908 @ =0x02000000 + ldr r1, _0802090C @ =0x0001600f + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] + b _08020996 + .align 2, 0 +_08020904: .4byte gUnknown_02024BEC +_08020908: .4byte 0x02000000 +_0802090C: .4byte 0x0001600f +_08020910: + ldr r0, _08020924 @ =gUnknown_02024BEC + ldr r0, [r0] + cmp r0, 0 + beq _08020930 + ldr r0, _08020928 @ =0x02000000 + ldr r2, _0802092C @ =0x0001600f + adds r0, r2 + movs r1, 0x3 + strb r1, [r0] + b _08020996 + .align 2, 0 +_08020924: .4byte gUnknown_02024BEC +_08020928: .4byte 0x02000000 +_0802092C: .4byte 0x0001600f +_08020930: + ldr r2, _08020950 @ =0x02000000 + ldr r3, _08020954 @ =0x00016018 + adds r1, r2, r3 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bhi _0802095C + ldr r0, _08020958 @ =0x0001600f + adds r1, r2, r0 + movs r0, 0x2 + strb r0, [r1] + b _08020996 + .align 2, 0 +_08020950: .4byte 0x02000000 +_08020954: .4byte 0x00016018 +_08020958: .4byte 0x0001600f +_0802095C: + ldr r3, _08020968 @ =0x0001600f + adds r1, r2, r3 + movs r0, 0x6 + strb r0, [r1] + b _08020996 + .align 2, 0 +_08020968: .4byte 0x0001600f +_0802096C: + ldr r0, _080209A4 @ =gUnknown_02024A64 + ldr r5, [r0] + cmp r5, 0 + bne _08020996 + ldr r4, _080209A8 @ =gBattleMons + ldr r2, _080209AC @ =gUnknown_02024C09 + ldrb r0, [r2] + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + movs r3, 0 + strh r5, [r0, 0x2E] + ldrb r0, [r2] + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + strb r3, [r0] + ldr r1, _080209B0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08020996: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080209A4: .4byte gUnknown_02024A64 +_080209A8: .4byte gBattleMons +_080209AC: .4byte gUnknown_02024C09 +_080209B0: .4byte gUnknown_02024C10 + thumb_func_end sub_8020004 + + thumb_func_start sub_80209B4 +sub_80209B4: @ 80209B4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + ldr r0, _08020AF0 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _080209C6 + b _08020B46 +_080209C6: + movs r5, 0 +_080209C8: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08020AF4 @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080209F8 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080209F8 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, 16 + lsrs r6, r0, 16 +_080209F8: + adds r5, 0x1 + cmp r5, 0x5 + ble _080209C8 + cmp r6, 0 + bne _08020A0C + ldr r0, _08020AF8 @ =gUnknown_02024D26 + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_08020A0C: + movs r6, 0 + movs r5, 0 +_08020A10: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08020AFC @ =gEnemyParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08020A40 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08020A40 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + adds r0, r6, r0 + lsls r0, 16 + lsrs r6, r0, 16 +_08020A40: + adds r5, 0x1 + cmp r5, 0x5 + ble _08020A10 + ldr r2, _08020AF8 @ =gUnknown_02024D26 + cmp r6, 0 + bne _08020A54 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_08020A54: + ldrb r0, [r2] + cmp r0, 0 + bne _08020B3E + ldr r2, _08020B00 @ =gUnknown_020239F8 + ldrh r1, [r2] + movs r0, 0x2 + ands r0, r1 + mov r8, r2 + cmp r0, 0 + beq _08020B3E + movs r2, 0 + movs r5, 0 + ldr r0, _08020B04 @ =gUnknown_02024A68 + ldrb r3, [r0] + mov r12, r0 + ldr r7, _08020B08 @ =gUnknown_02024C10 + cmp r2, r3 + bge _08020AA0 + ldr r0, _08020B0C @ =gUnknown_02024C6C + movs r1, 0x80 + lsls r1, 21 + ldr r6, [r0] + adds r4, r3, 0 + ldr r3, _08020B10 @ =gUnknown_02024D68 +_08020A84: + adds r0, r1, 0 + lsls r0, r5 + ands r0, r6 + cmp r0, 0 + beq _08020A98 + ldrb r0, [r3] + lsls r0, 25 + cmp r0, 0 + blt _08020A98 + adds r2, 0x1 +_08020A98: + adds r3, 0x28 + adds r5, 0x2 + cmp r5, r4 + blt _08020A84 +_08020AA0: + movs r4, 0 + movs r5, 0x1 + mov r0, r12 + ldrb r3, [r0] + cmp r5, r3 + bge _08020ADA + ldr r0, _08020B0C @ =gUnknown_02024C6C + movs r1, 0x80 + lsls r1, 21 + mov r12, r1 + ldr r1, [r0] + ldr r0, _08020B10 @ =gUnknown_02024D68 + adds r6, r3, 0 + adds r3, r0, 0 + adds r3, 0x14 +_08020ABE: + mov r0, r12 + lsls r0, r5 + ands r0, r1 + cmp r0, 0 + beq _08020AD2 + ldrb r0, [r3] + lsls r0, 25 + cmp r0, 0 + blt _08020AD2 + adds r4, 0x1 +_08020AD2: + adds r3, 0x28 + adds r5, 0x2 + cmp r5, r6 + blt _08020ABE +_08020ADA: + mov r0, r8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08020B14 + adds r0, r4, r2 + cmp r0, 0x1 + bgt _08020B1C + b _08020B36 + .align 2, 0 +_08020AF0: .4byte gUnknown_02024A64 +_08020AF4: .4byte gPlayerParty +_08020AF8: .4byte gUnknown_02024D26 +_08020AFC: .4byte gEnemyParty +_08020B00: .4byte gUnknown_020239F8 +_08020B04: .4byte gUnknown_02024A68 +_08020B08: .4byte gUnknown_02024C10 +_08020B0C: .4byte gUnknown_02024C6C +_08020B10: .4byte gUnknown_02024D68 +_08020B14: + cmp r4, 0 + beq _08020B36 + cmp r2, 0 + beq _08020B36 +_08020B1C: + ldr r2, [r7] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r7] + b _08020B46 +_08020B36: + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + b _08020B46 +_08020B3E: + ldr r1, _08020B50 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08020B46: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08020B50: .4byte gUnknown_02024C10 + thumb_func_end sub_80209B4 + + thumb_func_start sub_8020B54 +sub_8020B54: @ 8020B54 + ldr r1, _08020B80 @ =gUnknown_02024C68 + movs r0, 0 + strb r0, [r1] + ldr r0, _08020B84 @ =0x02000000 + ldr r1, _08020B88 @ =0x0001601f + adds r0, r1 + movs r2, 0 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08020B8C @ =gCritMultiplier + strb r1, [r0] + ldr r0, _08020B90 @ =gUnknown_02024D1E + strb r2, [r0, 0x3] + strb r2, [r0, 0x6] + ldr r2, _08020B94 @ =gUnknown_02024C6C + ldr r0, [r2] + subs r1, 0x42 + ands r0, r1 + ldr r1, _08020B98 @ =0xffffbfff + ands r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_08020B80: .4byte gUnknown_02024C68 +_08020B84: .4byte 0x02000000 +_08020B88: .4byte 0x0001601f +_08020B8C: .4byte gCritMultiplier +_08020B90: .4byte gUnknown_02024D1E +_08020B94: .4byte gUnknown_02024C6C +_08020B98: .4byte 0xffffbfff + thumb_func_end sub_8020B54 + + thumb_func_start atk25_resetflags +atk25_resetflags: @ 8020B9C + push {lr} + bl sub_8020B54 + ldr r1, _08020BB0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08020BB0: .4byte gUnknown_02024C10 + thumb_func_end atk25_resetflags + + thumb_func_start sub_8020BB4 +sub_8020BB4: @ 8020BB4 + ldr r3, _08020BC4 @ =gUnknown_02024C0E + ldr r2, _08020BC8 @ =gUnknown_02024C10 + ldr r0, [r2] + ldrb r1, [r0, 0x1] + strb r1, [r3] + adds r0, 0x2 + str r0, [r2] + bx lr + .align 2, 0 +_08020BC4: .4byte gUnknown_02024C0E +_08020BC8: .4byte gUnknown_02024C10 + thumb_func_end sub_8020BB4 + + thumb_func_start atk27_cmd27 +atk27_cmd27: @ 8020BCC + push {lr} + ldr r1, _08020BE8 @ =gUnknown_02024C0E + ldrb r0, [r1] + subs r0, 0x1 + strb r0, [r1] + lsls r0, 24 + cmp r0, 0 + bne _08020BF0 + ldr r1, _08020BEC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08020C0A + .align 2, 0 +_08020BE8: .4byte gUnknown_02024C0E +_08020BEC: .4byte gUnknown_02024C10 +_08020BF0: + ldr r3, _08020C10 @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r3] +_08020C0A: + pop {r0} + bx r0 + .align 2, 0 +_08020C10: .4byte gUnknown_02024C10 + thumb_func_end atk27_cmd27 + + thumb_func_start sub_8020C14 +sub_8020C14: @ 8020C14 + ldr r3, _08020C30 @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + str r1, [r3] + bx lr + .align 2, 0 +_08020C30: .4byte gUnknown_02024C10 + thumb_func_end sub_8020C14 + + thumb_func_start atk29_jumpifbyte +atk29_jumpifbyte: @ 8020C34 + push {r4-r6,lr} + ldr r3, _08020C78 @ =gUnknown_02024C10 + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r2, [r1, 0x7] + ldrb r0, [r1, 0x8] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x9] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xA] + lsls r0, 24 + adds r2, r0 + adds r1, 0xB + str r1, [r3] + cmp r6, 0x5 + bhi _08020CCC + lsls r0, r6, 2 + ldr r1, _08020C7C @ =_08020C80 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08020C78: .4byte gUnknown_02024C10 +_08020C7C: .4byte _08020C80 + .align 2, 0 +_08020C80: + .4byte _08020C98 + .4byte _08020CA0 + .4byte _08020CA8 + .4byte _08020CB0 + .4byte _08020CB8 + .4byte _08020CC2 +_08020C98: + ldrb r0, [r5] + cmp r0, r4 + bne _08020CCC + b _08020CCA +_08020CA0: + ldrb r0, [r5] + cmp r0, r4 + beq _08020CCC + b _08020CCA +_08020CA8: + ldrb r0, [r5] + cmp r0, r4 + bls _08020CCC + b _08020CCA +_08020CB0: + ldrb r0, [r5] + cmp r0, r4 + bcs _08020CCC + b _08020CCA +_08020CB8: + ldrb r0, [r5] + ands r4, r0 + cmp r4, 0 + beq _08020CCC + b _08020CCA +_08020CC2: + ldrb r0, [r5] + ands r4, r0 + cmp r4, 0 + bne _08020CCC +_08020CCA: + str r2, [r3] +_08020CCC: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end atk29_jumpifbyte + + thumb_func_start sub_8020CD4 +sub_8020CD4: @ 8020CD4 + push {r4-r6,lr} + ldr r3, _08020D20 @ =gUnknown_02024C10 + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r0, [r1, 0x7] + lsls r0, 8 + orrs r4, r0 + ldrb r2, [r1, 0x8] + ldrb r0, [r1, 0x9] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xA] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xB] + lsls r0, 24 + adds r2, r0 + adds r1, 0xC + str r1, [r3] + cmp r6, 0x5 + bhi _08020D74 + lsls r0, r6, 2 + ldr r1, _08020D24 @ =_08020D28 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08020D20: .4byte gUnknown_02024C10 +_08020D24: .4byte _08020D28 + .align 2, 0 +_08020D28: + .4byte _08020D40 + .4byte _08020D48 + .4byte _08020D50 + .4byte _08020D58 + .4byte _08020D60 + .4byte _08020D6A +_08020D40: + ldrh r0, [r5] + cmp r0, r4 + bne _08020D74 + b _08020D72 +_08020D48: + ldrh r0, [r5] + cmp r0, r4 + beq _08020D74 + b _08020D72 +_08020D50: + ldrh r0, [r5] + cmp r0, r4 + bls _08020D74 + b _08020D72 +_08020D58: + ldrh r0, [r5] + cmp r0, r4 + bcs _08020D74 + b _08020D72 +_08020D60: + ldrh r0, [r5] + ands r4, r0 + cmp r4, 0 + beq _08020D74 + b _08020D72 +_08020D6A: + ldrh r0, [r5] + ands r4, r0 + cmp r4, 0 + bne _08020D74 +_08020D72: + str r2, [r3] +_08020D74: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8020CD4 + + thumb_func_start sub_8020D7C +sub_8020D7C: @ 8020D7C + push {r4-r6,lr} + ldr r3, _08020DD4 @ =gUnknown_02024C10 + ldr r1, [r3] + ldrb r6, [r1, 0x1] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x6] + ldrb r0, [r1, 0x7] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x8] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x9] + lsls r0, 24 + orrs r4, r0 + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + adds r2, r0 + adds r1, 0xE + str r1, [r3] + cmp r6, 0x5 + bhi _08020E28 + lsls r0, r6, 2 + ldr r1, _08020DD8 @ =_08020DDC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08020DD4: .4byte gUnknown_02024C10 +_08020DD8: .4byte _08020DDC + .align 2, 0 +_08020DDC: + .4byte _08020DF4 + .4byte _08020DFC + .4byte _08020E04 + .4byte _08020E0C + .4byte _08020E14 + .4byte _08020E1E +_08020DF4: + ldr r0, [r5] + cmp r0, r4 + bne _08020E28 + b _08020E26 +_08020DFC: + ldr r0, [r5] + cmp r0, r4 + beq _08020E28 + b _08020E26 +_08020E04: + ldr r0, [r5] + cmp r0, r4 + bls _08020E28 + b _08020E26 +_08020E0C: + ldr r0, [r5] + cmp r0, r4 + bcs _08020E28 + b _08020E26 +_08020E14: + ldr r0, [r5] + ands r0, r4 + cmp r0, 0 + beq _08020E28 + b _08020E26 +_08020E1E: + ldr r0, [r5] + ands r0, r4 + cmp r0, 0 + bne _08020E28 +_08020E26: + str r2, [r3] +_08020E28: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8020D7C + + thumb_func_start sub_8020E30 +sub_8020E30: @ 8020E30 + push {r4-r7,lr} + ldr r2, _08020E88 @ =gUnknown_02024C10 + ldr r3, [r2] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r5, r1, r0 + ldrb r1, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x8] + lsls r0, 24 + adds r4, r1, r0 + ldrb r6, [r3, 0x9] + ldrb r1, [r3, 0xA] + ldrb r0, [r3, 0xB] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0xC] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0xD] + lsls r0, 24 + adds r1, r0 + mov r12, r1 + movs r1, 0 + cmp r1, r6 + bcs _08020EA8 + ldrb r0, [r5] + ldrb r7, [r4] + cmp r0, r7 + beq _08020E8C + adds r0, r3, 0 + b _08020EA4 + .align 2, 0 +_08020E88: .4byte gUnknown_02024C10 +_08020E8C: + adds r5, 0x1 + adds r4, 0x1 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcs _08020EA8 + ldrb r0, [r5] + ldrb r3, [r4] + cmp r0, r3 + beq _08020E8C + ldr r0, [r2] +_08020EA4: + adds r0, 0xE + str r0, [r2] +_08020EA8: + cmp r1, r6 + bne _08020EB0 + mov r7, r12 + str r7, [r2] +_08020EB0: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8020E30 + + thumb_func_start sub_8020EB8 +sub_8020EB8: @ 8020EB8 + push {r4-r7,lr} + movs r7, 0 + ldr r3, _08020F2C @ =gUnknown_02024C10 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r5, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r4, r2, r0 + ldrb r6, [r1, 0x9] + ldrb r2, [r1, 0xA] + ldrb r0, [r1, 0xB] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xD] + lsls r0, 24 + adds r2, r0 + mov r12, r2 + movs r1, 0 + cmp r7, r6 + bcs _08020F22 +_08020F06: + ldrb r0, [r5] + ldrb r2, [r4] + cmp r0, r2 + bne _08020F14 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_08020F14: + adds r5, 0x1 + adds r4, 0x1 + adds r0, r1, 0x1 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, r6 + bcc _08020F06 +_08020F22: + cmp r7, r6 + beq _08020F30 + mov r0, r12 + b _08020F34 + .align 2, 0 +_08020F2C: .4byte gUnknown_02024C10 +_08020F30: + ldr r0, [r3] + adds r0, 0xE +_08020F34: + str r0, [r3] + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8020EB8 + + thumb_func_start sub_8020F3C +sub_8020F3C: @ 8020F3C + ldr r3, _08020F60 @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r2, 0x5] + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_08020F60: .4byte gUnknown_02024C10 + thumb_func_end sub_8020F3C + + thumb_func_start sub_8020F64 +sub_8020F64: @ 8020F64 + ldr r3, _08020F8C @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r2, 0x5] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_08020F8C: .4byte gUnknown_02024C10 + thumb_func_end sub_8020F64 + + thumb_func_start sub_8020F90 +sub_8020F90: @ 8020F90 + ldr r3, _08020FB8 @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, 0x5] + subs r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_08020FB8: .4byte gUnknown_02024C10 + thumb_func_end sub_8020F90 + + thumb_func_start atk31_copyarray +atk31_copyarray: @ 8020FBC + push {r4-r6,lr} + ldr r3, _0802100C @ =gUnknown_02024C10 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r6, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0x9] + movs r2, 0 + cmp r2, r4 + bge _08021000 +_08020FF2: + adds r0, r6, r2 + adds r1, r5, r2 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r4 + blt _08020FF2 +_08021000: + ldr r0, [r3] + adds r0, 0xA + str r0, [r3] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802100C: .4byte gUnknown_02024C10 + thumb_func_end atk31_copyarray + + thumb_func_start atk32_memcpy_with_offset +atk32_memcpy_with_offset: @ 8021010 + push {r4-r7,lr} + ldr r3, _08021078 @ =gUnknown_02024C10 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + adds r7, r2, r0 + ldrb r2, [r1, 0x5] + ldrb r0, [r1, 0x6] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0x7] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0x8] + lsls r0, 24 + adds r6, r2, r0 + ldrb r2, [r1, 0x9] + ldrb r0, [r1, 0xA] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r1, 0xB] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r1, 0xC] + lsls r0, 24 + adds r5, r2, r0 + ldrb r4, [r1, 0xD] + movs r2, 0 + cmp r2, r4 + bge _0802106C +_0802105A: + adds r0, r7, r2 + ldrb r1, [r5] + adds r1, r2, r1 + adds r1, r6, r1 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, r4 + blt _0802105A +_0802106C: + ldr r0, [r3] + adds r0, 0xE + str r0, [r3] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08021078: .4byte gUnknown_02024C10 + thumb_func_end atk32_memcpy_with_offset + + thumb_func_start sub_802107C +sub_802107C: @ 802107C + ldr r3, _080210A4 @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r0, [r1] + ldrb r2, [r2, 0x5] + orrs r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_080210A4: .4byte gUnknown_02024C10 + thumb_func_end sub_802107C + + thumb_func_start atk34_orhalfword +atk34_orhalfword: @ 80210A8 + push {r4,lr} + ldr r4, _080210DC @ =gUnknown_02024C10 + ldr r3, [r4] + ldrb r2, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r2, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r2, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r2, r0 + ldrb r1, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + orrs r1, r0 + ldrh r0, [r2] + orrs r1, r0 + strh r1, [r2] + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080210DC: .4byte gUnknown_02024C10 + thumb_func_end atk34_orhalfword + + thumb_func_start atk35_orword +atk35_orword: @ 80210E0 + push {r4,lr} + ldr r4, _08021120 @ =gUnknown_02024C10 + ldr r2, [r4] + ldrb r3, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r3, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r3, r0 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + ldr r0, [r3] + orrs r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, 0x9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08021120: .4byte gUnknown_02024C10 + thumb_func_end atk35_orword + + thumb_func_start sub_8021124 +sub_8021124: @ 8021124 + ldr r3, _0802114C @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r2, [r2, 0x5] + ldrb r0, [r1] + bics r0, r2 + strb r0, [r1] + ldr r0, [r3] + adds r0, 0x6 + str r0, [r3] + bx lr + .align 2, 0 +_0802114C: .4byte gUnknown_02024C10 + thumb_func_end sub_8021124 + + thumb_func_start atk37_bichalfword +atk37_bichalfword: @ 8021150 + push {r4,lr} + ldr r4, _08021184 @ =gUnknown_02024C10 + ldr r3, [r4] + ldrb r1, [r3, 0x1] + ldrb r0, [r3, 0x2] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r3, 0x3] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r3, 0x4] + lsls r0, 24 + adds r1, r0 + ldrb r2, [r3, 0x5] + ldrb r0, [r3, 0x6] + lsls r0, 8 + orrs r2, r0 + ldrh r0, [r1] + bics r0, r2 + strh r0, [r1] + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08021184: .4byte gUnknown_02024C10 + thumb_func_end atk37_bichalfword + + thumb_func_start atk38_bicword +atk38_bicword: @ 8021188 + push {r4,lr} + ldr r4, _080211C8 @ =gUnknown_02024C10 + ldr r2, [r4] + ldrb r3, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + adds r3, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + adds r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + adds r3, r0 + ldrb r1, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + adds r1, r0 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + ldr r0, [r4] + adds r0, 0x9 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080211C8: .4byte gUnknown_02024C10 + thumb_func_end atk38_bicword + + thumb_func_start atk39_pause +atk39_pause: @ 80211CC + push {r4,r5,lr} + ldr r0, _08021200 @ =gUnknown_02024A64 + ldr r4, [r0] + cmp r4, 0 + bne _080211F8 + ldr r5, _08021204 @ =gUnknown_02024C10 + ldr r2, [r5] + ldrb r1, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r1, r0 + ldr r3, _08021208 @ =gUnknown_02024D18 + ldrh r0, [r3] + adds r0, 0x1 + strh r0, [r3] + lsls r0, 16 + lsrs r0, 16 + cmp r0, r1 + bcc _080211F8 + strh r4, [r3] + adds r0, r2, 0x3 + str r0, [r5] +_080211F8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08021200: .4byte gUnknown_02024A64 +_08021204: .4byte gUnknown_02024C10 +_08021208: .4byte gUnknown_02024D18 + thumb_func_end atk39_pause + + thumb_func_start sub_802120C +sub_802120C: @ 802120C + push {lr} + ldr r0, _08021224 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0802121E + ldr r1, _08021228 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0802121E: + pop {r0} + bx r0 + .align 2, 0 +_08021224: .4byte gUnknown_02024A64 +_08021228: .4byte gUnknown_02024C10 + thumb_func_end sub_802120C + + thumb_func_start atk3B_8022C68 +atk3B_8022C68: @ 802122C + push {lr} + ldr r0, _08021240 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _0802124C + ldr r0, _08021244 @ =gUnknown_02024A60 + ldr r1, _08021248 @ =gUnknown_02024C08 + b _08021250 + .align 2, 0 +_08021240: .4byte gUnknown_02024C10 +_08021244: .4byte gUnknown_02024A60 +_08021248: .4byte gUnknown_02024C08 +_0802124C: + ldr r0, _08021274 @ =gUnknown_02024A60 + ldr r1, _08021278 @ =gUnknown_02024C07 +_08021250: + ldrb r1, [r1] + strb r1, [r0] + ldr r0, _0802127C @ =gUnknown_02024BEC + ldrh r1, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldr r0, _08021274 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08021280 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08021274: .4byte gUnknown_02024A60 +_08021278: .4byte gUnknown_02024C07 +_0802127C: .4byte gUnknown_02024BEC +_08021280: .4byte gUnknown_02024C10 + thumb_func_end atk3B_8022C68 + + thumb_func_start atk3C_return +atk3C_return: @ 8021284 + push {lr} + bl b_movescr_stack_pop_cursor + pop {r0} + bx r0 + thumb_func_end atk3C_return + + thumb_func_start sub_8021290 +sub_8021290: @ 8021290 + ldr r0, _080212A4 @ =gUnknown_02024C68 + movs r1, 0 + strb r1, [r0] + ldr r0, _080212A8 @ =gUnknown_02024A60 + strb r1, [r0] + ldr r1, _080212AC @ =gUnknown_02024A7F + movs r0, 0xB + strb r0, [r1] + bx lr + .align 2, 0 +_080212A4: .4byte gUnknown_02024C68 +_080212A8: .4byte gUnknown_02024A60 +_080212AC: .4byte gUnknown_02024A7F + thumb_func_end sub_8021290 + + thumb_func_start sub_80212B0 +sub_80212B0: @ 80212B0 + ldr r1, _080212C0 @ =gUnknown_02024A60 + movs r0, 0 + strb r0, [r1] + ldr r1, _080212C4 @ =gUnknown_02024A7F + movs r0, 0xB + strb r0, [r1] + bx lr + .align 2, 0 +_080212C0: .4byte gUnknown_02024A60 +_080212C4: .4byte gUnknown_02024A7F + thumb_func_end sub_80212B0 + + thumb_func_start atk3F_end3 +atk3F_end3: @ 80212C8 + push {lr} + bl b_movescr_stack_pop_cursor + ldr r2, _080212F0 @ =0x02017140 + adds r1, r2, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0 + beq _080212DE + subs r0, 0x1 + strb r0, [r1] +_080212DE: + ldr r0, _080212F4 @ =gUnknown_030042D4 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r2 + ldr r1, [r1] + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_080212F0: .4byte 0x02017140 +_080212F4: .4byte gUnknown_030042D4 + thumb_func_end atk3F_end3 + + thumb_func_start atk41_call +atk41_call: @ 80212F8 + push {r4,lr} + ldr r4, _08021324 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x5 + bl b_movescr_stack_push + 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 +_08021324: .4byte gUnknown_02024C10 + thumb_func_end atk41_call + + thumb_func_start atk42_jumpiftype2 +atk42_jumpiftype2: @ 8021328 + push {r4,lr} + ldr r4, _08021370 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + lsls r0, 24 + lsrs r0, 24 + ldr r3, [r4] + ldr r2, _08021374 @ =gBattleMons + movs r1, 0x58 + muls r0, r1 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r2, [r3, 0x2] + ldrb r1, [r1] + cmp r2, r1 + beq _08021356 + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _08021378 +_08021356: + ldrb r1, [r3, 0x3] + ldrb r0, [r3, 0x4] + lsls r0, 8 + orrs r1, r0 + ldrb r0, [r3, 0x5] + lsls r0, 16 + orrs r1, r0 + ldrb r0, [r3, 0x6] + lsls r0, 24 + orrs r1, r0 + str r1, [r4] + b _0802137C + .align 2, 0 +_08021370: .4byte gUnknown_02024C10 +_08021374: .4byte gBattleMons +_08021378: + adds r0, r3, 0x7 + str r0, [r4] +_0802137C: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atk42_jumpiftype2 + + thumb_func_start sub_8021384 +sub_8021384: @ 8021384 + push {r4,lr} + sub sp, 0x4 + ldr r4, _080213BC @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r2, [r0, 0x1] + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _080213C0 + ldr r2, [r4] + 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, [r4] + b _080213C6 + .align 2, 0 +_080213BC: .4byte gUnknown_02024C10 +_080213C0: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_080213C6: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8021384 + + thumb_func_start sub_80213D0 +sub_80213D0: @ 80213D0 + ldr r1, _080213E4 @ =0x02000000 + ldr r0, _080213E8 @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r2, _080213EC @ =0x00016060 + adds r0, r2 + adds r0, r1 + movs r1, 0x1 + strb r1, [r0] + bx lr + .align 2, 0 +_080213E4: .4byte 0x02000000 +_080213E8: .4byte gUnknown_02024C07 +_080213EC: .4byte 0x00016060 + thumb_func_end sub_80213D0 + + thumb_func_start atk46_cmd46 +atk46_cmd46: @ 80213F0 + push {r4-r6,lr} + ldr r5, _08021444 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r6, _08021448 @ =gUnknown_02024A60 + strb r0, [r6] + ldr r2, [r5] + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x6] + lsls r0, 24 + adds r3, r1, r0 + ldrb r4, [r2, 0x2] + adds r0, r4, 0 + cmp r0, 0x1 + beq _08021426 + cmp r0, 0x11 + beq _08021426 + cmp r0, 0x2 + bne _0802144C +_08021426: + ldr r4, _08021444 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r1, [r0, 0x2] + ldrh r2, [r3] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldr r0, _08021448 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x7 + str r0, [r4] + b _080214AE + .align 2, 0 +_08021444: .4byte gUnknown_02024C10 +_08021448: .4byte gUnknown_02024A60 +_0802144C: + ldr r0, _08021464 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802146C + adds r0, r2, 0x7 + bl b_movescr_stack_push + ldr r0, _08021468 @ =gUnknown_081D8EEF + b _080214AC + .align 2, 0 +_08021464: .4byte gUnknown_02024C6C +_08021468: .4byte gUnknown_081D8EEF +_0802146C: + adds r0, r4, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08021498 + ldr r1, _08021490 @ =gUnknown_02024C98 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08021494 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08021498 + adds r0, r2, 0x7 + b _080214AC + .align 2, 0 +_08021490: .4byte gUnknown_02024C98 +_08021494: .4byte 0x000400c0 +_08021498: + ldrb r1, [r2, 0x2] + ldrh r2, [r3] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldrb r0, [r6] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x7 +_080214AC: + str r0, [r5] +_080214AE: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end atk46_cmd46 + + thumb_func_start sub_80214B4 +sub_80214B4: @ 80214B4 + push {r4-r7,lr} + ldr r6, _0802151C @ =gUnknown_02024C10 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r7, _08021520 @ =gUnknown_02024A60 + strb r0, [r7] + ldr r2, [r6] + ldrb r1, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + adds r3, r1, r0 + ldrb r1, [r2, 0x6] + ldrb r0, [r2, 0x7] + lsls r0, 8 + adds r1, r0 + ldrb r0, [r2, 0x8] + lsls r0, 16 + adds r1, r0 + ldrb r0, [r2, 0x9] + lsls r0, 24 + adds r4, r1, r0 + ldrb r5, [r3] + adds r0, r5, 0 + cmp r0, 0x1 + beq _080214FE + cmp r0, 0x11 + beq _080214FE + cmp r0, 0x2 + bne _08021524 +_080214FE: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldr r0, _08021520 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0802151C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] + b _0802157A + .align 2, 0 +_0802151C: .4byte gUnknown_02024C10 +_08021520: .4byte gUnknown_02024A60 +_08021524: + ldr r0, _08021534 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08021538 + adds r0, r2, 0 + b _08021576 + .align 2, 0 +_08021534: .4byte gUnknown_02024C6C +_08021538: + adds r0, r5, 0 + subs r0, 0xA + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08021564 + ldr r1, _0802155C @ =gUnknown_02024C98 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08021560 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08021564 + adds r0, r2, 0 + b _08021576 + .align 2, 0 +_0802155C: .4byte gUnknown_02024C98 +_08021560: .4byte 0x000400c0 +_08021564: + ldrb r1, [r3] + ldrh r2, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r6] +_08021576: + adds r0, 0xA + str r0, [r6] +_0802157A: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80214B4 + + thumb_func_start atk47 +atk47: @ 8021580 + push {r4,lr} + movs r3, 0 + ldr r0, _080215A0 @ =0x02000000 + ldr r2, _080215A4 @ =0x0001601e + adds r1, r0, r2 + ldrb r1, [r1] + movs r2, 0xF0 + ands r2, r1 + adds r4, r0, 0 + cmp r2, 0x20 + beq _080215B6 + cmp r2, 0x20 + bgt _080215A8 + cmp r2, 0x10 + beq _080215B2 + b _080215C0 + .align 2, 0 +_080215A0: .4byte 0x02000000 +_080215A4: .4byte 0x0001601e +_080215A8: + cmp r2, 0x90 + beq _080215BA + cmp r2, 0xA0 + beq _080215BE + b _080215C0 +_080215B2: + movs r3, 0xF + b _080215C0 +_080215B6: + movs r3, 0x27 + b _080215C0 +_080215BA: + movs r3, 0x16 + b _080215C0 +_080215BE: + movs r3, 0x2E +_080215C0: + ldr r1, _080215EC @ =0x0001601e + adds r0, r4, r1 + ldrb r1, [r0] + movs r0, 0xF + ands r0, r1 + adds r0, r3, r0 + subs r0, 0x1 + ldr r2, _080215F0 @ =0x000160a4 + adds r1, r4, r2 + movs r2, 0 + strb r0, [r1] + ldr r1, _080215F4 @ =0x000160a5 + adds r0, r4, r1 + strb r2, [r0] + ldr r1, _080215F8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080215EC: .4byte 0x0001601e +_080215F0: .4byte 0x000160a4 +_080215F4: .4byte 0x000160a5 +_080215F8: .4byte gUnknown_02024C10 + thumb_func_end atk47 + + thumb_func_start atk48_playstatchangeanimation +atk48_playstatchangeanimation: @ 80215FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r7, 0 + movs r0, 0 + mov r8, r0 + movs r3, 0 + ldr r5, _08021670 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + str r3, [sp] + bl sub_8015150 + ldr r2, _08021674 @ =gUnknown_02024A60 + strb r0, [r2] + ldr r0, [r5] + ldrb r4, [r0, 0x2] + ldrb r1, [r0, 0x3] + movs r0, 0x1 + ands r0, r1 + ldr r3, [sp] + cmp r0, 0 + beq _08021710 + movs r0, 0x2 + ands r0, r1 + movs r1, 0x15 + cmp r0, 0 + beq _0802163C + movs r1, 0x2D +_0802163C: + cmp r4, 0 + beq _080216E4 + movs r0, 0x1 + mov r10, r0 + ldr r0, _08021678 @ =gUnknown_02024A98 + mov r9, r0 + lsls r5, r1, 16 +_0802164A: + adds r0, r4, 0 + mov r1, r10 + ands r0, r1 + cmp r0, 0 + beq _080216D6 + ldr r0, _08021670 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802167C + ldr r0, _08021674 @ =gUnknown_02024A60 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r7, r0 + b _080216C4 + .align 2, 0 +_08021670: .4byte gUnknown_02024C10 +_08021674: .4byte gUnknown_02024A60 +_08021678: .4byte gUnknown_02024A98 +_0802167C: + ldr r6, _08021700 @ =gUnknown_02024A60 + ldrb r0, [r6] + str r3, [sp] + bl battle_get_per_side_status + mov r1, r10 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08021704 @ =gUnknown_02024C80 + adds r0, r1 + ldrb r0, [r0, 0x2] + ldr r3, [sp] + cmp r0, 0 + bne _080216D6 + ldr r0, _08021708 @ =gBattleMons + ldrb r2, [r6] + movs r1, 0x58 + muls r2, r1 + adds r0, r2, r0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1D + beq _080216D6 + cmp r0, 0x49 + beq _080216D6 + cmp r0, 0x33 + bne _080216BA + cmp r7, 0x6 + beq _080216D6 +_080216BA: + cmp r0, 0x34 + bne _080216C2 + cmp r7, 0x1 + beq _080216D6 +_080216C2: + adds r0, r7, r2 +_080216C4: + add r0, r9 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + ble _080216D6 + lsrs r0, r5, 16 + mov r8, r0 + adds r3, 0x1 +_080216D6: + lsrs r4, 1 + movs r1, 0x80 + lsls r1, 9 + adds r5, r1 + adds r7, 0x1 + cmp r4, 0 + bne _0802164A +_080216E4: + ldr r0, _0802170C @ =gUnknown_02024C10 + mov r9, r0 + cmp r3, 0x1 + ble _08021772 + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x2 + ands r0, r1 + movs r1, 0x39 + mov r8, r1 + cmp r0, 0 + beq _08021772 + movs r0, 0x3A + b _08021770 + .align 2, 0 +_08021700: .4byte gUnknown_02024A60 +_08021704: .4byte gUnknown_02024C80 +_08021708: .4byte gBattleMons +_0802170C: .4byte gUnknown_02024C10 +_08021710: + movs r0, 0x2 + ands r0, r1 + movs r1, 0xE + cmp r0, 0 + beq _0802171C + movs r1, 0x26 +_0802171C: + mov r9, r5 + cmp r4, 0 + beq _08021758 + ldr r6, _0802178C @ =gUnknown_02024A98 + adds r5, r2, 0 + lsls r2, r1, 16 +_08021728: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0802174A + ldrb r1, [r5] + movs r0, 0x58 + muls r0, r1 + adds r0, r7, r0 + adds r0, r6 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xB + bgt _0802174A + lsrs r1, r2, 16 + mov r8, r1 + adds r3, 0x1 +_0802174A: + lsrs r4, 1 + movs r0, 0x80 + lsls r0, 9 + adds r2, r0 + adds r7, 0x1 + cmp r4, 0 + bne _08021728 +_08021758: + cmp r3, 0x1 + ble _08021772 + mov r1, r9 + ldr r0, [r1] + ldrb r1, [r0, 0x3] + movs r0, 0x2 + ands r0, r1 + movs r1, 0x37 + mov r8, r1 + cmp r0, 0 + beq _08021772 + movs r0, 0x38 +_08021770: + mov r8, r0 +_08021772: + mov r1, r9 + ldr r2, [r1] + ldrb r1, [r2, 0x3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08021790 + cmp r3, 0x1 + bgt _08021790 + adds r0, r2, 0x4 + mov r1, r9 + b _080217E6 + .align 2, 0 +_0802178C: .4byte gUnknown_02024A98 +_08021790: + cmp r3, 0 + beq _080217E0 + ldr r0, _080217D0 @ =0x02000000 + ldr r1, _080217D4 @ =0x000160dc + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + bne _080217E0 + movs r0, 0 + movs r1, 0x1 + mov r2, r8 + str r3, [sp] + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldr r0, _080217D8 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, _080217DC @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r1, [r0, 0x3] + movs r0, 0x4 + ands r0, r1 + ldr r3, [sp] + cmp r0, 0 + beq _080217CC + cmp r3, 0x1 + ble _080217CC + movs r0, 0x1 + strb r0, [r4] +_080217CC: + ldr r1, _080217DC @ =gUnknown_02024C10 + b _080217E2 + .align 2, 0 +_080217D0: .4byte 0x02000000 +_080217D4: .4byte 0x000160dc +_080217D8: .4byte gUnknown_02024A60 +_080217DC: .4byte gUnknown_02024C10 +_080217E0: + mov r1, r9 +_080217E2: + ldr r0, [r1] + adds r0, 0x4 +_080217E6: + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atk48_playstatchangeanimation + + thumb_func_start sub_80217F8 +sub_80217F8: @ 80217F8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x18 + movs r0, 0 + mov r10, r0 + ldr r0, _08021834 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r1, [r0, 0x1] + str r1, [sp, 0x10] + ldrb r0, [r0, 0x2] + str r0, [sp, 0x14] + ldr r1, _08021838 @ =gBattleMons + ldr r0, _0802183C @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, r0, r1 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08021844 + ldr r1, _08021840 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x7] + b _0802184E + .align 2, 0 +_08021834: .4byte gUnknown_02024C10 +_08021838: .4byte gBattleMons +_0802183C: .4byte gUnknown_02024C07 +_08021840: .4byte gEnigmaBerries +_08021844: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r0, 24 +_0802184E: + str r0, [sp, 0x8] + ldr r0, _0802186C @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 1 + ldr r0, _08021870 @ =0x020160e8 + adds r1, r0 + str r1, [sp, 0xC] + subs r0, 0xCC + ldrb r0, [r0] + cmp r0, 0 + beq _080218C0 + movs r2, 0x3F + ands r2, r0 + str r2, [sp, 0x4] + b _080218D2 + .align 2, 0 +_0802186C: .4byte gUnknown_02024C07 +_08021870: .4byte 0x020160e8 +_08021874: + strb r2, [r7] + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r0, _080218AC @ =0x02000000 + ldr r3, _080218B0 @ =0x0001600c + adds r0, r3 + strb r4, [r0] + bl sub_8020B54 + ldr r2, _080218B4 @ =gUnknown_081D6BBC + mov r4, r8 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + bl b_movescr_stack_push + ldr r1, _080218B8 @ =gUnknown_02024C10 + ldr r0, _080218BC @ =gUnknown_081D9B2D + bl _0802229C + .align 2, 0 +_080218AC: .4byte 0x02000000 +_080218B0: .4byte 0x0001600c +_080218B4: .4byte gUnknown_081D6BBC +_080218B8: .4byte gUnknown_02024C10 +_080218BC: .4byte gUnknown_081D9B2D +_080218C0: + ldr r2, _080218D8 @ =gBattleMoves + ldr r0, _080218DC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + str r0, [sp, 0x4] +_080218D2: + ldr r5, _080218E0 @ =0x02000000 + mov r12, r5 + b _080218EE + .align 2, 0 +_080218D8: .4byte gBattleMoves +_080218DC: .4byte gUnknown_02024BE6 +_080218E0: .4byte 0x02000000 +_080218E4: + mov r0, r10 + cmp r0, 0 + beq _080218EE + bl _08022286 +_080218EE: + ldr r0, _08021908 @ =0x0001600c + add r0, r12 + ldrb r0, [r0] + cmp r0, 0x11 + bls _080218FC + bl _0802224E +_080218FC: + lsls r0, 2 + ldr r1, _0802190C @ =_08021910 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08021908: .4byte 0x0001600c +_0802190C: .4byte _08021910 + .align 2, 0 +_08021910: + .4byte _08021958 + .4byte _08021A34 + .4byte _08021AF0 + .4byte _08021B20 + .4byte _08021B44 + .4byte _08021B78 + .4byte _08021B9C + .4byte _08021C40 + .4byte _08021C78 + .4byte _08021CA8 + .4byte _08021CCC + .4byte _08021D18 + .4byte _08021DAC + .4byte _08021E30 + .4byte _08021E70 + .4byte _08022068 + .4byte _080221C0 + .4byte _0802224E +_08021958: + ldr r5, _08021A08 @ =gBattleMons + ldr r2, _08021A0C @ =gUnknown_02024C08 + ldrb r4, [r2] + movs r6, 0x58 + adds r3, r4, 0 + muls r3, r6 + adds r0, r5, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 16 + ands r1, r0 + cmp r1, 0 + beq _080219FE + adds r0, r3, r5 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _080219FE + ldr r0, _08021A10 @ =gUnknown_02024C07 + ldrb r1, [r0] + cmp r1, r4 + beq _080219FE + adds r0, r1, 0 + bl battle_side_get_owner + adds r4, r0, 0 + ldr r1, _08021A0C @ =gUnknown_02024C08 + ldrb r0, [r1] + bl battle_side_get_owner + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080219FE + ldr r0, _08021A14 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _080219FE + ldr r2, _08021A18 @ =gUnknown_02024D28 + ldr r4, _08021A0C @ =gUnknown_02024C08 + ldrb r3, [r4] + lsls r1, r3, 4 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _080219C8 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _080219FE +_080219C8: + ldr r2, _08021A1C @ =gBattleMoves + ldr r0, _08021A20 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080219FE + adds r0, r3, 0 + muls r0, r6 + adds r1, r0, r5 + ldrb r2, [r1, 0x19] + movs r0, 0x19 + ldrsb r0, [r1, r0] + cmp r0, 0xB + bgt _080219FE + adds r0, r2, 0x1 + strb r0, [r1, 0x19] + bl b_movescr_stack_push_cursor + ldr r1, _08021A24 @ =gUnknown_02024C10 + ldr r0, _08021A28 @ =gUnknown_081D9132 + str r0, [r1] + movs r5, 0x1 + mov r10, r5 +_080219FE: + ldr r2, _08021A2C @ =0x02000000 + ldr r0, _08021A30 @ =0x0001600c + adds r1, r2, r0 + b _08021E00 + .align 2, 0 +_08021A08: .4byte gBattleMons +_08021A0C: .4byte gUnknown_02024C08 +_08021A10: .4byte gUnknown_02024C07 +_08021A14: .4byte gUnknown_02024C68 +_08021A18: .4byte gUnknown_02024D28 +_08021A1C: .4byte gBattleMoves +_08021A20: .4byte gUnknown_02024BE6 +_08021A24: .4byte gUnknown_02024C10 +_08021A28: .4byte gUnknown_081D9132 +_08021A2C: .4byte 0x02000000 +_08021A30: .4byte 0x0001600c +_08021A34: + ldr r2, _08021AD0 @ =gBattleMons + ldr r1, _08021AD4 @ =gUnknown_02024C08 + ldrb r4, [r1] + movs r3, 0x58 + mov r12, r3 + mov r3, r12 + muls r3, r4 + adds r7, r2, 0 + adds r7, 0x4C + adds r6, r3, r7 + ldr r5, [r6] + movs r0, 0x20 + ands r0, r5 + cmp r0, 0 + bne _08021A54 + b _08021DFA +_08021A54: + adds r0, r3, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08021A5E + b _08021DFA +_08021A5E: + ldr r0, _08021AD8 @ =gUnknown_02024C07 + ldrb r0, [r0] + cmp r0, r4 + bne _08021A68 + b _08021DFA +_08021A68: + ldr r0, _08021ADC @ =gUnknown_02024D68 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r0, 0xC + adds r1, r0 + ldr r0, [r1] + cmp r0, 0 + bne _08021A7C + b _08021DFA +_08021A7C: + ldr r0, _08021AE0 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08021A8A + b _08021DFA +_08021A8A: + ldr r4, [sp, 0x4] + cmp r4, 0xA + beq _08021A92 + b _08021DFA +_08021A92: + movs r0, 0x21 + negs r0, r0 + ands r5, r0 + str r5, [r6] + ldr r4, _08021AE4 @ =gUnknown_02024A60 + ldr r5, _08021AD4 @ =gUnknown_02024C08 + ldrb r0, [r5] + strb r0, [r4] + ldrb r0, [r5] + mov r1, r12 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + bl b_movescr_stack_push_cursor + ldr r1, _08021AE8 @ =gUnknown_02024C10 + ldr r0, _08021AEC @ =gUnknown_081D955D + str r0, [r1] + movs r2, 0x1 + mov r10, r2 + b _08021DFA + .align 2, 0 +_08021AD0: .4byte gBattleMons +_08021AD4: .4byte gUnknown_02024C08 +_08021AD8: .4byte gUnknown_02024C07 +_08021ADC: .4byte gUnknown_02024D68 +_08021AE0: .4byte gUnknown_02024C68 +_08021AE4: .4byte gUnknown_02024A60 +_08021AE8: .4byte gUnknown_02024C10 +_08021AEC: .4byte gUnknown_081D955D +_08021AF0: + ldr r0, _08021B14 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x7 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08021B0C + movs r4, 0x1 + mov r10, r4 +_08021B0C: + ldr r2, _08021B18 @ =0x02000000 + ldr r5, _08021B1C @ =0x0001600c + adds r1, r2, r5 + b _08021E00 + .align 2, 0 +_08021B14: .4byte gUnknown_02024C08 +_08021B18: .4byte 0x02000000 +_08021B1C: .4byte 0x0001600c +_08021B20: + ldr r0, _08021B40 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x4 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _08021B3A + b _08021DFA +_08021B3A: + movs r0, 0x1 + mov r10, r0 + b _08021DFA + .align 2, 0 +_08021B40: .4byte gUnknown_02024C08 +_08021B44: + movs r0, 0 + str r0, [sp] + movs r0, 0x5 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08021B68 + movs r4, 0x1 + mov r10, r4 + ldr r5, _08021B64 @ =0x02000000 + mov r12, r5 + b _0802224E + .align 2, 0 +_08021B64: .4byte 0x02000000 +_08021B68: + ldr r2, _08021B70 @ =0x02000000 + ldr r0, _08021B74 @ =0x0001600c + adds r1, r2, r0 + b _08021E00 + .align 2, 0 +_08021B70: .4byte 0x02000000 +_08021B74: .4byte 0x0001600c +_08021B78: + ldr r0, _08021B98 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _08021B92 + b _08021DFA +_08021B92: + movs r1, 0x1 + mov r10, r1 + b _08021DFA + .align 2, 0 +_08021B98: .4byte gUnknown_02024C07 +_08021B9C: + ldr r0, _08021C28 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _08021BE0 + ldr r4, [sp, 0x8] + cmp r4, 0x1D + bne _08021BE0 + ldr r0, _08021C2C @ =gUnknown_02024BE8 + ldrh r2, [r0] + adds r7, r0, 0 + cmp r2, 0xA5 + beq _08021BE0 + ldr r5, [sp, 0xC] + ldrh r1, [r5] + cmp r1, 0 + beq _08021BC8 + ldr r0, _08021C30 @ =0x0000ffff + cmp r1, r0 + bne _08021BE0 +_08021BC8: + cmp r2, 0xE2 + bne _08021BDA + ldr r0, _08021C34 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08021BDA + b _08022244 +_08021BDA: + ldrh r0, [r7] + ldr r1, [sp, 0xC] + strh r0, [r1] +_08021BE0: + movs r4, 0 + ldr r2, _08021C38 @ =gBattleMons + ldr r3, _08021C3C @ =gUnknown_02024C07 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r2, 0xC + adds r0, r2 + ldrh r0, [r0] + ldr r5, [sp, 0xC] + ldrh r1, [r5] + mov r9, r3 + cmp r0, r1 + beq _08021C18 + mov r6, r9 + movs r3, 0x58 + adds r5, r1, 0 +_08021C02: + adds r4, 0x1 + cmp r4, 0x3 + bgt _08021C18 + lsls r0, r4, 1 + ldrb r1, [r6] + muls r1, r3 + adds r0, r1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r5 + bne _08021C02 +_08021C18: + cmp r4, 0x4 + beq _08021C1E + b _08022244 +_08021C1E: + movs r0, 0 + ldr r1, [sp, 0xC] +_08021C22: + strh r0, [r1] + b _08022244 + .align 2, 0 +_08021C28: .4byte gUnknown_02024C6C +_08021C2C: .4byte gUnknown_02024BE8 +_08021C30: .4byte 0x0000ffff +_08021C34: .4byte gUnknown_02024C68 +_08021C38: .4byte gBattleMons +_08021C3C: .4byte gUnknown_02024C07 +_08021C40: + movs r4, 0 + ldr r0, _08021C6C @ =gUnknown_02024A68 + ldrb r2, [r0] + cmp r4, r2 + blt _08021C4C + b _08022244 +_08021C4C: + movs r5, 0 + ldr r2, _08021C70 @ =0x020160f0 + ldr r3, _08021C74 @ =gBattleMons +_08021C52: + ldrh r1, [r2] + cmp r1, 0 + beq _08021C5C + strh r1, [r3, 0x2E] + strh r5, [r2] +_08021C5C: + adds r2, 0x2 + adds r3, 0x58 + adds r4, 0x1 + ldrb r1, [r0] + cmp r4, r1 + blt _08021C52 + b _08022244 + .align 2, 0 +_08021C6C: .4byte gUnknown_02024A68 +_08021C70: .4byte 0x020160f0 +_08021C74: .4byte gBattleMons +_08021C78: + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl sub_801A02C + lsls r0, 24 + cmp r0, 0 + beq _08021C98 + movs r2, 0x1 + mov r10, r2 + ldr r3, _08021C94 @ =0x02000000 + mov r12, r3 + b _0802224E + .align 2, 0 +_08021C94: .4byte 0x02000000 +_08021C98: + ldr r2, _08021CA0 @ =0x02000000 + ldr r4, _08021CA4 @ =0x0001600c + adds r1, r2, r4 + b _08021E00 + .align 2, 0 +_08021CA0: .4byte 0x02000000 +_08021CA4: .4byte 0x0001600c +_08021CA8: + movs r0, 0x4 + movs r1, 0 + movs r2, 0 + bl sub_801A02C + lsls r0, 24 + cmp r0, 0 + beq _08021CBC + movs r5, 0x1 + mov r10, r5 +_08021CBC: + ldr r2, _08021CC4 @ =0x02000000 + ldr r0, _08021CC8 @ =0x0001600c + adds r1, r2, r0 + b _08021E00 + .align 2, 0 +_08021CC4: .4byte 0x02000000 +_08021CC8: .4byte 0x0001600c +_08021CCC: + ldr r1, _08021D04 @ =gUnknown_02024C98 + ldr r0, _08021D08 @ =gUnknown_02024C07 + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08021D0C @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08021CE2 + b _08021DFA +_08021CE2: + ldr r0, _08021D10 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08021CF0 + b _08021DFA +_08021CF0: + ldr r4, _08021D14 @ =gUnknown_02024A60 + strb r2, [r4] + movs r0, 0 + movs r1, 0x1 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08021DFA + .align 2, 0 +_08021D04: .4byte gUnknown_02024C98 +_08021D08: .4byte gUnknown_02024C07 +_08021D0C: .4byte 0x000400c0 +_08021D10: .4byte gUnknown_02024C6C +_08021D14: .4byte gUnknown_02024A60 +_08021D18: + ldr r0, _08021D88 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08021D44 + ldr r1, _08021D8C @ =gUnknown_02024C98 + ldr r0, _08021D90 @ =gUnknown_02024C07 + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08021D94 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08021D44 + adds r0, r2, 0 + bl sub_8015660 + lsls r0, 24 + cmp r0, 0 + beq _08021D7E +_08021D44: + ldr r4, _08021D98 @ =gUnknown_02024A60 + ldr r5, _08021D90 @ =gUnknown_02024C07 + ldrb r0, [r5] + strb r0, [r4] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, _08021D8C @ =gUnknown_02024C98 + ldrb r2, [r5] + lsls r2, 2 + adds r2, r0 + ldr r0, [r2] + ldr r1, _08021D9C @ =0xfffbff3f + ands r0, r1 + str r0, [r2] + ldr r2, _08021DA0 @ =gUnknown_02024D68 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08021D7E: + ldr r2, _08021DA4 @ =0x02000000 + ldr r4, _08021DA8 @ =0x0001600c + adds r1, r2, r4 + b _08021E00 + .align 2, 0 +_08021D88: .4byte gUnknown_02024C68 +_08021D8C: .4byte gUnknown_02024C98 +_08021D90: .4byte gUnknown_02024C07 +_08021D94: .4byte 0x000400c0 +_08021D98: .4byte gUnknown_02024A60 +_08021D9C: .4byte 0xfffbff3f +_08021DA0: .4byte gUnknown_02024D68 +_08021DA4: .4byte 0x02000000 +_08021DA8: .4byte 0x0001600c +_08021DAC: + ldr r2, _08021E0C @ =gUnknown_02024D68 + ldr r1, _08021E10 @ =gUnknown_02024C08 + ldrb r3, [r1] + lsls r4, r3, 2 + adds r0, r4, r3 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08021DFA + ldr r0, _08021E14 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r3, r0 + bcs _08021DFA + ldr r5, _08021E18 @ =gUnknown_02024C98 + adds r0, r4, r5 + ldr r0, [r0] + ldr r1, _08021E1C @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08021DFA + ldr r4, _08021E20 @ =gUnknown_02024A60 + strb r3, [r4] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, _08021E10 @ =gUnknown_02024C08 + ldrb r2, [r0] + lsls r2, 2 + adds r2, r5 + ldr r0, [r2] + ldr r1, _08021E24 @ =0xfffbff3f + ands r0, r1 + str r0, [r2] +_08021DFA: + ldr r2, _08021E28 @ =0x02000000 + ldr r3, _08021E2C @ =0x0001600c + adds r1, r2, r3 +_08021E00: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + mov r12, r2 + b _0802224E + .align 2, 0 +_08021E0C: .4byte gUnknown_02024D68 +_08021E10: .4byte gUnknown_02024C08 +_08021E14: .4byte gUnknown_02024A68 +_08021E18: .4byte gUnknown_02024C98 +_08021E1C: .4byte 0x000400c0 +_08021E20: .4byte gUnknown_02024A60 +_08021E24: .4byte 0xfffbff3f +_08021E28: .4byte 0x02000000 +_08021E2C: .4byte 0x0001600c +_08021E30: + movs r4, 0 + ldr r0, _08021E60 @ =gUnknown_02024A68 + ldrb r5, [r0] + cmp r4, r5 + blt _08021E3C + b _08022244 +_08021E3C: + ldr r2, _08021E64 @ =gUnknown_02024CA8 + ldr r5, _08021E68 @ =0xfeffffff + adds r3, r0, 0 + ldr r1, _08021E6C @ =gUnknown_02024AD0 +_08021E44: + ldrb r0, [r2, 0xA] + cmp r0, 0 + bne _08021E50 + ldr r0, [r1] + ands r0, r5 + str r0, [r1] +_08021E50: + adds r2, 0x1C + adds r1, 0x58 + adds r4, 0x1 + ldrb r0, [r3] + cmp r4, r0 + blt _08021E44 + b _08022244 + .align 2, 0 +_08021E60: .4byte gUnknown_02024A68 +_08021E64: .4byte gUnknown_02024CA8 +_08021E68: .4byte 0xfeffffff +_08021E6C: .4byte gUnknown_02024AD0 +_08021E70: + ldr r1, _08021F2C @ =gUnknown_02024C6C + ldr r3, [r1] + movs r0, 0x80 + lsls r0, 5 + ands r0, r3 + ldr r2, _08021F30 @ =gUnknown_02024C07 + mov r9, r2 + adds r5, r1, 0 + cmp r0, 0 + beq _08021E9A + ldr r0, _08021F34 @ =gUnknown_02024A60 + ldrb r2, [r2] + strb r2, [r0] + ldr r1, _08021F38 @ =gUnknown_02024C08 + ldrb r0, [r1] + mov r4, r9 + strb r0, [r4] + strb r2, [r1] + ldr r0, _08021F3C @ =0xffffefff + ands r3, r0 + str r3, [r5] +_08021E9A: + ldr r1, _08021F40 @ =gBattleMoves + ldr r2, _08021F44 @ =gUnknown_02024BE8 + ldrh r3, [r2] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + mov r8, r1 + adds r7, r2, 0 + cmp r0, 0x7F + bne _08021EBE + ldr r0, _08021F48 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08021ECA +_08021EBE: + ldr r1, _08021F4C @ =gUnknown_02024C2C + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + strh r3, [r0] +_08021ECA: + ldr r0, _08021F50 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08021F54 @ =gBitTable + mov r3, r9 + ldrb r4, [r3] + lsls r0, r4, 2 + adds r0, r2 + ldr r3, [r0] + ands r1, r3 + adds r6, r2, 0 + cmp r1, 0 + beq _08021EE4 + b _08022244 +_08021EE4: + ldr r0, _08021F58 @ =0x000160a6 + add r0, r12 + ldrb r0, [r0] + ands r0, r3 + cmp r0, 0 + beq _08021EF2 + b _08022244 +_08021EF2: + ldrh r2, [r7] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0] + cmp r0, 0x7F + bne _08021F04 + b _08022244 +_08021F04: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _08021F68 + ldr r1, _08021F5C @ =gUnknown_02024C34 + lsls r0, r4, 1 + adds r0, r1 + strh r2, [r0] + ldr r0, _08021F60 @ =gUnknown_02024C4C + mov r4, r9 + ldrb r1, [r4] + lsls r1, 1 + adds r1, r0 + ldr r0, _08021F64 @ =gUnknown_02024BE6 + ldrh r0, [r0] + strh r0, [r1] + b _08021F82 + .align 2, 0 +_08021F2C: .4byte gUnknown_02024C6C +_08021F30: .4byte gUnknown_02024C07 +_08021F34: .4byte gUnknown_02024A60 +_08021F38: .4byte gUnknown_02024C08 +_08021F3C: .4byte 0xffffefff +_08021F40: .4byte gBattleMoves +_08021F44: .4byte gUnknown_02024BE8 +_08021F48: .4byte gUnknown_02024C68 +_08021F4C: .4byte gUnknown_02024C2C +_08021F50: .4byte gUnknown_02024C0C +_08021F54: .4byte gBitTable +_08021F58: .4byte 0x000160a6 +_08021F5C: .4byte gUnknown_02024C34 +_08021F60: .4byte gUnknown_02024C4C +_08021F64: .4byte gUnknown_02024BE6 +_08021F68: + ldr r1, _08021FD0 @ =gUnknown_02024C34 + lsls r0, r4, 1 + adds r0, r1 + ldr r1, _08021FD4 @ =0x0000ffff + strh r1, [r0] + ldr r1, _08021FD8 @ =gUnknown_02024C4C + mov r2, r9 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + movs r1, 0x1 + negs r1, r1 + strh r1, [r0] +_08021F82: + ldr r2, _08021FDC @ =gUnknown_02024C08 + ldrb r3, [r2] + lsls r0, r3, 2 + adds r0, r6 + ldr r0, [r0] + lsls r0, 28 + ldr r1, [r5] + ands r1, r0 + cmp r1, 0 + bne _08021FA0 + ldr r0, _08021FE0 @ =gUnknown_02024C5C + adds r0, r3, r0 + mov r3, r9 + ldrb r1, [r3] + strb r1, [r0] +_08021FA0: + ldr r0, [r5] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _0802204C + ldr r0, _08021FE4 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0802204C + ldrh r2, [r7] + ldr r0, _08021FD4 @ =0x0000ffff + cmp r2, r0 + bne _08021FEC + ldr r1, _08021FE8 @ =gUnknown_02024C3C + ldr r4, _08021FDC @ =gUnknown_02024C08 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + strh r2, [r0] + b _08022244 + .align 2, 0 +_08021FD0: .4byte gUnknown_02024C34 +_08021FD4: .4byte 0x0000ffff +_08021FD8: .4byte gUnknown_02024C4C +_08021FDC: .4byte gUnknown_02024C08 +_08021FE0: .4byte gUnknown_02024C5C +_08021FE4: .4byte gUnknown_02024C68 +_08021FE8: .4byte gUnknown_02024C3C +_08021FEC: + ldr r0, _08022014 @ =gUnknown_02024C3C + ldr r5, _08022018 @ =gUnknown_02024C08 + ldrb r1, [r5] + lsls r1, 1 + adds r1, r0 + ldr r4, _0802201C @ =gUnknown_02024BE6 + ldrh r0, [r4] + strh r0, [r1] + ldr r0, _08022020 @ =0x0001601c + add r0, r12 + ldrb r3, [r0] + cmp r3, 0 + beq _08022028 + ldr r0, _08022024 @ =gUnknown_02024C44 + ldrb r1, [r5] + lsls r1, 1 + adds r1, r0 + movs r0, 0x3F + ands r0, r3 + b _08021C22 + .align 2, 0 +_08022014: .4byte gUnknown_02024C3C +_08022018: .4byte gUnknown_02024C08 +_0802201C: .4byte gUnknown_02024BE6 +_08022020: .4byte 0x0001601c +_08022024: .4byte gUnknown_02024C44 +_08022028: + ldr r0, _08022044 @ =gUnknown_02024C44 + ldr r1, _08022048 @ =gUnknown_02024C08 + ldrb r2, [r1] + lsls r2, 1 + adds r2, r0 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x2] + strh r0, [r2] + b _08022244 + .align 2, 0 +_08022044: .4byte gUnknown_02024C44 +_08022048: .4byte gUnknown_02024C08 +_0802204C: + ldr r0, _0802205C @ =gUnknown_02024C3C + ldr r2, _08022060 @ =gUnknown_02024C08 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldr r0, _08022064 @ =0x0000ffff + b _08021C22 + .align 2, 0 +_0802205C: .4byte gUnknown_02024C3C +_08022060: .4byte gUnknown_02024C08 +_08022064: .4byte 0x0000ffff +_08022068: + ldr r0, _0802212C @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r6, _08022130 @ =gBitTable + ldr r2, _08022134 @ =gUnknown_02024C07 + ldrb r5, [r2] + lsls r0, r5, 2 + adds r0, r6 + ldr r4, [r0] + ands r1, r4 + mov r9, r2 + cmp r1, 0 + beq _08022082 + b _08022244 +_08022082: + ldr r0, _08022138 @ =0x000160a6 + add r0, r12 + ldrb r0, [r0] + ands r0, r4 + cmp r0, 0 + beq _08022090 + b _08022244 +_08022090: + ldr r1, _0802213C @ =gBattleMoves + ldr r4, _08022140 @ =gUnknown_02024BE8 + ldrh r3, [r4] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x8] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802215C + ldr r0, _08022144 @ =gUnknown_02024C6C + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 18 + ands r0, r1 + cmp r0, 0 + beq _0802215C + ldr r2, _08022148 @ =gUnknown_02024C08 + ldrb r0, [r2] + cmp r5, r0 + bne _080220C0 + b _08022244 +_080220C0: + adds r2, r0, 0 + lsls r0, r2, 2 + adds r0, r6 + ldr r0, [r0] + lsls r0, 28 + ands r1, r0 + cmp r1, 0 + bne _0802215C + ldr r0, _0802214C @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _0802215C + lsls r0, r2, 1 + ldr r5, _08022150 @ =0x000160ac + adds r0, r5 + add r0, r12 + strb r3, [r0] + ldr r0, _08022148 @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r1, 1 + ldr r2, _08022154 @ =0x000160ad + adds r1, r2 + add r1, r12 + ldrh r0, [r4] + lsrs r0, 8 + strb r0, [r1] + ldr r3, _08022148 @ =gUnknown_02024C08 + ldrb r2, [r3] + lsls r2, 2 + mov r5, r9 + ldrb r0, [r5] + lsrs r0, 1 + lsls r0, 1 + ldr r1, _08022158 @ =0x00016100 + adds r0, r1 + adds r2, r0 + add r2, r12 + ldrh r0, [r4] + strb r0, [r2] + ldrb r2, [r3] + lsls r2, 2 + ldrb r0, [r5] + lsrs r0, 1 + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + adds r2, r0 + add r2, r12 + ldrh r0, [r4] + lsrs r0, 8 + strb r0, [r2] + b _08022244 + .align 2, 0 +_0802212C: .4byte gUnknown_02024C0C +_08022130: .4byte gBitTable +_08022134: .4byte gUnknown_02024C07 +_08022138: .4byte 0x000160a6 +_0802213C: .4byte gBattleMoves +_08022140: .4byte gUnknown_02024BE8 +_08022144: .4byte gUnknown_02024C6C +_08022148: .4byte gUnknown_02024C08 +_0802214C: .4byte gUnknown_02024C68 +_08022150: .4byte 0x000160ac +_08022154: .4byte 0x000160ad +_08022158: .4byte 0x00016100 +_0802215C: + mov r1, r9 + ldrb r0, [r1] + ldr r2, _080221B4 @ =gUnknown_02024C08 + ldrb r2, [r2] + cmp r0, r2 + beq _08022244 + ldr r3, _080221B4 @ =gUnknown_02024C08 + ldrb r0, [r3] + lsls r0, 1 + ldr r4, _080221B8 @ =0x000160ac + adds r0, r4 + add r0, r12 + movs r3, 0 + strb r3, [r0] + ldr r5, _080221B4 @ =gUnknown_02024C08 + ldrb r0, [r5] + lsls r0, 1 + ldr r1, _080221BC @ =0x000160ad + adds r0, r1 + add r0, r12 + strb r3, [r0] + ldrb r2, [r5] + lsls r2, 2 + mov r4, r9 + ldrb r0, [r4] + lsrs r0, 1 + lsls r0, 1 + adds r1, 0x53 + adds r0, r1 + adds r2, r0 + add r2, r12 + strb r3, [r2] + ldrb r2, [r5] + lsls r2, 2 + ldrb r0, [r4] + lsrs r0, 1 + lsls r0, 1 + adds r1, 0x1 + adds r0, r1 + adds r2, r0 + add r2, r12 + strb r3, [r2] + b _08022244 + .align 2, 0 +_080221B4: .4byte gUnknown_02024C08 +_080221B8: .4byte 0x000160ac +_080221BC: .4byte 0x000160ad +_080221C0: + ldr r5, _080222B0 @ =gUnknown_02024C6C + ldr r2, [r5] + movs r0, 0x80 + lsls r0, 12 + ands r0, r2 + cmp r0, 0 + bne _08022244 + ldr r0, _080222B4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08022244 + ldr r1, _080222B8 @ =gUnknown_02024D28 + ldr r0, _080222BC @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0x1] + lsls r0, 29 + cmp r0, 0 + blt _08022244 + ldr r0, _080222C0 @ =gBattleMoves + mov r9, r0 + ldr r1, _080222C4 @ =gUnknown_02024BE6 + mov r8, r1 + ldrh r0, [r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r0, [r1, 0x6] + cmp r0, 0x8 + bne _08022244 + movs r6, 0x80 + lsls r6, 2 + adds r4, r6, 0 + ands r4, r2 + cmp r4, 0 + bne _08022244 + ldr r7, _080222C8 @ =gUnknown_02024C08 + ldrb r0, [r7] + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r2, r0, 24 + ldr r1, _080222CC @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _0802223A + bl _08021874 +_0802223A: + ldr r0, [r5] + orrs r0, r6 + str r0, [r5] + ldr r2, _080222D0 @ =0x02000000 + mov r12, r2 +_08022244: + ldr r1, _080222D4 @ =0x0001600c + add r1, r12 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] +_0802224E: + ldr r3, [sp, 0x10] + cmp r3, 0x1 + bne _08022262 + mov r4, r10 + cmp r4, 0 + bne _08022262 + ldr r1, _080222D4 @ =0x0001600c + add r1, r12 + movs r0, 0x11 + strb r0, [r1] +_08022262: + ldr r5, [sp, 0x10] + cmp r5, 0x2 + bne _08022278 + ldr r1, _080222D4 @ =0x0001600c + add r1, r12 + ldr r0, [sp, 0x14] + ldrb r2, [r1] + cmp r0, r2 + bne _08022278 + movs r0, 0x11 + strb r0, [r1] +_08022278: + ldr r0, _080222D4 @ =0x0001600c + add r0, r12 + ldrb r0, [r0] + cmp r0, 0x11 + beq _08022286 + bl _080218E4 +_08022286: + ldr r0, _080222D4 @ =0x0001600c + add r0, r12 + ldrb r0, [r0] + cmp r0, 0x11 + bne _0802229E + mov r3, r10 + cmp r3, 0 + bne _0802229E + ldr r1, _080222D8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x3 +_0802229C: + str r0, [r1] +_0802229E: + add sp, 0x18 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080222B0: .4byte gUnknown_02024C6C +_080222B4: .4byte gUnknown_020239F8 +_080222B8: .4byte gUnknown_02024D28 +_080222BC: .4byte gUnknown_02024C07 +_080222C0: .4byte gBattleMoves +_080222C4: .4byte gUnknown_02024BE6 +_080222C8: .4byte gUnknown_02024C08 +_080222CC: .4byte gBattleMons +_080222D0: .4byte 0x02000000 +_080222D4: .4byte 0x0001600c +_080222D8: .4byte gUnknown_02024C10 + thumb_func_end sub_80217F8 + + thumb_func_start atk4A_damageflags +atk4A_damageflags: @ 80222DC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + movs r5, 0 + ldr r2, _08022340 @ =gBattleMoves + ldr r0, _08022344 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r8, r0 + ldr r2, _08022348 @ =gBattleMons + ldr r3, _0802234C @ =gUnknown_02024C08 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r12, r2 + adds r7, r3, 0 + cmp r0, 0x1A + bne _08022370 + mov r1, r8 + cmp r1, 0x4 + bne _08022370 + ldr r3, _08022350 @ =byte_2024C06 + strb r0, [r3] + ldr r2, _08022354 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x9 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08022358 @ =gUnknown_02024C3C + ldrb r0, [r7] + lsls r0, 1 + adds r0, r1 + strh r4, [r0] + ldr r0, _0802235C @ =gUnknown_02024D1E + mov r2, r8 + strb r2, [r0, 0x6] + ldrb r0, [r7] + ldrb r1, [r3] + bl sub_81074C4 + b _08022452 + .align 2, 0 +_08022340: .4byte gBattleMoves +_08022344: .4byte gUnknown_02024BE6 +_08022348: .4byte gBattleMons +_0802234C: .4byte gUnknown_02024C08 +_08022350: .4byte byte_2024C06 +_08022354: .4byte gUnknown_02024C68 +_08022358: .4byte gUnknown_02024C3C +_0802235C: .4byte gUnknown_02024D1E +_08022360: + ldr r0, _0802236C @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] + b _08022452 + .align 2, 0 +_0802236C: .4byte gUnknown_02024C68 +_08022370: + ldr r1, _0802237C @ =gTypeEffectiveness + adds r0, r5, r1 + ldrb r0, [r0] + adds r6, r1, 0 + b _08022432 + .align 2, 0 +_0802237C: .4byte gTypeEffectiveness +_08022380: + adds r0, r5, r6 + ldrb r0, [r0] + cmp r0, r8 + bne _0802242C + adds r2, r5, 0x1 + adds r3, r2, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r0, 0x21 + ldrb r1, [r3] + adds r3, r2, 0 + ldrb r0, [r0] + cmp r1, r0 + bne _080223BE + adds r0, r5, 0x2 + adds r0, r6 + ldrb r1, [r0] + cmp r1, 0 + beq _08022360 + cmp r1, 0x5 + bne _080223B2 + movs r0, 0x4 + orrs r4, r0 +_080223B2: + cmp r1, 0x14 + bne _080223BE + movs r0, 0x2 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_080223BE: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0802242C + adds r0, 0x21 + ldrb r1, [r0] + cmp r1, r2 + beq _080223E6 + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0 + beq _08022360 +_080223E6: + cmp r1, r2 + beq _080223FC + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x5 + bne _080223FC + movs r0, 0x4 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_080223FC: + adds r2, r3, r6 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x22 + ldrb r2, [r2] + ldrb r1, [r1] + cmp r2, r1 + bne _0802242C + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, r2 + beq _0802242C + adds r0, r5, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x14 + bne _0802242C + movs r0, 0x2 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r4, r0, 24 +_0802242C: + adds r5, 0x3 + adds r0, r5, r6 + ldrb r0, [r0] +_08022432: + cmp r0, 0xFF + beq _08022452 + cmp r0, 0xFE + bne _08022380 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + mov r1, r12 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 22 + ands r0, r1 + cmp r0, 0 + beq _0802242C +_08022452: + ldr r2, _08022500 @ =gBattleMons + ldr r0, _08022504 @ =gUnknown_02024C08 + mov r8, r0 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r6, [r0] + cmp r6, 0x19 + bne _080224CE + movs r5, 0x29 + ands r5, r4 + cmp r5, 0 + bne _080224CE + ldr r0, _08022508 @ =gUnknown_02024C07 + ldrb r0, [r0] + ldr r7, _0802250C @ =gUnknown_02024BE6 + ldrh r1, [r7] + bl move_weather_interaction + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _080224CE + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08022494 + movs r0, 0x6 + ands r4, r0 + cmp r4, 0x6 + bne _080224CE +_08022494: + ldr r2, _08022510 @ =gBattleMoves + ldrh r1, [r7] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _080224CE + ldr r3, _08022514 @ =byte_2024C06 + strb r6, [r3] + ldr r2, _08022518 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802251C @ =gUnknown_02024C3C + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + strh r5, [r0] + ldr r1, _08022520 @ =gUnknown_02024D1E + movs r0, 0x3 + strb r0, [r1, 0x6] + ldrb r0, [r2] + ldrb r1, [r3] + bl sub_81074C4 +_080224CE: + ldr r0, _08022518 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080224EC + ldr r2, _08022524 @ =gUnknown_02024D28 + ldr r0, _08022508 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 4 + adds r1, r2 + ldrb r0, [r1, 0x1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1, 0x1] +_080224EC: + ldr r1, _08022528 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08022500: .4byte gBattleMons +_08022504: .4byte gUnknown_02024C08 +_08022508: .4byte gUnknown_02024C07 +_0802250C: .4byte gUnknown_02024BE6 +_08022510: .4byte gBattleMoves +_08022514: .4byte byte_2024C06 +_08022518: .4byte gUnknown_02024C68 +_0802251C: .4byte gUnknown_02024C3C +_08022520: .4byte gUnknown_02024D1E +_08022524: .4byte gUnknown_02024D28 +_08022528: .4byte gUnknown_02024C10 + thumb_func_end atk4A_damageflags + + thumb_func_start atk4B_cmd4b +atk4B_cmd4b: @ 802252C + push {r4,lr} + ldr r4, _08022568 @ =gUnknown_02024A60 + ldr r0, _0802256C @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r4] + ldr r2, _08022570 @ =gUnknown_02024C6C + ldr r1, _08022574 @ =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _0802255A + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x06_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0802255A: + ldr r1, _08022578 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08022568: .4byte gUnknown_02024A60 +_0802256C: .4byte gUnknown_02024C07 +_08022570: .4byte gUnknown_02024C6C +_08022574: .4byte gBitTable +_08022578: .4byte gUnknown_02024C10 + thumb_func_end atk4B_cmd4b + + thumb_func_start atk4C_switch1 +atk4C_switch1: @ 802257C + push {r4-r6,lr} + ldr r0, _080225D4 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _080225CC + ldr r5, _080225D8 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _080225DC @ =gUnknown_02024A60 + strb r0, [r4] + ldr r3, _080225E0 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r3 + ldr r2, _080225E4 @ =0x02000000 + ldr r6, _080225E8 @ =0x00016068 + adds r0, r6 + adds r0, r2 + ldrb r0, [r0] + strh r0, [r1] + ldr r1, _080225EC @ =gBitTable + ldrb r0, [r4] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r1 + ldrb r2, [r0] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x00_a_b_0 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_080225CC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080225D4: .4byte gUnknown_02024A64 +_080225D8: .4byte gUnknown_02024C10 +_080225DC: .4byte gUnknown_02024A60 +_080225E0: .4byte gUnknown_02024A6A +_080225E4: .4byte 0x02000000 +_080225E8: .4byte 0x00016068 +_080225EC: .4byte gBitTable + thumb_func_end atk4C_switch1 + + thumb_func_start sub_80225F0 +sub_80225F0: @ 80225F0 + push {r4-r7,lr} + sub sp, 0x58 + ldr r0, _0802274C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _080225FE + b _08022744 +_080225FE: + ldr r0, _08022750 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _08022754 @ =gUnknown_02024A60 + strb r0, [r4] + ldr r6, _08022758 @ =gBattleMons + ldrb r0, [r4] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + mov r0, sp + movs r2, 0x58 + bl memcpy + ldrb r0, [r4] + muls r0, r5 + adds r3, r0, r6 + movs r2, 0 + ldr r5, _0802275C @ =gUnknown_02024260 + adds r7, r4, 0 +_0802262C: + adds r0, r3, r2 + ldrb r1, [r4] + lsls r1, 9 + adds r1, 0x4 + adds r1, r2, r1 + adds r1, r5 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x57 + bls _0802262C + ldr r4, _08022758 @ =gBattleMons + ldrb r0, [r7] + movs r6, 0x58 + adds r2, r0, 0 + muls r2, r6 + adds r2, r4 + ldr r3, _08022760 @ =gBaseStats + ldrh r1, [r2] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x6] + adds r2, 0x21 + strb r0, [r2] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + adds r1, r4 + ldrh r2, [r1] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x7] + adds r1, 0x22 + strb r0, [r1] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + adds r1, r4 + ldrh r0, [r1] + ldrb r1, [r1, 0x17] + lsrs r1, 7 + bl GetAbilityBySpecies + ldrb r1, [r7] + muls r1, r6 + adds r1, r4 + adds r1, 0x20 + strb r0, [r1] + ldrb r0, [r7] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _08022764 @ =gUnknown_02024DBC + adds r0, 0x29 + adds r0, r2, r0 + ldrb r1, [r0] + ldr r3, _08022768 @ =gBitTable + ldr r2, _0802276C @ =gUnknown_02024A6A + ldrb r5, [r7] + lsls r0, r5, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ands r1, r0 + mov r12, r4 + cmp r1, 0 + beq _080226CA + adds r0, r5, 0 + muls r0, r6 + add r0, r12 + movs r1, 0 + strh r1, [r0, 0x2E] +_080226CA: + ldr r2, _08022770 @ =gBattleMoves + ldr r0, _08022774 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x7F + bne _08022710 + movs r2, 0 + adds r4, r7, 0 + movs r6, 0x58 + mov r5, r12 + adds r5, 0x18 + add r3, sp, 0x18 +_080226EA: + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r6 + adds r1, r2, r1 + adds r1, r5 + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _080226EA + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + mov r1, r12 + adds r1, 0x50 + adds r0, r1 + ldr r1, [sp, 0x50] + str r1, [r0] +_08022710: + bl sub_8010B88 + ldr r0, _08022778 @ =0x02000000 + ldr r3, _08022754 @ =gUnknown_02024A60 + ldrb r2, [r3] + ldr r1, _0802277C @ =0x00016003 + adds r0, r1 + strb r2, [r0] + ldr r1, _08022780 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + ldr r2, _0802276C @ =gUnknown_02024A6A + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08022750 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08022744: + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802274C: .4byte gUnknown_02024A64 +_08022750: .4byte gUnknown_02024C10 +_08022754: .4byte gUnknown_02024A60 +_08022758: .4byte gBattleMons +_0802275C: .4byte gUnknown_02024260 +_08022760: .4byte gBaseStats +_08022764: .4byte gUnknown_02024DBC +_08022768: .4byte gBitTable +_0802276C: .4byte gUnknown_02024A6A +_08022770: .4byte gBattleMoves +_08022774: .4byte gUnknown_02024BE6 +_08022778: .4byte 0x02000000 +_0802277C: .4byte 0x00016003 +_08022780: .4byte gUnknown_030041C0 + thumb_func_end sub_80225F0 + + thumb_func_start sub_8022784 +sub_8022784: @ 8022784 + push {r4,r5,lr} + ldr r0, _0802280C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08022806 + ldr r0, _08022810 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _08022814 @ =gUnknown_02024A60 + strb r0, [r4] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _080227D0 + ldr r0, _08022818 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0802281C @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _080227D0 + ldr r2, _08022820 @ =gBattleMons + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x2 + bl sub_8090D90 +_080227D0: + ldr r2, _08022824 @ =gUnknown_02024C0C + ldr r1, _08022828 @ =gBitTable + ldr r5, _08022814 @ =gUnknown_02024A60 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldrb r0, [r2] + bics r0, r1 + strb r0, [r2] + ldr r1, _0802282C @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrb r1, [r0] + ldr r4, _08022810 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r2, [r0, 0x2] + movs r0, 0 + bl sub_800C704 + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] +_08022806: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802280C: .4byte gUnknown_02024A64 +_08022810: .4byte gUnknown_02024C10 +_08022814: .4byte gUnknown_02024A60 +_08022818: .4byte gUnknown_020239F8 +_0802281C: .4byte 0x00000902 +_08022820: .4byte gBattleMons +_08022824: .4byte gUnknown_02024C0C +_08022828: .4byte gBitTable +_0802282C: .4byte gUnknown_02024A6A + thumb_func_end sub_8022784 + + thumb_func_start sub_8022830 +sub_8022830: @ 8022830 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _08022894 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + movs r0, 0x7F + ands r0, r1 + bl sub_8015150 + ldr r3, _08022898 @ =gUnknown_02024A60 + strb r0, [r3] + ldr r2, [r4] + ldrb r1, [r2, 0x1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080228A8 + ldr r1, _0802289C @ =gBattleMons + ldrb r3, [r3] + movs r0, 0x58 + muls r0, r3 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080228A0 @ =0x0400e000 + ands r0, r1 + cmp r0, 0 + bne _0802287C + ldr r1, _080228A4 @ =gUnknown_02024C98 + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 3 + ands r0, r1 + cmp r0, 0 + beq _080228A8 +_0802287C: + 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, [r4] + b _08022A2C + .align 2, 0 +_08022894: .4byte gUnknown_02024C10 +_08022898: .4byte gUnknown_02024A60 +_0802289C: .4byte gBattleMons +_080228A0: .4byte 0x0400e000 +_080228A4: .4byte gUnknown_02024C98 +_080228A8: + ldr r5, _08022934 @ =gUnknown_020239F8 + ldrh r1, [r5] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08022948 + ldr r4, _08022938 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0802293C @ =gPlayerParty + mov r8, r1 + cmp r0, 0x1 + bne _080228CC + ldr r0, _08022940 @ =gEnemyParty + mov r8, r0 +_080228CC: + movs r5, 0 + ldrb r0, [r4] + bl sub_803FC34 + lsls r0, 24 + lsrs r0, 24 + bl sub_803FBFC + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _080228E6 + movs r5, 0x3 +_080228E6: + adds r6, r5, 0x3 + cmp r5, r6 + bge _0802292E + ldr r7, _08022944 @ =gUnknown_02024A6A +_080228EE: + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _08022928 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _08022928 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08022928 + ldr r0, _08022938 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r5 + bne _0802292E +_08022928: + adds r5, 0x1 + cmp r5, r6 + blt _080228EE +_0802292E: + cmp r5, r6 + beq _080229FC + b _08022A24 + .align 2, 0 +_08022934: .4byte gUnknown_020239F8 +_08022938: .4byte gUnknown_02024A60 +_0802293C: .4byte gPlayerParty +_08022940: .4byte gEnemyParty +_08022944: .4byte gUnknown_02024A6A +_08022948: + ldr r0, _08022978 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _08022988 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r1, [r5] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _0802297C + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + b _0802297E + .align 2, 0 +_08022978: .4byte gUnknown_02024A60 +_0802297C: + adds r6, r7, 0 +_0802297E: + ldr r0, _08022984 @ =gEnemyParty + mov r8, r0 + b _080229AE + .align 2, 0 +_08022984: .4byte gEnemyParty +_08022988: + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r7, r0, 24 + ldrh r1, [r5] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080229A8 + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + b _080229AA +_080229A8: + adds r6, r7, 0 +_080229AA: + ldr r1, _08022A18 @ =gPlayerParty + mov r8, r1 +_080229AE: + movs r5, 0 +_080229B0: + 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 _080229F2 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080229F2 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _080229F2 + ldr r1, _08022A1C @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _080229F2 + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + bne _080229F8 +_080229F2: + adds r5, 0x1 + cmp r5, 0x5 + ble _080229B0 +_080229F8: + cmp r5, 0x6 + bne _08022A24 +_080229FC: + ldr r3, _08022A20 @ =gUnknown_02024C10 + ldr r2, [r3] + 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 _08022A2C + .align 2, 0 +_08022A18: .4byte gPlayerParty +_08022A1C: .4byte gUnknown_02024A6A +_08022A20: .4byte gUnknown_02024C10 +_08022A24: + ldr r1, _08022A38 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] +_08022A2C: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08022A38: .4byte gUnknown_02024C10 + thumb_func_end sub_8022830 + + thumb_func_start sub_8022A3C +sub_8022A3C: @ 8022A3C + push {r4,r5,lr} + sub sp, 0x4 + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + ldr r4, _08022A84 @ =0x02000000 + ldr r5, _08022A88 @ =gUnknown_02024A60 + ldrb r0, [r5] + ldr r3, _08022A8C @ =0x00016064 + adds r1, r0, r3 + adds r1, r4 + ldr r3, _08022A90 @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + ldr r1, _08022A94 @ =0x0001606c + adds r4, r1 + adds r0, r4 + str r0, [sp] + movs r0, 0 + movs r1, 0x1 + movs r3, 0 + bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08022A84: .4byte 0x02000000 +_08022A88: .4byte gUnknown_02024A60 +_08022A8C: .4byte 0x00016064 +_08022A90: .4byte gUnknown_02024A6A +_08022A94: .4byte 0x0001606c + thumb_func_end sub_8022A3C + + thumb_func_start atk50_openpartyscreen +atk50_openpartyscreen: @ 8022A98 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r7, 0 + movs r0, 0 + mov r9, r0 + ldr r6, _08022B44 @ =gUnknown_02024C10 + ldr r1, [r6] + ldrb r2, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + orrs r2, r0 + mov r8, r2 + ldrb r2, [r1, 0x1] + adds r0, r2, 0 + mov r12, r6 + cmp r0, 0x5 + beq _08022ACE + b _08022F74 +_08022ACE: + ldr r0, _08022B48 @ =gUnknown_020239F8 + ldrh r0, [r0] + movs r1, 0x41 + ands r1, r0 + cmp r1, 0x1 + beq _08022BBC + ldr r1, _08022B4C @ =gUnknown_02024A60 + strb r7, [r1] + ldr r0, _08022B50 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r7, r0 + bcc _08022AE8 + b _08022F62 +_08022AE8: + ldr r7, _08022B54 @ =gUnknown_02024C6C + ldr r6, _08022B58 @ =gBitTable + adds r4, r1, 0 + ldr r0, _08022B5C @ =gUnknown_02024C0C + mov r8, r0 +_08022AF2: + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + ands r0, r1 + cmp r0, 0 + beq _08022B94 + adds r0, r2, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _08022B60 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + mov r2, r8 + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08022BA2 + .align 2, 0 +_08022B44: .4byte gUnknown_02024C10 +_08022B48: .4byte gUnknown_020239F8 +_08022B4C: .4byte gUnknown_02024A60 +_08022B50: .4byte gUnknown_02024A68 +_08022B54: .4byte gUnknown_02024C6C +_08022B58: .4byte gBitTable +_08022B5C: .4byte gUnknown_02024C0C +_08022B60: + ldr r5, _08022B90 @ =gUnknown_02024D68 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08022BA2 + movs r0, 0x6 + bl sub_8022A3C + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08022BA2 + .align 2, 0 +_08022B90: .4byte gUnknown_02024D68 +_08022B94: + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08022BA2: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08022BB8 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08022AF2 + b _08022F62 + .align 2, 0 +_08022BB8: .4byte gUnknown_02024A68 +_08022BBC: + ands r1, r0 + cmp r1, 0 + bne _08022BC4 + b _08022F62 +_08022BC4: + ldr r0, _08022C1C @ =gUnknown_02024C6C + mov r8, r0 + ldr r0, [r0] + lsrs r5, r0, 28 + ldr r6, _08022C20 @ =gBitTable + ldr r0, [r6] + ands r0, r5 + cmp r0, 0 + beq _08022C7E + ldr r4, _08022C24 @ =gUnknown_02024A60 + strb r7, [r4] + movs r0, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _08022C2C + ldr r2, _08022C28 @ =gUnknown_02024C0C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + mov r2, r8 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08022C7E + .align 2, 0 +_08022C1C: .4byte gUnknown_02024C6C +_08022C20: .4byte gBitTable +_08022C24: .4byte gUnknown_02024A60 +_08022C28: .4byte gUnknown_02024C0C +_08022C2C: + ldr r6, _08022C60 @ =gUnknown_02024D68 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08022C6C + ldr r0, _08022C64 @ =0x02000000 + ldr r1, _08022C68 @ =0x0001606a + adds r0, r1 + ldrb r0, [r0] + bl sub_8022A3C + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08022C7E + .align 2, 0 +_08022C60: .4byte gUnknown_02024D68 +_08022C64: .4byte 0x02000000 +_08022C68: .4byte 0x0001606a +_08022C6C: + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + movs r2, 0x1 + mov r9, r2 +_08022C7E: + ldr r6, _08022CD8 @ =gBitTable + ldr r0, [r6, 0x8] + ands r0, r5 + cmp r0, 0 + beq _08022D40 + ldr r0, [r6] + ands r0, r5 + cmp r0, 0 + bne _08022D40 + ldr r4, _08022CDC @ =gUnknown_02024A60 + movs r0, 0x2 + strb r0, [r4] + movs r0, 0x2 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _08022CE8 + ldr r2, _08022CE0 @ =gUnknown_02024C0C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _08022CE4 @ =gUnknown_02024C6C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08022D40 + .align 2, 0 +_08022CD8: .4byte gBitTable +_08022CDC: .4byte gUnknown_02024A60 +_08022CE0: .4byte gUnknown_02024C0C +_08022CE4: .4byte gUnknown_02024C6C +_08022CE8: + ldr r6, _08022D1C @ =gUnknown_02024D68 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08022D28 + ldr r0, _08022D20 @ =0x02000000 + ldr r1, _08022D24 @ =0x00016068 + adds r0, r1 + ldrb r0, [r0] + bl sub_8022A3C + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08022D40 + .align 2, 0 +_08022D1C: .4byte gUnknown_02024D68 +_08022D20: .4byte 0x02000000 +_08022D24: .4byte 0x00016068 +_08022D28: + movs r0, 0x1 + mov r2, r9 + ands r0, r2 + cmp r0, 0 + bne _08022D40 + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08022D40: + ldr r6, _08022D90 @ =gBitTable + ldr r0, [r6, 0x4] + ands r0, r5 + cmp r0, 0 + beq _08022DF6 + ldr r4, _08022D94 @ =gUnknown_02024A60 + movs r0, 0x1 + strb r0, [r4] + movs r0, 0x1 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _08022DA0 + ldr r2, _08022D98 @ =gUnknown_02024C0C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _08022D9C @ =gUnknown_02024C6C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08022DF6 + .align 2, 0 +_08022D90: .4byte gBitTable +_08022D94: .4byte gUnknown_02024A60 +_08022D98: .4byte gUnknown_02024C0C +_08022D9C: .4byte gUnknown_02024C6C +_08022DA0: + ldr r6, _08022DD4 @ =gUnknown_02024D68 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08022DE0 + ldr r0, _08022DD8 @ =0x02000000 + ldr r1, _08022DDC @ =0x0001606b + adds r0, r1 + ldrb r0, [r0] + bl sub_8022A3C + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08022DF6 + .align 2, 0 +_08022DD4: .4byte gUnknown_02024D68 +_08022DD8: .4byte 0x02000000 +_08022DDC: .4byte 0x0001606b +_08022DE0: + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + movs r0, 0x2 + mov r2, r9 + orrs r2, r0 + mov r9, r2 +_08022DF6: + ldr r6, _08022E50 @ =gBitTable + ldr r0, [r6, 0xC] + ands r0, r5 + cmp r0, 0 + beq _08022EB8 + ldr r0, [r6, 0x4] + ands r0, r5 + cmp r0, 0 + bne _08022EB8 + ldr r4, _08022E54 @ =gUnknown_02024A60 + movs r0, 0x3 + strb r0, [r4] + movs r0, 0x3 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _08022E60 + ldr r2, _08022E58 @ =gUnknown_02024C0C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _08022E5C @ =gUnknown_02024C6C + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _08022EB8 + .align 2, 0 +_08022E50: .4byte gBitTable +_08022E54: .4byte gUnknown_02024A60 +_08022E58: .4byte gUnknown_02024C0C +_08022E5C: .4byte gUnknown_02024C6C +_08022E60: + ldr r6, _08022E94 @ =gUnknown_02024D68 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08022EA0 + ldr r0, _08022E98 @ =0x02000000 + ldr r1, _08022E9C @ =0x00016069 + adds r0, r1 + ldrb r0, [r0] + bl sub_8022A3C + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08022EB8 + .align 2, 0 +_08022E94: .4byte gUnknown_02024D68 +_08022E98: .4byte 0x02000000 +_08022E9C: .4byte 0x00016069 +_08022EA0: + movs r0, 0x2 + mov r2, r9 + ands r2, r0 + cmp r2, 0 + bne _08022EB8 + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08022EB8: + ldr r1, _08022EE8 @ =gUnknown_02024D68 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _08022F0C + adds r0, r1, 0 + adds r0, 0x28 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _08022F0C + cmp r5, 0 + beq _08022F0C + ldr r0, _08022EEC @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r0, _08022EF0 @ =gBitTable + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08022EF8 + ldr r1, _08022EF4 @ =gUnknown_02024A60 + movs r0, 0x2 + strb r0, [r1] + b _08022EFC + .align 2, 0 +_08022EE8: .4byte gUnknown_02024D68 +_08022EEC: .4byte gUnknown_02024C0C +_08022EF0: .4byte gBitTable +_08022EF4: .4byte gUnknown_02024A60 +_08022EF8: + ldr r0, _08022F3C @ =gUnknown_02024A60 + strb r1, [r0] +_08022EFC: + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldr r0, _08022F3C @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution +_08022F0C: + ldr r1, _08022F40 @ =gUnknown_02024D68 + ldrb r0, [r1, 0x14] + lsls r0, 25 + cmp r0, 0 + blt _08022F62 + adds r0, r1, 0 + adds r0, 0x3C + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + blt _08022F62 + cmp r5, 0 + beq _08022F62 + ldr r0, _08022F44 @ =gUnknown_02024C0C + ldrb r0, [r0] + ldr r1, _08022F48 @ =gBitTable + ldr r1, [r1, 0x4] + ands r0, r1 + cmp r0, 0 + beq _08022F4C + ldr r1, _08022F3C @ =gUnknown_02024A60 + movs r0, 0x3 + b _08022F50 + .align 2, 0 +_08022F3C: .4byte gUnknown_02024A60 +_08022F40: .4byte gUnknown_02024D68 +_08022F44: .4byte gUnknown_02024C0C +_08022F48: .4byte gBitTable +_08022F4C: + ldr r1, _08022F6C @ =gUnknown_02024A60 + movs r0, 0x1 +_08022F50: + strb r0, [r1] + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldr r0, _08022F6C @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution +_08022F62: + ldr r1, _08022F70 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + b _08023302 + .align 2, 0 +_08022F6C: .4byte gUnknown_02024A60 +_08022F70: .4byte gUnknown_02024C10 +_08022F74: + cmp r0, 0x6 + beq _08022F7A + b _08023170 +_08022F7A: + ldr r0, _08022FF0 @ =gUnknown_020239F8 + ldrh r2, [r0] + movs r0, 0x40 + ands r0, r2 + cmp r0, 0 + beq _08022F88 + b _0802310C +_08022F88: + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _08022F92 + b _0802310C +_08022F92: + ldr r7, _08022FF4 @ =gUnknown_02024C6C + ldr r0, [r7] + lsrs r5, r0, 28 + ldr r4, _08022FF8 @ =gBitTable + ldr r0, [r4, 0x8] + ands r0, r5 + cmp r0, 0 + beq _0802303A + ldr r0, [r4] + ands r0, r5 + cmp r0, 0 + beq _0802303A + ldr r6, _08022FFC @ =gUnknown_02024A60 + movs r0, 0x2 + strb r0, [r6] + ldr r0, _08023000 @ =gUnknown_02024260 + ldrb r1, [r0, 0x1] + movs r0, 0x2 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _08023008 + ldr r2, _08023004 @ =gUnknown_02024C0C + ldrb r0, [r6] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r7] + bics r0, r1 + str r0, [r7] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r6] + bl dp01_battle_side_mark_buffer_for_execution + b _0802303A + .align 2, 0 +_08022FF0: .4byte gUnknown_020239F8 +_08022FF4: .4byte gUnknown_02024C6C +_08022FF8: .4byte gBitTable +_08022FFC: .4byte gUnknown_02024A60 +_08023000: .4byte gUnknown_02024260 +_08023004: .4byte gUnknown_02024C0C +_08023008: + ldr r4, _08023098 @ =gUnknown_02024D68 + ldrb r0, [r6] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _0802303A + ldr r0, _0802309C @ =0x02000000 + ldr r1, _080230A0 @ =0x00016068 + adds r0, r1 + ldrb r0, [r0] + bl sub_8022A3C + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] +_0802303A: + ldr r4, _080230A4 @ =gBitTable + ldr r0, [r4, 0xC] + ands r0, r5 + cmp r0, 0 + beq _080230EE + ldr r0, [r4, 0x4] + ands r5, r0 + cmp r5, 0 + beq _080230EE + ldr r5, _080230A8 @ =gUnknown_02024A60 + movs r0, 0x3 + strb r0, [r5] + ldr r0, _080230AC @ =gUnknown_02024260 + ldr r2, _080230B0 @ =0x00000201 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x3 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _080230BC + ldr r2, _080230B4 @ =gUnknown_02024C0C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r2] + orrs r0, r1 + strb r0, [r2] + ldr r2, _080230B8 @ =gUnknown_02024C6C + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x2A_2A_2A_2A + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + b _080230EE + .align 2, 0 +_08023098: .4byte gUnknown_02024D68 +_0802309C: .4byte 0x02000000 +_080230A0: .4byte 0x00016068 +_080230A4: .4byte gBitTable +_080230A8: .4byte gUnknown_02024A60 +_080230AC: .4byte gUnknown_02024260 +_080230B0: .4byte 0x00000201 +_080230B4: .4byte gUnknown_02024C0C +_080230B8: .4byte gUnknown_02024C6C +_080230BC: + ldr r4, _080230FC @ =gUnknown_02024D68 + ldrb r0, [r5] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 25 + cmp r0, 0 + blt _080230EE + ldr r0, _08023100 @ =0x02000000 + ldr r1, _08023104 @ =0x00016069 + adds r0, r1 + ldrb r0, [r0] + bl sub_8022A3C + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] +_080230EE: + ldr r1, _08023108 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] + mov r12, r1 + b _08023110 + .align 2, 0 +_080230FC: .4byte gUnknown_02024D68 +_08023100: .4byte 0x02000000 +_08023104: .4byte 0x00016069 +_08023108: .4byte gUnknown_02024C10 +_0802310C: + adds r0, r1, 0x6 + str r0, [r6] +_08023110: + ldr r0, _08023160 @ =gUnknown_02024C6C + ldr r0, [r0] + lsrs r5, r0, 28 + ldr r1, _08023164 @ =gUnknown_02024C09 + movs r0, 0 + strb r0, [r1] + ldr r4, _08023168 @ =gBitTable + ldr r2, [r4] + ands r2, r5 + ldr r6, _0802316C @ =gUnknown_02024A68 + cmp r2, 0 + bne _0802314C + adds r7, r6, 0 + ldrb r0, [r6] + cmp r2, r0 + bcs _0802314C + adds r3, r1, 0 +_08023132: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + ldrb r2, [r3] + lsls r0, r2, 2 + adds r0, r4 + ldr r0, [r0] + ands r0, r5 + cmp r0, 0 + bne _0802314C + ldrb r0, [r7] + cmp r2, r0 + bcc _08023132 +_0802314C: + ldrb r0, [r1] + ldrb r6, [r6] + cmp r0, r6 + beq _08023156 + b _08023302 +_08023156: + mov r1, r8 + mov r2, r12 + str r1, [r2] + b _08023302 + .align 2, 0 +_08023160: .4byte gUnknown_02024C6C +_08023164: .4byte gUnknown_02024C09 +_08023168: .4byte gBitTable +_0802316C: .4byte gUnknown_02024A68 +_08023170: + movs r0, 0x80 + ands r0, r2 + movs r5, 0x1 + cmp r0, 0 + beq _0802317C + movs r5, 0 +_0802317C: + movs r0, 0x7F + ands r0, r2 + bl sub_8015150 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _080231A4 @ =gUnknown_02024D68 + lsls r0, r7, 2 + adds r0, r7 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 25 + cmp r0, 0 + bge _080231A8 + ldr r0, [r6] + adds r0, 0x6 + str r0, [r6] + b _08023302 + .align 2, 0 +_080231A4: .4byte gUnknown_02024D68 +_080231A8: + adds r0, r7, 0 + movs r1, 0x6 + movs r2, 0x6 + bl sub_8018018 + lsls r0, 24 + cmp r0, 0 + beq _080231F8 + ldr r2, _080231E8 @ =gUnknown_02024A60 + strb r7, [r2] + ldr r3, _080231EC @ =gUnknown_02024C0C + ldr r4, _080231F0 @ =gBitTable + ldrb r0, [r2] + lsls r0, 2 + adds r0, r4 + ldr r0, [r0] + ldrb r1, [r3] + orrs r0, r1 + strb r0, [r3] + ldr r3, _080231F4 @ =gUnknown_02024C6C + ldrb r0, [r2] + lsls r0, 2 + adds r0, r4 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + mov r0, r8 + str r0, [r6] + b _08023302 + .align 2, 0 +_080231E8: .4byte gUnknown_02024A60 +_080231EC: .4byte gUnknown_02024C0C +_080231F0: .4byte gBitTable +_080231F4: .4byte gUnknown_02024C6C +_080231F8: + ldr r4, _080232A0 @ =gUnknown_02024A60 + strb r7, [r4] + ldr r3, _080232A4 @ =0x02000000 + ldrb r0, [r4] + ldr r2, _080232A8 @ =0x00016064 + adds r1, r0, r2 + adds r1, r3 + ldr r2, _080232AC @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + ldr r1, _080232B0 @ =0x00016068 + adds r0, r1 + adds r0, r3 + ldrb r2, [r0] + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + ldr r1, _080232B4 @ =0x0001606c + adds r3, r1 + adds r0, r3 + str r0, [sp] + movs r0, 0 + adds r1, r5, 0 + movs r3, 0 + bl dp01_build_cmdbuf_x16_a_b_c_ptr_d_e_f + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r6] + adds r0, 0x6 + str r0, [r6] + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + cmp r0, 0 + bne _0802325A + ldr r1, _080232B8 @ =gUnknown_030042E0 + ldrb r0, [r1, 0x2] + cmp r0, 0xFE + bhi _0802325A + adds r0, 0x1 + strb r0, [r1, 0x2] +_0802325A: + ldr r0, _080232BC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080232C4 + ldr r1, _080232A0 @ =gUnknown_02024A60 + movs r0, 0 + strb r0, [r1] + ldr r0, _080232C0 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r0, 0 + beq _08023302 + adds r4, r1, 0 +_08023276: + ldrb r0, [r4] + cmp r0, r7 + beq _0802328A + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0802328A: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _080232C0 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bcc _08023276 + b _08023302 + .align 2, 0 +_080232A0: .4byte gUnknown_02024A60 +_080232A4: .4byte 0x02000000 +_080232A8: .4byte 0x00016064 +_080232AC: .4byte gUnknown_02024A6A +_080232B0: .4byte 0x00016068 +_080232B4: .4byte 0x0001606c +_080232B8: .4byte gUnknown_030042E0 +_080232BC: .4byte gUnknown_020239F8 +_080232C0: .4byte gUnknown_02024A68 +_080232C4: + adds r0, r7, 0 + bl battle_get_per_side_status + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r4, _08023310 @ =gUnknown_02024A60 + strb r0, [r4] + ldr r0, _08023314 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08023318 @ =gBitTable + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080232F4 + movs r0, 0x2 + eors r3, r0 + strb r3, [r4] +_080232F4: + movs r0, 0 + movs r1, 0x2 + bl sub_800D1D8 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08023302: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08023310: .4byte gUnknown_02024A60 +_08023314: .4byte gUnknown_02024C0C +_08023318: .4byte gBitTable + thumb_func_end atk50_openpartyscreen + + thumb_func_start sub_802331C +sub_802331C: @ 802331C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0802334C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _0802332C + b _080234FE +_0802332C: + ldr r4, _08023350 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r7, _08023354 @ =gUnknown_02024A60 + strb r0, [r7] + ldr r0, [r4] + ldrb r0, [r0, 0x2] + cmp r0, 0x1 + beq _080233A0 + cmp r0, 0x1 + bgt _08023358 + cmp r0, 0 + beq _0802335E + b _080234F6 + .align 2, 0 +_0802334C: .4byte gUnknown_02024A64 +_08023350: .4byte gUnknown_02024C10 +_08023354: .4byte gUnknown_02024A60 +_08023358: + cmp r0, 0x2 + beq _080233BC + b _080234F6 +_0802335E: + movs r3, 0 + ldr r2, _08023390 @ =gUnknown_02024A68 + ldrb r0, [r2] + cmp r3, r0 + blt _0802336A + b _080234F6 +_0802336A: + ldr r0, _08023394 @ =0x02000000 + ldr r1, _08023398 @ =gUnknown_02024260 + movs r5, 0x80 + lsls r5, 2 + adds r4, r2, 0 + ldr r6, _0802339C @ =0x00016068 + adds r2, r0, r6 +_08023378: + ldrb r0, [r1] + cmp r0, 0x22 + bne _08023382 + ldrb r0, [r1, 0x1] + strb r0, [r2] +_08023382: + adds r1, r5 + adds r2, 0x1 + adds r3, 0x1 + ldrb r0, [r4] + cmp r3, r0 + blt _08023378 + b _080234F6 + .align 2, 0 +_08023390: .4byte gUnknown_02024A68 +_08023394: .4byte 0x02000000 +_08023398: .4byte gUnknown_02024260 +_0802339C: .4byte 0x00016068 +_080233A0: + ldr r0, _080233B8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080233AE + b _080234F6 +_080233AE: + ldrb r0, [r7] + bl sub_8012258 + b _080234F6 + .align 2, 0 +_080233B8: .4byte gUnknown_020239F8 +_080233BC: + ldr r1, _08023484 @ =gUnknown_02024D1E + ldr r4, _08023488 @ =gUnknown_02024260 + ldrb r0, [r7] + lsls r0, 9 + adds r2, r4, 0x1 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r6, _0802348C @ =0x02000000 + ldrb r0, [r7] + ldr r3, _08023490 @ =0x00016068 + adds r1, r0, r3 + adds r1, r6 + lsls r0, 9 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r0, _08023494 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080234A4 + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + ldr r5, _08023498 @ =0x0001606c + adds r1, r5 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0xF + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + adds r1, r5 + adds r1, r6 + lsls r0, 9 + adds r2, r4, 0x2 + mov r12, r2 + add r0, r12 + ldrb r2, [r0] + movs r3, 0xF0 + adds r0, r3, 0 + ands r0, r2 + ldrb r2, [r1] + orrs r0, r2 + strb r0, [r1] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + ldr r2, _0802349C @ =0x0001606d + adds r1, r2 + adds r1, r6 + lsls r0, 9 + adds r4, 0x3 + mov r8, r4 + add r0, r8 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r4, 0x2 + eors r0, r4 + lsls r1, r0, 1 + adds r1, r0 + adds r1, r5 + adds r1, r6 + ldrb r2, [r1] + adds r0, r3, 0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r7] + eors r0, r4 + lsls r1, r0, 1 + adds r1, r0 + adds r1, r5 + adds r1, r6 + ldrb r0, [r7] + lsls r0, 9 + add r0, r12 + ldrb r0, [r0] + ands r3, r0 + lsrs r3, 4 + ldrb r0, [r1] + orrs r3, r0 + strb r3, [r1] + ldrb r0, [r7] + eors r4, r0 + lsls r1, r4, 1 + adds r1, r4 + ldr r3, _080234A0 @ =0x0001606e + adds r1, r3 + adds r1, r6 + ldrb r0, [r7] + lsls r0, 9 + add r0, r8 + ldrb r0, [r0] + strb r0, [r1] + b _080234AA + .align 2, 0 +_08023484: .4byte gUnknown_02024D1E +_08023488: .4byte gUnknown_02024260 +_0802348C: .4byte 0x02000000 +_08023490: .4byte 0x00016068 +_08023494: .4byte gUnknown_020239F8 +_08023498: .4byte 0x0001606c +_0802349C: .4byte 0x0001606d +_080234A0: .4byte 0x0001606e +_080234A4: + ldrb r0, [r7] + bl sub_8012258 +_080234AA: + ldr r1, _08023508 @ =gUnknown_030041C0 + movs r5, 0xFD + strb r5, [r1] + movs r0, 0x6 + strb r0, [r1, 0x1] + ldr r4, _0802350C @ =gBattleMons + ldr r3, _08023510 @ =gUnknown_02024C07 + ldrb r0, [r3] + movs r2, 0x58 + muls r0, r2 + adds r0, r4 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + muls r0, r2 + adds r0, r4 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r2, _08023514 @ =gUnknown_03004290 + strb r5, [r2] + movs r0, 0x7 + strb r0, [r2, 0x1] + ldr r3, _08023518 @ =gUnknown_02024A60 + ldrb r0, [r3] + strb r0, [r2, 0x2] + ldr r1, _0802351C @ =gUnknown_02024260 + ldrb r0, [r3] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r2, 0x4] +_080234F6: + ldr r1, _08023520 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] +_080234FE: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08023508: .4byte gUnknown_030041C0 +_0802350C: .4byte gBattleMons +_08023510: .4byte gUnknown_02024C07 +_08023514: .4byte gUnknown_03004290 +_08023518: .4byte gUnknown_02024A60 +_0802351C: .4byte gUnknown_02024260 +_08023520: .4byte gUnknown_02024C10 + thumb_func_end sub_802331C + + thumb_func_start sub_8023524 +sub_8023524: @ 8023524 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r6, _08023630 @ =gUnknown_02024C10 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _08023634 @ =gUnknown_02024A60 + strb r0, [r4] + ldrb r0, [r4] + bl sub_80157C4 + ldr r2, _08023638 @ =gUnknown_02024C6C + ldr r1, _0802363C @ =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 28 + ldr r0, [r2] + bics r0, r1 + str r0, [r2] + ldr r2, _08023640 @ =gUnknown_02024D68 + ldrb r0, [r4] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r4] + bl battle_side_get_owner + ldr r5, _08023644 @ =gUnknown_02024C7A + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 2 + mov r8, r0 + ands r0, r1 + cmp r0, 0 + bne _0802367C + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802367C + ldr r1, _08023648 @ =gBattleMons + mov r9, r1 + ldrb r2, [r4] + movs r7, 0x58 + adds r0, r2, 0 + muls r0, r7 + adds r1, r0, r1 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x2 + beq _0802367C + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x2 + beq _0802367C + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1A + beq _0802367C + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 23 + adds r0, r5 + ldrh r2, [r0] + mov r1, r8 + orrs r1, r2 + strh r1, [r0] + ldrb r0, [r4] + bl battle_side_get_owner + ldr r2, _0802364C @ =gUnknown_02024C80 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1, 0x6] + movs r1, 0x5 + subs r1, r0 + lsls r1, 25 + lsrs r1, 24 + ldr r5, _08023650 @ =gUnknown_02024BEC + ldrb r0, [r4] + muls r0, r7 + add r0, r9 + ldrh r0, [r0, 0x2C] + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _08023614 + movs r0, 0x1 + str r0, [r5] +_08023614: + ldr r0, _08023654 @ =0x02000000 + ldrb r1, [r4] + ldr r2, _08023658 @ =0x00016003 + adds r0, r2 + strb r1, [r0] + bl b_movescr_stack_push_cursor + ldr r0, [r6] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08023660 + ldr r0, _0802365C @ =gUnknown_081D919F + str r0, [r6] + b _080237B6 + .align 2, 0 +_08023630: .4byte gUnknown_02024C10 +_08023634: .4byte gUnknown_02024A60 +_08023638: .4byte gUnknown_02024C6C +_0802363C: .4byte gBitTable +_08023640: .4byte gUnknown_02024D68 +_08023644: .4byte gUnknown_02024C7A +_08023648: .4byte gBattleMons +_0802364C: .4byte gUnknown_02024C80 +_08023650: .4byte gUnknown_02024BEC +_08023654: .4byte 0x02000000 +_08023658: .4byte 0x00016003 +_0802365C: .4byte gUnknown_081D919F +_08023660: + cmp r0, 0x1 + bne _08023670 + ldr r0, _0802366C @ =gUnknown_081D9171 + str r0, [r6] + b _080237B6 + .align 2, 0 +_0802366C: .4byte gUnknown_081D9171 +_08023670: + ldr r0, _08023678 @ =gUnknown_081D91CD + str r0, [r6] + b _080237B6 + .align 2, 0 +_08023678: .4byte gUnknown_081D91CD +_0802367C: + ldr r1, _08023754 @ =gBattleMons + ldr r5, _08023758 @ =gUnknown_02024A60 + ldrb r2, [r5] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x36 + bne _080236A2 + ldr r1, _0802375C @ =gUnknown_02024CA8 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0, 0x18] +_080236A2: + ldrb r1, [r5] + movs r0, 0 + str r0, [sp] + movs r2, 0 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _080236B8 + b _080237B6 +_080236B8: + ldrb r1, [r5] + movs r0, 0 + movs r2, 0 + bl sub_801A02C + lsls r0, 24 + cmp r0, 0 + bne _080237B6 + ldrb r0, [r5] + bl battle_side_get_owner + ldr r1, _08023760 @ =gUnknown_02024C7A + lsls r0, 24 + lsrs r0, 23 + adds r0, r1 + ldrh r2, [r0] + ldr r1, _08023764 @ =0x0000fdff + ands r1, r2 + strh r1, [r0] + movs r4, 0 + ldr r0, _08023768 @ =gUnknown_02024A68 + ldrb r3, [r0] + cmp r4, r3 + bge _08023706 + ldr r6, _0802376C @ =gUnknown_02024A7A + ldr r3, _08023770 @ =gUnknown_02024A76 + movs r2, 0xC + adds r1, r0, 0 +_080236F0: + adds r0, r4, r6 + ldrb r0, [r0] + ldrb r7, [r5] + cmp r0, r7 + bne _080236FE + adds r0, r4, r3 + strb r2, [r0] +_080236FE: + adds r4, 0x1 + ldrb r0, [r1] + cmp r4, r0 + blt _080236F0 +_08023706: + movs r4, 0 + ldr r0, _08023768 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + bge _08023736 + ldr r5, _08023754 @ =gBattleMons +_08023712: + lsls r0, r4, 24 + lsrs r0, 24 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 23 + ldr r1, _08023774 @ =0x020160bc + adds r0, r1 + movs r1, 0x58 + muls r1, r4 + adds r1, r5 + ldrh r1, [r1, 0x28] + strh r1, [r0] + adds r4, 0x1 + ldr r0, _08023768 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _08023712 +_08023736: + ldr r0, _08023778 @ =gUnknown_02024C10 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r5, r0, 0 + cmp r1, 0x5 + bne _080237B0 + ldr r0, _0802377C @ =gUnknown_02024C6C + ldr r0, [r0] + lsrs r4, r0, 28 + ldr r1, _08023780 @ =gUnknown_02024C09 + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + ldr r2, _08023784 @ =gBitTable + b _08023796 + .align 2, 0 +_08023754: .4byte gBattleMons +_08023758: .4byte gUnknown_02024A60 +_0802375C: .4byte gUnknown_02024CA8 +_08023760: .4byte gUnknown_02024C7A +_08023764: .4byte 0x0000fdff +_08023768: .4byte gUnknown_02024A68 +_0802376C: .4byte gUnknown_02024A7A +_08023770: .4byte gUnknown_02024A76 +_08023774: .4byte 0x020160bc +_08023778: .4byte gUnknown_02024C10 +_0802377C: .4byte gUnknown_02024C6C +_08023780: .4byte gUnknown_02024C09 +_08023784: .4byte gBitTable +_08023788: + ldr r0, _080237C4 @ =gUnknown_02024A68 + ldrb r3, [r1] + ldrb r0, [r0] + cmp r3, r0 + bcs _080237B0 + adds r0, r3, 0x1 + strb r0, [r1] +_08023796: + ldrb r0, [r1] + lsls r0, 2 + adds r0, r2 + ldr r3, [r0] + adds r0, r4, 0 + ands r0, r3 + cmp r0, 0 + beq _08023788 + ldr r0, _080237C8 @ =gUnknown_02024C0C + ldrb r0, [r0] + ands r0, r3 + cmp r0, 0 + bne _08023788 +_080237B0: + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] +_080237B6: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080237C4: .4byte gUnknown_02024A68 +_080237C8: .4byte gUnknown_02024C0C + thumb_func_end sub_8023524 + + thumb_func_start sub_80237CC +sub_80237CC: @ 80237CC + push {lr} + ldr r0, _080237DC @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080237E0 + movs r0, 0 + b _080237E2 + .align 2, 0 +_080237DC: .4byte gUnknown_02024C10 +_080237E0: + movs r0, 0x1 +_080237E2: + bl battle_get_side_with_given_state + ldr r1, _08023804 @ =gUnknown_02024A60 + strb r0, [r1] + movs r0, 0 + bl dp01_build_cmdbuf_x08_8_8_8 + ldr r0, _08023804 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08023808 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08023804: .4byte gUnknown_02024A60 +_08023808: .4byte gUnknown_02024C10 + thumb_func_end sub_80237CC + + thumb_func_start atk54_802511C +atk54_802511C: @ 802380C + push {r4,r5,lr} + ldr r5, _0802383C @ =gUnknown_02024A60 + ldr r0, _08023840 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _08023844 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl dp01_build_cmdbuf_x2B_aa_0 + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802383C: .4byte gUnknown_02024A60 +_08023840: .4byte gUnknown_02024C07 +_08023844: .4byte gUnknown_02024C10 + thumb_func_end atk54_802511C + + thumb_func_start sub_8023848 +sub_8023848: @ 8023848 + push {r4,r5,lr} + ldr r5, _08023878 @ =gUnknown_02024A60 + ldr r0, _0802387C @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r5] + ldr r4, _08023880 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r1, [r0, 0x1] + ldrb r0, [r0, 0x2] + lsls r0, 8 + orrs r1, r0 + movs r0, 0 + bl sub_800D074 + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r4] + adds r0, 0x3 + str r0, [r4] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08023878: .4byte gUnknown_02024A60 +_0802387C: .4byte gUnknown_02024C07 +_08023880: .4byte gUnknown_02024C10 + thumb_func_end sub_8023848 + + thumb_func_start atk56_8025194 +atk56_8025194: @ 8023884 + push {r4,r5,lr} + ldr r5, _080238AC @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _080238B0 @ =gUnknown_02024A60 + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x2D_2D_2D_2D + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080238AC: .4byte gUnknown_02024C10 +_080238B0: .4byte gUnknown_02024A60 + thumb_func_end atk56_8025194 + + thumb_func_start atk57_80251C4_flee +atk57_80251C4_flee: @ 80238B4 + push {r4,lr} + movs r0, 0 + bl battle_get_side_with_given_state + ldr r4, _080238E0 @ =gUnknown_02024A60 + strb r0, [r4] + ldr r0, _080238E4 @ =gUnknown_02024D26 + ldrb r1, [r0] + movs r0, 0 + bl dp01_build_cmdbuf_x37_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _080238E8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080238E0: .4byte gUnknown_02024A60 +_080238E4: .4byte gUnknown_02024D26 +_080238E8: .4byte gUnknown_02024C10 + thumb_func_end atk57_80251C4_flee + + thumb_func_start atk58_cmd58 +atk58_cmd58: @ 80238EC + push {r4,r5,lr} + ldr r5, _08023918 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _0802391C @ =gUnknown_02024A60 + strb r0, [r4] + movs r0, 0 + movs r1, 0x1 + bl dp01_build_cmdbuf_x06_a + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08023918: .4byte gUnknown_02024C10 +_0802391C: .4byte gUnknown_02024A60 + thumb_func_end atk58_cmd58 + + thumb_func_start atk59_8025230 +atk59_8025230: @ 8023920 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0802399C @ =gUnknown_02024C10 + ldr r2, [r0] + ldrb r6, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r6, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r6, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r6, r0 + ldrb r4, [r2, 0x5] + ldrb r0, [r2, 0x6] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r2, 0x7] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r2, 0x8] + lsls r0, 24 + orrs r4, r0 + ldr r0, _080239A0 @ =0x02000000 + ldr r1, _080239A4 @ =0x00016018 + adds r7, r0, r1 + ldrb r1, [r7] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080239A8 @ =gPlayerParty + adds r0, r1 + ldrb r1, [r2, 0x9] + bl sub_803B7C8 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _080239AC @ =0x0000fffe + cmp r5, r0 + bne _08023992 + mov r9, r7 + mov r8, r5 + movs r7, 0x64 +_0802397A: + mov r3, r9 + ldrb r0, [r3] + muls r0, r7 + ldr r1, _080239A8 @ =gPlayerParty + adds r0, r1 + movs r1, 0 + bl sub_803B7C8 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, r8 + beq _0802397A +_08023992: + cmp r5, 0 + bne _080239B0 + ldr r0, _0802399C @ =gUnknown_02024C10 + str r4, [r0] + b _08023A58 + .align 2, 0 +_0802399C: .4byte gUnknown_02024C10 +_080239A0: .4byte 0x02000000 +_080239A4: .4byte 0x00016018 +_080239A8: .4byte gPlayerParty +_080239AC: .4byte 0x0000fffe +_080239B0: + ldr r0, _080239C0 @ =0x0000ffff + cmp r5, r0 + bne _080239C8 + ldr r1, _080239C4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0xA + str r0, [r1] + b _08023A58 + .align 2, 0 +_080239C0: .4byte 0x0000ffff +_080239C4: .4byte gUnknown_02024C10 +_080239C8: + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _08023A64 @ =gUnknown_02024A60 + strb r0, [r1] + ldr r0, _08023A68 @ =gUnknown_02024A6A + ldrb r2, [r1] + lsls r1, r2, 1 + adds r1, r0 + ldr r0, _08023A6C @ =0x02000000 + ldr r3, _08023A70 @ =0x00016018 + adds r0, r3 + ldrh r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08023A08 + ldr r3, _08023A74 @ =gBattleMons + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08023A08 + adds r0, r2, r3 + adds r1, r5, 0 + bl GiveMoveToBattleMon +_08023A08: + ldr r0, _08023A78 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08023A54 + movs r0, 0x2 + bl battle_get_side_with_given_state + ldr r1, _08023A64 @ =gUnknown_02024A60 + strb r0, [r1] + ldr r0, _08023A68 @ =gUnknown_02024A6A + ldrb r2, [r1] + lsls r1, r2, 1 + adds r1, r0 + ldr r0, _08023A6C @ =0x02000000 + ldr r3, _08023A70 @ =0x00016018 + adds r0, r3 + ldrh r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bne _08023A54 + ldr r3, _08023A74 @ =gBattleMons + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08023A54 + adds r0, r2, r3 + adds r1, r5, 0 + bl GiveMoveToBattleMon +_08023A54: + ldr r0, _08023A7C @ =gUnknown_02024C10 + str r6, [r0] +_08023A58: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08023A64: .4byte gUnknown_02024A60 +_08023A68: .4byte gUnknown_02024A6A +_08023A6C: .4byte 0x02000000 +_08023A70: .4byte 0x00016018 +_08023A74: .4byte gBattleMons +_08023A78: .4byte gUnknown_020239F8 +_08023A7C: .4byte gUnknown_02024C10 + thumb_func_end atk59_8025230 + + thumb_func_start sub_8023A80 +sub_8023A80: @ 8023A80 + push {r4,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802BBD4 + ldr r4, _08023AC8 @ =gUnknown_03004210 + ldr r1, _08023ACC @ =gUnknown_08400D7A + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x9 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x19 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _08023AD0 @ =0x0000ffff + ldr r3, _08023AD4 @ =0x00002d9f + movs r0, 0x20 + str r0, [sp] + movs r0, 0 + movs r2, 0xC + bl sub_814A5C0 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08023AC8: .4byte gUnknown_03004210 +_08023ACC: .4byte gUnknown_08400D7A +_08023AD0: .4byte 0x0000ffff +_08023AD4: .4byte 0x00002d9f + thumb_func_end sub_8023A80 + + thumb_func_start sub_8023AD8 +sub_8023AD8: @ 8023AD8 + push {lr} + sub sp, 0x4 + movs r0, 0x1 + str r0, [sp] + movs r0, 0x18 + movs r1, 0x8 + movs r2, 0x1D + movs r3, 0xD + bl sub_802BBD4 + bl sub_814A7FC + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_8023AD8 + + thumb_func_start sub_8023AF8 +sub_8023AF8: @ 8023AF8 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + ldr r1, _08023B24 @ =gUnknown_02024A60 + movs r0, 0 + strb r0, [r1] + ldr r1, _08023B28 @ =0x02000000 + ldr r2, _08023B2C @ =0x0001601a + adds r0, r1, r2 + ldrb r0, [r0] + adds r5, r1, 0 + cmp r0, 0x5 + bls _08023B18 + b _08023E5C +_08023B18: + lsls r0, 2 + ldr r1, _08023B30 @ =_08023B34 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08023B24: .4byte gUnknown_02024A60 +_08023B28: .4byte 0x02000000 +_08023B2C: .4byte 0x0001601a +_08023B30: .4byte _08023B34 + .align 2, 0 +_08023B34: + .4byte _08023B4C + .4byte _08023B74 + .4byte _08023C30 + .4byte _08023C84 + .4byte _08023E38 + .4byte _08023E4C +_08023B4C: + bl sub_8023A80 + ldr r1, _08023B68 @ =0x02000000 + ldr r0, _08023B6C @ =0x0001601a + adds r1, r0 + ldrb r0, [r1] + adds r0, 0x1 + movs r2, 0 + strb r0, [r1] + ldr r0, _08023B70 @ =gUnknown_02024D1E + strb r2, [r0, 0x1] + bl sub_802BC6C + b _08023E5C + .align 2, 0 +_08023B68: .4byte 0x02000000 +_08023B6C: .4byte 0x0001601a +_08023B70: .4byte gUnknown_02024D1E +_08023B74: + ldr r0, _08023BFC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08023B9A + ldr r4, _08023C00 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08023B9A + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_802BC6C +_08023B9A: + ldr r0, _08023BFC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08023BC0 + ldr r4, _08023C00 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08023BC0 + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802BC6C +_08023BC0: + ldr r0, _08023BFC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08023C0C + movs r0, 0x5 + bl PlaySE + ldr r0, _08023C00 @ =gUnknown_02024D1E + ldrb r4, [r0, 0x1] + cmp r4, 0 + bne _08023C1C + bl sub_8023AD8 + movs r0, 0x1 + negs r0, r0 + str r4, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08023C04 @ =0x02000000 + ldr r2, _08023C08 @ =0x0001601a + adds r1, r2 + ldrb r0, [r1] + adds r0, 0x1 + b _08023E5A + .align 2, 0 +_08023BFC: .4byte gMain +_08023C00: .4byte gUnknown_02024D1E +_08023C04: .4byte 0x02000000 +_08023C08: .4byte 0x0001601a +_08023C0C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08023C16 + b _08023E5C +_08023C16: + movs r0, 0x5 + bl PlaySE +_08023C1C: + ldr r0, _08023C28 @ =0x02000000 + ldr r1, _08023C2C @ =0x0001601a + adds r0, r1 + movs r1, 0x4 + strb r1, [r0] + b _08023E5C + .align 2, 0 +_08023C28: .4byte 0x02000000 +_08023C2C: .4byte 0x0001601a +_08023C30: + ldr r0, _08023C68 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08023C3E + b _08023E5C +_08023C3E: + ldr r0, _08023C6C @ =gPlayerParty + ldr r2, _08023C70 @ =0x00016018 + adds r1, r5, r2 + ldrb r1, [r1] + ldr r2, _08023C74 @ =gPlayerPartyCount + ldrb r2, [r2] + subs r2, 0x1 + lsls r2, 24 + lsrs r2, 24 + ldr r3, _08023C78 @ =sub_807AD58 + ldr r4, _08023C7C @ =word_2024E82 + ldrh r4, [r4] + str r4, [sp] + bl sub_809D9F0 + ldr r0, _08023C80 @ =0x0001601a + adds r1, r5, r0 + ldrb r0, [r1] + adds r0, 0x1 + b _08023E5A + .align 2, 0 +_08023C68: .4byte gPaletteFade +_08023C6C: .4byte gPlayerParty +_08023C70: .4byte 0x00016018 +_08023C74: .4byte gPlayerPartyCount +_08023C78: .4byte sub_807AD58 +_08023C7C: .4byte word_2024E82 +_08023C80: .4byte 0x0001601a +_08023C84: + ldr r0, _08023CB4 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08023C92 + b _08023E5C +_08023C92: + ldr r0, _08023CB8 @ =gMain + ldr r1, [r0, 0x4] + ldr r0, _08023CBC @ =sub_800F808 + cmp r1, r0 + beq _08023C9E + b _08023E5C +_08023C9E: + bl sub_809FA30 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x4 + bne _08023CC8 + ldr r0, _08023CC0 @ =0x02000000 + ldr r1, _08023CC4 @ =0x0001601a + adds r0, r1 + strb r5, [r0] + b _08023E5C + .align 2, 0 +_08023CB4: .4byte gPaletteFade +_08023CB8: .4byte gMain +_08023CBC: .4byte sub_800F808 +_08023CC0: .4byte 0x02000000 +_08023CC4: .4byte 0x0001601a +_08023CC8: + ldr r2, _08023D08 @ =0x02000000 + mov r9, r2 + ldr r6, _08023D0C @ =0x00016018 + add r6, r9 + ldrb r0, [r6] + movs r1, 0x64 + mov r8, r1 + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + ldr r7, _08023D10 @ =gPlayerParty + adds r0, r7 + adds r1, r5, 0 + adds r1, 0xD + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_8040A00 + cmp r0, 0 + beq _08023D20 + ldr r0, _08023D14 @ =0x0000013f + ldr r1, _08023D18 @ =gUnknown_02024A60 + ldrb r1, [r1] + bl b_std_message + ldr r1, _08023D1C @ =0x0001601a + add r1, r9 + movs r0, 0x5 + b _08023E5A + .align 2, 0 +_08023D08: .4byte 0x02000000 +_08023D0C: .4byte 0x00016018 +_08023D10: .4byte gPlayerParty +_08023D14: .4byte 0x0000013f +_08023D18: .4byte gUnknown_02024A60 +_08023D1C: .4byte 0x0001601a +_08023D20: + ldr r3, _08023E10 @ =gUnknown_02024C10 + 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] + ldr r1, _08023E14 @ =gUnknown_03004290 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + strb r4, [r1, 0x2] + lsrs r0, r4, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldrb r0, [r6] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + adds r1, r5, 0 + bl RemoveMonPPBonus + ldrb r0, [r6] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + ldr r7, _08023E18 @ =word_2024E82 + ldrh r1, [r7] + adds r2, r5, 0 + bl SetMonMoveSlot + ldr r0, _08023E1C @ =gUnknown_02024A6A + ldrh r0, [r0] + ldrb r6, [r6] + cmp r0, r6 + bne _08023DB0 + ldr r4, _08023E20 @ =gBattleMons + ldr r0, [r4, 0x50] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08023DB0 + ldr r0, _08023E24 @ =gUnknown_02024CA8 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _08023E28 @ =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08023DB0 + adds r0, r4, 0 + adds r1, r5, 0 + bl RemoveBattleMonPPBonus + ldrh r1, [r7] + adds r0, r4, 0 + adds r2, r5, 0 + bl SetBattleMonMoveSlot +_08023DB0: + ldr r0, _08023E2C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08023E5C + ldr r0, _08023E1C @ =gUnknown_02024A6A + ldr r1, _08023E30 @ =0x02000000 + ldr r2, _08023E34 @ =0x00016018 + adds r1, r2 + ldrh r0, [r0, 0x4] + ldrb r1, [r1] + cmp r0, r1 + bne _08023E5C + ldr r4, _08023E20 @ =gBattleMons + movs r1, 0x80 + lsls r1, 1 + adds r0, r4, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _08023E5C + ldr r0, _08023E24 @ =gUnknown_02024CA8 + adds r0, 0x50 + ldrb r1, [r0] + lsrs r1, 4 + ldr r2, _08023E28 @ =gBitTable + lsls r0, r5, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08023E5C + adds r4, 0xB0 + adds r0, r4, 0 + adds r1, r5, 0 + bl RemoveBattleMonPPBonus + ldr r0, _08023E18 @ =word_2024E82 + ldrh r1, [r0] + adds r0, r4, 0 + adds r2, r5, 0 + bl SetBattleMonMoveSlot + b _08023E5C + .align 2, 0 +_08023E10: .4byte gUnknown_02024C10 +_08023E14: .4byte gUnknown_03004290 +_08023E18: .4byte word_2024E82 +_08023E1C: .4byte gUnknown_02024A6A +_08023E20: .4byte gBattleMons +_08023E24: .4byte gUnknown_02024CA8 +_08023E28: .4byte gBitTable +_08023E2C: .4byte gUnknown_020239F8 +_08023E30: .4byte 0x02000000 +_08023E34: .4byte 0x00016018 +_08023E38: + bl sub_8023AD8 + ldr r1, _08023E48 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08023E5C + .align 2, 0 +_08023E48: .4byte gUnknown_02024C10 +_08023E4C: + ldr r0, _08023E6C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08023E5C + ldr r2, _08023E70 @ =0x0001601a + adds r1, r5, r2 + movs r0, 0x2 +_08023E5A: + strb r0, [r1] +_08023E5C: + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08023E6C: .4byte gUnknown_02024A64 +_08023E70: .4byte 0x0001601a + thumb_func_end sub_8023AF8 + + thumb_func_start atk5B_80256E0 +atk5B_80256E0: @ 8023E74 + push {r4,r5,lr} + ldr r0, _08023E88 @ =0x02000000 + ldr r1, _08023E8C @ =0x0001601a + adds r5, r0, r1 + ldrb r4, [r5] + cmp r4, 0 + beq _08023E90 + cmp r4, 0x1 + beq _08023EA8 + b _08023F78 + .align 2, 0 +_08023E88: .4byte 0x02000000 +_08023E8C: .4byte 0x0001601a +_08023E90: + bl sub_8023A80 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + ldr r0, _08023EA4 @ =gUnknown_02024D1E + strb r4, [r0, 0x1] + bl sub_802BC6C + b _08023F78 + .align 2, 0 +_08023EA4: .4byte gUnknown_02024D1E +_08023EA8: + ldr r0, _08023F2C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08023ECE + ldr r4, _08023F30 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _08023ECE + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_802BC6C +_08023ECE: + ldr r0, _08023F2C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08023EF4 + ldr r4, _08023F30 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08023EF4 + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802BC6C +_08023EF4: + ldr r0, _08023F2C @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08023F4C + movs r0, 0x5 + bl PlaySE + ldr r0, _08023F30 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x1] + cmp r0, 0 + beq _08023F38 + ldr r3, _08023F34 @ =gUnknown_02024C10 + 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 _08023F40 + .align 2, 0 +_08023F2C: .4byte gMain +_08023F30: .4byte gUnknown_02024D1E +_08023F34: .4byte gUnknown_02024C10 +_08023F38: + ldr r1, _08023F48 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08023F40: + bl sub_8023AD8 + b _08023F78 + .align 2, 0 +_08023F48: .4byte gUnknown_02024C10 +_08023F4C: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08023F78 + movs r0, 0x5 + bl PlaySE + ldr r3, _08023F80 @ =gUnknown_02024C10 + 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] + bl sub_8023AD8 +_08023F78: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08023F80: .4byte gUnknown_02024C10 + thumb_func_end atk5B_80256E0 + + thumb_func_start atk5C_cmd5c +atk5C_cmd5c: @ 8023F84 + push {r4,lr} + ldr r4, _08023FF0 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r2, _08023FF4 @ =gUnknown_02024A60 + strb r0, [r2] + ldr r0, _08023FF8 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + bne _08024008 + ldr r0, _08023FFC @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 1 + ands r0, r1 + cmp r0, 0 + beq _08023FD6 + ldr r1, _08024000 @ =gBattleMons + ldrb r2, [r2] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _08023FD6 + ldr r0, _08024004 @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _08024008 +_08023FD6: + movs r0, 0 + bl dp01_build_cmdbuf_x29_29_29_29 + ldr r0, _08023FF4 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08023FF0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + b _0802400E + .align 2, 0 +_08023FF0: .4byte gUnknown_02024C10 +_08023FF4: .4byte gUnknown_02024A60 +_08023FF8: .4byte gUnknown_02024C68 +_08023FFC: .4byte gUnknown_02024C6C +_08024000: .4byte gBattleMons +_08024004: .4byte gUnknown_02024CA8 +_08024008: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] +_0802400E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atk5C_cmd5c + + thumb_func_start sub_8024014 +sub_8024014: @ 8024014 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0 + movs r5, 0 + ldr r0, _08024048 @ =gTrainerBattleOpponent + ldrh r2, [r0] + movs r1, 0x80 + lsls r1, 3 + cmp r2, r1 + bne _08024058 + ldr r0, _0802404C @ =0x02017000 + adds r1, r0, 0 + adds r1, 0x94 + ldrb r2, [r1] + ldr r1, _08024050 @ =0xfffff056 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r4, r2, 0 + muls r4, r0 + ldr r0, _08024054 @ =gSaveBlock1 + 0x490 + mov r8, r0 + b _08024140 + .align 2, 0 +_08024048: .4byte gTrainerBattleOpponent +_0802404C: .4byte 0x02017000 +_08024050: .4byte 0xfffff056 +_08024054: .4byte gSaveBlock1 + 0x490 +_08024058: + ldr r2, _08024074 @ =gTrainers + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r3, r0, 3 + adds r4, r3, r2 + ldrb r1, [r4] + cmp r1, 0x1 + beq _080240AE + cmp r1, 0x1 + bgt _08024078 + cmp r1, 0 + beq _08024082 + b _080240C4 + .align 2, 0 +_08024074: .4byte gTrainers +_08024078: + cmp r1, 0x2 + beq _08024098 + cmp r1, 0x3 + beq _080240AE + b _080240C4 +_08024082: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r3, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + subs r0, 0x8 + b _080240C2 +_08024098: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r3, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r1 + subs r0, 0x8 + b _080240C2 +_080240AE: + adds r0, r2, 0 + adds r0, 0x24 + adds r0, r3, r0 + ldr r1, [r0] + adds r0, r4, 0 + adds r0, 0x20 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + subs r0, 0x10 +_080240C2: + ldrb r5, [r0, 0x2] +_080240C4: + ldr r0, _08024120 @ =gTrainerMoney + lsls r1, r6, 2 + adds r3, r1, r0 + ldrb r1, [r3] + mov r12, r0 + lsls r4, r5, 2 + ldr r5, _08024124 @ =0x02000000 + ldr r7, _08024128 @ =gUnknown_020239F8 + ldr r0, _0802412C @ =gSaveBlock1 + 0x490 + mov r8, r0 + cmp r1, 0xFF + beq _080240FE + ldr r2, _08024130 @ =gTrainers + ldr r0, _08024134 @ =gTrainerBattleOpponent + ldrh r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r2, [r0, 0x1] + adds r1, r3, 0 +_080240EE: + ldrb r0, [r1] + cmp r0, r2 + beq _080240FE + adds r1, 0x4 + adds r6, 0x1 + ldrb r0, [r1] + cmp r0, 0xFF + bne _080240EE +_080240FE: + ldr r1, _08024138 @ =0x00016056 + adds r0, r5, r1 + ldrb r0, [r0] + adds r3, r4, 0 + muls r3, r0 + lsls r0, r6, 2 + add r0, r12 + ldrb r2, [r0, 0x1] + ldrh r1, [r7] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802413C + lsls r0, r2, 1 + adds r4, r3, 0 + muls r4, r0 + b _08024140 + .align 2, 0 +_08024120: .4byte gTrainerMoney +_08024124: .4byte 0x02000000 +_08024128: .4byte gUnknown_020239F8 +_0802412C: .4byte gSaveBlock1 + 0x490 +_08024130: .4byte gTrainers +_08024134: .4byte gTrainerBattleOpponent +_08024138: .4byte 0x00016056 +_0802413C: + adds r4, r3, 0 + muls r4, r2 +_08024140: + mov r0, r8 + adds r1, r4, 0 + bl sub_80B79B8 + ldr r1, _0802418C @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x4 + strb r0, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + strb r4, [r1, 0x4] + movs r0, 0xFF + lsls r0, 8 + ands r0, r4 + lsrs r0, 8 + strb r0, [r1, 0x5] + movs r0, 0xFF + lsls r0, 16 + ands r0, r4 + lsrs r0, 16 + strb r0, [r1, 0x6] + lsrs r0, r4, 24 + strb r0, [r1, 0x7] + movs r0, 0xFF + strb r0, [r1, 0x8] + ldr r1, _08024190 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802418C: .4byte gUnknown_030041C0 +_08024190: .4byte gUnknown_02024C10 + thumb_func_end sub_8024014 + + thumb_func_start atk5E_8025A70 +atk5E_8025A70: @ 8024194 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _080241B8 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r6, _080241BC @ =gUnknown_02024A60 + strb r0, [r6] + ldr r5, _080241C0 @ =gUnknown_02024D1E + ldrb r0, [r5] + mov r8, r4 + cmp r0, 0 + beq _080241C4 + cmp r0, 0x1 + beq _080241DC + b _08024230 + .align 2, 0 +_080241B8: .4byte gUnknown_02024C10 +_080241BC: .4byte gUnknown_02024A60 +_080241C0: .4byte gUnknown_02024D1E +_080241C4: + movs r0, 0 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x00_a_b_0 + ldrb r0, [r6] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _08024230 +_080241DC: + ldr r0, _0802423C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08024230 + ldrb r0, [r6] + lsls r0, 9 + ldr r1, _08024240 @ =gUnknown_02024264 + adds r0, r1 + mov r12, r0 + movs r2, 0 + adds r4, r6, 0 + movs r5, 0x58 + ldr r6, _08024244 @ =gUnknown_02024AA4 + adds r7, r6, 0 + subs r7, 0x18 + mov r3, r12 + adds r3, 0xC +_080241FE: + lsls r1, r2, 1 + ldrb r0, [r4] + muls r0, r5 + adds r1, r0 + adds r1, r7 + ldrh r0, [r3] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r5 + adds r1, r2, r1 + adds r1, r6 + mov r0, r12 + adds r0, 0x24 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r3, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _080241FE + mov r1, r8 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08024230: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802423C: .4byte gUnknown_02024A64 +_08024240: .4byte gUnknown_02024264 +_08024244: .4byte gUnknown_02024AA4 + thumb_func_end atk5E_8025A70 + + thumb_func_start atk5F_8025B24 +atk5F_8025B24: @ 8024248 + push {lr} + ldr r0, _08024270 @ =gUnknown_02024A60 + ldr r2, _08024274 @ =gUnknown_02024C07 + ldrb r3, [r2] + strb r3, [r0] + ldr r1, _08024278 @ =gUnknown_02024C08 + ldrb r0, [r1] + strb r0, [r2] + strb r3, [r1] + ldr r2, _0802427C @ =gUnknown_02024C6C + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 5 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _08024284 + ldr r0, _08024280 @ =0xffffefff + ands r1, r0 + b _08024286 + .align 2, 0 +_08024270: .4byte gUnknown_02024A60 +_08024274: .4byte gUnknown_02024C07 +_08024278: .4byte gUnknown_02024C08 +_0802427C: .4byte gUnknown_02024C6C +_08024280: .4byte 0xffffefff +_08024284: + orrs r1, r3 +_08024286: + str r1, [r2] + ldr r1, _08024294 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08024294: .4byte gUnknown_02024C10 + thumb_func_end atk5F_8025B24 + + thumb_func_start atk60_cmd60 +atk60_cmd60: @ 8024298 + push {lr} + ldr r0, _080242C0 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080242B2 + ldr r0, _080242C4 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sav12_xor_increment +_080242B2: + ldr r1, _080242C4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080242C0: .4byte gUnknown_02024C07 +_080242C4: .4byte gUnknown_02024C10 + thumb_func_end atk60_cmd60 + + thumb_func_start atk61_8025BA4 +atk61_8025BA4: @ 80242C8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x30 + ldr r0, _0802432C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0802437C + ldr r0, _08024330 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r1, _08024334 @ =gUnknown_02024A60 + strb r0, [r1] + ldrb r0, [r1] + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _08024338 @ =gEnemyParty + mov r8, r1 + cmp r0, 0 + bne _080242FA + ldr r0, _0802433C @ =gPlayerParty + mov r8, r0 +_080242FA: + movs r7, 0 + add r6, sp, 0x4 + mov r5, sp +_08024300: + movs r0, 0x64 + muls r0, r7 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08024324 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + bne _08024344 +_08024324: + ldr r0, _08024340 @ =0x0000ffff + strh r0, [r5] + movs r0, 0 + b _08024356 + .align 2, 0 +_0802432C: .4byte gUnknown_02024A64 +_08024330: .4byte gUnknown_02024C10 +_08024334: .4byte gUnknown_02024A60 +_08024338: .4byte gEnemyParty +_0802433C: .4byte gPlayerParty +_08024340: .4byte 0x0000ffff +_08024344: + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + strh r0, [r5] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData +_08024356: + str r0, [r6] + adds r6, 0x8 + adds r5, 0x8 + adds r7, 0x1 + cmp r7, 0x5 + ble _08024300 + movs r0, 0 + mov r1, sp + movs r2, 0x1 + bl dp01_build_cmdbuf_x30_TODO + ldr r0, _08024388 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0802438C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0802437C: + add sp, 0x30 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08024388: .4byte gUnknown_02024A60 +_0802438C: .4byte gUnknown_02024C10 + thumb_func_end atk61_8025BA4 + + thumb_func_start atk62_08025C6C +atk62_08025C6C: @ 8024390 + push {r4,r5,lr} + ldr r5, _080243B8 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _080243BC @ =gUnknown_02024A60 + strb r0, [r4] + movs r0, 0 + bl dp01_build_cmdbuf_x31_31_31_31 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080243B8: .4byte gUnknown_02024C10 +_080243BC: .4byte gUnknown_02024A60 + thumb_func_end atk62_08025C6C + + thumb_func_start atk63_jumptoattack +atk63_jumptoattack: @ 80243C0 + push {r4,lr} + ldr r0, _080243D8 @ =gUnknown_02024C10 + ldr r1, [r0] + ldrb r1, [r1, 0x1] + adds r4, r0, 0 + cmp r1, 0 + beq _080243E4 + ldr r0, _080243DC @ =gUnknown_02024BE6 + ldr r1, _080243E0 @ =gUnknown_02024BEA + ldrh r1, [r1] + strh r1, [r0] + b _080243F2 + .align 2, 0 +_080243D8: .4byte gUnknown_02024C10 +_080243DC: .4byte gUnknown_02024BE6 +_080243E0: .4byte gUnknown_02024BEA +_080243E4: + ldr r2, _08024410 @ =gUnknown_02024BE8 + ldr r1, _08024414 @ =gUnknown_02024BE6 + ldr r0, _08024418 @ =gUnknown_02024BEA + ldrh r0, [r0] + strh r0, [r1] + strh r0, [r2] + adds r0, r1, 0 +_080243F2: + ldr r3, _0802441C @ =gUnknown_081D6BBC + ldr r2, _08024420 @ =gBattleMoves + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08024410: .4byte gUnknown_02024BE8 +_08024414: .4byte gUnknown_02024BE6 +_08024418: .4byte gUnknown_02024BEA +_0802441C: .4byte gUnknown_081D6BBC +_08024420: .4byte gBattleMoves + thumb_func_end atk63_jumptoattack + + thumb_func_start atk64_statusanimation +atk64_statusanimation: @ 8024424 + push {r4,lr} + ldr r0, _08024494 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _0802448C + ldr r0, _08024498 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _0802449C @ =gUnknown_02024A60 + strb r0, [r4] + ldr r1, _080244A0 @ =gUnknown_02024C98 + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080244A4 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _08024484 + ldr r0, _080244A8 @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _08024484 + ldr r0, _080244AC @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08024484 + ldr r1, _080244B0 @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + ldr r2, [r0] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x1B_aaaa_b + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_08024484: + ldr r1, _08024498 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_0802448C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08024494: .4byte gUnknown_02024A64 +_08024498: .4byte gUnknown_02024C10 +_0802449C: .4byte gUnknown_02024A60 +_080244A0: .4byte gUnknown_02024C98 +_080244A4: .4byte 0x000400c0 +_080244A8: .4byte gUnknown_02024CA8 +_080244AC: .4byte gUnknown_02024C6C +_080244B0: .4byte gBattleMons + thumb_func_end atk64_statusanimation + + thumb_func_start atk65_8025D90 +atk65_8025D90: @ 80244B4 + push {r4,r5,lr} + ldr r0, _0802453C @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08024534 + ldr r4, _08024540 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r5, _08024544 @ =gUnknown_02024A60 + strb r0, [r5] + ldr r1, [r4] + ldrb r3, [r1, 0x2] + ldrb r0, [r1, 0x3] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r1, 0x4] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r1, 0x5] + lsls r0, 24 + orrs r3, r0 + ldr r1, _08024548 @ =gUnknown_02024C98 + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _0802454C @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _0802452C + ldr r0, _08024550 @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _0802452C + ldr r0, _08024554 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802452C + ldr r1, _08024558 @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r2, [r0] + ands r2, r3 + movs r0, 0 + movs r1, 0x1 + bl dp01_build_cmdbuf_x1B_aaaa_b + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution +_0802452C: + ldr r1, _08024540 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x6 + str r0, [r1] +_08024534: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802453C: .4byte gUnknown_02024A64 +_08024540: .4byte gUnknown_02024C10 +_08024544: .4byte gUnknown_02024A60 +_08024548: .4byte gUnknown_02024C98 +_0802454C: .4byte 0x000400c0 +_08024550: .4byte gUnknown_02024CA8 +_08024554: .4byte gUnknown_02024C6C +_08024558: .4byte gBattleMons + thumb_func_end atk65_8025D90 + + thumb_func_start atk66_8025E38 +atk66_8025E38: @ 802455C + push {r4,r5,lr} + ldr r0, _080245D4 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _080245CE + ldr r4, _080245D8 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r5, _080245DC @ =gUnknown_02024A60 + strb r0, [r5] + ldr r4, [r4] + ldrb r2, [r4, 0x3] + ldrb r0, [r4, 0x4] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r4, 0x5] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r4, 0x6] + lsls r0, 24 + orrs r2, r0 + ldr r1, _080245E0 @ =gUnknown_02024C98 + ldrb r3, [r5] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080245E4 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _080245C6 + ldr r0, _080245E8 @ =gUnknown_02024CA8 + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xA] + cmp r0, 0 + bne _080245C6 + ldr r0, _080245EC @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + ands r0, r1 + cmp r0, 0 + bne _080245C6 + ldrb r1, [r4, 0x2] + movs r0, 0 + bl dp01_build_cmdbuf_x1B_aaaa_b + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution +_080245C6: + ldr r1, _080245D8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x7 + str r0, [r1] +_080245CE: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080245D4: .4byte gUnknown_02024A64 +_080245D8: .4byte gUnknown_02024C10 +_080245DC: .4byte gUnknown_02024A60 +_080245E0: .4byte gUnknown_02024C98 +_080245E4: .4byte 0x000400c0 +_080245E8: .4byte gUnknown_02024CA8 +_080245EC: .4byte gUnknown_02024C6C + thumb_func_end atk66_8025E38 + + thumb_func_start atk67_8025ECC +atk67_8025ECC: @ 80245F0 + push {r4,r5,lr} + ldr r5, _08024600 @ =gUnknown_02024D1E + ldrb r4, [r5] + cmp r4, 0 + beq _08024604 + cmp r4, 0x1 + beq _08024616 + b _08024696 + .align 2, 0 +_08024600: .4byte gUnknown_02024D1E +_08024604: + bl sub_8023A80 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + strb r4, [r5, 0x1] + bl sub_802BC6C + b _08024696 +_08024616: + ldr r0, _08024674 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802463A + ldrb r0, [r5, 0x1] + cmp r0, 0 + beq _0802463A + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0 + strb r0, [r5, 0x1] + bl sub_802BC6C +_0802463A: + ldr r0, _08024674 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08024660 + ldr r4, _08024678 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _08024660 + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802BC6C +_08024660: + ldr r0, _08024674 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802467C + ldr r1, _08024678 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x1] + b _08024684 + .align 2, 0 +_08024674: .4byte gMain +_08024678: .4byte gUnknown_02024D1E +_0802467C: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08024696 +_08024684: + movs r0, 0x5 + bl PlaySE + bl sub_8023AD8 + ldr r1, _0802469C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08024696: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802469C: .4byte gUnknown_02024C10 + thumb_func_end atk67_8025ECC + + thumb_func_start sub_80246A0 +sub_80246A0: @ 80246A0 + push {r4,r5,lr} + movs r1, 0 + ldr r2, _080246CC @ =gUnknown_02024A68 + ldr r5, _080246D0 @ =gUnknown_02024C10 + ldrb r0, [r2] + cmp r1, r0 + bge _080246BE + ldr r4, _080246D4 @ =gUnknown_02024A76 + movs r3, 0xC +_080246B2: + adds r0, r1, r4 + strb r3, [r0] + adds r1, 0x1 + ldrb r0, [r2] + cmp r1, r0 + blt _080246B2 +_080246BE: + ldr r0, [r5] + adds r0, 0x1 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080246CC: .4byte gUnknown_02024A68 +_080246D0: .4byte gUnknown_02024C10 +_080246D4: .4byte gUnknown_02024A76 + thumb_func_end sub_80246A0 + + thumb_func_start atk69_8025FE0 +atk69_8025FE0: @ 80246D8 + push {r4-r7,lr} + ldr r7, _08024700 @ =gBattleMons + ldr r6, _08024704 @ =gUnknown_02024C08 + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _0802470C + ldr r1, _08024708 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _08024726 + .align 2, 0 +_08024700: .4byte gBattleMons +_08024704: .4byte gUnknown_02024C08 +_08024708: .4byte gEnigmaBerries +_0802470C: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_08024726: + ldr r1, _080247E8 @ =gUnknown_02024C0B + ldr r5, _080247EC @ =gUnknown_02024C08 + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _08024764 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _08024764 + ldrb r0, [r5] + movs r1, 0x27 + bl sub_81074F8 + ldr r2, _080247F0 @ =gUnknown_02024D68 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_08024764: + ldr r2, _080247F4 @ =gBattleMons + ldr r3, _080247EC @ =gUnknown_02024C08 + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, r2, 0 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 17 + ands r1, r0 + adds r5, r2, 0 + cmp r1, 0 + bne _08024834 + ldr r2, _080247F8 @ =gBattleMoves + ldr r0, _080247FC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x65 + beq _080247B6 + ldr r0, _08024800 @ =gUnknown_02024D28 + lsls r1, r4, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + blt _080247B6 + ldr r0, _080247F0 @ =gUnknown_02024D68 + lsls r1, r4, 2 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08024834 +_080247B6: + ldrb r0, [r3] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + ldrh r1, [r0, 0x28] + ldr r2, _08024804 @ =gUnknown_02024BEC + ldr r0, [r2] + cmp r1, r0 + bgt _08024834 + subs r0, r1, 0x1 + str r0, [r2] + ldr r1, _08024800 @ =gUnknown_02024D28 + ldrb r3, [r3] + lsls r0, r3, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 30 + cmp r0, 0 + bge _0802480C + ldr r0, _08024808 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + b _08024834 + .align 2, 0 +_080247E8: .4byte gUnknown_02024C0B +_080247EC: .4byte gUnknown_02024C08 +_080247F0: .4byte gUnknown_02024D68 +_080247F4: .4byte gBattleMons +_080247F8: .4byte gBattleMoves +_080247FC: .4byte gUnknown_02024BE6 +_08024800: .4byte gUnknown_02024D28 +_08024804: .4byte gUnknown_02024BEC +_08024808: .4byte gUnknown_02024C68 +_0802480C: + ldr r0, _08024844 @ =gUnknown_02024D68 + lsls r1, r3, 2 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08024834 + ldr r2, _08024848 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802484C @ =gUnknown_02024C04 + adds r0, r3, 0 + muls r0, r4 + adds r0, r5 + ldrh r0, [r0, 0x2E] + strh r0, [r1] +_08024834: + ldr r1, _08024850 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08024844: .4byte gUnknown_02024D68 +_08024848: .4byte gUnknown_02024C68 +_0802484C: .4byte gUnknown_02024C04 +_08024850: .4byte gUnknown_02024C10 + thumb_func_end atk69_8025FE0 + + thumb_func_start atk6A_stash_item_for_side +atk6A_stash_item_for_side: @ 8024854 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _080248B0 @ =gUnknown_02024C10 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r5, _080248B4 @ =gUnknown_02024A60 + strb r0, [r5] + ldrb r4, [r5] + lsls r1, r4, 1 + ldr r0, _080248B8 @ =0x020160cc + adds r1, r0 + ldr r2, _080248BC @ =gBattleMons + movs r3, 0x58 + adds r0, r4, 0 + muls r0, r3 + adds r0, r2 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + ldrb r0, [r5] + muls r0, r3 + adds r0, r2 + movs r1, 0 + strh r1, [r0, 0x2E] + ldrb r0, [r5] + muls r0, r3 + adds r2, 0x2E + adds r0, r2 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080248B0: .4byte gUnknown_02024C10 +_080248B4: .4byte gUnknown_02024A60 +_080248B8: .4byte 0x020160cc +_080248BC: .4byte gBattleMons + thumb_func_end atk6A_stash_item_for_side + + thumb_func_start sub_80248C0 +sub_80248C0: @ 80248C0 + ldr r1, _080248EC @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x7 + strb r0, [r1, 0x1] + ldr r2, _080248F0 @ =gUnknown_02024C07 + ldrb r0, [r2] + strb r0, [r1, 0x2] + ldr r3, _080248F4 @ =gUnknown_02024A6A + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _080248F8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_080248EC: .4byte gUnknown_030041C0 +_080248F0: .4byte gUnknown_02024C07 +_080248F4: .4byte gUnknown_02024A6A +_080248F8: .4byte gUnknown_02024C10 + thumb_func_end sub_80248C0 + + thumb_func_start sub_80248FC +sub_80248FC: @ 80248FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r1, 0 + movs r7, 0 + ldr r0, _08024928 @ =0x02000000 + mov r10, r0 + ldr r4, _0802492C @ =0x0001609c + add r4, r10 + ldrb r0, [r4] + cmp r0, 0x1 + bne _0802491C + b _08024AF4 +_0802491C: + cmp r0, 0x1 + bgt _08024930 + cmp r0, 0 + beq _0802493E + b _08024C38 + .align 2, 0 +_08024928: .4byte 0x02000000 +_0802492C: .4byte 0x0001609c +_08024930: + cmp r0, 0x2 + bne _08024936 + b _08024C04 +_08024936: + cmp r0, 0x3 + bne _0802493C + b _08024C30 +_0802493C: + b _08024C38 +_0802493E: + str r1, [sp] + movs r0, 0xB + movs r1, 0 + movs r2, 0x1D + movs r3, 0x7 + bl sub_802BBD4 + ldr r0, _0802499C @ =gStringVar4 + ldr r1, _080249A0 @ =gUnknown_08400D9F + bl StringCopy + adds r5, r0, 0 + movs r1, 0 + mov r8, r1 +_0802495A: + movs r2, 0 + mov r9, r2 + ldr r0, _080249A4 @ =gUnknown_0840165C + mov r1, r8 + lsls r4, r1, 2 + adds r0, r4, r0 + ldr r1, [r0] + adds r0, r5, 0 + bl StringAppend + adds r5, r0, 0 + ldr r0, _080249A8 @ =0x02000000 + ldr r2, _080249AC @ =0x00016018 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080249B0 @ =gPlayerParty + adds r0, r1 + ldr r1, _080249B4 @ =gLevelUpStatBoxStats + add r1, r8 + ldrb r1, [r1] + bl GetMonData + lsls r0, 16 + lsrs r1, r0, 16 + mov r0, r8 + cmp r0, 0x5 + bhi _08024A1A + ldr r0, _080249B8 @ =_080249BC + adds r0, r4, r0 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802499C: .4byte gStringVar4 +_080249A0: .4byte gUnknown_08400D9F +_080249A4: .4byte gUnknown_0840165C +_080249A8: .4byte 0x02000000 +_080249AC: .4byte 0x00016018 +_080249B0: .4byte gPlayerParty +_080249B4: .4byte gLevelUpStatBoxStats +_080249B8: .4byte _080249BC + .align 2, 0 +_080249BC: + .4byte _080249D4 + .4byte _080249E0 + .4byte _080249EC + .4byte _080249F8 + .4byte _08024A04 + .4byte _08024A10 +_080249D4: + ldr r0, _080249DC @ =0x02017180 + ldrh r0, [r0] + b _08024A14 + .align 2, 0 +_080249DC: .4byte 0x02017180 +_080249E0: + ldr r0, _080249E8 @ =0x02017180 + ldrh r0, [r0, 0x8] + b _08024A14 + .align 2, 0 +_080249E8: .4byte 0x02017180 +_080249EC: + ldr r0, _080249F4 @ =0x02017180 + ldrh r0, [r0, 0x2] + b _08024A14 + .align 2, 0 +_080249F4: .4byte 0x02017180 +_080249F8: + ldr r0, _08024A00 @ =0x02017180 + ldrh r0, [r0, 0xA] + b _08024A14 + .align 2, 0 +_08024A00: .4byte 0x02017180 +_08024A04: + ldr r0, _08024A0C @ =0x02017180 + ldrh r0, [r0, 0x4] + b _08024A14 + .align 2, 0 +_08024A0C: .4byte 0x02017180 +_08024A10: + ldr r0, _08024A54 @ =0x02017180 + ldrh r0, [r0, 0x6] +_08024A14: + subs r0, r1, r0 + lsls r0, 16 + lsrs r7, r0, 16 +_08024A1A: + lsls r0, r7, 16 + asrs r0, 16 + cmp r0, 0 + bge _08024A2C + negs r0, r0 + lsls r0, 16 + lsrs r7, r0, 16 + movs r1, 0x1 + add r9, r1 +_08024A2C: + movs r0, 0xFC + strb r0, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r1, 0x1 + mov r2, r8 + ands r1, r2 + lsls r0, r1, 3 + adds r0, r1 + adds r0, 0x5 + lsls r0, 3 + adds r0, 0x6 + strb r0, [r5, 0x2] + adds r5, 0x3 + mov r0, r9 + cmp r0, 0 + beq _08024A5C + ldr r1, _08024A58 @ =gUnknown_08400DAC + b _08024A5E + .align 2, 0 +_08024A54: .4byte 0x02017180 +_08024A58: .4byte gUnknown_08400DAC +_08024A5C: + ldr r1, _08024AA4 @ =gUnknown_08400DAA +_08024A5E: + adds r0, r5, 0 + bl StringCopy + adds r5, r0, 0 + movs r6, 0xFC + strb r6, [r5] + movs r4, 0x14 + strb r4, [r5, 0x1] + movs r0, 0x6 + strb r0, [r5, 0x2] + adds r5, 0x3 + lsls r1, r7, 16 + asrs r1, 16 + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r5, r0, 0 + strb r6, [r5] + strb r4, [r5, 0x1] + movs r0, 0 + strb r0, [r5, 0x2] + adds r5, 0x3 + movs r0, 0x1 + mov r1, r8 + ands r0, r1 + cmp r0, 0 + beq _08024AA8 + movs r0, 0xFE + strb r0, [r5] + movs r0, 0xFF + strb r0, [r5, 0x1] + adds r5, 0x1 + b _08024AB8 + .align 2, 0 +_08024AA4: .4byte gUnknown_08400DAA +_08024AA8: + strb r6, [r5] + movs r0, 0x11 + strb r0, [r5, 0x1] + movs r0, 0x8 + strb r0, [r5, 0x2] + adds r5, 0x3 + movs r0, 0xFF + strb r0, [r5] +_08024AB8: + movs r2, 0x1 + add r8, r2 + mov r0, r8 + cmp r0, 0x5 + bgt _08024AC4 + b _0802495A +_08024AC4: + ldr r4, _08024AE4 @ =gUnknown_03004210 + ldr r1, _08024AE8 @ =gStringVar4 + adds r2, 0xFF + movs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0xC + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _08024AEC @ =0x02000000 + ldr r2, _08024AF0 @ =0x0001609c + adds r1, r2 + b _08024BEA + .align 2, 0 +_08024AE4: .4byte gUnknown_03004210 +_08024AE8: .4byte gStringVar4 +_08024AEC: .4byte 0x02000000 +_08024AF0: .4byte 0x0001609c +_08024AF4: + ldr r0, _08024B94 @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0 + bne _08024AFE + b _08024C38 +_08024AFE: + movs r0, 0x5 + bl PlaySE + ldr r0, _08024B98 @ =gStringVar4 + ldr r1, _08024B9C @ =gUnknown_08400D9F + bl StringCopy + adds r5, r0, 0 + movs r0, 0 + mov r8, r0 + mov r9, r0 + movs r6, 0xFC + movs r7, 0x14 + ldr r1, _08024BA0 @ =0x00016018 + add r10, r1 +_08024B1C: + ldr r1, _08024BA4 @ =gUnknown_0840165C + mov r2, r8 + lsls r0, r2, 2 + adds r0, r1 + ldr r1, [r0] + adds r0, r5, 0 + bl StringAppend + adds r5, r0, 0 + mov r0, r10 + ldrb r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08024BA8 @ =gPlayerParty + adds r0, r1 + ldr r1, _08024BAC @ =gLevelUpStatBoxStats + add r1, r8 + ldrb r1, [r1] + bl GetMonData + adds r1, r0, 0 + strb r6, [r5] + movs r0, 0x13 + strb r0, [r5, 0x1] + movs r4, 0x1 + mov r2, r8 + ands r4, r2 + lsls r0, r4, 3 + adds r0, r4 + adds r0, 0x5 + lsls r0, 3 + adds r0, 0x6 + strb r0, [r5, 0x2] + adds r5, 0x3 + strb r6, [r5] + strb r7, [r5, 0x1] + movs r0, 0x6 + strb r0, [r5, 0x2] + adds r5, 0x3 + lsls r1, 16 + asrs r1, 16 + adds r0, r5, 0 + movs r2, 0x1 + movs r3, 0x3 + bl ConvertIntToDecimalStringN + adds r5, r0, 0 + strb r6, [r5] + strb r7, [r5, 0x1] + mov r0, r9 + strb r0, [r5, 0x2] + adds r5, 0x3 + cmp r4, 0 + beq _08024BB0 + movs r0, 0xFE + strb r0, [r5] + movs r0, 0xFF + strb r0, [r5, 0x1] + adds r5, 0x1 + b _08024BC0 + .align 2, 0 +_08024B94: .4byte gMain +_08024B98: .4byte gStringVar4 +_08024B9C: .4byte gUnknown_08400D9F +_08024BA0: .4byte 0x00016018 +_08024BA4: .4byte gUnknown_0840165C +_08024BA8: .4byte gPlayerParty +_08024BAC: .4byte gLevelUpStatBoxStats +_08024BB0: + strb r6, [r5] + movs r0, 0x11 + strb r0, [r5, 0x1] + movs r0, 0x8 + strb r0, [r5, 0x2] + adds r5, 0x3 + movs r0, 0xFF + strb r0, [r5] +_08024BC0: + movs r1, 0x1 + add r8, r1 + mov r2, r8 + cmp r2, 0x5 + ble _08024B1C + ldr r4, _08024BF4 @ =gUnknown_03004210 + ldr r1, _08024BF8 @ =gStringVar4 + movs r2, 0x80 + lsls r2, 1 + movs r0, 0x1 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0xC + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _08024BFC @ =0x02000000 + ldr r0, _08024C00 @ =0x0001609c + adds r1, r0 +_08024BEA: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _08024C38 + .align 2, 0 +_08024BF4: .4byte gUnknown_03004210 +_08024BF8: .4byte gStringVar4 +_08024BFC: .4byte 0x02000000 +_08024C00: .4byte 0x0001609c +_08024C04: + ldr r0, _08024C2C @ =gMain + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _08024C38 + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + str r0, [sp] + movs r0, 0xB + movs r1, 0 + movs r2, 0x1D + movs r3, 0x7 + bl sub_802BBD4 + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08024C38 + .align 2, 0 +_08024C2C: .4byte gMain +_08024C30: + ldr r1, _08024C48 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08024C38: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08024C48: .4byte gUnknown_02024C10 + thumb_func_end sub_80248FC + + thumb_func_start sub_8024C4C +sub_8024C4C: @ 8024C4C + push {lr} + bl sub_80156DC + ldr r1, _08024C60 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08024C60: .4byte gUnknown_02024C10 + thumb_func_end sub_8024C4C + + thumb_func_start atk6E_state0_side_becomes_attacker +atk6E_state0_side_becomes_attacker: @ 8024C64 + push {lr} + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _08024C7C @ =gUnknown_02024C07 + strb r0, [r1] + ldr r1, _08024C80 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08024C7C: .4byte gUnknown_02024C07 +_08024C80: .4byte gUnknown_02024C10 + thumb_func_end atk6E_state0_side_becomes_attacker + + thumb_func_start atk6F_8026810 +atk6F_8026810: @ 8024C84 + push {r4,r5,lr} + ldr r5, _08024CB0 @ =gUnknown_02024C10 + ldr r0, [r5] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r4, _08024CB4 @ =gUnknown_02024A60 + strb r0, [r4] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x33_a_33_33 + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08024CB0: .4byte gUnknown_02024C10 +_08024CB4: .4byte gUnknown_02024A60 + thumb_func_end atk6F_8026810 + + thumb_func_start atk70_record_ability_usage_of_side +atk70_record_ability_usage_of_side: @ 8024CB8 + push {r4,lr} + ldr r4, _08024CE0 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r1, _08024CE4 @ =gUnknown_02024A60 + strb r0, [r1] + ldrb r0, [r1] + ldr r1, _08024CE8 @ =byte_2024C06 + ldrb r1, [r1] + bl sub_81074C4 + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08024CE0: .4byte gUnknown_02024C10 +_08024CE4: .4byte gUnknown_02024A60 +_08024CE8: .4byte byte_2024C06 + thumb_func_end atk70_record_ability_usage_of_side + + thumb_func_start sub_8024CEC +sub_8024CEC: @ 8024CEC + ldr r2, _08024D0C @ =gUnknown_03004290 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x2 + strb r0, [r2, 0x1] + ldr r0, _08024D10 @ =word_2024E82 + ldrh r1, [r0] + strb r1, [r2, 0x2] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r2, 0x3] + movs r0, 0xFF + strb r0, [r2, 0x4] + bx lr + .align 2, 0 +_08024D0C: .4byte gUnknown_03004290 +_08024D10: .4byte word_2024E82 + thumb_func_end sub_8024CEC + + thumb_func_start atk71_80268A0 +atk71_80268A0: @ 8024D14 + push {lr} + bl sub_8024CEC + ldr r1, _08024D28 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08024D28: .4byte gUnknown_02024C10 + thumb_func_end atk71_80268A0 + + thumb_func_start atk72_flee +atk72_flee: @ 8024D2C + push {lr} + ldr r0, _08024D58 @ =gUnknown_02024C09 + ldrb r0, [r0] + bl sub_8014AB8 + lsls r0, 24 + cmp r0, 0 + beq _08024D60 + ldr r3, _08024D5C @ =gUnknown_02024C10 + 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 _08024D68 + .align 2, 0 +_08024D58: .4byte gUnknown_02024C09 +_08024D5C: .4byte gUnknown_02024C10 +_08024D60: + ldr r1, _08024D6C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08024D68: + pop {r0} + bx r0 + .align 2, 0 +_08024D6C: .4byte gUnknown_02024C10 + thumb_func_end atk72_flee + + thumb_func_start atk73_cmd73 +atk73_cmd73: @ 8024D70 + push {r4,r5,lr} + ldr r0, _08024DC0 @ =gUnknown_020239F8 + ldrh r0, [r0] + movs r5, 0x1 + ands r5, r0 + cmp r5, 0 + bne _08024E12 + ldr r0, _08024DC4 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r1, _08024DC8 @ =gUnknown_02024A60 + strb r0, [r1] + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08024DCC @ =gBattleMons + movs r1, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r4, [r1, 0x28] + movs r0, 0x64 + muls r0, r4 + ldrh r1, [r1, 0x2C] + bl __divsi3 + cmp r0, 0 + bne _08024DAE + movs r0, 0x1 +_08024DAE: + cmp r0, 0x45 + bgt _08024DB6 + cmp r4, 0 + bne _08024DD8 +_08024DB6: + ldr r0, _08024DD0 @ =0x02000000 + ldr r1, _08024DD4 @ =0x000160c1 + adds r0, r1 + strb r5, [r0] + b _08024E12 + .align 2, 0 +_08024DC0: .4byte gUnknown_020239F8 +_08024DC4: .4byte gUnknown_02024C10 +_08024DC8: .4byte gUnknown_02024A60 +_08024DCC: .4byte gBattleMons +_08024DD0: .4byte 0x02000000 +_08024DD4: .4byte 0x000160c1 +_08024DD8: + cmp r0, 0x27 + ble _08024DF0 + ldr r0, _08024DE8 @ =0x02000000 + ldr r1, _08024DEC @ =0x000160c1 + adds r0, r1 + movs r1, 0x1 + b _08024E10 + .align 2, 0 +_08024DE8: .4byte 0x02000000 +_08024DEC: .4byte 0x000160c1 +_08024DF0: + cmp r0, 0x9 + ble _08024E08 + ldr r0, _08024E00 @ =0x02000000 + ldr r1, _08024E04 @ =0x000160c1 + adds r0, r1 + movs r1, 0x2 + b _08024E10 + .align 2, 0 +_08024E00: .4byte 0x02000000 +_08024E04: .4byte 0x000160c1 +_08024E08: + ldr r0, _08024E20 @ =0x02000000 + ldr r1, _08024E24 @ =0x000160c1 + adds r0, r1 + movs r1, 0x3 +_08024E10: + strb r1, [r0] +_08024E12: + ldr r1, _08024E28 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08024E20: .4byte 0x02000000 +_08024E24: .4byte 0x000160c1 +_08024E28: .4byte gUnknown_02024C10 + thumb_func_end atk73_cmd73 + + thumb_func_start atk74_hp_tresholds_2 +atk74_hp_tresholds_2: @ 8024E2C + push {r4-r7,lr} + ldr r0, _08024E8C @ =gUnknown_020239F8 + ldrh r0, [r0] + movs r7, 0x1 + ands r7, r0 + cmp r7, 0 + bne _08024ED0 + ldr r0, _08024E90 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r0, [r0, 0x1] + bl sub_8015150 + adds r4, r0, 0 + ldr r0, _08024E94 @ =gUnknown_02024A60 + strb r4, [r0] + movs r0, 0x1 + eors r4, r0 + lsls r4, 24 + lsrs r4, 24 + ldr r6, _08024E98 @ =0x02000000 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 23 + ldr r1, _08024E9C @ =0x000160bc + adds r0, r1 + adds r0, r6 + ldrb r5, [r0] + ldr r1, _08024EA0 @ =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r4, [r0, 0x28] + subs r1, r5, r4 + movs r0, 0x64 + muls r0, r1 + adds r1, r5, 0 + bl __divsi3 + adds r1, r0, 0 + cmp r4, r5 + bcc _08024EA8 + ldr r1, _08024EA4 @ =0x000160c1 + adds r0, r6, r1 + strb r7, [r0] + b _08024ED0 + .align 2, 0 +_08024E8C: .4byte gUnknown_020239F8 +_08024E90: .4byte gUnknown_02024C10 +_08024E94: .4byte gUnknown_02024A60 +_08024E98: .4byte 0x02000000 +_08024E9C: .4byte 0x000160bc +_08024EA0: .4byte gBattleMons +_08024EA4: .4byte 0x000160c1 +_08024EA8: + cmp r0, 0x1D + bgt _08024EB8 + ldr r0, _08024EB4 @ =0x000160c1 + adds r1, r6, r0 + movs r0, 0x1 + b _08024ECE + .align 2, 0 +_08024EB4: .4byte 0x000160c1 +_08024EB8: + cmp r1, 0x45 + bgt _08024EC8 + ldr r0, _08024EC4 @ =0x000160c1 + adds r1, r6, r0 + movs r0, 0x2 + b _08024ECE + .align 2, 0 +_08024EC4: .4byte 0x000160c1 +_08024EC8: + ldr r0, _08024EE0 @ =0x000160c1 + adds r1, r6, r0 + movs r0, 0x3 +_08024ECE: + strb r0, [r1] +_08024ED0: + ldr r1, _08024EE4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08024EE0: .4byte 0x000160c1 +_08024EE4: .4byte gUnknown_02024C10 + thumb_func_end atk74_hp_tresholds_2 + + thumb_func_start atk75_8026A58 +atk75_8026A58: @ 8024EE8 + push {lr} + sub sp, 0x4 + ldr r2, _08024F28 @ =gUnknown_02024E6C + ldr r1, _08024F2C @ =gUnknown_02024C07 + ldrb r0, [r1] + strb r0, [r2] + ldr r2, _08024F30 @ =gUnknown_02024A6A + ldrb r0, [r1] + lsls r0, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r1, _08024F34 @ =gEnemyParty + adds r0, r1 + ldr r1, _08024F38 @ =gUnknown_02024C04 + ldrh r1, [r1] + lsls r2, 24 + lsrs r2, 24 + movs r3, 0x1 + str r3, [sp] + movs r3, 0 + bl sub_803E1B0 + ldr r1, _08024F3C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08024F28: .4byte gUnknown_02024E6C +_08024F2C: .4byte gUnknown_02024C07 +_08024F30: .4byte gUnknown_02024A6A +_08024F34: .4byte gEnemyParty +_08024F38: .4byte gUnknown_02024C04 +_08024F3C: .4byte gUnknown_02024C10 + thumb_func_end atk75_8026A58 + + thumb_func_start sub_8024F40 +sub_8024F40: @ 8024F40 + push {r4-r6,lr} + ldr r4, _08024F64 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r1, _08024F68 @ =gUnknown_02024A60 + strb r0, [r1] + ldr r0, [r4] + ldrb r0, [r0, 0x2] + cmp r0, 0x6 + bls _08024F5A + b _08025112 +_08024F5A: + lsls r0, 2 + ldr r1, _08024F6C @ =_08024F70 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08024F64: .4byte gUnknown_02024C10 +_08024F68: .4byte gUnknown_02024A60 +_08024F6C: .4byte _08024F70 + .align 2, 0 +_08024F70: + .4byte _08024F8C + .4byte _08024F9C + .4byte _08024FFC + .4byte _0802500C + .4byte _08025024 + .4byte _08025060 + .4byte _08025098 +_08024F8C: + ldr r0, _08024F98 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl b_cancel_multi_turn_move_maybe + b _08025112 + .align 2, 0 +_08024F98: .4byte gUnknown_02024A60 +_08024F9C: + ldr r1, _08024FD8 @ =gUnknown_02024C07 + ldr r4, _08024FDC @ =gUnknown_02024C08 + ldrb r0, [r4] + strb r0, [r1] + ldrb r0, [r1] + bl battle_side_get_owner + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08024FE0 @ =gUnknown_02024C80 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r2, r1, r2 + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _08024FE8 + ldr r1, _08024FE4 @ =gBattleMons + ldrb r2, [r2, 0x9] + movs r0, 0x58 + muls r0, r2 + adds r0, r1 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08024FE8 + strb r2, [r4] + b _08025112 + .align 2, 0 +_08024FD8: .4byte gUnknown_02024C07 +_08024FDC: .4byte gUnknown_02024C08 +_08024FE0: .4byte gUnknown_02024C80 +_08024FE4: .4byte gBattleMons +_08024FE8: + ldr r0, _08024FF4 @ =gUnknown_02024C08 + ldr r1, _08024FF8 @ =gUnknown_02024A60 + ldrb r1, [r1] + strb r1, [r0] + b _08025112 + .align 2, 0 +_08024FF4: .4byte gUnknown_02024C08 +_08024FF8: .4byte gUnknown_02024A60 +_08024FFC: + bl sub_8012028 + ldr r1, _08025008 @ =gUnknown_02024D1E + strb r0, [r1] + b _08025112 + .align 2, 0 +_08025008: .4byte gUnknown_02024D1E +_0802500C: + ldr r0, _0802501C @ =gUnknown_02024BE6 + ldrh r0, [r0] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _08025020 @ =gUnknown_02024C08 + strb r0, [r1] + b _08025112 + .align 2, 0 +_0802501C: .4byte gUnknown_02024BE6 +_08025020: .4byte gUnknown_02024C08 +_08025024: + ldr r2, _08025044 @ =gUnknown_02024C6C + ldr r1, _08025048 @ =gBitTable + ldr r0, _0802504C @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + lsls r0, 28 + ldr r2, [r2] + ands r2, r0 + cmp r2, 0 + beq _08025054 + ldr r1, _08025050 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1] + b _08025112 + .align 2, 0 +_08025044: .4byte gUnknown_02024C6C +_08025048: .4byte gBitTable +_0802504C: .4byte gUnknown_02024A60 +_08025050: .4byte gUnknown_02024D1E +_08025054: + ldr r0, _0802505C @ =gUnknown_02024D1E + strb r2, [r0] + b _08025112 + .align 2, 0 +_0802505C: .4byte gUnknown_02024D1E +_08025060: + ldr r4, _08025090 @ =gUnknown_02024D68 + ldr r3, _08025094 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x9 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _08025112 + .align 2, 0 +_08025090: .4byte gUnknown_02024D68 +_08025094: .4byte gUnknown_02024A60 +_08025098: + ldr r3, _080250B8 @ =gUnknown_02024A6A + ldr r0, _080250BC @ =0x02000000 + ldr r1, _080250C0 @ =0x00016018 + adds r0, r1 + ldrh r2, [r3] + ldrb r1, [r0] + cmp r2, r1 + beq _080250B2 + ldrh r0, [r3, 0x4] + cmp r0, r1 + bne _08025112 + cmp r2, r0 + bne _080250C8 +_080250B2: + ldr r1, _080250C4 @ =gUnknown_02024A60 + movs r0, 0 + b _080250CC + .align 2, 0 +_080250B8: .4byte gUnknown_02024A6A +_080250BC: .4byte 0x02000000 +_080250C0: .4byte 0x00016018 +_080250C4: .4byte gUnknown_02024A60 +_080250C8: + ldr r1, _08025120 @ =gUnknown_02024A60 + movs r0, 0x2 +_080250CC: + strb r0, [r1] + adds r5, r1, 0 + ldrb r2, [r5] + lsls r1, r2, 1 + ldr r0, _08025124 @ =0x020160e8 + adds r4, r1, r0 + movs r3, 0 + ldr r1, _08025128 @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + ldrh r2, [r4] + cmp r0, r2 + beq _0802510A + adds r6, r5, 0 + movs r5, 0x58 + adds r2, r1, 0 +_080250F2: + adds r3, 0x1 + cmp r3, 0x3 + bgt _0802510A + lsls r1, r3, 1 + ldrb r0, [r6] + muls r0, r5 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + ldrh r1, [r4] + cmp r0, r1 + bne _080250F2 +_0802510A: + cmp r3, 0x4 + bne _08025112 + movs r0, 0 + strh r0, [r4] +_08025112: + ldr r1, _0802512C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x3 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08025120: .4byte gUnknown_02024A60 +_08025124: .4byte 0x020160e8 +_08025128: .4byte gBattleMons +_0802512C: .4byte gUnknown_02024C10 + thumb_func_end sub_8024F40 + + thumb_func_start atk77_setprotect +atk77_setprotect: @ 8025130 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r6, 0x1 + ldr r2, _080251FC @ =gUnknown_02024C4C + ldr r1, _08025200 @ =gUnknown_02024C07 + ldrb r3, [r1] + lsls r0, r3, 1 + adds r0, r2 + ldrh r0, [r0] + mov r8, r1 + ldr r7, _08025204 @ =gUnknown_02024CA8 + cmp r0, 0xB6 + beq _08025160 + cmp r0, 0xC5 + beq _08025160 + cmp r0, 0xCB + beq _08025160 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r7 + movs r1, 0 + strb r1, [r0, 0x8] +_08025160: + ldr r0, _08025208 @ =gUnknown_02024A7E + ldrb r1, [r0] + ldr r0, _0802520C @ =gUnknown_02024A68 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _08025170 + movs r6, 0 +_08025170: + ldr r2, _08025210 @ =gProtectSuccessRates + mov r5, r8 + ldrb r1, [r5] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r4, [r0, 0x8] + lsls r4, 1 + adds r4, r2 + bl Random + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bls _08025224 + cmp r6, 0 + beq _08025224 + ldr r4, _08025214 @ =gBattleMoves + ldr r3, _08025218 @ =gUnknown_02024BE6 + ldrh r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + cmp r0, 0x6F + bne _080251C0 + ldr r0, _0802521C @ =gUnknown_02024D28 + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strb r0, [r1] + ldr r1, _08025220 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] +_080251C0: + ldrh r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + cmp r0, 0x74 + bne _080251E6 + ldr r0, _0802521C @ =gUnknown_02024D28 + ldrb r1, [r5] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strb r0, [r1] + ldr r1, _08025220 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] +_080251E6: + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r7 + ldrb r0, [r1, 0x8] + adds r0, 0x1 + strb r0, [r1, 0x8] + b _08025246 + .align 2, 0 +_080251FC: .4byte gUnknown_02024C4C +_08025200: .4byte gUnknown_02024C07 +_08025204: .4byte gUnknown_02024CA8 +_08025208: .4byte gUnknown_02024A7E +_0802520C: .4byte gUnknown_02024A68 +_08025210: .4byte gProtectSuccessRates +_08025214: .4byte gBattleMoves +_08025218: .4byte gUnknown_02024BE6 +_0802521C: .4byte gUnknown_02024D28 +_08025220: .4byte gUnknown_02024D1E +_08025224: + ldr r2, _08025258 @ =gUnknown_02024CA8 + ldr r0, _0802525C @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x8] + ldr r1, _08025260 @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + ldr r2, _08025264 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] +_08025246: + ldr r1, _08025268 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025258: .4byte gUnknown_02024CA8 +_0802525C: .4byte gUnknown_02024C07 +_08025260: .4byte gUnknown_02024D1E +_08025264: .4byte gUnknown_02024C68 +_08025268: .4byte gUnknown_02024C10 + thumb_func_end atk77_setprotect + + thumb_func_start atk78_faintifabilitynotdamp +atk78_faintifabilitynotdamp: @ 802526C + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08025328 @ =gUnknown_02024A64 + ldr r2, [r0] + cmp r2, 0 + bne _08025370 + ldr r1, _0802532C @ =gUnknown_02024C08 + strb r2, [r1] + ldr r0, _08025330 @ =gUnknown_02024A68 + ldrb r3, [r0] + adds r5, r1, 0 + mov r8, r0 + ldr r6, _08025334 @ =gBattleMons + cmp r2, r3 + bcs _080252B8 + adds r0, r6, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x6 + beq _080252B8 + adds r2, r3, 0 + adds r4, r6, 0 + movs r3, 0x58 +_0802529C: + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r2 + bcs _080252B8 + ldrb r0, [r5] + muls r0, r3 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x6 + bne _0802529C +_080252B8: + ldrb r0, [r5] + mov r1, r8 + ldrb r1, [r1] + cmp r0, r1 + bne _08025354 + ldr r4, _08025338 @ =gUnknown_02024A60 + ldr r7, _0802533C @ =gUnknown_02024C07 + ldrb r0, [r7] + strb r0, [r4] + ldr r2, _08025340 @ =gUnknown_02024BEC + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r6 + ldrh r0, [r0, 0x28] + str r0, [r2] + ldr r1, _08025344 @ =0x00007fff + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08025348 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + movs r0, 0 + strb r0, [r5] + mov r2, r8 + ldrb r0, [r2] + cmp r0, 0 + beq _08025370 + adds r3, r5, 0 + ldrb r5, [r7] + ldr r7, _0802534C @ =gBitTable + adds r4, r0, 0 + ldr r6, _08025350 @ =gUnknown_02024C0C +_08025304: + ldrb r2, [r3] + cmp r2, r5 + beq _0802531A + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r7 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _08025370 +_0802531A: + adds r0, r2, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcc _08025304 + b _08025370 + .align 2, 0 +_08025328: .4byte gUnknown_02024A64 +_0802532C: .4byte gUnknown_02024C08 +_08025330: .4byte gUnknown_02024A68 +_08025334: .4byte gBattleMons +_08025338: .4byte gUnknown_02024A60 +_0802533C: .4byte gUnknown_02024C07 +_08025340: .4byte gUnknown_02024BEC +_08025344: .4byte 0x00007fff +_08025348: .4byte gUnknown_02024C10 +_0802534C: .4byte gBitTable +_08025350: .4byte gUnknown_02024C0C +_08025354: + ldr r1, _0802537C @ =byte_2024C06 + movs r0, 0x6 + strb r0, [r1] + ldrb r0, [r5] + movs r1, 0x58 + muls r1, r0 + adds r1, r6 + adds r1, 0x20 + ldrb r1, [r1] + bl sub_81074C4 + ldr r1, _08025380 @ =gUnknown_02024C10 + ldr r0, _08025384 @ =gUnknown_081D9834 + str r0, [r1] +_08025370: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802537C: .4byte byte_2024C06 +_08025380: .4byte gUnknown_02024C10 +_08025384: .4byte gUnknown_081D9834 + thumb_func_end atk78_faintifabilitynotdamp + + thumb_func_start atk79_setuserhptozero +atk79_setuserhptozero: @ 8025388 + push {r4,lr} + sub sp, 0x4 + ldr r0, _080253D4 @ =gUnknown_02024A64 + ldr r3, [r0] + cmp r3, 0 + bne _080253CC + ldr r4, _080253D8 @ =gUnknown_02024A60 + ldr r0, _080253DC @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _080253E0 @ =gBattleMons + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r0, r1 + strh r3, [r0, 0x28] + ldrb r0, [r4] + muls r0, r2 + adds r1, 0x28 + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2A + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _080253E4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_080253CC: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080253D4: .4byte gUnknown_02024A64 +_080253D8: .4byte gUnknown_02024A60 +_080253DC: .4byte gUnknown_02024C07 +_080253E0: .4byte gBattleMons +_080253E4: .4byte gUnknown_02024C10 + thumb_func_end atk79_setuserhptozero + + thumb_func_start sub_80253E8 +sub_80253E8: @ 80253E8 + push {r4-r7,lr} + ldr r3, _08025460 @ =gUnknown_02024C10 + ldr r2, [r3] + ldrb r4, [r2, 0x1] + ldrb r0, [r2, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r2, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r2, 0x4] + lsls r0, 24 + orrs r4, r0 + ldr r0, _08025464 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + adds r7, r3, 0 + cmp r0, 0 + beq _08025480 + ldr r0, _08025468 @ =gUnknown_02024C08 + ldrb r1, [r0] + adds r1, 0x1 + strb r1, [r0] + ldr r2, _0802546C @ =gUnknown_02024C07 + lsls r1, 24 + lsrs r1, 24 + adds r3, r0, 0 + ldr r6, _08025470 @ =gUnknown_02024C0C + ldr r5, _08025474 @ =gBitTable + ldr r0, _08025478 @ =gUnknown_02024A68 + mov r12, r0 + ldrb r0, [r2] + cmp r1, r0 + bne _0802543E +_0802542E: + ldrb r0, [r3] + adds r0, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r2] + cmp r0, r1 + beq _0802542E +_0802543E: + ldrb r0, [r6] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r5 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + bne _0802542E + ldrb r0, [r3] + mov r2, r12 + ldrb r2, [r2] + cmp r0, r2 + bcc _0802547C + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + b _08025484 + .align 2, 0 +_08025460: .4byte gUnknown_02024C10 +_08025464: .4byte gUnknown_020239F8 +_08025468: .4byte gUnknown_02024C08 +_0802546C: .4byte gUnknown_02024C07 +_08025470: .4byte gUnknown_02024C0C +_08025474: .4byte gBitTable +_08025478: .4byte gUnknown_02024A68 +_0802547C: + str r4, [r7] + b _08025484 +_08025480: + adds r0, r2, 0x5 + str r0, [r3] +_08025484: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80253E8 + + thumb_func_start sub_802548C +sub_802548C: @ 802548C + push {r4-r6,lr} + ldr r4, _080254E8 @ =gUnknown_02024C10 + ldr r1, [r4] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldrb r0, [r1, 0x5] + ldr r3, _080254EC @ =gUnknown_02024C08 + cmp r0, 0x1 + bne _080254B4 + ldr r0, _080254F0 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r3] +_080254B4: + ldr r1, _080254F4 @ =gUnknown_02024BEC + ldr r6, _080254F8 @ =gBattleMons + ldrb r0, [r3] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _080254CE + movs r0, 0x1 + str r0, [r1] +_080254CE: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldrb r0, [r3] + muls r0, r5 + adds r0, r6 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + bne _080254FC + str r2, [r4] + b _08025502 + .align 2, 0 +_080254E8: .4byte gUnknown_02024C10 +_080254EC: .4byte gUnknown_02024C08 +_080254F0: .4byte gUnknown_02024C07 +_080254F4: .4byte gUnknown_02024BEC +_080254F8: .4byte gBattleMons +_080254FC: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_08025502: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_802548C + + thumb_func_start sub_8025508 +sub_8025508: @ 8025508 + push {r4-r7,lr} + ldr r3, _0802556C @ =0x02000000 + ldr r4, _08025570 @ =gUnknown_02024C07 + ldrb r2, [r4] + lsls r1, r2, 1 + ldr r5, _08025574 @ =0x000160ac + adds r0, r1, r5 + adds r0, r3 + ldrb r7, [r0] + ldr r0, _08025578 @ =0x000160ad + adds r1, r0 + adds r1, r3 + ldrb r0, [r1] + lsls r0, 8 + orrs r7, r0 + lsls r2, 2 + ldr r1, _0802557C @ =0x00016100 + adds r0, r2, r1 + adds r0, r3 + ldrb r6, [r0] + adds r5, 0x55 + adds r0, r2, r5 + adds r0, r3 + ldrb r0, [r0] + lsls r0, 8 + orrs r6, r0 + adds r1, 0x2 + adds r0, r2, r1 + adds r0, r3 + ldrb r5, [r0] + ldr r0, _08025580 @ =0x00016103 + adds r2, r0 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r5, r0 + cmp r7, 0 + beq _08025594 + ldr r0, _08025584 @ =0x0000ffff + cmp r7, r0 + beq _08025594 + ldr r2, _08025588 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0802558C @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _08025590 @ =gUnknown_02024BE6 + strh r7, [r4] + b _0802565C + .align 2, 0 +_0802556C: .4byte 0x02000000 +_08025570: .4byte gUnknown_02024C07 +_08025574: .4byte 0x000160ac +_08025578: .4byte 0x000160ad +_0802557C: .4byte 0x00016100 +_08025580: .4byte 0x00016103 +_08025584: .4byte 0x0000ffff +_08025588: .4byte gUnknown_02024C6C +_0802558C: .4byte 0xfffffbff +_08025590: .4byte gUnknown_02024BE6 +_08025594: + cmp r6, 0 + beq _08025644 + cmp r5, 0 + beq _08025618 + ldr r0, _080255C4 @ =0x0000ffff + cmp r6, r0 + beq _08025618 + cmp r5, r0 + beq _08025618 + ldr r2, _080255C8 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _080255CC @ =0xfffffbff + ands r0, r1 + str r0, [r2] + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080255D4 + ldr r0, _080255D0 @ =gUnknown_02024BE6 + strh r6, [r0] + b _080255D8 + .align 2, 0 +_080255C4: .4byte 0x0000ffff +_080255C8: .4byte gUnknown_02024C6C +_080255CC: .4byte 0xfffffbff +_080255D0: .4byte gUnknown_02024BE6 +_080255D4: + ldr r0, _08025604 @ =gUnknown_02024BE6 + strh r5, [r0] +_080255D8: + adds r5, r0, 0 + ldrh r0, [r5] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _08025608 @ =gUnknown_02024C08 + strb r0, [r1] + ldr r4, _0802560C @ =gUnknown_02024C10 + ldr r3, _08025610 @ =gUnknown_081D6BBC + ldr r2, _08025614 @ =gBattleMoves + ldrh r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r4] + b _080256C0 + .align 2, 0 +_08025604: .4byte gUnknown_02024BE6 +_08025608: .4byte gUnknown_02024C08 +_0802560C: .4byte gUnknown_02024C10 +_08025610: .4byte gUnknown_081D6BBC +_08025614: .4byte gBattleMoves +_08025618: + cmp r6, 0 + beq _08025644 + ldr r0, _08025634 @ =0x0000ffff + cmp r6, r0 + beq _08025644 + ldr r2, _08025638 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0802563C @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _08025640 @ =gUnknown_02024BE6 + strh r6, [r4] + b _0802565C + .align 2, 0 +_08025634: .4byte 0x0000ffff +_08025638: .4byte gUnknown_02024C6C +_0802563C: .4byte 0xfffffbff +_08025640: .4byte gUnknown_02024BE6 +_08025644: + cmp r5, 0 + beq _080256A4 + ldr r0, _08025684 @ =0x0000ffff + cmp r5, r0 + beq _080256A4 + ldr r2, _08025688 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0802568C @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _08025690 @ =gUnknown_02024BE6 + strh r5, [r4] +_0802565C: + ldrh r0, [r4] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _08025694 @ =gUnknown_02024C08 + strb r0, [r1] + ldr r5, _08025698 @ =gUnknown_02024C10 + ldr r3, _0802569C @ =gUnknown_081D6BBC + ldr r2, _080256A0 @ =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + str r0, [r5] + b _080256C0 + .align 2, 0 +_08025684: .4byte 0x0000ffff +_08025688: .4byte gUnknown_02024C6C +_0802568C: .4byte 0xfffffbff +_08025690: .4byte gUnknown_02024BE6 +_08025694: .4byte gUnknown_02024C08 +_08025698: .4byte gUnknown_02024C10 +_0802569C: .4byte gUnknown_081D6BBC +_080256A0: .4byte gBattleMoves +_080256A4: + ldr r2, _080256C8 @ =gUnknown_02024D68 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r1, _080256CC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_080256C0: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080256C8: .4byte gUnknown_02024D68 +_080256CC: .4byte gUnknown_02024C10 + thumb_func_end sub_8025508 + + thumb_func_start sub_80256D0 +sub_80256D0: @ 80256D0 + push {lr} + ldr r2, _080256F0 @ =word_2024DB8 + ldrh r0, [r2] + movs r1, 0x7 + ands r1, r0 + cmp r1, 0 + beq _080256FC + ldr r2, _080256F4 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080256F8 @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + b _0802570C + .align 2, 0 +_080256F0: .4byte word_2024DB8 +_080256F4: .4byte gUnknown_02024C68 +_080256F8: .4byte gUnknown_02024D1E +_080256FC: + movs r0, 0x1 + strh r0, [r2] + ldr r0, _08025718 @ =gUnknown_02024D1E + strb r1, [r0, 0x5] + ldr r0, _0802571C @ =gUnknown_02024DBC + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_0802570C: + ldr r1, _08025720 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08025718: .4byte gUnknown_02024D1E +_0802571C: .4byte gUnknown_02024DBC +_08025720: .4byte gUnknown_02024C10 + thumb_func_end sub_80256D0 + + thumb_func_start atk7E_setreflect +atk7E_setreflect: @ 8025724 + push {r4-r6,lr} + ldr r5, _08025754 @ =gUnknown_02024C07 + ldrb r0, [r5] + bl battle_get_per_side_status + ldr r6, _08025758 @ =gUnknown_02024C7A + movs r4, 0x1 + adds r1, r4, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08025764 + ldr r2, _0802575C @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08025760 @ =gUnknown_02024D1E + movs r0, 0 + b _080257C4 + .align 2, 0 +_08025754: .4byte gUnknown_02024C07 +_08025758: .4byte gUnknown_02024C7A +_0802575C: .4byte gUnknown_02024C68 +_08025760: .4byte gUnknown_02024D1E +_08025764: + ldrb r0, [r5] + bl battle_get_per_side_status + adds r1, r4, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r6 + ldrh r0, [r1] + movs r2, 0x1 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r5] + bl battle_get_per_side_status + ldr r2, _080257B4 @ =gUnknown_02024C80 + adds r1, r4, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strb r1, [r0] + ldr r0, _080257B8 @ =gUnknown_020239F8 + ldrh r1, [r0] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _080257C0 + movs r0, 0x1 + bl sub_803C348 + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x2 + bne _080257C0 + ldr r0, _080257BC @ =gUnknown_02024D1E + strb r1, [r0, 0x5] + b _080257C6 + .align 2, 0 +_080257B4: .4byte gUnknown_02024C80 +_080257B8: .4byte gUnknown_020239F8 +_080257BC: .4byte gUnknown_02024D1E +_080257C0: + ldr r1, _080257D4 @ =gUnknown_02024D1E + movs r0, 0x1 +_080257C4: + strb r0, [r1, 0x5] +_080257C6: + ldr r1, _080257D8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080257D4: .4byte gUnknown_02024D1E +_080257D8: .4byte gUnknown_02024C10 + thumb_func_end atk7E_setreflect + + thumb_func_start sub_80257DC +sub_80257DC: @ 80257DC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r7, _0802581C @ =gUnknown_02024C68 + ldrb r5, [r7] + movs r0, 0x29 + ands r0, r5 + cmp r0, 0 + bne _0802580E + ldr r0, _08025820 @ =gUnknown_02024C98 + mov r9, r0 + ldr r1, _08025824 @ =gUnknown_02024C08 + mov r8, r1 + ldrb r4, [r1] + lsls r0, r4, 2 + mov r2, r9 + adds r6, r0, r2 + ldr r2, [r6] + movs r0, 0x4 + mov r12, r0 + adds r3, r2, 0 + ands r3, r0 + cmp r3, 0 + beq _0802582C +_0802580E: + movs r0, 0x1 + orrs r0, r5 + strb r0, [r7] + ldr r1, _08025828 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _0802587C + .align 2, 0 +_0802581C: .4byte gUnknown_02024C68 +_08025820: .4byte gUnknown_02024C98 +_08025824: .4byte gUnknown_02024C08 +_08025828: .4byte gUnknown_02024D1E +_0802582C: + ldr r1, _08025858 @ =gBattleMons + movs r0, 0x58 + muls r0, r4 + adds r1, r0, r1 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xC + beq _08025848 + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xC + bne _08025860 +_08025848: + movs r0, 0x1 + orrs r0, r5 + strb r0, [r7] + ldr r1, _0802585C @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + b _0802587C + .align 2, 0 +_08025858: .4byte gBattleMons +_0802585C: .4byte gUnknown_02024D1E +_08025860: + ldr r0, _08025890 @ =gUnknown_02024C07 + ldrb r0, [r0] + orrs r2, r0 + str r2, [r6] + mov r2, r8 + ldrb r1, [r2] + lsls r1, 2 + add r1, r9 + ldr r0, [r1] + mov r2, r12 + orrs r0, r2 + str r0, [r1] + ldr r0, _08025894 @ =gUnknown_02024D1E + strb r3, [r0, 0x5] +_0802587C: + ldr r1, _08025898 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025890: .4byte gUnknown_02024C07 +_08025894: .4byte gUnknown_02024D1E +_08025898: .4byte gUnknown_02024C10 + thumb_func_end sub_80257DC + + thumb_func_start atk80_manipulatedamage +atk80_manipulatedamage: @ 802589C + push {r4,lr} + ldr r1, _080258B4 @ =gUnknown_02024C10 + ldr r0, [r1] + ldrb r2, [r0, 0x1] + adds r4, r1, 0 + cmp r2, 0x1 + beq _080258CC + cmp r2, 0x1 + bgt _080258B8 + cmp r2, 0 + beq _080258BE + b _0802590C + .align 2, 0 +_080258B4: .4byte gUnknown_02024C10 +_080258B8: + cmp r2, 0x2 + beq _08025904 + b _0802590C +_080258BE: + ldr r1, _080258C8 @ =gUnknown_02024BEC + ldr r0, [r1] + negs r0, r0 + b _0802590A + .align 2, 0 +_080258C8: .4byte gUnknown_02024BEC +_080258CC: + ldr r3, _080258F8 @ =gUnknown_02024BEC + ldr r0, [r3] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [r3] + cmp r0, 0 + bne _080258DE + str r2, [r3] +_080258DE: + ldr r2, _080258FC @ =gBattleMons + ldr r0, _08025900 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r1, r0, 1 + ldr r0, [r3] + cmp r1, r0 + bge _0802590C + str r1, [r3] + b _0802590C + .align 2, 0 +_080258F8: .4byte gUnknown_02024BEC +_080258FC: .4byte gBattleMons +_08025900: .4byte gUnknown_02024C08 +_08025904: + ldr r1, _08025918 @ =gUnknown_02024BEC + ldr r0, [r1] + lsls r0, 1 +_0802590A: + str r0, [r1] +_0802590C: + ldr r0, [r4] + adds r0, 0x2 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08025918: .4byte gUnknown_02024BEC + thumb_func_end atk80_manipulatedamage + + thumb_func_start atk81_setrest +atk81_setrest: @ 802591C + push {r4-r7,lr} + sub sp, 0x4 + ldr r0, _08025974 @ =gUnknown_02024C10 + mov r12, r0 + ldr r1, [r0] + ldrb r6, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r6, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r6, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r6, r0 + ldr r5, _08025978 @ =gUnknown_02024A60 + ldr r2, _0802597C @ =gUnknown_02024C08 + ldr r0, _08025980 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r2] + strb r0, [r5] + ldr r4, _08025984 @ =gUnknown_02024BEC + ldr r1, _08025988 @ =gBattleMons + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + adds r0, r1 + ldrh r0, [r0, 0x2C] + negs r0, r0 + str r0, [r4] + ldrb r0, [r2] + adds r4, r0, 0 + muls r4, r3 + adds r0, r4, r1 + ldrh r3, [r0, 0x28] + adds r7, r5, 0 + adds r5, r2, 0 + adds r2, r1, 0 + ldrh r0, [r0, 0x2C] + cmp r3, r0 + bne _0802598C + mov r0, r12 + str r6, [r0] + b _080259DC + .align 2, 0 +_08025974: .4byte gUnknown_02024C10 +_08025978: .4byte gUnknown_02024A60 +_0802597C: .4byte gUnknown_02024C08 +_08025980: .4byte gUnknown_02024C07 +_08025984: .4byte gUnknown_02024BEC +_08025988: .4byte gBattleMons +_0802598C: + adds r0, r2, 0 + adds r0, 0x4C + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0xF8 + ands r1, r0 + cmp r1, 0 + beq _080259A8 + ldr r1, _080259A4 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _080259AC + .align 2, 0 +_080259A4: .4byte gUnknown_02024D1E +_080259A8: + ldr r0, _080259E4 @ =gUnknown_02024D1E + strb r1, [r0, 0x5] +_080259AC: + ldrb r0, [r5] + movs r3, 0x58 + muls r0, r3 + adds r2, 0x4C + adds r0, r2 + movs r1, 0x3 + str r1, [r0] + ldrb r0, [r7] + muls r0, r3 + adds r0, r2 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _080259E8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_080259DC: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080259E4: .4byte gUnknown_02024D1E +_080259E8: .4byte gUnknown_02024C10 + thumb_func_end atk81_setrest + + thumb_func_start atk82_jumpifnotfirstturn +atk82_jumpifnotfirstturn: @ 80259EC + push {r4,r5,lr} + ldr r5, _08025A20 @ =gUnknown_02024C10 + ldr r4, [r5] + ldrb r3, [r4, 0x1] + ldrb r0, [r4, 0x2] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r4, 0x3] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r4, 0x4] + lsls r0, 24 + orrs r3, r0 + ldr r2, _08025A24 @ =gUnknown_02024CA8 + ldr r0, _08025A28 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _08025A2C + adds r0, r4, 0x5 + str r0, [r5] + b _08025A2E + .align 2, 0 +_08025A20: .4byte gUnknown_02024C10 +_08025A24: .4byte gUnknown_02024CA8 +_08025A28: .4byte gUnknown_02024C07 +_08025A2C: + str r3, [r5] +_08025A2E: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end atk82_jumpifnotfirstturn + + thumb_func_start sub_8025A34 +sub_8025A34: @ 8025A34 + ldr r1, _08025A40 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08025A40: .4byte gUnknown_02024C10 + thumb_func_end sub_8025A34 + + thumb_func_start sub_8025A44 +sub_8025A44: @ 8025A44 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 24 + lsrs r3, r0, 24 + movs r2, 0 + ldr r0, _08025A9C @ =gUnknown_02024A68 + ldrb r1, [r0] + mov r8, r0 + cmp r2, r1 + bge _08025AB8 + ldr r0, _08025AA0 @ =gBattleMons + mov r12, r0 + movs r0, 0x58 + muls r0, r3 + add r0, r12 + adds r5, r0, 0 + adds r5, 0x20 + ldr r6, _08025AA4 @ =0x02016003 + movs r3, 0 + ldr r7, _08025AA8 @ =gUnknown_02024D1E + adds r4, r1, 0 +_08025A70: + mov r0, r12 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x70 + ands r0, r1 + cmp r0, 0 + beq _08025AB0 + ldrb r0, [r5] + cmp r0, 0x2B + beq _08025AB0 + movs r3, 0 + strb r2, [r6] + ldr r1, _08025AAC @ =gUnknown_02024C08 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08025AD0 + cmp r0, r2 + beq _08025AC4 + movs r0, 0x1 + strb r0, [r7, 0x5] + b _08025AB8 + .align 2, 0 +_08025A9C: .4byte gUnknown_02024A68 +_08025AA0: .4byte gBattleMons +_08025AA4: .4byte 0x02016003 +_08025AA8: .4byte gUnknown_02024D1E +_08025AAC: .4byte gUnknown_02024C08 +_08025AB0: + adds r3, 0x58 + adds r2, 0x1 + cmp r2, r4 + blt _08025A70 +_08025AB8: + mov r1, r8 + ldrb r1, [r1] + cmp r2, r1 + beq _08025AD4 + movs r0, 0x1 + b _08025AD6 +_08025AC4: + ldr r0, _08025ACC @ =gUnknown_02024D1E + strb r3, [r0, 0x5] + b _08025AB8 + .align 2, 0 +_08025ACC: .4byte gUnknown_02024D1E +_08025AD0: + strb r2, [r1] + b _08025AB8 +_08025AD4: + movs r0, 0 +_08025AD6: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8025A44 + + thumb_func_start sub_8025AE0 +sub_8025AE0: @ 8025AE0 + push {r4-r6,lr} + ldr r5, _08025B0C @ =gUnknown_02024C10 + ldr r1, [r5] + ldrb r4, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r4, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r4, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r4, r0 + ldr r6, _08025B10 @ =gUnknown_02024C08 + ldrb r0, [r6] + bl sub_8025A44 + lsls r0, 24 + cmp r0, 0 + beq _08025B14 + str r4, [r5] + b _08025B56 + .align 2, 0 +_08025B0C: .4byte gUnknown_02024C10 +_08025B10: .4byte gUnknown_02024C08 +_08025B14: + ldr r1, _08025B44 @ =gBattleMons + ldrb r3, [r6] + movs r0, 0x58 + muls r0, r3 + adds r0, r1 + adds r0, 0x20 + ldrb r0, [r0] + adds r1, r0, 0 + cmp r1, 0xF + beq _08025B2C + cmp r1, 0x48 + bne _08025B50 +_08025B2C: + ldr r2, _08025B48 @ =byte_2024C06 + strb r0, [r2] + ldr r1, _08025B4C @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + str r4, [r5] + ldrb r1, [r2] + adds r0, r3, 0 + bl sub_81074C4 + b _08025B56 + .align 2, 0 +_08025B44: .4byte gBattleMons +_08025B48: .4byte byte_2024C06 +_08025B4C: .4byte gUnknown_02024D1E +_08025B50: + ldr r0, [r5] + adds r0, 0x5 + str r0, [r5] +_08025B56: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8025AE0 + + thumb_func_start sub_8025B5C +sub_8025B5C: @ 8025B5C + push {r4,r5,lr} + ldr r5, _08025B84 @ =gUnknown_02024CA8 + ldr r4, _08025B88 @ =gUnknown_02024C07 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r5 + ldrb r0, [r1, 0x9] + cmp r0, 0x3 + bne _08025B94 + ldr r2, _08025B8C @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08025B90 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08025BBE + .align 2, 0 +_08025B84: .4byte gUnknown_02024CA8 +_08025B88: .4byte gUnknown_02024C07 +_08025B8C: .4byte gUnknown_02024C68 +_08025B90: .4byte gUnknown_02024D1E +_08025B94: + adds r0, 0x1 + movs r3, 0 + strb r0, [r1, 0x9] + ldr r2, _08025BCC @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x1 + strb r0, [r2, 0x1] + strb r0, [r2, 0x2] + strb r0, [r2, 0x3] + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r0, [r0, 0x9] + strb r0, [r2, 0x4] + movs r0, 0xFF + strb r0, [r2, 0x5] + ldr r0, _08025BD0 @ =gUnknown_02024D1E + strb r3, [r0, 0x5] +_08025BBE: + ldr r1, _08025BD4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08025BCC: .4byte gUnknown_030041C0 +_08025BD0: .4byte gUnknown_02024D1E +_08025BD4: .4byte gUnknown_02024C10 + thumb_func_end sub_8025B5C + + thumb_func_start atk86_stockpiletobasedamage +atk86_stockpiletobasedamage: @ 8025BD8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + ldr r3, _08025C10 @ =gUnknown_02024C10 + ldr r1, [r3] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldr r7, _08025C14 @ =gUnknown_02024CA8 + ldr r6, _08025C18 @ =gUnknown_02024C07 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x9] + cmp r0, 0 + bne _08025C1C + str r2, [r3] + b _08025CC2 + .align 2, 0 +_08025C10: .4byte gUnknown_02024C10 +_08025C14: .4byte gUnknown_02024CA8 +_08025C18: .4byte gUnknown_02024C07 +_08025C1C: + ldr r0, _08025CD0 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + beq _08025CA8 + ldr r0, _08025CD4 @ =gUnknown_02024BEC + mov r8, r0 + ldr r4, _08025CD8 @ =gUnknown_02024C7A + ldr r5, _08025CDC @ =gUnknown_02024C08 + ldrb r0, [r5] + bl battle_get_per_side_status + movs r1, 0x1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldrb r0, [r6] + movs r4, 0x58 + muls r0, r4 + ldr r2, _08025CE0 @ =gBattleMons + adds r0, r2 + ldrb r1, [r5] + muls r1, r4 + adds r1, r2 + ldr r2, _08025CE4 @ =gUnknown_02024BE6 + ldrh r2, [r2] + movs r4, 0 + str r4, [sp] + str r4, [sp, 0x4] + ldrb r4, [r6] + str r4, [sp, 0x8] + ldrb r4, [r5] + str r4, [sp, 0xC] + bl CalculateBaseDamage + ldrb r2, [r6] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r7 + ldrb r1, [r1, 0x9] + adds r3, r0, 0 + muls r3, r1 + mov r1, r8 + str r3, [r1] + ldr r2, _08025CE8 @ =0x02000000 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r0, [r0, 0x9] + ldr r1, _08025CEC @ =0x00016002 + adds r2, r1 + strb r0, [r2] + ldr r1, _08025CF0 @ =gUnknown_02024D28 + ldrb r0, [r6] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _08025CA8 + lsls r0, r3, 4 + subs r0, r3 + movs r1, 0xA + bl __divsi3 + mov r1, r8 + str r0, [r1] +_08025CA8: + ldr r2, _08025CF4 @ =gUnknown_02024CA8 + ldr r0, _08025CF8 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x9] + ldr r1, _08025CFC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08025CC2: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025CD0: .4byte gUnknown_02024D1E +_08025CD4: .4byte gUnknown_02024BEC +_08025CD8: .4byte gUnknown_02024C7A +_08025CDC: .4byte gUnknown_02024C08 +_08025CE0: .4byte gBattleMons +_08025CE4: .4byte gUnknown_02024BE6 +_08025CE8: .4byte 0x02000000 +_08025CEC: .4byte 0x00016002 +_08025CF0: .4byte gUnknown_02024D28 +_08025CF4: .4byte gUnknown_02024CA8 +_08025CF8: .4byte gUnknown_02024C07 +_08025CFC: .4byte gUnknown_02024C10 + thumb_func_end atk86_stockpiletobasedamage + + thumb_func_start sub_8025D00 +sub_8025D00: @ 8025D00 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _08025D40 @ =gUnknown_02024C10 + ldr r1, [r7] + ldrb r2, [r1, 0x1] + ldrb r0, [r1, 0x2] + lsls r0, 8 + orrs r2, r0 + ldrb r0, [r1, 0x3] + lsls r0, 16 + orrs r2, r0 + ldrb r0, [r1, 0x4] + lsls r0, 24 + orrs r2, r0 + ldr r0, _08025D44 @ =gUnknown_02024CA8 + mov r8, r0 + ldr r6, _08025D48 @ =gUnknown_02024C07 + ldrb r3, [r6] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + mov r1, r8 + adds r4, r0, r1 + ldrb r1, [r4, 0x9] + cmp r1, 0 + bne _08025D50 + str r2, [r7] + ldr r0, _08025D4C @ =gUnknown_02024D1E + strb r1, [r0, 0x5] + b _08025DD0 + .align 2, 0 +_08025D40: .4byte gUnknown_02024C10 +_08025D44: .4byte gUnknown_02024CA8 +_08025D48: .4byte gUnknown_02024C07 +_08025D4C: .4byte gUnknown_02024D1E +_08025D50: + ldr r1, _08025D74 @ =gBattleMons + movs r0, 0x58 + muls r0, r3 + adds r1, r0, r1 + ldrh r0, [r1, 0x2C] + ldrh r3, [r1, 0x28] + cmp r0, r3 + bne _08025D80 + movs r0, 0 + strb r0, [r4, 0x9] + str r2, [r7] + ldr r1, _08025D78 @ =gUnknown_02024C08 + ldrb r0, [r6] + strb r0, [r1] + ldr r1, _08025D7C @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08025DD0 + .align 2, 0 +_08025D74: .4byte gBattleMons +_08025D78: .4byte gUnknown_02024C08 +_08025D7C: .4byte gUnknown_02024D1E +_08025D80: + ldr r5, _08025DDC @ =gUnknown_02024BEC + ldrh r0, [r1, 0x2C] + ldrb r1, [r4, 0x9] + movs r2, 0x3 + subs r2, r1 + movs r4, 0x1 + adds r1, r4, 0 + lsls r1, r2 + bl __divsi3 + str r0, [r5] + cmp r0, 0 + bne _08025D9C + str r4, [r5] +_08025D9C: + ldr r0, [r5] + negs r0, r0 + str r0, [r5] + ldr r2, _08025DE0 @ =0x02000000 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + ldrb r0, [r0, 0x9] + ldr r1, _08025DE4 @ =0x00016002 + adds r2, r1 + movs r3, 0 + strb r0, [r2] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + strb r3, [r0, 0x9] + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + ldr r1, _08025DE8 @ =gUnknown_02024C08 + ldrb r0, [r6] + strb r0, [r1] +_08025DD0: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08025DDC: .4byte gUnknown_02024BEC +_08025DE0: .4byte 0x02000000 +_08025DE4: .4byte 0x00016002 +_08025DE8: .4byte gUnknown_02024C08 + thumb_func_end sub_8025D00 + + thumb_func_start atk88_negativedamage +atk88_negativedamage: @ 8025DEC + push {lr} + ldr r2, _08025E14 @ =gUnknown_02024BEC + ldr r0, _08025E18 @ =gUnknown_02024BF0 + ldr r0, [r0] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + negs r0, r0 + str r0, [r2] + cmp r0, 0 + bne _08025E08 + movs r0, 0x1 + negs r0, r0 + str r0, [r2] +_08025E08: + ldr r1, _08025E1C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08025E14: .4byte gUnknown_02024BEC +_08025E18: .4byte gUnknown_02024BF0 +_08025E1C: .4byte gUnknown_02024C10 + thumb_func_end atk88_negativedamage + + thumb_func_start sub_8025E20 +sub_8025E20: @ 8025E20 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r3 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r7, r1, 24 + lsls r2, 24 + lsrs r5, r2, 24 + movs r0, 0 + mov r9, r0 + mov r10, r0 + movs r0, 0x40 + ands r0, r5 + cmp r0, 0 + beq _08025E54 + ldr r0, _08025E4C @ =gUnknown_02024A60 + ldr r1, _08025E50 @ =gUnknown_02024C07 + b _08025E58 + .align 2, 0 +_08025E4C: .4byte gUnknown_02024A60 +_08025E50: .4byte gUnknown_02024C07 +_08025E54: + ldr r0, _08025EF8 @ =gUnknown_02024A60 + ldr r1, _08025EFC @ =gUnknown_02024C08 +_08025E58: + ldrb r1, [r1] + strb r1, [r0] + movs r0, 0xBF + ands r5, r0 + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + beq _08025E72 + mov r0, r9 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 +_08025E72: + movs r0, 0x7F + ands r5, r0 + movs r0, 0x20 + ands r0, r5 + cmp r0, 0 + beq _08025E88 + mov r0, r10 + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 +_08025E88: + movs r0, 0xDF + ands r5, r0 + ldr r1, _08025F00 @ =gUnknown_030041C0 + movs r4, 0 + movs r2, 0xFD + strb r2, [r1] + movs r0, 0x5 + strb r0, [r1, 0x1] + strb r7, [r1, 0x2] + movs r3, 0x1 + negs r3, r3 + mov r12, r3 + movs r0, 0xFF + strb r0, [r1, 0x3] + lsls r0, r6, 24 + cmp r0, 0 + blt _08025EAC + b _080261B0 +_08025EAC: + ldr r4, _08025F04 @ =gUnknown_02024C80 + ldr r1, _08025EF8 @ =gUnknown_02024A60 + ldrb r0, [r1] + bl battle_get_per_side_status + movs r1, 0x1 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x2] + cmp r0, 0 + beq _08025F54 + mov r2, r9 + cmp r2, 0 + bne _08025F54 + ldr r0, _08025F08 @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xAE + beq _08025F84 + cmp r5, 0x1 + bne _08025F74 + ldr r4, _08025F0C @ =gUnknown_02024D68 + ldr r3, _08025EF8 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1] + lsls r0, 31 + cmp r0, 0 + beq _08025F14 + ldr r0, _08025F10 @ =gUnknown_02024C10 + mov r4, r8 + str r4, [r0] + b _08025F74 + .align 2, 0 +_08025EF8: .4byte gUnknown_02024A60 +_08025EFC: .4byte gUnknown_02024C08 +_08025F00: .4byte gUnknown_030041C0 +_08025F04: .4byte gUnknown_02024C80 +_08025F08: .4byte gUnknown_02024BE6 +_08025F0C: .4byte gUnknown_02024D68 +_08025F10: .4byte gUnknown_02024C10 +_08025F14: + mov r0, r8 + bl b_movescr_stack_push + ldr r0, _08025F40 @ =0x02000000 + ldr r6, _08025F44 @ =gUnknown_02024A60 + ldrb r1, [r6] + ldr r2, _08025F48 @ =0x00016003 + adds r0, r2 + strb r1, [r0] + ldr r1, _08025F4C @ =gUnknown_02024C10 + ldr r0, _08025F50 @ =gUnknown_081D9128 + str r0, [r1] + ldrb r1, [r6] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08025F74 + .align 2, 0 +_08025F40: .4byte 0x02000000 +_08025F44: .4byte gUnknown_02024A60 +_08025F48: .4byte 0x00016003 +_08025F4C: .4byte gUnknown_02024C10 +_08025F50: .4byte gUnknown_081D9128 +_08025F54: + ldr r0, _08025F78 @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xAE + beq _08025F84 + mov r3, r10 + cmp r3, 0x1 + beq _08025F84 + movs r0, 0 + bl sub_801C108 + lsls r0, 24 + cmp r0, 0 + beq _08025F84 + ldr r1, _08025F7C @ =gUnknown_02024C10 + ldr r0, _08025F80 @ =BattleScript_1D83D6 + str r0, [r1] +_08025F74: + movs r0, 0x1 + b _080262A4 + .align 2, 0 +_08025F78: .4byte gUnknown_02024BE6 +_08025F7C: .4byte gUnknown_02024C10 +_08025F80: .4byte BattleScript_1D83D6 +_08025F84: + ldr r2, _08025FCC @ =gBattleMons + ldr r1, _08025FD0 @ =gUnknown_02024A60 + ldrb r3, [r1] + movs r4, 0x58 + adds r0, r3, 0 + muls r0, r4 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + mov r10, r2 + cmp r0, 0x1D + beq _08025FA0 + cmp r0, 0x49 + bne _08026040 +_08025FA0: + mov r0, r9 + cmp r0, 0 + bne _08026040 + ldr r0, _08025FD4 @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xAE + beq _08026040 + cmp r5, 0x1 + bne _08025F74 + ldr r4, _08025FD8 @ =gUnknown_02024D68 + lsls r0, r3, 2 + adds r0, r3 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + beq _08025FE0 + ldr r0, _08025FDC @ =gUnknown_02024C10 + mov r1, r8 + str r1, [r0] + b _08025F74 + .align 2, 0 +_08025FCC: .4byte gBattleMons +_08025FD0: .4byte gUnknown_02024A60 +_08025FD4: .4byte gUnknown_02024BE6 +_08025FD8: .4byte gUnknown_02024D68 +_08025FDC: .4byte gUnknown_02024C10 +_08025FE0: + mov r0, r8 + bl b_movescr_stack_push + ldr r0, _08026028 @ =0x02000000 + ldr r2, _0802602C @ =gUnknown_02024A60 + ldrb r1, [r2] + ldr r3, _08026030 @ =0x00016003 + adds r0, r3 + strb r1, [r0] + ldr r1, _08026034 @ =gUnknown_02024C10 + ldr r0, _08026038 @ =gUnknown_081D989B + str r0, [r1] + ldr r1, _0802603C @ =byte_2024C06 + ldrb r0, [r2] + movs r6, 0x58 + muls r0, r6 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + ldrb r1, [r1] + bl sub_81074C4 + ldr r0, _0802602C @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + b _08025F74 + .align 2, 0 +_08026028: .4byte 0x02000000 +_0802602C: .4byte gUnknown_02024A60 +_08026030: .4byte 0x00016003 +_08026034: .4byte gUnknown_02024C10 +_08026038: .4byte gUnknown_081D989B +_0802603C: .4byte byte_2024C06 +_08026040: + ldr r1, _08026090 @ =gUnknown_02024A60 + ldrb r0, [r1] + movs r4, 0x58 + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x33 + bne _080260A8 + mov r2, r9 + cmp r2, 0 + bne _080260A8 + cmp r7, 0x6 + bne _080260A8 + cmp r5, 0x1 + bne _08025F74 + mov r0, r8 + bl b_movescr_stack_push + ldr r0, _08026094 @ =0x02000000 + ldr r3, _08026090 @ =gUnknown_02024A60 + ldrb r1, [r3] + ldr r6, _08026098 @ =0x00016003 + adds r0, r6 + strb r1, [r0] + ldr r1, _0802609C @ =gUnknown_02024C10 + ldr r0, _080260A0 @ =gUnknown_081D9903 + str r0, [r1] + ldr r1, _080260A4 @ =byte_2024C06 + ldrb r0, [r3] + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r3] + ldrb r1, [r1] + bl sub_81074C4 + b _08025F74 + .align 2, 0 +_08026090: .4byte gUnknown_02024A60 +_08026094: .4byte 0x02000000 +_08026098: .4byte 0x00016003 +_0802609C: .4byte gUnknown_02024C10 +_080260A0: .4byte gUnknown_081D9903 +_080260A4: .4byte byte_2024C06 +_080260A8: + ldr r1, _080260FC @ =gUnknown_02024A60 + ldrb r0, [r1] + movs r4, 0x58 + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x34 + bne _08026114 + mov r2, r9 + cmp r2, 0 + bne _08026114 + cmp r7, 0x1 + bne _08026114 + cmp r5, 0x1 + beq _080260CA + b _08025F74 +_080260CA: + mov r0, r8 + bl b_movescr_stack_push + ldr r0, _08026100 @ =0x02000000 + ldr r3, _080260FC @ =gUnknown_02024A60 + ldrb r1, [r3] + ldr r6, _08026104 @ =0x00016003 + adds r0, r6 + strb r1, [r0] + ldr r1, _08026108 @ =gUnknown_02024C10 + ldr r0, _0802610C @ =gUnknown_081D9903 + str r0, [r1] + ldr r1, _08026110 @ =byte_2024C06 + ldrb r0, [r3] + muls r0, r4 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r3] + ldrb r1, [r1] + bl sub_81074C4 + b _08025F74 + .align 2, 0 +_080260FC: .4byte gUnknown_02024A60 +_08026100: .4byte 0x02000000 +_08026104: .4byte 0x00016003 +_08026108: .4byte gUnknown_02024C10 +_0802610C: .4byte gUnknown_081D9903 +_08026110: .4byte byte_2024C06 +_08026114: + ldr r0, _080261A0 @ =gUnknown_02024A60 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r10 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x13 + bne _0802612C + cmp r5, 0 + bne _0802612C + b _08025F74 +_0802612C: + lsls r0, r6, 24 + asrs r0, 28 + movs r1, 0x7 + ands r0, r1 + negs r0, r0 + lsls r0, 24 + ldr r3, _080261A4 @ =gUnknown_03004290 + movs r4, 0 + movs r1, 0xFD + strb r1, [r3] + movs r2, 0x1 + lsrs r6, r0, 24 + asrs r0, 24 + subs r1, 0xFF + cmp r0, r1 + bne _08026156 + strb r4, [r3, 0x1] + movs r0, 0xD3 + strb r0, [r3, 0x2] + strb r4, [r3, 0x3] + movs r2, 0x4 +_08026156: + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xD4 + strb r0, [r1] + adds r2, 0x1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _080261A0 @ =gUnknown_02024A60 + ldrb r2, [r1] + movs r0, 0x58 + muls r0, r2 + adds r0, r7, r0 + mov r1, r10 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0 + beq _08026206 + movs r1, 0 + ldr r0, _080261A8 @ =gUnknown_02024C08 + ldrb r0, [r0] + ldr r3, _080261AC @ =gUnknown_02024D1E + mov r8, r3 + cmp r0, r2 + bne _0802619A + movs r1, 0x1 +_0802619A: + mov r4, r8 + strb r1, [r4, 0x5] + b _08026234 + .align 2, 0 +_080261A0: .4byte gUnknown_02024A60 +_080261A4: .4byte gUnknown_03004290 +_080261A8: .4byte gUnknown_02024C08 +_080261AC: .4byte gUnknown_02024D1E +_080261B0: + asrs r6, r0, 28 + movs r0, 0x7 + ands r6, r0 + ldr r3, _08026210 @ =gUnknown_03004290 + strb r2, [r3] + movs r2, 0x1 + cmp r6, 0x2 + bne _080261CA + strb r4, [r3, 0x1] + movs r0, 0xD1 + strb r0, [r3, 0x2] + strb r4, [r3, 0x3] + movs r2, 0x4 +_080261CA: + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + movs r0, 0xD2 + strb r0, [r1] + adds r2, 0x1 + adds r0, r2, r3 + strb r4, [r0] + adds r2, 0x1 + adds r1, r2, r3 + ldrb r0, [r1] + mov r2, r12 + orrs r0, r2 + strb r0, [r1] + ldr r2, _08026214 @ =gBattleMons + ldr r4, _08026218 @ =gUnknown_02024A60 + ldrb r3, [r4] + movs r0, 0x58 + muls r0, r3 + adds r0, r7, r0 + adds r1, r2, 0 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + mov r10, r2 + cmp r0, 0xC + bne _08026220 +_08026206: + ldr r1, _0802621C @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + mov r8, r1 + b _08026234 + .align 2, 0 +_08026210: .4byte gUnknown_03004290 +_08026214: .4byte gBattleMons +_08026218: .4byte gUnknown_02024A60 +_0802621C: .4byte gUnknown_02024D1E +_08026220: + movs r1, 0 + ldr r0, _080262B4 @ =gUnknown_02024C08 + ldrb r0, [r0] + ldr r2, _080262B8 @ =gUnknown_02024D1E + mov r8, r2 + cmp r0, r3 + bne _08026230 + movs r1, 0x1 +_08026230: + mov r3, r8 + strb r1, [r3, 0x5] +_08026234: + ldr r2, _080262BC @ =gUnknown_02024A60 + ldrb r0, [r2] + movs r4, 0x58 + adds r1, r0, 0 + muls r1, r4 + adds r1, r7, r1 + mov r3, r10 + adds r3, 0x18 + adds r1, r3 + lsls r0, r6, 24 + asrs r0, 24 + ldrb r6, [r1] + adds r0, r6 + strb r0, [r1] + ldrb r0, [r2] + muls r0, r4 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0 + bge _08026264 + movs r0, 0 + strb r0, [r1] +_08026264: + ldr r1, _080262BC @ =gUnknown_02024A60 + ldrb r0, [r1] + muls r0, r4 + adds r0, r7, r0 + adds r1, r0, r3 + movs r0, 0 + ldrsb r0, [r1, r0] + cmp r0, 0xC + ble _0802627A + movs r0, 0xC + strb r0, [r1] +_0802627A: + mov r2, r8 + ldrb r0, [r2, 0x5] + cmp r0, 0x2 + bne _080262A2 + movs r3, 0x1 + ands r3, r5 + cmp r3, 0 + beq _08026294 + ldr r0, _080262C0 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] +_08026294: + mov r4, r8 + ldrb r0, [r4, 0x5] + cmp r0, 0x2 + bne _080262A2 + cmp r3, 0 + bne _080262A2 + b _08025F74 +_080262A2: + movs r0, 0 +_080262A4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080262B4: .4byte gUnknown_02024C08 +_080262B8: .4byte gUnknown_02024D1E +_080262BC: .4byte gUnknown_02024A60 +_080262C0: .4byte gUnknown_02024C68 + thumb_func_end sub_8025E20 + + thumb_func_start atk89_statbuffchange +atk89_statbuffchange: @ 80262C4 + push {r4,r5,lr} + ldr r5, _0802630C @ =gUnknown_02024C10 + ldr r2, [r5] + ldrb r3, [r2, 0x2] + ldrb r0, [r2, 0x3] + lsls r0, 8 + orrs r3, r0 + ldrb r0, [r2, 0x4] + lsls r0, 16 + orrs r3, r0 + ldrb r0, [r2, 0x5] + lsls r0, 24 + orrs r3, r0 + ldr r0, _08026310 @ =0x02000000 + ldr r1, _08026314 @ =0x0001601e + adds r0, r1 + ldrb r4, [r0] + movs r0, 0xF0 + ands r0, r4 + lsls r0, 24 + asrs r0, 24 + movs r1, 0xF + ands r1, r4 + ldrb r2, [r2, 0x1] + bl sub_8025E20 + lsls r0, 24 + cmp r0, 0 + bne _08026304 + ldr r0, [r5] + adds r0, 0x6 + str r0, [r5] +_08026304: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802630C: .4byte gUnknown_02024C10 +_08026310: .4byte 0x02000000 +_08026314: .4byte 0x0001601e + thumb_func_end atk89_statbuffchange + + thumb_func_start atk8A_normalisebuffs +atk8A_normalisebuffs: @ 8026318 + push {r4-r7,lr} + movs r2, 0 + ldr r0, _08026360 @ =gUnknown_02024A68 + ldrb r1, [r0] + ldr r0, _08026364 @ =gUnknown_02024C10 + mov r12, r0 + cmp r2, r1 + bge _08026350 + ldr r0, _08026368 @ =gBattleMons + movs r4, 0x6 + adds r5, r1, 0 + movs r7, 0x58 + adds r6, r0, 0 + adds r6, 0x18 +_08026334: + adds r3, r2, 0x1 + movs r1, 0x7 + adds r0, r2, 0 + muls r0, r7 + adds r0, r6 + adds r0, 0x7 +_08026340: + strb r4, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _08026340 + adds r2, r3, 0 + cmp r2, r5 + blt _08026334 +_08026350: + mov r1, r12 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08026360: .4byte gUnknown_02024A68 +_08026364: .4byte gUnknown_02024C10 +_08026368: .4byte gBattleMons + thumb_func_end atk8A_normalisebuffs + + thumb_func_start atk8B_setbide +atk8B_setbide: @ 802636C + push {r4,r5,lr} + ldr r4, _080263C4 @ =gBattleMons + ldr r3, _080263C8 @ =gUnknown_02024C07 + ldrb r0, [r3] + movs r5, 0x58 + adds r2, r0, 0 + muls r2, r5 + adds r4, 0x50 + adds r2, r4 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 5 + orrs r0, r1 + str r0, [r2] + ldr r1, _080263CC @ =gUnknown_02024C54 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + ldr r1, _080263D0 @ =gUnknown_02024BE6 + ldrh r1, [r1] + movs r2, 0 + strh r1, [r0] + ldr r1, _080263D4 @ =gUnknown_02024BF4 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + str r2, [r0] + ldrb r0, [r3] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 2 + orrs r0, r2 + str r0, [r1] + ldr r1, _080263D8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080263C4: .4byte gBattleMons +_080263C8: .4byte gUnknown_02024C07 +_080263CC: .4byte gUnknown_02024C54 +_080263D0: .4byte gUnknown_02024BE6 +_080263D4: .4byte gUnknown_02024BF4 +_080263D8: .4byte gUnknown_02024C10 + thumb_func_end atk8B_setbide + + thumb_func_start atk8C_confuseifrepeatingattackends +atk8C_confuseifrepeatingattackends: @ 80263DC + push {lr} + ldr r1, _0802640C @ =gBattleMons + ldr r0, _08026410 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0xC0 + lsls r1, 4 + ands r0, r1 + cmp r0, 0 + bne _080263FE + ldr r1, _08026414 @ =gUnknown_02024D1E + movs r0, 0x75 + strb r0, [r1, 0x3] +_080263FE: + ldr r1, _08026418 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802640C: .4byte gBattleMons +_08026410: .4byte gUnknown_02024C07 +_08026414: .4byte gUnknown_02024D1E +_08026418: .4byte gUnknown_02024C10 + thumb_func_end atk8C_confuseifrepeatingattackends + + thumb_func_start atk8D_setloopcounter +atk8D_setloopcounter: @ 802641C + push {r4,r5,lr} + ldr r0, _08026430 @ =gUnknown_02024C10 + ldr r0, [r0] + ldrb r1, [r0, 0x1] + cmp r1, 0 + beq _08026438 + ldr r0, _08026434 @ =gUnknown_02024C0E + strb r1, [r0] + b _08026452 + .align 2, 0 +_08026430: .4byte gUnknown_02024C10 +_08026434: .4byte gUnknown_02024C0E +_08026438: + ldr r4, _08026460 @ =gUnknown_02024C0E + bl Random + movs r5, 0x3 + ands r0, r5 + strb r0, [r4] + cmp r0, 0x1 + bls _0802644E + bl Random + ands r0, r5 +_0802644E: + adds r0, 0x2 + strb r0, [r4] +_08026452: + ldr r1, _08026464 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08026460: .4byte gUnknown_02024C0E +_08026464: .4byte gUnknown_02024C10 + thumb_func_end atk8D_setloopcounter + + thumb_func_start sub_8026468 +sub_8026468: @ 8026468 + push {r4,lr} + ldr r1, _080264A8 @ =0x02000000 + ldr r0, _080264AC @ =0x000160e0 + adds r2, r1, r0 + movs r3, 0 + movs r0, 0xFD + strb r0, [r2] + ldr r2, _080264B0 @ =0x000160e1 + adds r0, r1, r2 + movs r2, 0x1 + strb r2, [r0] + ldr r4, _080264B4 @ =0x000160e2 + adds r0, r1, r4 + strb r2, [r0] + adds r4, 0x1 + adds r0, r1, r4 + strb r2, [r0] + ldr r2, _080264B8 @ =0x000160e4 + adds r0, r1, r2 + strb r3, [r0] + adds r4, 0x2 + adds r1, r4 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _080264BC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080264A8: .4byte 0x02000000 +_080264AC: .4byte 0x000160e0 +_080264B0: .4byte 0x000160e1 +_080264B4: .4byte 0x000160e2 +_080264B8: .4byte 0x000160e4 +_080264BC: .4byte gUnknown_02024C10 + thumb_func_end sub_8026468 + + thumb_func_start sub_80264C0 +sub_80264C0: @ 80264C0 + push {r4-r7,lr} + ldr r6, _080264F4 @ =gBattleMons + ldr r7, _080264F8 @ =gUnknown_02024C07 + ldrb r0, [r7] + movs r5, 0x58 + adds r1, r0, 0 + muls r1, r5 + adds r1, r6 + adds r1, 0x2A + ldr r4, _080264FC @ =gUnknown_02024C08 + ldrb r3, [r4] + adds r0, r3, 0 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcc _0802650C + ldr r0, _08026500 @ =0x02000000 + ldr r2, _08026504 @ =0x00016064 + adds r1, r3, r2 + adds r1, r0 + ldr r2, _08026508 @ =gUnknown_02024A6A + lsls r0, r3, 1 + b _08026568 + .align 2, 0 +_080264F4: .4byte gBattleMons +_080264F8: .4byte gUnknown_02024C07 +_080264FC: .4byte gUnknown_02024C08 +_08026500: .4byte 0x02000000 +_08026504: .4byte 0x00016064 +_08026508: .4byte gUnknown_02024A6A +_0802650C: + bl Random + movs r3, 0xFF + ands r3, r0 + ldrb r0, [r7] + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r2, [r0] + ldrb r4, [r4] + adds r0, r4, 0 + muls r0, r5 + adds r0, r6 + adds r0, 0x2A + ldrb r1, [r0] + adds r2, r1 + adds r0, r3, 0 + muls r0, r2 + asrs r0, 8 + adds r0, 0x1 + lsrs r1, 2 + cmp r0, r1 + bhi _0802655C + ldr r3, _08026558 @ =gUnknown_02024C10 + 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] + movs r0, 0 + b _08026576 + .align 2, 0 +_08026558: .4byte gUnknown_02024C10 +_0802655C: + ldr r0, _0802657C @ =0x02000000 + ldr r2, _08026580 @ =0x00016064 + adds r1, r4, r2 + adds r1, r0 + ldr r2, _08026584 @ =gUnknown_02024A6A + lsls r0, r4, 1 +_08026568: + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r1, _08026588 @ =gUnknown_02024C10 + ldr r0, _0802658C @ =gUnknown_081D90FC + str r0, [r1] + movs r0, 0x1 +_08026576: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802657C: .4byte 0x02000000 +_08026580: .4byte 0x00016064 +_08026584: .4byte gUnknown_02024A6A +_08026588: .4byte gUnknown_02024C10 +_0802658C: .4byte gUnknown_081D90FC + thumb_func_end sub_80264C0 + + thumb_func_start sub_8026590 +sub_8026590: @ 8026590 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _08026628 @ =gUnknown_020239F8 + ldrh r1, [r4] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080265A4 + b _0802687C +_080265A4: + ldr r5, _0802662C @ =gUnknown_02024C08 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _08026630 @ =gEnemyParty + mov r8, r1 + cmp r0, 0 + bne _080265BA + ldr r2, _08026634 @ =gPlayerParty + mov r8, r2 +_080265BA: + ldrh r1, [r4] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08026638 + movs r7, 0 + movs r6, 0 + ldrb r0, [r5] + bl sub_803FC34 + lsls r0, 24 + lsrs r0, 24 + bl sub_803FBFC + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _080265E0 + movs r6, 0x3 +_080265E0: + adds r5, r6, 0 + adds r0, r5, 0x3 + cmp r5, r0 + bge _08026678 +_080265E8: + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0802661A + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0802661A + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0802661A + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_0802661A: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + adds r0, r6, 0x3 + cmp r5, r0 + blt _080265E8 + b _08026678 + .align 2, 0 +_08026628: .4byte gUnknown_020239F8 +_0802662C: .4byte gUnknown_02024C08 +_08026630: .4byte gEnemyParty +_08026634: .4byte gPlayerParty +_08026638: + movs r7, 0 + movs r5, 0 +_0802663C: + movs r0, 0x64 + muls r0, r5 + mov r2, r8 + adds r4, r2, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0802666E + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0 + bne _0802666E + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0802666E + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 +_0802666E: + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0802663C +_08026678: + cmp r7, 0x1 + bhi _08026688 + ldr r0, _080266BC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x41 + ands r0, r1 + cmp r0, 0x1 + bne _080266A0 +_08026688: + cmp r7, 0x2 + bhi _080266C4 + ldr r0, _080266BC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080266C4 + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080266C4 +_080266A0: + ldr r3, _080266C0 @ =gUnknown_02024C10 + 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 _08026880 + .align 2, 0 +_080266BC: .4byte gUnknown_020239F8 +_080266C0: .4byte gUnknown_02024C10 +_080266C4: + bl sub_80264C0 + lsls r0, 24 + cmp r0, 0 + bne _080266D0 + b _08026880 +_080266D0: + ldr r0, _08026710 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08026774 +_080266DC: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 24 + lsrs r6, r0, 24 + ldr r0, _08026714 @ =gUnknown_02024C08 + ldrb r0, [r0] + bl sub_803FC34 + lsls r0, 24 + lsrs r0, 24 + bl sub_803FBFC + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bne _08026718 + adds r0, r6, 0x3 + lsls r0, 24 + lsrs r5, r0, 24 + b _0802671A + .align 2, 0 +_08026710: .4byte gUnknown_020239F8 +_08026714: .4byte gUnknown_02024C08 +_08026718: + adds r5, r6, 0 +_0802671A: + ldr r4, _0802676C @ =gUnknown_02024A6A + ldr r0, _08026770 @ =gUnknown_02024C08 + ldrb r2, [r0] + lsls r1, r2, 1 + adds r1, r4 + lsls r0, r5, 16 + lsrs r3, r0, 16 + ldrh r1, [r1] + cmp r3, r1 + beq _080266DC + movs r0, 0x2 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r4 + ldrh r0, [r0] + cmp r3, r0 + beq _080266DC + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080266DC + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _080266DC + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080266DC + b _08026832 + .align 2, 0 +_0802676C: .4byte gUnknown_02024A6A +_08026770: .4byte gUnknown_02024C08 +_08026774: + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080267E4 + ldr r6, _080267DC @ =gUnknown_02024A6A +_0802677E: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _080267E0 @ =gUnknown_02024C08 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r6 + adds r2, r5, 0 + ldrh r0, [r0] + cmp r2, r0 + beq _0802677E + movs r0, 0x2 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r6 + ldrh r0, [r0] + cmp r2, r0 + beq _0802677E + movs r0, 0x64 + muls r0, r5 + mov r2, r8 + adds r4, r2, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _0802677E + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _0802677E + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0802677E + b _08026832 + .align 2, 0 +_080267DC: .4byte gUnknown_02024A6A +_080267E0: .4byte gUnknown_02024C08 +_080267E4: + ldr r6, _0802686C @ =gUnknown_02024A6A +_080267E6: + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x6 + bl __umodsi3 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _08026870 @ =gUnknown_02024C08 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + cmp r5, r0 + beq _080267E6 + movs r0, 0x64 + muls r0, r5 + mov r1, r8 + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + cmp r0, 0 + beq _080267E6 + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + cmp r0, 0x1 + beq _080267E6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080267E6 +_08026832: + ldr r0, _08026874 @ =0x02000000 + ldr r4, _08026870 @ =gUnknown_02024C08 + ldrb r1, [r4] + ldr r2, _08026878 @ =0x00016068 + adds r1, r2 + adds r1, r0 + strb r5, [r1] + bl sub_806B528 + lsls r0, 24 + cmp r0, 0 + bne _08026850 + ldrb r0, [r4] + bl sub_8012258 +_08026850: + ldrb r0, [r4] + adds r1, r5, 0 + movs r2, 0 + bl sub_8094B6C + ldrb r1, [r4] + movs r0, 0x2 + eors r0, r1 + adds r1, r5, 0 + movs r2, 0x1 + bl sub_8094B6C + b _08026880 + .align 2, 0 +_0802686C: .4byte gUnknown_02024A6A +_08026870: .4byte gUnknown_02024C08 +_08026874: .4byte 0x02000000 +_08026878: .4byte 0x00016068 +_0802687C: + bl sub_80264C0 +_08026880: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8026590 + + thumb_func_start sub_802688C +sub_802688C: @ 802688C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + ldr r2, _08026920 @ =gBattleMons + ldr r3, _08026924 @ =gUnknown_02024C07 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r1, r2, 0 + adds r1, 0xC + adds r0, r1 + ldrh r0, [r0] + mov r8, r2 + cmp r0, 0 + beq _080268CE + movs r5, 0x58 + adds r2, r1, 0 +_080268B4: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0x3 + bhi _080268CE + lsls r1, r6, 1 + ldrb r0, [r3] + muls r0, r5 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + cmp r0, 0 + bne _080268B4 +_080268CE: + movs r3, 0 + cmp r3, r6 + bcs _08026950 + ldr r0, _08026928 @ =gBattleMoves + mov r10, r0 + ldr r5, _08026920 @ =gBattleMons + mov r12, r5 + ldr r7, _08026924 @ =gUnknown_02024C07 + ldrb r0, [r7] + movs r4, 0x58 + adds r5, r0, 0 + muls r5, r4 + movs r0, 0xC + add r0, r12 + mov r9, r0 +_080268EC: + lsls r0, r3, 1 + adds r0, r5 + add r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r10 + ldrb r2, [r0, 0x2] + cmp r2, 0x9 + bne _0802692E + mov r0, r8 + adds r1, r5, r0 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _0802691A + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _0802692C +_0802691A: + movs r2, 0x7 + b _0802692E + .align 2, 0 +_08026920: .4byte gBattleMons +_08026924: .4byte gUnknown_02024C07 +_08026928: .4byte gBattleMoves +_0802692C: + movs r2, 0 +_0802692E: + ldrb r0, [r7] + muls r0, r4 + add r0, r12 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r2, r1 + beq _08026946 + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + bne _08026950 +_08026946: + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, r6 + bcc _080268EC +_08026950: + cmp r3, r6 + bne _08026974 + ldr r3, _08026970 @ =gUnknown_02024C10 + 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 _08026A18 + .align 2, 0 +_08026970: .4byte gUnknown_02024C10 +_08026974: + movs r7, 0x3 + ldr r5, _080269CC @ =gBattleMoves + mov r9, r5 +_0802697A: + bl Random + adds r3, r0, 0 + ands r3, r7 + cmp r3, r6 + bcs _0802697A + ldr r4, _080269D0 @ =gBattleMons + lsls r1, r3, 1 + ldr r3, _080269D4 @ =gUnknown_02024C07 + ldrb r2, [r3] + movs r0, 0x58 + adds r5, r2, 0 + muls r5, r0 + adds r1, r5 + adds r0, r4, 0 + adds r0, 0xC + adds r1, r0 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + add r0, r9 + ldrb r2, [r0, 0x2] + mov r8, r4 + adds r4, r3, 0 + cmp r2, 0x9 + bne _080269DA + mov r0, r8 + adds r2, r5, r0 + adds r0, r2, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x7 + beq _080269C8 + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x7 + bne _080269D8 +_080269C8: + movs r2, 0x7 + b _080269DA + .align 2, 0 +_080269CC: .4byte gBattleMoves +_080269D0: .4byte gBattleMons +_080269D4: .4byte gUnknown_02024C07 +_080269D8: + movs r2, 0 +_080269DA: + ldrb r0, [r4] + movs r3, 0x58 + muls r0, r3 + add r0, r8 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r5, [r1] + cmp r2, r5 + beq _0802697A + adds r0, 0x22 + ldrb r0, [r0] + cmp r2, r0 + beq _0802697A + strb r2, [r1] + ldrb r0, [r4] + muls r0, r3 + add r0, r8 + adds r0, 0x22 + strb r2, [r0] + ldr r1, _08026A28 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, _08026A2C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08026A18: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08026A28: .4byte gUnknown_030041C0 +_08026A2C: .4byte gUnknown_02024C10 + thumb_func_end sub_802688C + + thumb_func_start atk91_givemoney +atk91_givemoney: @ 8026A30 + push {r4,lr} + ldr r0, _08026A8C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _08026AAC + ldr r4, _08026A90 @ =gUnknown_02024D1A + ldrh r0, [r4] + cmp r0, 0 + beq _08026AAC + ldr r0, _08026A94 @ =gSaveBlock1 + 0x490 + ldrh r2, [r4] + ldr r1, _08026A98 @ =0x02000000 + ldr r3, _08026A9C @ =0x00016056 + adds r1, r3 + ldrb r1, [r1] + muls r1, r2 + bl sub_80B79B8 + ldr r1, _08026AA0 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + movs r0, 0x2 + strb r0, [r1, 0x2] + movs r0, 0x5 + strb r0, [r1, 0x3] + ldrh r2, [r4] + strb r2, [r1, 0x4] + movs r0, 0xFF + lsls r0, 8 + ands r0, r2 + lsrs r0, 8 + strb r0, [r1, 0x5] + movs r0, 0xFF + strb r0, [r1, 0x6] + ldr r4, _08026AA4 @ =gUnknown_02024C10 + ldr r0, [r4] + adds r0, 0x1 + bl b_movescr_stack_push + ldr r0, _08026AA8 @ =gUnknown_081D95DB + str r0, [r4] + b _08026AB4 + .align 2, 0 +_08026A8C: .4byte gUnknown_020239F8 +_08026A90: .4byte gUnknown_02024D1A +_08026A94: .4byte gSaveBlock1 + 0x490 +_08026A98: .4byte 0x02000000 +_08026A9C: .4byte 0x00016056 +_08026AA0: .4byte gUnknown_030041C0 +_08026AA4: .4byte gUnknown_02024C10 +_08026AA8: .4byte gUnknown_081D95DB +_08026AAC: + ldr r1, _08026ABC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_08026AB4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08026ABC: .4byte gUnknown_02024C10 + thumb_func_end atk91_givemoney + + thumb_func_start atk92_setlightscreen +atk92_setlightscreen: @ 8026AC0 + push {r4-r6,lr} + ldr r4, _08026AF0 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_get_per_side_status + ldr r6, _08026AF4 @ =gUnknown_02024C7A + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08026B00 + ldr r2, _08026AF8 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08026AFC @ =gUnknown_02024D1E + movs r0, 0 + b _08026B60 + .align 2, 0 +_08026AF0: .4byte gUnknown_02024C07 +_08026AF4: .4byte gUnknown_02024C7A +_08026AF8: .4byte gUnknown_02024C68 +_08026AFC: .4byte gUnknown_02024D1E +_08026B00: + ldrb r0, [r4] + bl battle_get_per_side_status + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r6 + ldrh r0, [r1] + movs r2, 0x2 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r4] + bl battle_get_per_side_status + ldr r2, _08026B50 @ =gUnknown_02024C80 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strb r1, [r0, 0x1] + ldr r0, _08026B54 @ =gUnknown_020239F8 + ldrh r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + beq _08026B5C + movs r0, 0x1 + bl sub_803C348 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _08026B5C + ldr r1, _08026B58 @ =gUnknown_02024D1E + movs r0, 0x4 + b _08026B60 + .align 2, 0 +_08026B50: .4byte gUnknown_02024C80 +_08026B54: .4byte gUnknown_020239F8 +_08026B58: .4byte gUnknown_02024D1E +_08026B5C: + ldr r1, _08026B70 @ =gUnknown_02024D1E + movs r0, 0x3 +_08026B60: + strb r0, [r1, 0x5] + ldr r1, _08026B74 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08026B70: .4byte gUnknown_02024D1E +_08026B74: .4byte gUnknown_02024C10 + thumb_func_end atk92_setlightscreen + + thumb_func_start sub_8026B78 +sub_8026B78: @ 8026B78 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, _08026BA8 @ =gBattleMons + ldr r6, _08026BAC @ =gUnknown_02024C08 + ldrb r2, [r6] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r0, r7 + ldrh r0, [r1, 0x2E] + cmp r0, 0xAF + bne _08026BB4 + ldr r1, _08026BB0 @ =gEnigmaBerries + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r4, [r0, 0x7] + ldrb r6, [r0, 0x1A] + b _08026BCE + .align 2, 0 +_08026BA8: .4byte gBattleMons +_08026BAC: .4byte gUnknown_02024C08 +_08026BB0: .4byte gEnigmaBerries +_08026BB4: + ldrh r0, [r1, 0x2E] + bl ItemId_GetHoldEffect + lsls r0, 24 + lsrs r4, r0, 24 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7 + ldrh r0, [r0, 0x2E] + bl ItemId_GetHoldEffectParam + lsls r0, 24 + lsrs r6, r0, 24 +_08026BCE: + ldr r1, _08026C4C @ =gUnknown_02024C0B + ldr r5, _08026C50 @ =gUnknown_02024C08 + ldrb r0, [r5] + strb r0, [r1] + cmp r4, 0x27 + bne _08026C0C + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcs _08026C0C + ldrb r0, [r5] + movs r1, 0x27 + bl sub_81074F8 + ldr r2, _08026C54 @ =gUnknown_02024D68 + ldrb r1, [r5] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_08026C0C: + ldr r0, _08026C58 @ =gBattleMons + mov r8, r0 + ldr r1, _08026C50 @ =gUnknown_02024C08 + ldrb r2, [r1] + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + mov r3, r8 + adds r5, r0, r3 + adds r0, r5, 0 + adds r0, 0x20 + ldrb r3, [r0] + mov r10, r8 + cmp r3, 0x5 + bne _08026C6C + ldr r2, _08026C5C @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08026C60 @ =byte_2024C06 + strb r3, [r0] + ldr r1, _08026C64 @ =gUnknown_02024C10 + ldr r0, _08026C68 @ =gUnknown_081D9826 + str r0, [r1] + ldr r1, _08026C50 @ =gUnknown_02024C08 + ldrb r0, [r1] + movs r1, 0x5 + bl sub_81074C4 + b _08026E40 + .align 2, 0 +_08026C4C: .4byte gUnknown_02024C0B +_08026C50: .4byte gUnknown_02024C08 +_08026C54: .4byte gUnknown_02024D68 +_08026C58: .4byte gBattleMons +_08026C5C: .4byte gUnknown_02024C68 +_08026C60: .4byte byte_2024C06 +_08026C64: .4byte gUnknown_02024C10 +_08026C68: .4byte gUnknown_081D9826 +_08026C6C: + ldr r1, _08026CE0 @ =gUnknown_02024C98 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x18 + ands r0, r1 + cmp r0, 0 + bne _08026CF4 + ldr r1, _08026CE4 @ =gBattleMoves + ldr r0, _08026CE8 @ =gUnknown_02024BE6 + ldrh r0, [r0] + lsls r2, r0, 1 + adds r2, r0 + lsls r2, 2 + adds r2, r1 + ldr r7, _08026CEC @ =gUnknown_02024C07 + ldrb r0, [r7] + muls r0, r6 + add r0, r10 + adds r0, 0x2A + ldrb r0, [r0] + adds r1, r5, 0 + adds r1, 0x2A + ldrb r1, [r1] + subs r0, r1 + ldrb r2, [r2, 0x3] + adds r0, r2 + lsls r0, 16 + lsrs r4, r0, 16 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + adds r0, 0x1 + cmp r0, r4 + bge _08026CDC + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + add r1, r10 + adds r1, 0x2A + ldr r2, _08026CF0 @ =gUnknown_02024C08 + ldrb r0, [r2] + muls r0, r6 + add r0, r10 + adds r0, 0x2A + ldrb r1, [r1] + movs r4, 0x1 + ldrb r0, [r0] + cmp r1, r0 + bcs _08026D20 +_08026CDC: + mov r10, r8 + b _08026DE0 + .align 2, 0 +_08026CE0: .4byte gUnknown_02024C98 +_08026CE4: .4byte gBattleMoves +_08026CE8: .4byte gUnknown_02024BE6 +_08026CEC: .4byte gUnknown_02024C07 +_08026CF0: .4byte gUnknown_02024C08 +_08026CF4: + ldr r0, _08026D4C @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldr r2, _08026D50 @ =gUnknown_02024C07 + ldrb r0, [r1, 0x15] + movs r4, 0 + ldrb r3, [r2] + cmp r0, r3 + bne _08026D20 + ldrb r0, [r2] + muls r0, r6 + add r0, r10 + adds r0, 0x2A + adds r1, r5, 0 + adds r1, 0x2A + ldrb r0, [r0] + ldrb r1, [r1] + cmp r0, r1 + bcc _08026D20 + movs r4, 0x1 +_08026D20: + cmp r4, 0 + beq _08026DE0 + ldr r0, _08026D54 @ =gUnknown_02024D28 + ldr r1, _08026D58 @ =gUnknown_02024C08 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 30 + cmp r0, 0 + bge _08026D64 + ldr r1, _08026D5C @ =gUnknown_02024BEC + movs r0, 0x58 + muls r0, r2 + add r0, r10 + ldrh r0, [r0, 0x28] + subs r0, 0x1 + str r0, [r1] + ldr r2, _08026D60 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x40 + b _08026DC6 + .align 2, 0 +_08026D4C: .4byte gUnknown_02024CA8 +_08026D50: .4byte gUnknown_02024C07 +_08026D54: .4byte gUnknown_02024D28 +_08026D58: .4byte gUnknown_02024C08 +_08026D5C: .4byte gUnknown_02024BEC +_08026D60: .4byte gUnknown_02024C68 +_08026D64: + ldr r0, _08026DA0 @ =gUnknown_02024D68 + lsls r1, r2, 2 + adds r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1] + lsrs r0, 7 + cmp r0, 0 + beq _08026DB4 + ldr r1, _08026DA4 @ =gUnknown_02024BEC + movs r3, 0x58 + adds r0, r2, 0 + muls r0, r3 + add r0, r10 + ldrh r0, [r0, 0x28] + subs r0, 0x1 + str r0, [r1] + ldr r2, _08026DA8 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x80 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08026DAC @ =gUnknown_02024C04 + ldr r2, _08026DB0 @ =gUnknown_02024C08 + ldrb r0, [r2] + muls r0, r3 + add r0, r10 + ldrh r0, [r0, 0x2E] + strh r0, [r1] + b _08026DCA + .align 2, 0 +_08026DA0: .4byte gUnknown_02024D68 +_08026DA4: .4byte gUnknown_02024BEC +_08026DA8: .4byte gUnknown_02024C68 +_08026DAC: .4byte gUnknown_02024C04 +_08026DB0: .4byte gUnknown_02024C08 +_08026DB4: + ldr r1, _08026DD4 @ =gUnknown_02024BEC + movs r0, 0x58 + muls r0, r2 + add r0, r10 + ldrh r0, [r0, 0x28] + str r0, [r1] + ldr r2, _08026DD8 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x10 +_08026DC6: + orrs r0, r1 + strb r0, [r2] +_08026DCA: + ldr r1, _08026DDC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08026E40 + .align 2, 0 +_08026DD4: .4byte gUnknown_02024BEC +_08026DD8: .4byte gUnknown_02024C68 +_08026DDC: .4byte gUnknown_02024C10 +_08026DE0: + ldr r2, _08026E10 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08026E14 @ =gUnknown_02024C07 + ldrb r0, [r0] + movs r2, 0x58 + adds r1, r0, 0 + muls r1, r2 + add r1, r10 + adds r1, 0x2A + ldr r3, _08026E18 @ =gUnknown_02024C08 + ldrb r0, [r3] + muls r0, r2 + add r0, r10 + adds r0, 0x2A + ldrb r1, [r1] + ldrb r0, [r0] + cmp r1, r0 + bcc _08026E20 + ldr r1, _08026E1C @ =gUnknown_02024D1E + movs r0, 0 + b _08026E24 + .align 2, 0 +_08026E10: .4byte gUnknown_02024C68 +_08026E14: .4byte gUnknown_02024C07 +_08026E18: .4byte gUnknown_02024C08 +_08026E1C: .4byte gUnknown_02024D1E +_08026E20: + ldr r1, _08026E50 @ =gUnknown_02024D1E + movs r0, 0x1 +_08026E24: + strb r0, [r1, 0x5] + ldr r3, _08026E54 @ =gUnknown_02024C10 + 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] +_08026E40: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08026E50: .4byte gUnknown_02024D1E +_08026E54: .4byte gUnknown_02024C10 + thumb_func_end sub_8026B78 + + thumb_func_start atk94_gethalfcurrentenemyhp +atk94_gethalfcurrentenemyhp: @ 8026E58 + push {lr} + ldr r3, _08026E84 @ =gUnknown_02024BEC + ldr r2, _08026E88 @ =gBattleMons + ldr r0, _08026E8C @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + lsrs r0, 1 + str r0, [r3] + cmp r0, 0 + bne _08026E76 + movs r0, 0x1 + str r0, [r3] +_08026E76: + ldr r1, _08026E90 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08026E84: .4byte gUnknown_02024BEC +_08026E88: .4byte gBattleMons +_08026E8C: .4byte gUnknown_02024C08 +_08026E90: .4byte gUnknown_02024C10 + thumb_func_end atk94_gethalfcurrentenemyhp + + thumb_func_start sub_8026E94 +sub_8026E94: @ 8026E94 + push {lr} + ldr r2, _08026EB4 @ =word_2024DB8 + ldrh r1, [r2] + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _08026EC0 + ldr r2, _08026EB8 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08026EBC @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08026ED2 + .align 2, 0 +_08026EB4: .4byte word_2024DB8 +_08026EB8: .4byte gUnknown_02024C68 +_08026EBC: .4byte gUnknown_02024D1E +_08026EC0: + movs r0, 0x8 + strh r0, [r2] + ldr r1, _08026EE0 @ =gUnknown_02024D1E + movs r0, 0x3 + strb r0, [r1, 0x5] + ldr r0, _08026EE4 @ =gUnknown_02024DBC + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_08026ED2: + ldr r1, _08026EE8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08026EE0: .4byte gUnknown_02024D1E +_08026EE4: .4byte gUnknown_02024DBC +_08026EE8: .4byte gUnknown_02024C10 + thumb_func_end sub_8026E94 + + thumb_func_start sub_8026EEC +sub_8026EEC: @ 8026EEC + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08026F0A + b _0802701C +_08026F0A: + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _08026F20 + b _0802701C +_08026F20: + ldr r2, _08026F94 @ =word_2024DB8 + ldrh r1, [r2] + movs r0, 0x18 + ands r0, r1 + adds r4, r2, 0 + ldr r5, _08026F98 @ =gUnknown_02024C07 + cmp r0, 0 + beq _08026FAE + ldr r0, _08026F9C @ =gBattleMons + ldrb r2, [r5] + movs r1, 0x58 + muls r1, r2 + adds r3, r1, r0 + adds r0, r3, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x5 + beq _08026FA8 + cmp r0, 0x8 + beq _08026FA8 + cmp r0, 0x4 + beq _08026FA8 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x5 + beq _08026FA8 + cmp r0, 0x8 + beq _08026FA8 + cmp r0, 0x4 + beq _08026FA8 + adds r0, r3, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x8 + beq _08026FA8 + ldr r0, _08026FA0 @ =gUnknown_02024C98 + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08026FA8 + movs r0, 0x80 + lsls r0, 11 + ands r1, r0 + cmp r1, 0 + bne _08026FA8 + ldr r1, _08026FA4 @ =gUnknown_02024BEC + ldrh r0, [r3, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08026FAE + movs r0, 0x1 + b _08026FAC + .align 2, 0 +_08026F94: .4byte word_2024DB8 +_08026F98: .4byte gUnknown_02024C07 +_08026F9C: .4byte gBattleMons +_08026FA0: .4byte gUnknown_02024C98 +_08026FA4: .4byte gUnknown_02024BEC +_08026FA8: + ldr r1, _08027004 @ =gUnknown_02024BEC + movs r0, 0 +_08026FAC: + str r0, [r1] +_08026FAE: + ldrh r1, [r4] + movs r4, 0x80 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + beq _08027024 + ldr r1, _08027008 @ =gBattleMons + ldrb r3, [r5] + movs r0, 0x58 + muls r0, r3 + adds r2, r0, r1 + adds r0, r2, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0xF + beq _08027010 + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xF + beq _08027010 + ldr r0, _0802700C @ =gUnknown_02024C98 + lsls r1, r3, 2 + adds r1, r0 + ldr r1, [r1] + adds r0, r1, 0 + ands r0, r4 + cmp r0, 0 + bne _08027010 + movs r0, 0x80 + lsls r0, 11 + ands r1, r0 + cmp r1, 0 + bne _08027010 + ldr r1, _08027004 @ =gUnknown_02024BEC + ldrh r0, [r2, 0x2C] + lsrs r0, 4 + str r0, [r1] + cmp r0, 0 + bne _08027024 + movs r0, 0x1 + str r0, [r1] + b _08027024 + .align 2, 0 +_08027004: .4byte gUnknown_02024BEC +_08027008: .4byte gBattleMons +_0802700C: .4byte gUnknown_02024C98 +_08027010: + ldr r1, _08027018 @ =gUnknown_02024BEC + movs r0, 0 + str r0, [r1] + b _08027024 + .align 2, 0 +_08027018: .4byte gUnknown_02024BEC +_0802701C: + ldr r1, _08027050 @ =gUnknown_02024BEC + movs r0, 0 + str r0, [r1] + ldr r5, _08027054 @ =gUnknown_02024C07 +_08027024: + ldr r0, _08027058 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _0802705C @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0802703E + ldr r1, _08027050 @ =gUnknown_02024BEC + movs r0, 0 + str r0, [r1] +_0802703E: + ldr r1, _08027060 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08027050: .4byte gUnknown_02024BEC +_08027054: .4byte gUnknown_02024C07 +_08027058: .4byte gUnknown_02024C0C +_0802705C: .4byte gBitTable +_08027060: .4byte gUnknown_02024C10 + thumb_func_end sub_8026EEC + + thumb_func_start sub_8027064 +sub_8027064: @ 8027064 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08027090 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0802709C + ldr r1, _08027094 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08027098 @ =gPlayerParty + b _080270AC + .align 2, 0 +_08027090: .4byte gUnknown_02024C07 +_08027094: .4byte gUnknown_02024A6A +_08027098: .4byte gPlayerParty +_0802709C: + ldr r1, _080270D0 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080270D4 @ =gEnemyParty +_080270AC: + adds r5, r1, r0 + ldr r4, _080270D8 @ =gUnknown_02024C08 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080270E0 + ldr r1, _080270D0 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _080270DC @ =gPlayerParty + b _080270F0 + .align 2, 0 +_080270D0: .4byte gUnknown_02024A6A +_080270D4: .4byte gEnemyParty +_080270D8: .4byte gUnknown_02024C08 +_080270DC: .4byte gPlayerParty +_080270E0: + ldr r1, _0802714C @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08027150 @ =gEnemyParty +_080270F0: + adds r4, r1, r0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r10, r0 + adds r0, r5, 0 + movs r1, 0 + bl GetMonData + mov r9, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + adds r7, r0, 0 + ldr r5, _08027154 @ =gUnknown_02024C08 + ldrb r0, [r5] + movs r6, 0x58 + muls r0, r6 + ldr r1, _08027158 @ =gBattleMons + adds r0, r1 + adds r0, 0x20 + ldrb r2, [r0] + cmp r2, 0xC + bne _08027168 + ldr r1, _0802715C @ =gUnknown_02024C10 + ldr r0, _08027160 @ =gUnknown_081D98C9 + str r0, [r1] + ldr r0, _08027164 @ =byte_2024C06 + strb r2, [r0] + ldrb r0, [r5] + movs r1, 0xC + bl sub_81074C4 + b _0802721C + .align 2, 0 +_0802714C: .4byte gUnknown_02024A6A +_08027150: .4byte gEnemyParty +_08027154: .4byte gUnknown_02024C08 +_08027158: .4byte gBattleMons +_0802715C: .4byte gUnknown_02024C10 +_08027160: .4byte gUnknown_081D98C9 +_08027164: .4byte byte_2024C06 +_08027168: + mov r0, r10 + mov r1, r9 + bl GetGenderFromSpeciesAndPersonality + adds r4, r0, 0 + mov r0, r8 + adds r1, r7, 0 + bl GetGenderFromSpeciesAndPersonality + lsls r4, 24 + lsls r0, 24 + cmp r4, r0 + beq _080271CA + ldr r1, _080271E8 @ =gUnknown_02024C98 + ldrb r2, [r5] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080271EC @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + bne _080271CA + adds r0, r2, 0 + muls r0, r6 + ldr r4, _080271F0 @ =gBattleMons + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r1, 0xF0 + lsls r1, 12 + ands r0, r1 + cmp r0, 0 + bne _080271CA + mov r0, r10 + mov r1, r9 + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _080271CA + mov r0, r8 + adds r1, r7, 0 + bl GetGenderFromSpeciesAndPersonality + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _080271F8 +_080271CA: + ldr r3, _080271F4 @ =gUnknown_02024C10 + 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 _0802721C + .align 2, 0 +_080271E8: .4byte gUnknown_02024C98 +_080271EC: .4byte 0x000400c0 +_080271F0: .4byte gBattleMons +_080271F4: .4byte gUnknown_02024C10 +_080271F8: + ldrb r0, [r5] + adds r2, r0, 0 + muls r2, r6 + adds r2, r4 + ldr r1, _0802722C @ =gBitTable + ldr r0, _08027230 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + lsls r1, 16 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r1, _08027234 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802721C: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802722C: .4byte gBitTable +_08027230: .4byte gUnknown_02024C07 +_08027234: .4byte gUnknown_02024C10 + thumb_func_end sub_8027064 + + thumb_func_start sub_8027238 +sub_8027238: @ 8027238 + push {r4-r7,lr} + ldr r0, _08027280 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + bne _08027324 + ldr r5, _08027284 @ =gUnknown_02024C10 + ldr r1, [r5] + ldrb r0, [r1, 0x1] + cmp r0, 0x4 + beq _08027290 + bl sub_8015150 + ldr r4, _08027288 @ =gUnknown_02024A60 + strb r0, [r4] + ldr r3, _0802728C @ =gBattleMons + ldrb r1, [r4] + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x1A_aaaa_bbbb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, [r5] + adds r0, 0x2 + str r0, [r5] + b _08027324 + .align 2, 0 +_08027280: .4byte gUnknown_02024A64 +_08027284: .4byte gUnknown_02024C10 +_08027288: .4byte gUnknown_02024A60 +_0802728C: .4byte gBattleMons +_08027290: + ldr r4, _0802732C @ =gUnknown_02024A60 + ldr r5, _08027330 @ =gUnknown_02024C07 + ldrb r0, [r5] + strb r0, [r4] + ldr r6, _08027334 @ =gUnknown_02024C0C + ldrb r1, [r6] + ldr r7, _08027338 @ =gBitTable + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080272CC + ldr r3, _0802733C @ =gBattleMons + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x1A_aaaa_bbbb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080272CC: + ldr r0, _08027340 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802731C + ldrb r0, [r5] + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + strb r0, [r4] + ldrb r1, [r6] + ldrb r2, [r4] + lsls r0, r2, 2 + adds r0, r7 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802731C + ldr r3, _0802733C @ =gBattleMons + movs r0, 0x58 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r1, [r0] + adds r3, 0x50 + adds r2, r3 + ldr r2, [r2] + movs r0, 0 + bl dp01_build_cmdbuf_x1A_aaaa_bbbb + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_0802731C: + ldr r1, _08027344 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x2 + str r0, [r1] +_08027324: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802732C: .4byte gUnknown_02024A60 +_08027330: .4byte gUnknown_02024C07 +_08027334: .4byte gUnknown_02024C0C +_08027338: .4byte gBitTable +_0802733C: .4byte gBattleMons +_08027340: .4byte gUnknown_020239F8 +_08027344: .4byte gUnknown_02024C10 + thumb_func_end sub_8027238 + + thumb_func_start sub_8027348 +sub_8027348: @ 8027348 + push {r4-r6,lr} + ldr r6, _08027378 @ =gUnknown_02024C80 + ldr r4, _0802737C @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_get_per_side_status + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x2] + cmp r0, 0 + beq _08027388 + ldr r2, _08027380 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r0, _08027384 @ =gUnknown_02024D1E + strb r5, [r0, 0x5] + b _080273C0 + .align 2, 0 +_08027378: .4byte gUnknown_02024C80 +_0802737C: .4byte gUnknown_02024C07 +_08027380: .4byte gUnknown_02024C68 +_08027384: .4byte gUnknown_02024D1E +_08027388: + ldrb r0, [r4] + bl battle_get_per_side_status + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5 + strb r1, [r0, 0x2] + ldrb r0, [r4] + bl battle_get_per_side_status + ldr r2, _080273D0 @ =gUnknown_02024C7A + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r3, 0x80 + lsls r3, 1 + adds r0, r3, 0 + movs r3, 0 + orrs r0, r2 + strh r0, [r1] + ldr r0, _080273D4 @ =gUnknown_02024D1E + strb r3, [r0, 0x5] +_080273C0: + ldr r1, _080273D8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080273D0: .4byte gUnknown_02024C7A +_080273D4: .4byte gUnknown_02024D1E +_080273D8: .4byte gUnknown_02024C10 + thumb_func_end sub_8027348 + + thumb_func_start atk9A_setincreasedcriticalchance +atk9A_setincreasedcriticalchance: @ 80273DC + push {lr} + ldr r1, _0802740C @ =gBattleMons + ldr r0, _08027410 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r3, 0x80 + lsls r3, 13 + adds r2, r1, 0 + ands r2, r3 + cmp r2, 0 + beq _0802741C + ldr r2, _08027414 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08027418 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _08027424 + .align 2, 0 +_0802740C: .4byte gBattleMons +_08027410: .4byte gUnknown_02024C07 +_08027414: .4byte gUnknown_02024C68 +_08027418: .4byte gUnknown_02024D1E +_0802741C: + orrs r1, r3 + str r1, [r0] + ldr r0, _08027430 @ =gUnknown_02024D1E + strb r2, [r0, 0x5] +_08027424: + ldr r1, _08027434 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08027430: .4byte gUnknown_02024D1E +_08027434: .4byte gUnknown_02024C10 + thumb_func_end atk9A_setincreasedcriticalchance + + thumb_func_start atk9B_transformdataexecution +atk9B_transformdataexecution: @ 8027438 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r1, _08027490 @ =gUnknown_02024BE8 + ldr r2, _08027494 @ =0x0000ffff + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _08027498 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r7, _0802749C @ =gBattleMons + ldr r0, _080274A0 @ =gUnknown_02024C08 + mov r12, r0 + ldrb r1, [r0] + movs r6, 0x58 + adds r0, r1, 0 + muls r0, r6 + adds r5, r7, 0 + adds r5, 0x50 + adds r0, r5 + ldr r0, [r0] + movs r4, 0x80 + lsls r4, 14 + ands r0, r4 + cmp r0, 0 + bne _0802747E + ldr r0, _080274A4 @ =gUnknown_02024C98 + lsls r1, 2 + adds r1, r0 + ldr r2, [r1] + ldr r0, _080274A8 @ =0x000400c0 + ands r2, r0 + cmp r2, 0 + beq _080274B4 +_0802747E: + ldr r2, _080274AC @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x20 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080274B0 @ =gUnknown_02024D1E + movs r0, 0x1 + b _080275C8 + .align 2, 0 +_08027490: .4byte gUnknown_02024BE8 +_08027494: .4byte 0x0000ffff +_08027498: .4byte gUnknown_02024C10 +_0802749C: .4byte gBattleMons +_080274A0: .4byte gUnknown_02024C08 +_080274A4: .4byte gUnknown_02024C98 +_080274A8: .4byte 0x000400c0 +_080274AC: .4byte gUnknown_02024C68 +_080274B0: .4byte gUnknown_02024D1E +_080274B4: + ldr r3, _08027588 @ =gUnknown_02024C07 + ldrb r0, [r3] + adds r1, r0, 0 + muls r1, r6 + adds r1, r5 + ldr r0, [r1] + orrs r0, r4 + str r0, [r1] + ldr r4, _0802758C @ =gUnknown_02024CA8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + strh r2, [r0, 0x4] + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0xB] + movs r0, 0x10 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0xB] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + mov r2, r12 + ldrb r1, [r2] + muls r1, r6 + adds r2, r7, 0 + adds r2, 0x48 + adds r1, r2 + ldr r1, [r1] + str r1, [r0] + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r2, [r1, 0x18] + movs r0, 0xF + ands r0, r2 + strb r0, [r1, 0x18] + ldr r1, _08027590 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x6 + strb r0, [r1, 0x1] + mov r2, r12 + ldrb r0, [r2] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r2] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldrb r0, [r3] + muls r0, r6 + adds r5, r0, r7 + ldrb r0, [r2] + muls r0, r6 + adds r2, r0, r7 + movs r4, 0 + adds r6, r3, 0 + ldr r0, _08027594 @ =gUnknown_02024A60 + mov r8, r0 +_0802754C: + adds r0, r5, r4 + adds r1, r2, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x23 + bls _0802754C + movs r4, 0 + ldr r7, _08027598 @ =gBattleMoves + ldr r3, _0802759C @ =gUnknown_02024A8C + adds r5, r3, 0 + adds r5, 0x18 +_08027564: + lsls r1, r4, 1 + ldrb r2, [r6] + movs r0, 0x58 + muls r2, r0 + adds r1, r2 + adds r1, r3 + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + ldrb r1, [r0, 0x4] + cmp r1, 0x4 + bhi _080275A0 + adds r0, r4, r2 + adds r0, r5 + b _080275A6 + .align 2, 0 +_08027588: .4byte gUnknown_02024C07 +_0802758C: .4byte gUnknown_02024CA8 +_08027590: .4byte gUnknown_030041C0 +_08027594: .4byte gUnknown_02024A60 +_08027598: .4byte gBattleMoves +_0802759C: .4byte gUnknown_02024A8C +_080275A0: + adds r0, r4, r2 + adds r0, r5 + movs r1, 0x5 +_080275A6: + strb r1, [r0] + adds r4, 0x1 + cmp r4, 0x3 + ble _08027564 + ldrb r0, [r6] + mov r1, r8 + strb r0, [r1] + movs r0, 0 + movs r1, 0x2 + bl dp01_build_cmdbuf_x38_a + mov r2, r8 + ldrb r0, [r2] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _080275D4 @ =gUnknown_02024D1E + movs r0, 0 +_080275C8: + strb r0, [r1, 0x5] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080275D4: .4byte gUnknown_02024D1E + thumb_func_end atk9B_transformdataexecution + + thumb_func_start sub_80275D8 +sub_80275D8: @ 80275D8 + push {r4-r7,lr} + ldr r7, _08027608 @ =gBattleMons + ldr r6, _0802760C @ =gUnknown_02024C07 + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r3, r0, r7 + ldrh r0, [r3, 0x2C] + lsrs r1, r0, 2 + adds r2, r1, 0 + cmp r1, 0 + bne _080275F2 + movs r2, 0x1 +_080275F2: + ldrh r0, [r3, 0x28] + cmp r0, r2 + bhi _08027618 + ldr r1, _08027610 @ =gUnknown_02024BEC + movs r0, 0 + str r0, [r1] + ldr r1, _08027614 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _0802766C + .align 2, 0 +_08027608: .4byte gBattleMons +_0802760C: .4byte gUnknown_02024C07 +_08027610: .4byte gUnknown_02024BEC +_08027614: .4byte gUnknown_02024D1E +_08027618: + ldr r4, _0802767C @ =gUnknown_02024BEC + str r1, [r4] + cmp r1, 0 + bne _08027624 + movs r0, 0x1 + str r0, [r4] +_08027624: + ldrb r0, [r6] + adds r2, r0, 0 + muls r2, r5 + adds r3, r7, 0 + adds r3, 0x50 + adds r2, r3 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 17 + orrs r0, r1 + str r0, [r2] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r3 + ldr r0, [r1] + ldr r2, _08027680 @ =0xffff1fff + ands r0, r2 + str r0, [r1] + ldr r2, _08027684 @ =gUnknown_02024CA8 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, [r4] + movs r2, 0 + strb r1, [r0, 0xA] + ldr r0, _08027688 @ =gUnknown_02024D1E + strb r2, [r0, 0x5] + ldr r2, _0802768C @ =gUnknown_02024C6C + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 1 + orrs r0, r1 + str r0, [r2] +_0802766C: + ldr r1, _08027690 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802767C: .4byte gUnknown_02024BEC +_08027680: .4byte 0xffff1fff +_08027684: .4byte gUnknown_02024CA8 +_08027688: .4byte gUnknown_02024D1E +_0802768C: .4byte gUnknown_02024C6C +_08027690: .4byte gUnknown_02024C10 + thumb_func_end sub_80275D8 + + thumb_func_start sub_8027694 +sub_8027694: @ 8027694 + push {r4,r5,lr} + lsls r0, 16 + lsrs r2, r0, 16 + movs r3, 0 + ldr r0, _080276D4 @ =gUnknown_081FACFE + ldrh r1, [r0] + ldr r4, _080276D8 @ =0x0000fffe + adds r5, r0, 0 + cmp r1, r4 + beq _080276BC + cmp r1, r2 + beq _080276BC + adds r1, r5, 0 +_080276AE: + adds r1, 0x2 + adds r3, 0x1 + ldrh r0, [r1] + cmp r0, r4 + beq _080276BC + cmp r0, r2 + bne _080276AE +_080276BC: + lsls r0, r3, 1 + adds r0, r5 + ldrh r1, [r0] + ldr r0, _080276D8 @ =0x0000fffe + eors r1, r0 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_080276D4: .4byte gUnknown_081FACFE +_080276D8: .4byte 0x0000fffe + thumb_func_end sub_8027694 + + thumb_func_start atk9D_copyattack +atk9D_copyattack: @ 80276DC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08027754 @ =gUnknown_02024BE8 + ldr r1, _08027758 @ =0x0000ffff + adds r7, r1, 0 + strh r7, [r0] + ldr r5, _0802775C @ =gUnknown_02024C34 + ldr r6, _08027760 @ =gUnknown_02024C08 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + bl sub_8027694 + lsls r0, 24 + cmp r0, 0 + bne _08027736 + ldr r3, _08027764 @ =gBattleMons + ldr r2, _08027768 @ =gUnknown_02024C07 + ldrb r1, [r2] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 14 + ands r1, r0 + mov r12, r3 + mov r9, r2 + cmp r1, 0 + bne _08027736 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r5 + ldrh r1, [r0] + cmp r1, 0 + beq _08027736 + cmp r1, r7 + bne _08027770 +_08027736: + ldr r3, _0802776C @ =gUnknown_02024C10 + 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 _080278A8 + .align 2, 0 +_08027754: .4byte gUnknown_02024BE8 +_08027758: .4byte 0x0000ffff +_0802775C: .4byte gUnknown_02024C34 +_08027760: .4byte gUnknown_02024C08 +_08027764: .4byte gBattleMons +_08027768: .4byte gUnknown_02024C07 +_0802776C: .4byte gUnknown_02024C10 +_08027770: + movs r2, 0 + mov r3, r12 + adds r3, 0xC + adds r0, r4, r3 + ldrh r0, [r0] + ldr r4, _08027800 @ =gUnknown_02024C10 + mov r10, r4 + cmp r0, r1 + beq _080277AA + mov r8, r3 + adds r7, r5, 0 + adds r5, r6, 0 + mov r4, r9 + movs r3, 0x58 +_0802778C: + adds r2, 0x1 + cmp r2, 0x3 + bgt _080277AA + lsls r1, r2, 1 + ldrb r0, [r4] + muls r0, r3 + adds r1, r0 + add r1, r8 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r7 + ldrh r1, [r1] + ldrh r0, [r0] + cmp r1, r0 + bne _0802778C +_080277AA: + cmp r2, 0x4 + bne _0802788C + ldr r5, _08027804 @ =gUnknown_02024BE4 + ldrb r1, [r5] + lsls r1, 1 + mov r2, r9 + ldrb r0, [r2] + movs r6, 0x58 + muls r0, r6 + adds r1, r0 + mov r0, r12 + adds r0, 0xC + adds r1, r0 + ldr r2, _08027808 @ =gUnknown_02024C34 + ldr r3, _0802780C @ =gUnknown_02024C08 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strh r0, [r1] + ldr r4, _08027810 @ =gBattleMoves + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r4, [r0, 0x4] + cmp r4, 0x4 + bhi _08027814 + mov r1, r9 + ldrb r0, [r1] + muls r0, r6 + ldrb r1, [r5] + adds r0, r1 + mov r1, r12 + adds r1, 0x24 + adds r0, r1 + strb r4, [r0] + b _08027828 + .align 2, 0 +_08027800: .4byte gUnknown_02024C10 +_08027804: .4byte gUnknown_02024BE4 +_08027808: .4byte gUnknown_02024C34 +_0802780C: .4byte gUnknown_02024C08 +_08027810: .4byte gBattleMoves +_08027814: + mov r4, r9 + ldrb r0, [r4] + muls r0, r6 + ldrb r1, [r5] + adds r0, r1 + mov r1, r12 + adds r1, 0x24 + adds r0, r1 + movs r1, 0x5 + strb r1, [r0] +_08027828: + ldr r1, _08027880 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08027884 @ =gUnknown_02024CA8 + mov r2, r9 + ldrb r0, [r2] + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + adds r2, r1 + ldrb r4, [r2, 0x18] + lsrs r3, r4, 4 + ldr r1, _08027888 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + orrs r1, r3 + lsls r1, 4 + movs r0, 0xF + ands r0, r4 + orrs r0, r1 + strb r0, [r2, 0x18] + mov r4, r10 + ldr r0, [r4] + adds r0, 0x5 + str r0, [r4] + b _080278A8 + .align 2, 0 +_08027880: .4byte gUnknown_030041C0 +_08027884: .4byte gUnknown_02024CA8 +_08027888: .4byte gBitTable +_0802788C: + mov r0, r10 + ldr r2, [r0] + 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 + mov r2, r10 + str r1, [r2] +_080278A8: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atk9D_copyattack + + thumb_func_start sub_80278B8 +sub_80278B8: @ 80278B8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _08027938 @ =gUnknown_02024BE6 + movs r6, 0xB1 + lsls r6, 1 + ldr r5, _0802793C @ =gUnknown_081FACFE + ldr r0, _08027940 @ =gUnknown_02024C10 + mov r8, r0 +_080278CA: + bl Random + ldr r2, _08027944 @ =0x000001ff + adds r1, r2, 0 + ands r0, r1 + adds r0, 0x1 + strh r0, [r7] + cmp r0, r6 + bhi _080278CA + movs r0, 0x3 +_080278DE: + subs r0, 0x1 + cmp r0, 0 + bge _080278DE + ldr r4, _08027938 @ =gUnknown_02024BE6 + ldrh r2, [r4] + ldr r3, _08027948 @ =0x0000ffff + subs r0, r5, 0x2 +_080278EC: + adds r0, 0x2 + ldrh r1, [r0] + cmp r1, r2 + beq _080278F8 + cmp r1, r3 + bne _080278EC +_080278F8: + ldr r0, _08027948 @ =0x0000ffff + cmp r1, r0 + bne _080278CA + ldr r2, _0802794C @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _08027950 @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r3, _08027954 @ =gUnknown_081D6BBC + ldr r2, _08027958 @ =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + mov r1, r8 + str r0, [r1] + ldrh r0, [r4] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _0802795C @ =gUnknown_02024C08 + strb r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08027938: .4byte gUnknown_02024BE6 +_0802793C: .4byte gUnknown_081FACFE +_08027940: .4byte gUnknown_02024C10 +_08027944: .4byte 0x000001ff +_08027948: .4byte 0x0000ffff +_0802794C: .4byte gUnknown_02024C6C +_08027950: .4byte 0xfffffbff +_08027954: .4byte gUnknown_081D6BBC +_08027958: .4byte gBattleMoves +_0802795C: .4byte gUnknown_02024C08 + thumb_func_end sub_80278B8 + + thumb_func_start sub_8027960 +sub_8027960: @ 8027960 + ldr r3, _08027980 @ =gUnknown_02024BEC + ldr r2, _08027984 @ =gBattleMons + ldr r0, _08027988 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r0, [r0] + str r0, [r3] + ldr r1, _0802798C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08027980: .4byte gUnknown_02024BEC +_08027984: .4byte gBattleMons +_08027988: .4byte gUnknown_02024C07 +_0802798C: .4byte gUnknown_02024C10 + thumb_func_end sub_8027960 + + thumb_func_start atkA0_psywavedamageeffect +atkA0_psywavedamageeffect: @ 8027990 + push {r4,lr} + movs r4, 0xF +_08027994: + bl Random + adds r3, r4, 0 + ands r3, r0 + cmp r3, 0xA + bgt _08027994 + lsls r0, r3, 2 + adds r0, r3 + lsls r3, r0, 1 + ldr r4, _080279D4 @ =gUnknown_02024BEC + ldr r2, _080279D8 @ =gBattleMons + ldr r0, _080279DC @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + adds r0, r3, 0 + adds r0, 0x32 + muls r0, r1 + movs r1, 0x64 + bl __divsi3 + str r0, [r4] + ldr r1, _080279E0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080279D4: .4byte gUnknown_02024BEC +_080279D8: .4byte gBattleMons +_080279DC: .4byte gUnknown_02024C07 +_080279E0: .4byte gUnknown_02024C10 + thumb_func_end atkA0_psywavedamageeffect + + thumb_func_start atkA1_counterdamagecalculator +atkA1_counterdamagecalculator: @ 80279E4 + push {r4-r6,lr} + ldr r4, _08027A54 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _08027A58 @ =gUnknown_02024D28 + ldrb r0, [r4] + lsls r0, 4 + adds r0, r5 + ldrb r0, [r0, 0xC] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r0, r5, 0x4 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, 0 + beq _08027A98 + cmp r6, r2 + beq _08027A98 + ldr r6, _08027A5C @ =gBattleMons + adds r0, r1, r5 + ldrb r0, [r0, 0xC] + movs r4, 0x58 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08027A98 + ldr r1, _08027A60 @ =gUnknown_02024BEC + lsls r0, r3, 1 + str r0, [r1] + ldr r1, _08027A64 @ =gUnknown_02024C80 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _08027A6C + ldrb r1, [r1, 0x9] + adds r0, r1, 0 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08027A6C + ldr r0, _08027A68 @ =gUnknown_02024C08 + strb r1, [r0] + b _08027A7C + .align 2, 0 +_08027A54: .4byte gUnknown_02024C07 +_08027A58: .4byte gUnknown_02024D28 +_08027A5C: .4byte gBattleMons +_08027A60: .4byte gUnknown_02024BEC +_08027A64: .4byte gUnknown_02024C80 +_08027A68: .4byte gUnknown_02024C08 +_08027A6C: + ldr r2, _08027A88 @ =gUnknown_02024C08 + ldr r1, _08027A8C @ =gUnknown_02024D28 + ldr r0, _08027A90 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0xC] + strb r0, [r2] +_08027A7C: + ldr r1, _08027A94 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08027AC8 + .align 2, 0 +_08027A88: .4byte gUnknown_02024C08 +_08027A8C: .4byte gUnknown_02024D28 +_08027A90: .4byte gUnknown_02024C07 +_08027A94: .4byte gUnknown_02024C10 +_08027A98: + ldr r2, _08027AD0 @ =gUnknown_02024D68 + ldr r0, _08027AD4 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _08027AD8 @ =gUnknown_02024C10 + 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] +_08027AC8: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08027AD0: .4byte gUnknown_02024D68 +_08027AD4: .4byte gUnknown_02024C07 +_08027AD8: .4byte gUnknown_02024C10 + thumb_func_end atkA1_counterdamagecalculator + + thumb_func_start atkA2_mirrorcoatdamagecalculator +atkA2_mirrorcoatdamagecalculator: @ 8027ADC + push {r4-r6,lr} + ldr r4, _08027B4C @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r6, r0, 24 + ldr r5, _08027B50 @ =gUnknown_02024D28 + ldrb r0, [r4] + lsls r0, 4 + adds r0, r5 + ldrb r0, [r0, 0xD] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r3, [r0] + cmp r3, 0 + beq _08027B90 + cmp r6, r2 + beq _08027B90 + ldr r6, _08027B54 @ =gBattleMons + adds r0, r1, r5 + ldrb r0, [r0, 0xD] + movs r4, 0x58 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08027B90 + ldr r1, _08027B58 @ =gUnknown_02024BEC + lsls r0, r3, 1 + str r0, [r1] + ldr r1, _08027B5C @ =gUnknown_02024C80 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r1, r0, r1 + ldrb r0, [r1, 0x8] + cmp r0, 0 + beq _08027B64 + ldrb r1, [r1, 0x9] + adds r0, r1, 0 + muls r0, r4 + adds r0, r6 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _08027B64 + ldr r0, _08027B60 @ =gUnknown_02024C08 + strb r1, [r0] + b _08027B74 + .align 2, 0 +_08027B4C: .4byte gUnknown_02024C07 +_08027B50: .4byte gUnknown_02024D28 +_08027B54: .4byte gBattleMons +_08027B58: .4byte gUnknown_02024BEC +_08027B5C: .4byte gUnknown_02024C80 +_08027B60: .4byte gUnknown_02024C08 +_08027B64: + ldr r2, _08027B80 @ =gUnknown_02024C08 + ldr r1, _08027B84 @ =gUnknown_02024D28 + ldr r0, _08027B88 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0, 0xD] + strb r0, [r2] +_08027B74: + ldr r1, _08027B8C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08027BC0 + .align 2, 0 +_08027B80: .4byte gUnknown_02024C08 +_08027B84: .4byte gUnknown_02024D28 +_08027B88: .4byte gUnknown_02024C07 +_08027B8C: .4byte gUnknown_02024C10 +_08027B90: + ldr r2, _08027BC8 @ =gUnknown_02024D68 + ldr r0, _08027BCC @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _08027BD0 @ =gUnknown_02024C10 + 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] +_08027BC0: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08027BC8: .4byte gUnknown_02024D68 +_08027BCC: .4byte gUnknown_02024C07 +_08027BD0: .4byte gUnknown_02024C10 + thumb_func_end atkA2_mirrorcoatdamagecalculator + + thumb_func_start atkA3_disablelastusedattack +atkA3_disablelastusedattack: @ 8027BD4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r4, 0 + ldr r2, _08027CD4 @ =gBattleMons + ldr r3, _08027CD8 @ =gUnknown_02024C08 + ldrb r1, [r3] + movs r0, 0x58 + muls r0, r1 + adds r7, r2, 0 + adds r7, 0xC + adds r0, r7 + ldr r5, _08027CDC @ =gUnknown_02024C34 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r0] + mov r9, r2 + adds r6, r3, 0 + ldr r2, _08027CE0 @ =gUnknown_02024CA8 + mov r8, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _08027C28 + mov r12, r6 + movs r3, 0x58 +_08027C08: + adds r4, 0x1 + cmp r4, 0x3 + bgt _08027C28 + lsls r2, r4, 1 + mov r0, r12 + ldrb r1, [r0] + adds r0, r1, 0 + muls r0, r3 + adds r2, r0 + adds r2, r7 + lsls r1, 1 + adds r1, r5 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _08027C08 +_08027C28: + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + ldrh r0, [r0, 0x4] + cmp r0, 0 + bne _08027CEC + cmp r4, 0x4 + beq _08027CEC + movs r5, 0x58 + adds r0, r1, 0 + muls r0, r5 + adds r0, r4, r0 + mov r1, r9 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08027CEC + ldr r1, _08027CE4 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + lsls r2, r4, 1 + ldrb r0, [r6] + muls r0, r5 + adds r0, r2, r0 + mov r3, r9 + adds r3, 0xC + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r6] + muls r0, r5 + adds r0, r2, r0 + adds r0, r3 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r8 + muls r1, r5 + adds r2, r1 + adds r2, r3 + ldrh r1, [r2] + strh r1, [r0, 0x4] + bl Random + ldrb r2, [r6] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r8 + movs r2, 0x3 + ands r2, r0 + adds r2, 0x2 + ldrb r3, [r1, 0xB] + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xB] + ldrb r0, [r6] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r8 + ldrb r3, [r1, 0xB] + lsls r2, r3, 28 + lsrs r2, 24 + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xB] + ldr r1, _08027CE8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08027D06 + .align 2, 0 +_08027CD4: .4byte gBattleMons +_08027CD8: .4byte gUnknown_02024C08 +_08027CDC: .4byte gUnknown_02024C34 +_08027CE0: .4byte gUnknown_02024CA8 +_08027CE4: .4byte gUnknown_030041C0 +_08027CE8: .4byte gUnknown_02024C10 +_08027CEC: + ldr r3, _08027D14 @ =gUnknown_02024C10 + 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] +_08027D06: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08027D14: .4byte gUnknown_02024C10 + thumb_func_end atkA3_disablelastusedattack + + thumb_func_start atkA4_setencore +atkA4_setencore: @ 8027D18 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r5, 0 + ldr r3, _08027E0C @ =gBattleMons + ldr r4, _08027E10 @ =gUnknown_02024C08 + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r6, r3, 0 + adds r6, 0xC + adds r0, r6 + ldr r2, _08027E14 @ =gUnknown_02024C34 + lsls r1, 1 + adds r1, r2 + ldrh r0, [r0] + mov r10, r3 + mov r8, r2 + ldr r2, _08027E18 @ =gUnknown_02024CA8 + mov r9, r2 + ldrh r1, [r1] + cmp r0, r1 + beq _08027D72 + mov r12, r4 + adds r7, r6, 0 + mov r6, r8 + movs r3, 0x58 +_08027D52: + adds r5, 0x1 + cmp r5, 0x3 + bgt _08027D72 + lsls r2, r5, 1 + mov r0, r12 + ldrb r1, [r0] + adds r0, r1, 0 + muls r0, r3 + adds r2, r0 + adds r2, r7 + lsls r1, 1 + adds r1, r6 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _08027D52 +_08027D72: + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r2, [r0] + cmp r2, 0xA5 + beq _08027D86 + cmp r2, 0xE3 + beq _08027D86 + cmp r2, 0x77 + bne _08027D88 +_08027D86: + movs r5, 0x4 +_08027D88: + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r2, r9 + adds r3, r0, r2 + ldrh r0, [r3, 0x6] + cmp r0, 0 + bne _08027E20 + cmp r5, 0x4 + beq _08027E20 + movs r0, 0x58 + adds r2, r1, 0 + muls r2, r0 + adds r0, r5, r2 + mov r1, r10 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08027E20 + lsls r0, r5, 1 + adds r0, r2 + subs r1, 0x18 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r3, 0x6] + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r9 + strb r5, [r0, 0xC] + bl Random + ldrb r2, [r4] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + add r1, r9 + movs r2, 0x3 + ands r2, r0 + adds r2, 0x3 + ldrb r3, [r1, 0xE] + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xE] + ldrb r0, [r4] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + add r1, r9 + ldrb r3, [r1, 0xE] + lsls r2, r3, 28 + lsrs r2, 24 + movs r0, 0xF + ands r0, r3 + orrs r0, r2 + strb r0, [r1, 0xE] + ldr r1, _08027E1C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08027E3A + .align 2, 0 +_08027E0C: .4byte gBattleMons +_08027E10: .4byte gUnknown_02024C08 +_08027E14: .4byte gUnknown_02024C34 +_08027E18: .4byte gUnknown_02024CA8 +_08027E1C: .4byte gUnknown_02024C10 +_08027E20: + ldr r3, _08027E48 @ =gUnknown_02024C10 + 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] +_08027E3A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08027E48: .4byte gUnknown_02024C10 + thumb_func_end atkA4_setencore + + thumb_func_start sub_8027E4C +sub_8027E4C: @ 8027E4C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r7, _08027EEC @ =gBattleMons + ldr r0, _08027EF0 @ =gUnknown_02024C08 + mov r8, r0 + ldrb r0, [r0] + movs r6, 0x58 + adds r2, r0, 0 + muls r2, r6 + adds r0, r7, 0 + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + bne _08027F18 + ldr r1, _08027EF4 @ =gUnknown_02024C07 + mov r12, r1 + ldrb r0, [r1] + muls r0, r6 + adds r0, r7 + ldrh r4, [r0, 0x28] + adds r0, r2, r7 + ldrh r2, [r0, 0x28] + adds r4, r2 + asrs r4, 1 + ldr r5, _08027EF8 @ =gUnknown_02024BEC + mov r9, r5 + subs r2, r4 + str r2, [r5] + ldr r3, _08027EFC @ =0x02000000 + ldr r1, _08027F00 @ =0x00016014 + adds r0, r3, r1 + strb r2, [r0] + movs r0, 0xFF + lsls r0, 8 + ands r0, r2 + asrs r0, 8 + ldr r5, _08027F04 @ =0x00016015 + adds r1, r3, r5 + strb r0, [r1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r2 + asrs r0, 16 + adds r5, 0x1 + adds r1, r3, r5 + strb r0, [r1] + lsrs r2, 24 + ldr r0, _08027F08 @ =0x00016017 + adds r3, r0 + strb r2, [r3] + mov r1, r12 + ldrb r0, [r1] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0, 0x28] + subs r0, r4 + mov r5, r9 + str r0, [r5] + ldr r2, _08027F0C @ =gUnknown_02024D68 + mov r0, r8 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r2, 0x4 + adds r0, r2 + ldr r1, _08027F10 @ =0x0000ffff + str r1, [r0] + ldr r1, _08027F14 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08027F32 + .align 2, 0 +_08027EEC: .4byte gBattleMons +_08027EF0: .4byte gUnknown_02024C08 +_08027EF4: .4byte gUnknown_02024C07 +_08027EF8: .4byte gUnknown_02024BEC +_08027EFC: .4byte 0x02000000 +_08027F00: .4byte 0x00016014 +_08027F04: .4byte 0x00016015 +_08027F08: .4byte 0x00016017 +_08027F0C: .4byte gUnknown_02024D68 +_08027F10: .4byte 0x0000ffff +_08027F14: .4byte gUnknown_02024C10 +_08027F18: + ldr r3, _08027F40 @ =gUnknown_02024C10 + 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] +_08027F32: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08027F40: .4byte gUnknown_02024C10 + thumb_func_end sub_8027E4C + + thumb_func_start sub_8027F44 +sub_8027F44: @ 8027F44 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r1, _08027FA8 @ =gUnknown_02024C3C + ldr r4, _08027FAC @ =gUnknown_02024C07 + ldrb r0, [r4] + lsls r0, 1 + adds r2, r0, r1 + ldrh r1, [r2] + cmp r1, 0 + beq _08027F8C + ldr r0, _08027FB0 @ =0x0000ffff + cmp r1, r0 + beq _08027F8C + ldrh r0, [r2] + bl sub_8028350 + lsls r0, 24 + cmp r0, 0 + beq _08028024 + ldr r2, _08027FB4 @ =gUnknown_02024D28 + ldrb r0, [r4] + lsls r1, r0, 4 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08028024 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _08028024 +_08027F8C: + ldr r3, _08027FB8 @ =gUnknown_02024C10 + 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 _08028110 + .align 2, 0 +_08027FA8: .4byte gUnknown_02024C3C +_08027FAC: .4byte gUnknown_02024C07 +_08027FB0: .4byte 0x0000ffff +_08027FB4: .4byte gUnknown_02024D28 +_08027FB8: .4byte gUnknown_02024C10 +_08027FBC: + mov r0, r12 + strb r5, [r0] + mov r1, r10 + ldrb r0, [r1] + muls r0, r2 + adds r0, r7 + adds r0, 0x22 + strb r5, [r0] + ldr r1, _08027FE0 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r5, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, _08027FE4 @ =gUnknown_02024C10 + b _08028012 + .align 2, 0 +_08027FE0: .4byte gUnknown_030041C0 +_08027FE4: .4byte gUnknown_02024C10 +_08027FE8: + mov r0, r8 + adds r0, 0x1 + adds r0, r3 + ldrb r2, [r0] + strb r2, [r4] + mov r4, r10 + ldrb r0, [r4] + muls r0, r6 + ldr r7, _0802801C @ =gBattleMons + adds r0, r7 + adds r0, 0x22 + strb r2, [r0] + ldr r1, _08028020 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + strb r2, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + mov r1, r12 +_08028012: + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08028110 + .align 2, 0 +_0802801C: .4byte gBattleMons +_08028020: .4byte gUnknown_030041C0 +_08028024: + movs r4, 0 + mov r8, r4 + movs r7, 0x7F + mov r9, r7 +_0802802C: + bl Random + mov r4, r9 + ands r4, r0 + cmp r4, 0x70 + bhi _0802802C + lsls r0, r4, 1 + adds r4, r0, r4 + ldr r6, _08028120 @ =gTypeEffectiveness + adds r3, r4, r6 + ldr r1, _08028124 @ =gUnknown_02024C44 + ldr r2, _08028128 @ =gUnknown_02024C07 + ldrb r5, [r2] + lsls r0, r5, 1 + adds r0, r1 + ldrb r1, [r3] + mov r10, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _08028088 + adds r0, r4, 0x2 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x5 + bhi _08028088 + ldr r7, _0802812C @ =gBattleMons + movs r2, 0x58 + adds r0, r5, 0 + muls r0, r2 + adds r3, r0, r7 + movs r0, 0x21 + adds r0, r3 + mov r12, r0 + adds r0, r4, 0x1 + adds r0, r6 + ldrb r5, [r0] + mov r1, r12 + ldrb r0, [r1] + adds r1, r5, 0 + cmp r0, r1 + beq _08028088 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + bne _08027FBC +_08028088: + movs r7, 0x1 + add r8, r7 + ldr r0, _08028130 @ =0x000003e7 + cmp r8, r0 + ble _0802802C + movs r0, 0 + mov r8, r0 + ldr r1, _08028134 @ =gUnknown_02024C10 + mov r12, r1 + ldr r3, _08028120 @ =gTypeEffectiveness + adds r0, r4, 0x1 + adds r0, r3 + mov r9, r0 + adds r5, r3, 0 +_080280A4: + ldrb r1, [r5] + cmp r1, 0xFF + bgt _080280AE + cmp r1, 0xFE + bge _080280E8 +_080280AE: + mov r4, r10 + ldrb r2, [r4] + lsls r0, r2, 1 + ldr r7, _08028124 @ =gUnknown_02024C44 + adds r0, r7 + ldrh r0, [r0] + cmp r1, r0 + bne _080280E8 + ldrb r0, [r5, 0x2] + cmp r0, 0x5 + bhi _080280E8 + movs r6, 0x58 + adds r0, r2, 0 + muls r0, r6 + ldr r1, _0802812C @ =gBattleMons + adds r2, r0, r1 + adds r4, r2, 0 + adds r4, 0x21 + ldrb r0, [r4] + mov r7, r9 + ldrb r1, [r7] + cmp r0, r1 + beq _080280E8 + adds r0, r2, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _080280E8 + b _08027FE8 +_080280E8: + adds r5, 0x3 + movs r0, 0x3 + add r8, r0 + ldr r0, _08028138 @ =0x0000014f + cmp r8, r0 + bls _080280A4 + mov r1, r12 + ldr r2, [r1] + 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 + mov r4, r12 + str r1, [r4] +_08028110: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028120: .4byte gTypeEffectiveness +_08028124: .4byte gUnknown_02024C44 +_08028128: .4byte gUnknown_02024C07 +_0802812C: .4byte gBattleMons +_08028130: .4byte 0x000003e7 +_08028134: .4byte gUnknown_02024C10 +_08028138: .4byte 0x0000014f + thumb_func_end sub_8027F44 + + thumb_func_start atkA7_setalwayshitflag +atkA7_setalwayshitflag: @ 802813C + push {r4,lr} + ldr r4, _08028180 @ =gUnknown_02024C98 + ldr r3, _08028184 @ =gUnknown_02024C08 + ldrb r1, [r3] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x19 + negs r2, r2 + ands r0, r2 + str r0, [r1] + ldrb r1, [r3] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x10 + orrs r0, r2 + str r0, [r1] + ldr r2, _08028188 @ =gUnknown_02024CA8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _0802818C @ =gUnknown_02024C07 + ldrb r1, [r1] + strb r1, [r0, 0x15] + ldr r1, _08028190 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08028180: .4byte gUnknown_02024C98 +_08028184: .4byte gUnknown_02024C08 +_08028188: .4byte gUnknown_02024CA8 +_0802818C: .4byte gUnknown_02024C07 +_08028190: .4byte gUnknown_02024C10 + thumb_func_end atkA7_setalwayshitflag + + thumb_func_start atkA8_copymovepermanently +atkA8_copymovepermanently: @ 8028194 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + ldr r0, _080282F4 @ =gUnknown_02024BE8 + ldr r1, _080282F8 @ =0x0000ffff + adds r5, r1, 0 + strh r5, [r0] + ldr r3, _080282FC @ =gBattleMons + ldr r2, _08028300 @ =gUnknown_02024C07 + ldrb r1, [r2] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r0, r3, 0 + adds r0, 0x50 + adds r0, r4, r0 + ldr r1, [r0] + movs r0, 0x80 + lsls r0, 14 + ands r1, r0 + mov r12, r3 + mov r10, r2 + cmp r1, 0 + beq _080281CC + b _08028320 +_080281CC: + ldr r0, _08028304 @ =gUnknown_02024C2C + ldr r2, _08028308 @ =gUnknown_02024C08 + ldrb r1, [r2] + lsls r1, 1 + adds r1, r0 + ldrh r1, [r1] + mov r9, r0 + mov r8, r2 + cmp r1, 0xA5 + bne _080281E2 + b _08028320 +_080281E2: + cmp r1, 0 + bne _080281E8 + b _08028320 +_080281E8: + cmp r1, r5 + bne _080281EE + b _08028320 +_080281EE: + cmp r1, 0xA6 + bne _080281F4 + b _08028320 +_080281F4: + movs r7, 0 + mov r5, r9 + mov r0, r12 + adds r0, 0xC + adds r1, r4, r0 + mov r3, r8 +_08028200: + ldrh r2, [r1] + cmp r2, 0xA6 + beq _08028212 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + cmp r2, r0 + beq _0802821A +_08028212: + adds r1, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _08028200 +_0802821A: + cmp r7, 0x4 + beq _08028220 + b _08028320 +_08028220: + ldr r4, _0802830C @ =gUnknown_02024BE4 + ldrb r1, [r4] + lsls r1, 1 + mov r2, r10 + ldrb r0, [r2] + movs r3, 0x58 + muls r0, r3 + adds r1, r0 + mov r6, r12 + adds r6, 0xC + adds r1, r6 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + strh r0, [r1] + mov r1, r10 + ldrb r0, [r1] + adds r2, r0, 0 + muls r2, r3 + ldrb r4, [r4] + adds r2, r4 + mov r5, r12 + adds r5, 0x24 + adds r2, r5 + ldr r4, _08028310 @ =gBattleMoves + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + add r0, r9 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x4] + strb r0, [r2] + ldr r1, _08028314 @ =gUnknown_02024A60 + mov r2, r10 + ldrb r0, [r2] + strb r0, [r1] + movs r7, 0 + ldrb r0, [r2] + muls r0, r3 + adds r4, r0, r5 + adds r3, r0, 0 + add r2, sp, 0x4 + add r5, sp, 0xC +_08028282: + adds r0, r3, r6 + ldrh r0, [r0] + strh r0, [r2] + adds r1, r5, r7 + ldrb r0, [r4] + strb r0, [r1] + adds r4, 0x1 + adds r3, 0x2 + adds r2, 0x2 + adds r7, 0x1 + cmp r7, 0x3 + ble _08028282 + add r2, sp, 0x4 + mov r0, r10 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r12 + adds r0, 0x3B + ldrb r0, [r0] + strb r0, [r2, 0xC] + str r2, [sp] + movs r0, 0 + movs r1, 0x3 + movs r2, 0 + movs r3, 0x10 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldr r0, _08028314 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08028318 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldr r3, _08028304 @ =gUnknown_02024C2C + ldr r2, _08028308 @ =gUnknown_02024C08 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r2] + lsls r0, 1 + adds r0, r3 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _0802831C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802833A + .align 2, 0 +_080282F4: .4byte gUnknown_02024BE8 +_080282F8: .4byte 0x0000ffff +_080282FC: .4byte gBattleMons +_08028300: .4byte gUnknown_02024C07 +_08028304: .4byte gUnknown_02024C2C +_08028308: .4byte gUnknown_02024C08 +_0802830C: .4byte gUnknown_02024BE4 +_08028310: .4byte gBattleMoves +_08028314: .4byte gUnknown_02024A60 +_08028318: .4byte gUnknown_030041C0 +_0802831C: .4byte gUnknown_02024C10 +_08028320: + ldr r3, _0802834C @ =gUnknown_02024C10 + 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] +_0802833A: + 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 +_0802834C: .4byte gUnknown_02024C10 + thumb_func_end atkA8_copymovepermanently + + thumb_func_start sub_8028350 +sub_8028350: @ 8028350 + push {lr} + lsls r0, 16 + lsrs r0, 16 + ldr r2, _08028380 @ =gBattleMoves + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r0, [r1] + cmp r0, 0x91 + beq _0802837A + cmp r0, 0x27 + beq _0802837A + cmp r0, 0x4B + beq _0802837A + cmp r0, 0x97 + beq _0802837A + cmp r0, 0x9B + beq _0802837A + cmp r0, 0x1A + bne _08028384 +_0802837A: + movs r0, 0x1 + b _08028386 + .align 2, 0 +_08028380: .4byte gBattleMoves +_08028384: + movs r0, 0 +_08028386: + pop {r1} + bx r1 + thumb_func_end sub_8028350 + + thumb_func_start sub_802838C +sub_802838C: @ 802838C + push {lr} + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0 + beq _080283AA + cmp r1, 0xD6 + beq _080283AA + movs r0, 0x89 + lsls r0, 1 + cmp r1, r0 + beq _080283AA + cmp r1, 0x77 + beq _080283AA + cmp r1, 0x76 + bne _080283AE +_080283AA: + movs r0, 0x1 + b _080283B0 +_080283AE: + movs r0, 0 +_080283B0: + pop {r1} + bx r1 + thumb_func_end sub_802838C + + thumb_func_start move_weather_interaction +move_weather_interaction: @ 80283B4 + push {lr} + lsls r1, 16 + lsrs r2, r1, 16 + ldr r1, _0802840C @ =gBattleMoves + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + adds r3, r1, 0 + cmp r0, 0x97 + bne _080283D8 + ldr r0, _08028410 @ =word_2024DB8 + ldrh r1, [r0] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + bne _08028418 +_080283D8: + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0x91 + beq _080283FA + cmp r0, 0x27 + beq _080283FA + cmp r0, 0x4B + beq _080283FA + cmp r0, 0x97 + beq _080283FA + cmp r0, 0x9B + beq _080283FA + cmp r0, 0x1A + bne _08028418 +_080283FA: + ldr r0, _08028414 @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 20 + ands r0, r1 + cmp r0, 0 + beq _08028418 + movs r0, 0x1 + b _0802841A + .align 2, 0 +_0802840C: .4byte gBattleMoves +_08028410: .4byte word_2024DB8 +_08028414: .4byte gUnknown_02024C6C +_08028418: + movs r0, 0x2 +_0802841A: + pop {r1} + bx r1 + thumb_func_end move_weather_interaction + + thumb_func_start sub_8028420 +sub_8028420: @ 8028420 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r6, 0 + movs r5, 0 + ldr r0, _080284B0 @ =gUnknown_02024C07 + mov r9, r0 + movs r1, 0x58 + mov r8, r1 + ldr r7, _080284B4 @ =gUnknown_02024A8C + movs r0, 0x84 + lsls r0, 1 + mov r10, r0 +_0802843E: + lsls r4, r5, 1 + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4, r0 + adds r0, r7 + ldrh r0, [r0] + bl sub_802838C + lsls r0, 24 + cmp r0, 0 + bne _0802847E + mov r1, r9 + ldrb r0, [r1] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r4, r0 + adds r0, r7 + ldrh r1, [r0] + cmp r1, r10 + beq _0802847E + cmp r1, 0xFD + beq _0802847E + adds r0, r1, 0 + bl sub_8028350 + lsls r0, 24 + cmp r0, 0 + beq _0802848C +_0802847E: + ldr r1, _080284B8 @ =gBitTable + lsls r0, r5, 2 + adds r0, r1 + ldr r0, [r0] + orrs r6, r0 + lsls r0, r6, 24 + lsrs r6, r0, 24 +_0802848C: + adds r5, 0x1 + cmp r5, 0x3 + ble _0802843E + ldr r0, _080284B0 @ =gUnknown_02024C07 + ldrb r0, [r0] + adds r1, r6, 0 + movs r2, 0xFD + bl sub_8015A98 + lsls r0, 24 + lsrs r6, r0, 24 + cmp r6, 0xF + bne _080284C0 + ldr r1, _080284BC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08028524 + .align 2, 0 +_080284B0: .4byte gUnknown_02024C07 +_080284B4: .4byte gUnknown_02024A8C +_080284B8: .4byte gBitTable +_080284BC: .4byte gUnknown_02024C10 +_080284C0: + movs r7, 0x3 + ldr r4, _08028534 @ =gBitTable +_080284C4: + bl Random + adds r5, r7, 0 + ands r5, r0 + lsls r0, r5, 2 + adds r0, r4 + ldr r0, [r0] + ands r0, r6 + cmp r0, 0 + bne _080284C4 + ldr r4, _08028538 @ =gUnknown_02024BEA + ldr r2, _0802853C @ =gBattleMons + lsls r1, r5, 1 + ldr r0, _08028540 @ =gUnknown_02024C07 + ldrb r3, [r0] + movs r0, 0x58 + muls r0, r3 + adds r1, r0 + adds r2, 0xC + adds r1, r2 + ldrh r0, [r1] + strh r0, [r4] + ldr r0, _08028544 @ =gUnknown_02024BE4 + strb r5, [r0] + ldr r2, _08028548 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0802854C @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldrh r0, [r4] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _08028550 @ =gUnknown_02024C08 + strb r0, [r1] + ldr r3, _08028554 @ =gUnknown_02024C10 + 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] +_08028524: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028534: .4byte gBitTable +_08028538: .4byte gUnknown_02024BEA +_0802853C: .4byte gBattleMons +_08028540: .4byte gUnknown_02024C07 +_08028544: .4byte gUnknown_02024BE4 +_08028548: .4byte gUnknown_02024C6C +_0802854C: .4byte 0xfffffbff +_08028550: .4byte gUnknown_02024C08 +_08028554: .4byte gUnknown_02024C10 + thumb_func_end sub_8028420 + + thumb_func_start sub_8028558 +sub_8028558: @ 8028558 + ldr r1, _0802857C @ =gBattleMons + ldr r0, _08028580 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 18 + orrs r0, r1 + str r0, [r2] + ldr r1, _08028584 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802857C: .4byte gBattleMons +_08028580: .4byte gUnknown_02024C07 +_08028584: .4byte gUnknown_02024C10 + thumb_func_end sub_8028558 + + thumb_func_start b_feature_update_destiny_bond +b_feature_update_destiny_bond: @ 8028588 + push {r4,r5,lr} + ldr r0, _080285D8 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r5, r0, 24 + ldr r4, _080285DC @ =gUnknown_02024C08 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080285E0 @ =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _080285D2 + cmp r5, r3 + beq _080285D2 + ldr r2, _080285E4 @ =gUnknown_02024C6C + ldr r1, [r2] + movs r0, 0x80 + lsls r0, 17 + ands r0, r1 + cmp r0, 0 + bne _080285D2 + movs r0, 0x40 + orrs r1, r0 + str r1, [r2] +_080285D2: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080285D8: .4byte gUnknown_02024C07 +_080285DC: .4byte gUnknown_02024C08 +_080285E0: .4byte gBattleMons +_080285E4: .4byte gUnknown_02024C6C + thumb_func_end b_feature_update_destiny_bond + + thumb_func_start atkAB_802A458 +atkAB_802A458: @ 80285E8 + push {lr} + bl b_feature_update_destiny_bond + ldr r1, _080285FC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_080285FC: .4byte gUnknown_02024C10 + thumb_func_end atkAB_802A458 + + thumb_func_start atkAC_remaininghptopower +atkAC_remaininghptopower: @ 8028600 + push {lr} + ldr r2, _08028654 @ =gBattleMons + ldr r0, _08028658 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + movs r2, 0x28 + ldrsh r0, [r1, r2] + movs r2, 0x2C + ldrsh r1, [r1, r2] + movs r2, 0x30 + bl sub_80461D4 + lsls r0, 24 + lsrs r1, r0, 24 + movs r3, 0 + ldr r0, _0802865C @ =gUnknown_081FAD26 + ldrb r2, [r0] + cmp r1, r2 + ble _0802863A + adds r2, r0, 0 +_0802862C: + adds r3, 0x2 + cmp r3, 0xB + bgt _0802863A + adds r0, r3, r2 + ldrb r0, [r0] + cmp r1, r0 + bgt _0802862C +_0802863A: + ldr r2, _08028660 @ =gUnknown_02024DEC + ldr r1, _0802865C @ =gUnknown_081FAD26 + adds r0, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldr r1, _08028664 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08028654: .4byte gBattleMons +_08028658: .4byte gUnknown_02024C07 +_0802865C: .4byte gUnknown_081FAD26 +_08028660: .4byte gUnknown_02024DEC +_08028664: .4byte gUnknown_02024C10 + thumb_func_end atkAC_remaininghptopower + + thumb_func_start sub_8028668 +sub_8028668: @ 8028668 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r4, _080287F8 @ =gUnknown_02024C34 + ldr r1, _080287FC @ =gUnknown_02024C08 + ldrb r2, [r1] + lsls r0, r2, 1 + adds r0, r4 + ldrh r3, [r0] + mov r8, r1 + cmp r3, 0 + bne _08028688 + b _08028828 +_08028688: + ldr r0, _08028800 @ =0x0000ffff + cmp r3, r0 + bne _08028690 + b _08028828 +_08028690: + ldr r1, _08028804 @ =gUnknown_02024C98 + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08028808 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _080286A2 + b _08028828 +_080286A2: + movs r7, 0 + ldr r0, _0802880C @ =gBattleMons + movs r1, 0x58 + muls r1, r2 + adds r2, r0, 0 + adds r2, 0xC + adds r1, r2 + ldrh r1, [r1] + cmp r3, r1 + beq _080286DA + adds r6, r4, 0 + mov r5, r8 + adds r4, r2, 0 + movs r3, 0x58 +_080286BE: + adds r7, 0x1 + cmp r7, 0x3 + bgt _080286DA + ldrb r0, [r5] + lsls r2, r0, 1 + adds r2, r6 + lsls r1, r7, 1 + muls r0, r3 + adds r1, r0 + adds r1, r4 + ldrh r0, [r2] + ldrh r1, [r1] + cmp r0, r1 + bne _080286BE +_080286DA: + cmp r7, 0x4 + bne _080286E0 + b _08028828 +_080286E0: + mov r4, r8 + ldrb r0, [r4] + movs r1, 0x58 + mov r9, r1 + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7, r0 + ldr r1, _0802880C @ =gBattleMons + adds r1, 0x24 + mov r10, r1 + add r0, r10 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _08028700 + b _08028828 +_08028700: + bl Random + movs r1, 0x3 + ands r1, r0 + adds r6, r1, 0x2 + ldrb r0, [r4] + mov r3, r9 + muls r3, r0 + adds r0, r3, 0 + adds r0, r7, r0 + add r0, r10 + ldrb r0, [r0] + cmp r0, r6 + bge _0802871E + adds r6, r0, 0 +_0802871E: + ldr r1, _08028810 @ =gUnknown_030041C0 + movs r5, 0xFD + strb r5, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldr r2, _080287F8 @ =gUnknown_02024C34 + mov r3, r8 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r4, _08028814 @ =gUnknown_03004290 + adds r0, r4, 0 + adds r1, r6, 0 + movs r2, 0 + movs r3, 0x1 + bl ConvertIntToDecimalStringN + strb r5, [r4] + movs r0, 0x1 + strb r0, [r4, 0x1] + strb r0, [r4, 0x2] + strb r0, [r4, 0x3] + strb r6, [r4, 0x4] + subs r0, 0x2 + strb r0, [r4, 0x5] + mov r1, r8 + ldrb r0, [r1] + mov r1, r9 + muls r1, r0 + adds r1, r7, r1 + add r1, r10 + ldrb r0, [r1] + subs r0, r6 + strb r0, [r1] + ldr r4, _08028818 @ =gUnknown_02024A60 + mov r3, r8 + ldrb r0, [r3] + strb r0, [r4] + ldr r1, _0802881C @ =gUnknown_02024CA8 + ldrb r3, [r4] + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x18] + lsrs r1, 4 + ldr r2, _08028820 @ =gBitTable + lsls r0, r7, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _080287D2 + mov r2, r9 + muls r2, r3 + ldr r0, _0802880C @ =gBattleMons + adds r0, 0x50 + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + bne _080287D2 + adds r1, r7, 0 + adds r1, 0x9 + lsls r1, 24 + lsrs r1, 24 + mov r3, r10 + adds r0, r2, r3 + adds r0, r7 + str r0, [sp] + movs r0, 0 + movs r2, 0 + movs r3, 0x1 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution +_080287D2: + ldr r1, _08028824 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r1, _0802880C @ =gBattleMons + ldr r0, _080287FC @ =gUnknown_02024C08 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r0, r7, r0 + adds r1, 0x24 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _08028842 + adds r0, r2, 0 + bl b_cancel_multi_turn_move_maybe + b _08028842 + .align 2, 0 +_080287F8: .4byte gUnknown_02024C34 +_080287FC: .4byte gUnknown_02024C08 +_08028800: .4byte 0x0000ffff +_08028804: .4byte gUnknown_02024C98 +_08028808: .4byte 0x000400c0 +_0802880C: .4byte gBattleMons +_08028810: .4byte gUnknown_030041C0 +_08028814: .4byte gUnknown_03004290 +_08028818: .4byte gUnknown_02024A60 +_0802881C: .4byte gUnknown_02024CA8 +_08028820: .4byte gBitTable +_08028824: .4byte gUnknown_02024C10 +_08028828: + ldr r3, _08028854 @ =gUnknown_02024C10 + 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] +_08028842: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028854: .4byte gUnknown_02024C10 + thumb_func_end sub_8028668 + + thumb_func_start sub_8028858 +sub_8028858: @ 8028858 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + movs r4, 0 + str r4, [sp, 0x4] + movs r7, 0 + ldr r0, _080288AC @ =gUnknown_02024BE6 + ldrh r0, [r0] + cmp r0, 0xD7 + beq _08028872 + b _08028A26 +_08028872: + ldr r5, _080288B0 @ =gUnknown_02024D1E + strb r7, [r5, 0x5] + ldr r6, _080288B4 @ =gUnknown_02024C07 + ldrb r0, [r6] + bl battle_side_get_owner + lsls r0, 24 + ldr r1, _080288B8 @ =gEnemyParty + mov r9, r1 + cmp r0, 0 + bne _0802888C + ldr r2, _080288BC @ =gPlayerParty + mov r9, r2 +_0802888C: + ldr r4, _080288C0 @ =gBattleMons + ldrb r3, [r6] + movs r0, 0x58 + adds r2, r3, 0 + muls r2, r0 + adds r0, r2, r4 + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0x2B + beq _080288C4 + adds r0, r4, 0 + adds r0, 0x4C + adds r0, r2, r0 + str r7, [r0] + b _080288D4 + .align 2, 0 +_080288AC: .4byte gUnknown_02024BE6 +_080288B0: .4byte gUnknown_02024D1E +_080288B4: .4byte gUnknown_02024C07 +_080288B8: .4byte gEnemyParty +_080288BC: .4byte gPlayerParty +_080288C0: .4byte gBattleMons +_080288C4: + ldrb r1, [r1] + adds r0, r3, 0 + bl sub_81074C4 + ldrb r0, [r5, 0x5] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r5, 0x5] +_080288D4: + ldr r4, _08028934 @ =gUnknown_02024A60 + ldr r0, _08028938 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_get_per_side_status + movs r6, 0x2 + eors r0, r6 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r1, _0802893C @ =0x02000000 + ldr r2, _08028940 @ =0x00016003 + adds r1, r2 + strb r0, [r1] + strb r0, [r4] + ldr r0, _08028944 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08028964 + ldr r0, _08028948 @ =gUnknown_02024C0C + ldrb r2, [r0] + ldr r1, _0802894C @ =gBitTable + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _08028964 + ldr r5, _08028950 @ =gBattleMons + movs r0, 0x58 + adds r4, r3, 0 + muls r4, r0 + adds r0, r4, r5 + adds r1, r0, 0 + adds r1, 0x20 + ldrb r0, [r1] + cmp r0, 0x2B + beq _08028954 + adds r0, r5, 0 + adds r0, 0x4C + adds r0, r4, r0 + str r2, [r0] + b _08028964 + .align 2, 0 +_08028934: .4byte gUnknown_02024A60 +_08028938: .4byte gUnknown_02024C07 +_0802893C: .4byte 0x02000000 +_08028940: .4byte 0x00016003 +_08028944: .4byte gUnknown_020239F8 +_08028948: .4byte gUnknown_02024C0C +_0802894C: .4byte gBitTable +_08028950: .4byte gBattleMons +_08028954: + ldrb r1, [r1] + adds r0, r3, 0 + bl sub_81074C4 + ldr r1, _080289AC @ =gUnknown_02024D1E + ldrb r0, [r1, 0x5] + orrs r0, r6 + strb r0, [r1, 0x5] +_08028964: + movs r6, 0 + ldr r0, _080289B0 @ =gBattleMons + mov r8, r0 +_0802896A: + movs r0, 0x64 + adds r4, r6, 0 + muls r4, r0 + add r4, r9 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + lsls r0, 24 + lsrs r4, r0, 24 + cmp r5, 0 + beq _08028A1E + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + beq _08028A1E + ldr r2, _080289B4 @ =gUnknown_02024A6A + ldr r0, _080289B8 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _080289BC + movs r0, 0x58 + muls r0, r1 + b _080289EC + .align 2, 0 +_080289AC: .4byte gUnknown_02024D1E +_080289B0: .4byte gBattleMons +_080289B4: .4byte gUnknown_02024A6A +_080289B8: .4byte gUnknown_02024C07 +_080289BC: + ldr r0, _080289F4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08028A04 + ldr r0, _080289F8 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r0, r6 + bne _08028A04 + ldr r0, _080289FC @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08028A00 @ =gBitTable + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _08028A04 + movs r0, 0x58 + muls r0, r3 +_080289EC: + add r0, r8 + adds r0, 0x20 + ldrb r0, [r0] + b _08028A10 + .align 2, 0 +_080289F4: .4byte gUnknown_020239F8 +_080289F8: .4byte gUnknown_02024A60 +_080289FC: .4byte gUnknown_02024C0C +_08028A00: .4byte gBitTable +_08028A04: + adds r0, r5, 0 + adds r1, r4, 0 + bl GetAbilityBySpecies + lsls r0, 24 + lsrs r0, 24 +_08028A10: + cmp r0, 0x2B + beq _08028A1E + movs r0, 0x1 + lsls r0, r6 + orrs r7, r0 + lsls r0, r7, 24 + lsrs r7, r0, 24 +_08028A1E: + adds r6, 0x1 + cmp r6, 0x5 + ble _0802896A + b _08028A7E +_08028A26: + ldr r1, _08028AB4 @ =gUnknown_02024D1E + movs r0, 0x4 + strb r0, [r1, 0x5] + movs r7, 0x3F + ldr r2, _08028AB8 @ =gBattleMons + ldr r1, _08028ABC @ =gUnknown_02024C07 + ldrb r0, [r1] + movs r6, 0x58 + muls r0, r6 + adds r5, r2, 0 + adds r5, 0x4C + adds r0, r5 + str r4, [r0] + ldrb r0, [r1] + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r3, _08028AC0 @ =gUnknown_02024A60 + strb r0, [r3] + ldr r0, _08028AC4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08028A7E + ldr r0, _08028AC8 @ =gUnknown_02024C0C + ldrb r2, [r0] + ldr r1, _08028ACC @ =gBitTable + ldrb r3, [r3] + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + bne _08028A7E + adds r0, r3, 0 + muls r0, r6 + adds r0, r5 + str r2, [r0] +_08028A7E: + ldr r4, _08028AC0 @ =gUnknown_02024A60 + ldr r0, _08028ABC @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r4] + add r1, sp, 0x4 + str r1, [sp] + movs r0, 0 + movs r1, 0x28 + adds r2, r7, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08028AD0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028AB4: .4byte gUnknown_02024D1E +_08028AB8: .4byte gBattleMons +_08028ABC: .4byte gUnknown_02024C07 +_08028AC0: .4byte gUnknown_02024A60 +_08028AC4: .4byte gUnknown_020239F8 +_08028AC8: .4byte gUnknown_02024C0C +_08028ACC: .4byte gBitTable +_08028AD0: .4byte gUnknown_02024C10 + thumb_func_end sub_8028858 + + thumb_func_start sub_8028AD4 +sub_8028AD4: @ 8028AD4 + push {r4-r7,lr} + ldr r7, _08028B24 @ =gBattleMons + ldr r0, _08028B28 @ =gUnknown_02024C08 + ldrb r3, [r0] + movs r6, 0x58 + adds r1, r3, 0 + muls r1, r6 + adds r0, r7, 0 + adds r0, 0x50 + adds r4, r1, r0 + ldr r2, [r4] + movs r5, 0x80 + lsls r5, 21 + adds r0, r2, 0 + ands r0, r5 + cmp r0, 0 + bne _08028B06 + ldr r1, _08028B2C @ =gUnknown_02024C98 + lsls r0, r3, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _08028B30 @ =0x000400c0 + ands r0, r1 + cmp r0, 0 + beq _08028B38 +_08028B06: + ldr r3, _08028B34 @ =gUnknown_02024C10 + 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 _08028B5C + .align 2, 0 +_08028B24: .4byte gBattleMons +_08028B28: .4byte gUnknown_02024C08 +_08028B2C: .4byte gUnknown_02024C98 +_08028B30: .4byte 0x000400c0 +_08028B34: .4byte gUnknown_02024C10 +_08028B38: + orrs r2, r5 + str r2, [r4] + ldr r1, _08028B64 @ =gUnknown_02024BEC + ldr r0, _08028B68 @ =gUnknown_02024C07 + ldrb r0, [r0] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _08028B54 + movs r0, 0x1 + str r0, [r1] +_08028B54: + ldr r1, _08028B6C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08028B5C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028B64: .4byte gUnknown_02024BEC +_08028B68: .4byte gUnknown_02024C07 +_08028B6C: .4byte gUnknown_02024C10 + thumb_func_end sub_8028AD4 + + thumb_func_start sub_8028B70 +sub_8028B70: @ 8028B70 + push {r4,lr} + ldr r4, _08028BC4 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _08028BC8 @ =gUnknown_02024C80 + lsls r2, r0, 1 + adds r0, r2, r0 + lsls r0, 2 + adds r3, r0, r1 + ldrb r0, [r3, 0x6] + cmp r0, 0x3 + bne _08028BD4 + ldr r2, _08028BCC @ =gUnknown_02024D68 + ldrb r1, [r4] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r3, _08028BD0 @ =gUnknown_02024C10 + 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 _08028BEE + .align 2, 0 +_08028BC4: .4byte gUnknown_02024C07 +_08028BC8: .4byte gUnknown_02024C80 +_08028BCC: .4byte gUnknown_02024D68 +_08028BD0: .4byte gUnknown_02024C10 +_08028BD4: + ldr r1, _08028BF4 @ =gUnknown_02024C7A + adds r1, r2, r1 + ldrh r2, [r1] + movs r0, 0x10 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r3, 0x6] + adds r0, 0x1 + strb r0, [r3, 0x6] + ldr r1, _08028BF8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08028BEE: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08028BF4: .4byte gUnknown_02024C7A +_08028BF8: .4byte gUnknown_02024C10 + thumb_func_end sub_8028B70 + + thumb_func_start sub_8028BFC +sub_8028BFC: @ 8028BFC + ldr r1, _08028C20 @ =gBattleMons + ldr r0, _08028C24 @ =gUnknown_02024C08 + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 22 + orrs r0, r1 + str r0, [r2] + ldr r1, _08028C28 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08028C20: .4byte gBattleMons +_08028C24: .4byte gUnknown_02024C08 +_08028C28: .4byte gUnknown_02024C10 + thumb_func_end sub_8028BFC + + thumb_func_start atkB2_setperishsong +atkB2_setperishsong: @ 8028C2C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r6, 0 + movs r3, 0 + ldr r0, _08028C70 @ =gUnknown_02024A68 + adds r7, r0, 0 + ldr r0, _08028C74 @ =gUnknown_02024C07 + mov r8, r0 + ldrb r1, [r7] + cmp r6, r1 + bge _08028C98 + movs r5, 0x20 + ldr r0, _08028C78 @ =gBattleMons + mov r12, r0 + ldr r0, _08028C7C @ =gUnknown_02024CA8 + adds r4, r0, 0 + adds r4, 0xF + ldr r2, _08028C80 @ =gUnknown_02024C98 +_08028C54: + ldr r1, [r2] + adds r0, r1, 0 + ands r0, r5 + cmp r0, 0 + bne _08028C6C + movs r0, 0x58 + muls r0, r3 + add r0, r12 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x2B + bne _08028C84 +_08028C6C: + adds r6, 0x1 + b _08028C8C + .align 2, 0 +_08028C70: .4byte gUnknown_02024A68 +_08028C74: .4byte gUnknown_02024C07 +_08028C78: .4byte gBattleMons +_08028C7C: .4byte gUnknown_02024CA8 +_08028C80: .4byte gUnknown_02024C98 +_08028C84: + orrs r1, r5 + str r1, [r2] + movs r0, 0x33 + strb r0, [r4] +_08028C8C: + adds r4, 0x1C + adds r2, 0x4 + adds r3, 0x1 + ldrb r0, [r7] + cmp r3, r0 + blt _08028C54 +_08028C98: + mov r1, r8 + ldrb r0, [r1] + bl sub_80153D0 + ldr r0, _08028CC4 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r6, r0 + bne _08028CCC + ldr r3, _08028CC8 @ =gUnknown_02024C10 + 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 _08028CD4 + .align 2, 0 +_08028CC4: .4byte gUnknown_02024A68 +_08028CC8: .4byte gUnknown_02024C10 +_08028CCC: + ldr r1, _08028CE0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08028CD4: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028CE0: .4byte gUnknown_02024C10 + thumb_func_end atkB2_setperishsong + + thumb_func_start atkB3_rolloutdamagecalculation +atkB3_rolloutdamagecalculation: @ 8028CE4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _08028D08 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08028D18 + ldr r0, _08028D0C @ =gUnknown_02024C07 + ldrb r0, [r0] + bl b_cancel_multi_turn_move_maybe + ldr r1, _08028D10 @ =gUnknown_02024C10 + ldr r0, _08028D14 @ =BattleScript_1D6F74 + str r0, [r1] + b _08028E30 + .align 2, 0 +_08028D08: .4byte gUnknown_02024C68 +_08028D0C: .4byte gUnknown_02024C07 +_08028D10: .4byte gUnknown_02024C10 +_08028D14: .4byte BattleScript_1D6F74 +_08028D18: + ldr r2, _08028E3C @ =gBattleMons + ldr r1, _08028E40 @ =gUnknown_02024C07 + ldrb r3, [r1] + movs r5, 0x58 + adds r0, r3, 0 + muls r0, r5 + adds r4, r2, 0 + adds r4, 0x50 + adds r0, r4 + ldr r0, [r0] + movs r7, 0x80 + lsls r7, 5 + ands r0, r7 + adds r6, r1, 0 + mov r9, r2 + ldr r1, _08028E44 @ =gUnknown_02024CA8 + mov r12, r1 + ldr r2, _08028E48 @ =gUnknown_02024BE6 + mov r8, r2 + cmp r0, 0 + bne _08028D8A + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x11] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + movs r2, 0x5 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + add r0, r12 + ldrb r2, [r0, 0x11] + movs r1, 0xF + ands r1, r2 + movs r2, 0x50 + orrs r1, r2 + strb r1, [r0, 0x11] + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + orrs r0, r7 + str r0, [r1] + ldr r1, _08028E4C @ =gUnknown_02024C54 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r1 + mov r2, r8 + ldrh r1, [r2] + strh r1, [r0] +_08028D8A: + ldrb r0, [r6] + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 2 + add r2, r12 + ldrb r3, [r2, 0x11] + lsls r1, r3, 28 + lsrs r1, 28 + subs r1, 0x1 + movs r0, 0xF + ands r1, r0 + movs r0, 0x10 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x11] + cmp r1, 0 + bne _08028DBE + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r5 + adds r1, r4 + ldr r0, [r1] + ldr r2, _08028E50 @ =0xffffefff + ands r0, r2 + str r0, [r1] +_08028DBE: + ldr r3, _08028E54 @ =gUnknown_02024DEC + ldr r2, _08028E58 @ =gBattleMoves + mov r0, r8 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r3] + movs r2, 0x1 + ldrb r1, [r6] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + mov r1, r12 + adds r4, r0, r1 + ldrb r0, [r4, 0x11] + lsls r0, 28 + lsrs r0, 28 + movs r1, 0x5 + subs r1, r0 + ldr r7, _08028E5C @ =gUnknown_02024C10 + adds r5, r3, 0 + cmp r2, r1 + bge _08028E0C + adds r1, r5, 0 + adds r3, r4, 0 + movs r4, 0x5 +_08028DF8: + ldrh r0, [r1] + lsls r0, 1 + strh r0, [r1] + adds r2, 0x1 + ldrb r0, [r3, 0x11] + lsls r0, 28 + lsrs r0, 28 + subs r0, r4, r0 + cmp r2, r0 + blt _08028DF8 +_08028E0C: + ldrb r1, [r6] + movs r0, 0x58 + muls r0, r1 + mov r1, r9 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 23 + ands r0, r1 + cmp r0, 0 + beq _08028E2A + ldrh r0, [r5] + lsls r0, 1 + strh r0, [r5] +_08028E2A: + ldr r0, [r7] + adds r0, 0x1 + str r0, [r7] +_08028E30: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08028E3C: .4byte gBattleMons +_08028E40: .4byte gUnknown_02024C07 +_08028E44: .4byte gUnknown_02024CA8 +_08028E48: .4byte gUnknown_02024BE6 +_08028E4C: .4byte gUnknown_02024C54 +_08028E50: .4byte 0xffffefff +_08028E54: .4byte gUnknown_02024DEC +_08028E58: .4byte gBattleMoves +_08028E5C: .4byte gUnknown_02024C10 + thumb_func_end atkB3_rolloutdamagecalculation + + thumb_func_start atkB4_jumpifconfusedandattackmaxed +atkB4_jumpifconfusedandattackmaxed: @ 8028E60 + push {r4,r5,lr} + ldr r5, _08028EB0 @ =gBattleMons + ldr r0, _08028EB4 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + adds r3, r1, 0 + muls r3, r0 + adds r0, r5, 0 + adds r0, 0x50 + adds r0, r3, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + ldr r4, _08028EB8 @ =gUnknown_02024C10 + cmp r0, 0 + beq _08028EBC + ldr r2, [r4] + ldrb r0, [r2, 0x1] + adds r0, r3 + adds r1, r5, 0 + adds r1, 0x18 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0xC + bne _08028EBC + 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, [r4] + b _08028EC2 + .align 2, 0 +_08028EB0: .4byte gBattleMons +_08028EB4: .4byte gUnknown_02024C08 +_08028EB8: .4byte gUnknown_02024C10 +_08028EBC: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_08028EC2: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end atkB4_jumpifconfusedandattackmaxed + + thumb_func_start sub_8028EC8 +sub_8028EC8: @ 8028EC8 + push {r4,r5,lr} + ldr r0, _08028EF0 @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _08028F04 + ldr r2, _08028EF4 @ =gUnknown_02024CA8 + ldr r0, _08028EF8 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0 + strb r1, [r0, 0x10] + ldr r1, _08028EFC @ =gUnknown_02024C10 + ldr r0, _08028F00 @ =BattleScript_1D6F74 + str r0, [r1] + b _08028F5C + .align 2, 0 +_08028EF0: .4byte gUnknown_02024C68 +_08028EF4: .4byte gUnknown_02024CA8 +_08028EF8: .4byte gUnknown_02024C07 +_08028EFC: .4byte gUnknown_02024C10 +_08028F00: .4byte BattleScript_1D6F74 +_08028F04: + ldr r5, _08028F64 @ =gUnknown_02024CA8 + ldr r4, _08028F68 @ =gUnknown_02024C07 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r1, r0, r5 + ldrb r0, [r1, 0x10] + cmp r0, 0x5 + beq _08028F1C + adds r0, 0x1 + strb r0, [r1, 0x10] +_08028F1C: + ldr r3, _08028F6C @ =gUnknown_02024DEC + ldr r2, _08028F70 @ =gBattleMoves + ldr r0, _08028F74 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + strh r0, [r3] + movs r2, 0x1 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r4, _08028F78 @ =gUnknown_02024C10 + ldrb r1, [r0, 0x10] + cmp r2, r1 + bge _08028F56 + adds r1, r3, 0 + adds r3, r0, 0 +_08028F48: + ldrh r0, [r1] + lsls r0, 1 + strh r0, [r1] + adds r2, 0x1 + ldrb r0, [r3, 0x10] + cmp r2, r0 + blt _08028F48 +_08028F56: + ldr r0, [r4] + adds r0, 0x1 + str r0, [r4] +_08028F5C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08028F64: .4byte gUnknown_02024CA8 +_08028F68: .4byte gUnknown_02024C07 +_08028F6C: .4byte gUnknown_02024DEC +_08028F70: .4byte gBattleMoves +_08028F74: .4byte gUnknown_02024BE6 +_08028F78: .4byte gUnknown_02024C10 + thumb_func_end sub_8028EC8 + + thumb_func_start atkB6_happinesstodamagecalculation +atkB6_happinesstodamagecalculation: @ 8028F7C + push {r4,lr} + ldr r2, _08028FA8 @ =gBattleMoves + ldr r0, _08028FAC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0x79 + bne _08028FBC + ldr r4, _08028FB0 @ =gUnknown_02024DEC + ldr r2, _08028FB4 @ =gBattleMons + ldr r0, _08028FB8 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2B + ldrb r1, [r0] + b _08028FD2 + .align 2, 0 +_08028FA8: .4byte gBattleMoves +_08028FAC: .4byte gUnknown_02024BE6 +_08028FB0: .4byte gUnknown_02024DEC +_08028FB4: .4byte gBattleMons +_08028FB8: .4byte gUnknown_02024C07 +_08028FBC: + ldr r4, _08028FF0 @ =gUnknown_02024DEC + ldr r2, _08028FF4 @ =gBattleMons + ldr r0, _08028FF8 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2B + ldrb r0, [r0] + movs r1, 0xFF + subs r1, r0 +_08028FD2: + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 1 + movs r1, 0x19 + bl __divsi3 + strh r0, [r4] + ldr r1, _08028FFC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08028FF0: .4byte gUnknown_02024DEC +_08028FF4: .4byte gBattleMons +_08028FF8: .4byte gUnknown_02024C07 +_08028FFC: .4byte gUnknown_02024C10 + thumb_func_end atkB6_happinesstodamagecalculation + + thumb_func_start atkB7_presentdamagecalculation +atkB7_presentdamagecalculation: @ 8029000 + push {r4,lr} + bl Random + movs r4, 0xFF + ands r4, r0 + cmp r4, 0x65 + bgt _0802901C + ldr r1, _08029018 @ =gUnknown_02024DEC + movs r0, 0x28 + strh r0, [r1] + b _0802905E + .align 2, 0 +_08029018: .4byte gUnknown_02024DEC +_0802901C: + cmp r4, 0xB1 + bgt _0802902C + ldr r1, _08029028 @ =gUnknown_02024DEC + movs r0, 0x50 + strh r0, [r1] + b _0802905E + .align 2, 0 +_08029028: .4byte gUnknown_02024DEC +_0802902C: + cmp r4, 0xCB + bgt _0802903C + ldr r1, _08029038 @ =gUnknown_02024DEC + movs r0, 0x78 + strh r0, [r1] + b _0802905E + .align 2, 0 +_08029038: .4byte gUnknown_02024DEC +_0802903C: + ldr r3, _08029068 @ =gUnknown_02024BEC + ldr r2, _0802906C @ =gBattleMons + ldr r0, _08029070 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r0, 2 + str r0, [r3] + cmp r0, 0 + bne _08029058 + movs r0, 0x1 + str r0, [r3] +_08029058: + ldr r0, [r3] + negs r0, r0 + str r0, [r3] +_0802905E: + cmp r4, 0xCB + bgt _0802907C + ldr r1, _08029074 @ =gUnknown_02024C10 + ldr r0, _08029078 @ =BattleScript_1D6F44 + b _080290AC + .align 2, 0 +_08029068: .4byte gUnknown_02024BEC +_0802906C: .4byte gBattleMons +_08029070: .4byte gUnknown_02024C08 +_08029074: .4byte gUnknown_02024C10 +_08029078: .4byte BattleScript_1D6F44 +_0802907C: + ldr r2, _08029098 @ =gBattleMons + ldr r0, _0802909C @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x2C] + ldrh r0, [r0, 0x28] + cmp r1, r0 + bne _080290A8 + ldr r1, _080290A0 @ =gUnknown_02024C10 + ldr r0, _080290A4 @ =BattleScript_1D83B5 + b _080290AC + .align 2, 0 +_08029098: .4byte gBattleMons +_0802909C: .4byte gUnknown_02024C08 +_080290A0: .4byte gUnknown_02024C10 +_080290A4: .4byte BattleScript_1D83B5 +_080290A8: + ldr r1, _080290B4 @ =gUnknown_02024C10 + ldr r0, _080290B8 @ =BattleScript_1D839B +_080290AC: + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080290B4: .4byte gUnknown_02024C10 +_080290B8: .4byte BattleScript_1D839B + thumb_func_end atkB7_presentdamagecalculation + + thumb_func_start sub_80290BC +sub_80290BC: @ 80290BC + push {r4-r6,lr} + ldr r4, _080290F0 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_get_per_side_status + ldr r6, _080290F4 @ =gUnknown_02024C7A + movs r5, 0x1 + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08029100 + ldr r2, _080290F8 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _080290FC @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] + b _08029132 + .align 2, 0 +_080290F0: .4byte gUnknown_02024C07 +_080290F4: .4byte gUnknown_02024C7A +_080290F8: .4byte gUnknown_02024C68 +_080290FC: .4byte gUnknown_02024D1E +_08029100: + ldrb r0, [r4] + bl battle_get_per_side_status + adds r1, r5, 0 + ands r1, r0 + lsls r1, 1 + adds r1, r6 + ldrh r0, [r1] + movs r2, 0x20 + orrs r0, r2 + strh r0, [r1] + ldrb r0, [r4] + bl battle_get_per_side_status + ldr r2, _08029140 @ =gUnknown_02024C80 + adds r1, r5, 0 + ands r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strb r1, [r0, 0x7] + ldr r0, _08029144 @ =gUnknown_02024D1E + strb r1, [r0, 0x5] +_08029132: + ldr r1, _08029148 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08029140: .4byte gUnknown_02024C80 +_08029144: .4byte gUnknown_02024D1E +_08029148: .4byte gUnknown_02024C10 + thumb_func_end sub_80290BC + + thumb_func_start atkB9_magnitudedamagecalculation +atkB9_magnitudedamagecalculation: @ 802914C + push {r4-r7,lr} + mov r7, r8 + push {r7} + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + cmp r3, 0x4 + bgt _08029178 + ldr r1, _08029174 @ =gUnknown_02024DEC + movs r0, 0xA + strh r0, [r1] + movs r3, 0x4 + b _080291E4 + .align 2, 0 +_08029174: .4byte gUnknown_02024DEC +_08029178: + cmp r3, 0xE + bgt _0802918C + ldr r1, _08029188 @ =gUnknown_02024DEC + movs r0, 0x1E + strh r0, [r1] + movs r3, 0x5 + b _080291E4 + .align 2, 0 +_08029188: .4byte gUnknown_02024DEC +_0802918C: + cmp r3, 0x22 + bgt _080291A0 + ldr r1, _0802919C @ =gUnknown_02024DEC + movs r0, 0x32 + strh r0, [r1] + movs r3, 0x6 + b _080291E4 + .align 2, 0 +_0802919C: .4byte gUnknown_02024DEC +_080291A0: + cmp r3, 0x40 + bgt _080291B4 + ldr r1, _080291B0 @ =gUnknown_02024DEC + movs r0, 0x46 + strh r0, [r1] + movs r3, 0x7 + b _080291E4 + .align 2, 0 +_080291B0: .4byte gUnknown_02024DEC +_080291B4: + cmp r3, 0x54 + bgt _080291C8 + ldr r1, _080291C4 @ =gUnknown_02024DEC + movs r0, 0x5A + strh r0, [r1] + movs r3, 0x8 + b _080291E4 + .align 2, 0 +_080291C4: .4byte gUnknown_02024DEC +_080291C8: + cmp r3, 0x5E + bgt _080291DC + ldr r1, _080291D8 @ =gUnknown_02024DEC + movs r0, 0x6E + strh r0, [r1] + movs r3, 0x9 + b _080291E4 + .align 2, 0 +_080291D8: .4byte gUnknown_02024DEC +_080291DC: + ldr r1, _08029250 @ =gUnknown_02024DEC + movs r0, 0x96 + strh r0, [r1] + movs r3, 0xA +_080291E4: + ldr r1, _08029254 @ =gUnknown_030041C0 + movs r2, 0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x1 + strb r0, [r1, 0x1] + strb r0, [r1, 0x2] + movs r0, 0x2 + strb r0, [r1, 0x3] + strb r3, [r1, 0x4] + movs r0, 0xFF + strb r0, [r1, 0x5] + ldr r1, _08029258 @ =gUnknown_02024C08 + strb r2, [r1] + ldr r0, _0802925C @ =gUnknown_02024A68 + ldrb r3, [r0] + adds r6, r1, 0 + ldr r0, _08029260 @ =gUnknown_02024C10 + mov r8, r0 + cmp r2, r3 + bcs _0802923C + adds r4, r6, 0 + ldr r0, _08029264 @ =gUnknown_02024C07 + ldrb r5, [r0] + ldr r1, _08029268 @ =gBitTable + mov r12, r1 + ldr r7, _0802926C @ =gUnknown_02024C0C +_0802921A: + ldrb r2, [r4] + cmp r2, r5 + beq _08029230 + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, 2 + add r1, r12 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _0802923C +_08029230: + adds r0, r2, 0x1 + strb r0, [r4] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r3 + bcc _0802921A +_0802923C: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029250: .4byte gUnknown_02024DEC +_08029254: .4byte gUnknown_030041C0 +_08029258: .4byte gUnknown_02024C08 +_0802925C: .4byte gUnknown_02024A68 +_08029260: .4byte gUnknown_02024C10 +_08029264: .4byte gUnknown_02024C07 +_08029268: .4byte gBitTable +_0802926C: .4byte gUnknown_02024C0C + thumb_func_end atkB9_magnitudedamagecalculation + + thumb_func_start sub_8029270 +sub_8029270: @ 8029270 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r0, _08029294 @ =gUnknown_02024C0E + ldrb r0, [r0] + cmp r0, 0x1 + bne _080292A0 + ldr r0, _08029298 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0802929C + movs r0, 0x1 + b _080292BA + .align 2, 0 +_08029294: .4byte gUnknown_02024C0E +_08029298: .4byte gUnknown_02024C07 +_0802929C: + movs r0, 0 + b _080292BA +_080292A0: + ldr r0, _080292B4 @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080292B8 + movs r0, 0x3 + b _080292BA + .align 2, 0 +_080292B4: .4byte gUnknown_02024C07 +_080292B8: + movs r0, 0x2 +_080292BA: + bl battle_get_side_with_given_state + ldr r1, _0802937C @ =gUnknown_02024C08 + strb r0, [r1] + ldr r0, _08029380 @ =gUnknown_02024C18 + ldr r1, _0802937C @ =gUnknown_02024C08 + mov r9, r1 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _080293BC + ldr r5, _08029384 @ =gUnknown_02024C07 + ldr r0, _08029388 @ =0x02000000 + ldr r2, _0802938C @ =0x00016010 + adds r1, r3, r2 + adds r1, r0 + ldrb r2, [r5] + mov r10, r0 + ldrb r1, [r1] + cmp r2, r1 + bne _080293BC + ldr r4, _08029390 @ =gBattleMons + movs r2, 0x58 + adds r0, r3, 0 + muls r0, r2 + adds r1, r4, 0 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x27 + ands r0, r1 + cmp r0, 0 + bne _080293BC + ldrb r0, [r5] + muls r0, r2 + adds r0, r4 + ldrh r0, [r0, 0x28] + cmp r0, 0 + beq _080293BC + ldr r0, _08029394 @ =gUnknown_02024CA8 + lsls r1, r3, 3 + subs r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x18] + lsls r0, 31 + cmp r0, 0 + bne _080293BC + ldr r0, _08029398 @ =gUnknown_02024C60 + lsls r1, r3, 1 + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0xE4 + bne _080293BC + movs r1, 0 + ldr r0, _0802939C @ =gUnknown_02024A68 + ldr r7, _080293A0 @ =gUnknown_02024BE6 + mov r8, r7 + ldr r2, _080293A4 @ =gUnknown_02024C6C + mov r12, r2 + ldrb r7, [r0] + cmp r1, r7 + bge _0802935A + ldr r6, _080293A8 @ =gUnknown_02024A7A + mov r5, r9 + ldr r4, _080293AC @ =gUnknown_02024A76 + movs r3, 0xB + adds r2, r0, 0 +_08029344: + adds r0, r1, r6 + ldrb r0, [r0] + ldrb r7, [r5] + cmp r0, r7 + bne _08029352 + adds r0, r1, r4 + strb r3, [r0] +_08029352: + adds r1, 0x1 + ldrb r0, [r2] + cmp r1, r0 + blt _08029344 +_0802935A: + movs r0, 0xE4 + mov r1, r8 + strh r0, [r1] + ldr r2, _080293B0 @ =gUnknown_02024C10 + ldr r0, [r2] + adds r0, 0x5 + str r0, [r2] + ldr r1, _080293B4 @ =0x00016002 + add r1, r10 + movs r0, 0x1 + strb r0, [r1] + mov r7, r12 + ldr r0, [r7] + ldr r1, _080293B8 @ =0xfffffbff + ands r0, r1 + str r0, [r7] + b _080293D6 + .align 2, 0 +_0802937C: .4byte gUnknown_02024C08 +_08029380: .4byte gUnknown_02024C18 +_08029384: .4byte gUnknown_02024C07 +_08029388: .4byte 0x02000000 +_0802938C: .4byte 0x00016010 +_08029390: .4byte gBattleMons +_08029394: .4byte gUnknown_02024CA8 +_08029398: .4byte gUnknown_02024C60 +_0802939C: .4byte gUnknown_02024A68 +_080293A0: .4byte gUnknown_02024BE6 +_080293A4: .4byte gUnknown_02024C6C +_080293A8: .4byte gUnknown_02024A7A +_080293AC: .4byte gUnknown_02024A76 +_080293B0: .4byte gUnknown_02024C10 +_080293B4: .4byte 0x00016002 +_080293B8: .4byte 0xfffffbff +_080293BC: + ldr r3, _080293E4 @ =gUnknown_02024C10 + 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] +_080293D6: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080293E4: .4byte gUnknown_02024C10 + thumb_func_end sub_8029270 + + thumb_func_start sub_80293E8 +sub_80293E8: @ 80293E8 + push {lr} + ldr r2, _08029408 @ =word_2024DB8 + ldrh r1, [r2] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08029414 + ldr r2, _0802940C @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08029410 @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08029426 + .align 2, 0 +_08029408: .4byte word_2024DB8 +_0802940C: .4byte gUnknown_02024C68 +_08029410: .4byte gUnknown_02024D1E +_08029414: + movs r0, 0x20 + strh r0, [r2] + ldr r1, _08029434 @ =gUnknown_02024D1E + movs r0, 0x4 + strb r0, [r1, 0x5] + ldr r0, _08029438 @ =gUnknown_02024DBC + adds r0, 0x28 + movs r1, 0x5 + strb r1, [r0] +_08029426: + ldr r1, _0802943C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08029434: .4byte gUnknown_02024D1E +_08029438: .4byte gUnknown_02024DBC +_0802943C: .4byte gUnknown_02024C10 + thumb_func_end sub_80293E8 + + thumb_func_start atkBC_maxattackhalvehp +atkBC_maxattackhalvehp: @ 8029440 + push {r4,r5,lr} + ldr r5, _0802948C @ =gBattleMons + ldr r4, _08029490 @ =gUnknown_02024C07 + ldrb r0, [r4] + movs r3, 0x58 + muls r0, r3 + adds r2, r0, r5 + ldrh r0, [r2, 0x2C] + lsrs r1, r0, 1 + cmp r1, 0 + bne _08029458 + movs r1, 0x1 +_08029458: + movs r0, 0x19 + ldrsb r0, [r2, r0] + cmp r0, 0xB + bgt _0802949C + ldrh r0, [r2, 0x28] + cmp r0, r1 + bls _0802949C + movs r0, 0xC + strb r0, [r2, 0x19] + ldr r1, _08029494 @ =gUnknown_02024BEC + ldrb r0, [r4] + muls r0, r3 + adds r0, r5 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _08029480 + movs r0, 0x1 + str r0, [r1] +_08029480: + ldr r1, _08029498 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _080294B6 + .align 2, 0 +_0802948C: .4byte gBattleMons +_08029490: .4byte gUnknown_02024C07 +_08029494: .4byte gUnknown_02024BEC +_08029498: .4byte gUnknown_02024C10 +_0802949C: + ldr r3, _080294BC @ =gUnknown_02024C10 + 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] +_080294B6: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080294BC: .4byte gUnknown_02024C10 + thumb_func_end atkBC_maxattackhalvehp + + thumb_func_start atkBD_copyfoestats +atkBD_copyfoestats: @ 80294C0 + push {r4-r7,lr} + movs r2, 0 + ldr r7, _080294F8 @ =gUnknown_02024C10 + ldr r6, _080294FC @ =gUnknown_02024C07 + movs r4, 0x58 + ldr r3, _08029500 @ =gUnknown_02024A98 + ldr r5, _08029504 @ =gUnknown_02024C08 +_080294CE: + ldrb r0, [r6] + adds r1, r0, 0 + muls r1, r4 + adds r1, r2, r1 + adds r1, r3 + ldrb r0, [r5] + muls r0, r4 + adds r0, r2, r0 + adds r0, r3 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x1 + cmp r2, 0x7 + ble _080294CE + ldr r0, [r7] + adds r0, 0x5 + str r0, [r7] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080294F8: .4byte gUnknown_02024C10 +_080294FC: .4byte gUnknown_02024C07 +_08029500: .4byte gUnknown_02024A98 +_08029504: .4byte gUnknown_02024C08 + thumb_func_end atkBD_copyfoestats + + thumb_func_start atkBE_breakfree +atkBE_breakfree: @ 8029508 + push {r4,r5,lr} + ldr r1, _08029570 @ =gBattleMons + ldr r5, _08029574 @ =gUnknown_02024C07 + ldrb r2, [r5] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r3, r0, r1 + ldr r1, [r3] + movs r0, 0xE0 + lsls r0, 8 + ands r0, r1 + cmp r0, 0 + beq _08029594 + ldr r0, _08029578 @ =0xffff1fff + ands r1, r0 + str r1, [r3] + ldr r1, _0802957C @ =gUnknown_02024C08 + ldr r2, _08029580 @ =0x02000000 + ldrb r0, [r5] + ldr r3, _08029584 @ =0x00016020 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _08029588 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x2 + strb r0, [r1, 0x1] + ldrb r0, [r5] + lsls r0, 1 + subs r3, 0x1C + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1, 0x2] + ldrb r0, [r5] + lsls r0, 1 + adds r3, 0x1 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + bl b_movescr_stack_push_cursor + ldr r1, _0802958C @ =gUnknown_02024C10 + ldr r0, _08029590 @ =gUnknown_081D92C2 + b _0802963E + .align 2, 0 +_08029570: .4byte gBattleMons +_08029574: .4byte gUnknown_02024C07 +_08029578: .4byte 0xffff1fff +_0802957C: .4byte gUnknown_02024C08 +_08029580: .4byte 0x02000000 +_08029584: .4byte 0x00016020 +_08029588: .4byte gUnknown_030041C0 +_0802958C: .4byte gUnknown_02024C10 +_08029590: .4byte gUnknown_081D92C2 +_08029594: + ldr r4, _080295C8 @ =gUnknown_02024C98 + lsls r0, r2, 2 + adds r3, r0, r4 + ldr r1, [r3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080295D4 + movs r0, 0x5 + negs r0, r0 + ands r1, r0 + str r1, [r3] + ldrb r1, [r5] + lsls r1, 2 + adds r1, r4 + ldr r0, [r1] + movs r2, 0x4 + negs r2, r2 + ands r0, r2 + str r0, [r1] + bl b_movescr_stack_push_cursor + ldr r1, _080295CC @ =gUnknown_02024C10 + ldr r0, _080295D0 @ =gUnknown_081D92C9 + b _0802963E + .align 2, 0 +_080295C8: .4byte gUnknown_02024C98 +_080295CC: .4byte gUnknown_02024C10 +_080295D0: .4byte gUnknown_081D92C9 +_080295D4: + adds r0, r2, 0 + bl battle_side_get_owner + ldr r4, _08029624 @ =gUnknown_02024C7A + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _08029638 + ldrb r0, [r5] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 23 + adds r0, r4 + ldrh r2, [r0] + ldr r1, _08029628 @ =0x0000ffef + ands r1, r2 + movs r4, 0 + strh r1, [r0] + ldrb r0, [r5] + bl battle_side_get_owner + ldr r2, _0802962C @ =gUnknown_02024C80 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + strb r4, [r1, 0x6] + bl b_movescr_stack_push_cursor + ldr r1, _08029630 @ =gUnknown_02024C10 + ldr r0, _08029634 @ =gUnknown_081D92D0 + b _0802963E + .align 2, 0 +_08029624: .4byte gUnknown_02024C7A +_08029628: .4byte 0x0000ffef +_0802962C: .4byte gUnknown_02024C80 +_08029630: .4byte gUnknown_02024C10 +_08029634: .4byte gUnknown_081D92D0 +_08029638: + ldr r1, _08029648 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 +_0802963E: + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08029648: .4byte gUnknown_02024C10 + thumb_func_end atkBE_breakfree + + thumb_func_start sub_802964C +sub_802964C: @ 802964C + ldr r1, _08029670 @ =gBattleMons + ldr r0, _08029674 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r2, r0 + adds r1, 0x50 + adds r2, r1 + ldr r0, [r2] + movs r1, 0x80 + lsls r1, 23 + orrs r0, r1 + str r0, [r2] + ldr r1, _08029678 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_08029670: .4byte gBattleMons +_08029674: .4byte gUnknown_02024C07 +_08029678: .4byte gUnknown_02024C10 + thumb_func_end sub_802964C + + thumb_func_start atkC0_recoverbasedonsunlight +atkC0_recoverbasedonsunlight: @ 802967C + push {r4-r7,lr} + sub sp, 0x4 + ldr r1, _080296E8 @ =gUnknown_02024C08 + ldr r5, _080296EC @ =gUnknown_02024C07 + ldrb r0, [r5] + strb r0, [r1] + ldr r7, _080296F0 @ =gBattleMons + ldrb r0, [r5] + movs r6, 0x58 + muls r0, r6 + adds r0, r7 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + beq _0802975C + ldr r4, _080296F4 @ =word_2024DB8 + ldrh r0, [r4] + cmp r0, 0 + beq _080296CE + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080296CE + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _080296FC +_080296CE: + ldr r3, _080296F8 @ =gUnknown_02024BEC + ldr r2, _080296F0 @ =gBattleMons + ldr r0, _080296EC @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r3] + adds r1, r3, 0 + b _08029736 + .align 2, 0 +_080296E8: .4byte gUnknown_02024C08 +_080296EC: .4byte gUnknown_02024C07 +_080296F0: .4byte gBattleMons +_080296F4: .4byte word_2024DB8 +_080296F8: .4byte gUnknown_02024BEC +_080296FC: + ldrh r1, [r4] + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _08029728 + ldr r4, _08029724 @ =gUnknown_02024BEC + ldrb r0, [r5] + muls r0, r6 + adds r0, r7 + ldrh r1, [r0, 0x2C] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + movs r1, 0x1E + bl __divsi3 + str r0, [r4] + adds r1, r4, 0 + b _08029736 + .align 2, 0 +_08029724: .4byte gUnknown_02024BEC +_08029728: + ldr r1, _08029754 @ =gUnknown_02024BEC + ldrb r0, [r5] + muls r0, r6 + adds r0, r7 + ldrh r0, [r0, 0x2C] + lsrs r0, 2 + str r0, [r1] +_08029736: + adds r2, r1, 0 + ldr r0, [r2] + cmp r0, 0 + bne _08029742 + movs r0, 0x1 + str r0, [r2] +_08029742: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldr r1, _08029758 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _08029776 + .align 2, 0 +_08029754: .4byte gUnknown_02024BEC +_08029758: .4byte gUnknown_02024C10 +_0802975C: + ldr r3, _08029780 @ =gUnknown_02024C10 + 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] +_08029776: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029780: .4byte gUnknown_02024C10 + thumb_func_end atkC0_recoverbasedonsunlight + + thumb_func_start sub_8029784 +sub_8029784: @ 8029784 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r2, _08029894 @ =gBattleMons + ldr r0, _08029898 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + adds r4, r1, 0 + muls r4, r0 + adds r4, r2 + ldrb r0, [r4, 0x14] + mov r10, r0 + mov r7, r10 + lsls r7, 27 + adds r0, r7, 0 + lsrs r0, 27 + mov r10, r0 + movs r1, 0x2 + mov r2, r10 + ands r2, r1 + asrs r2, 1 + ldrh r7, [r4, 0x14] + mov r9, r7 + mov r0, r9 + lsls r0, 22 + mov r9, r0 + lsrs r3, r0, 27 + adds r0, r1, 0 + ands r0, r3 + orrs r2, r0 + ldrb r7, [r4, 0x15] + mov r8, r7 + mov r0, r8 + lsls r0, 25 + mov r8, r0 + lsrs r3, r0, 27 + adds r0, r1, 0 + ands r0, r3 + lsls r0, 1 + orrs r2, r0 + ldr r6, [r4, 0x14] + lsls r6, 12 + lsrs r3, r6, 27 + adds r0, r1, 0 + ands r0, r3 + lsls r0, 2 + orrs r2, r0 + ldrh r5, [r4, 0x16] + lsls r5, 23 + lsrs r3, r5, 27 + adds r0, r1, 0 + ands r0, r3 + lsls r0, 3 + orrs r2, r0 + ldrb r3, [r4, 0x17] + lsls r3, 26 + lsrs r0, r3, 27 + ands r1, r0 + lsls r1, 4 + orrs r2, r1 + movs r1, 0x1 + adds r4, r1, 0 + mov r7, r10 + ands r4, r7 + mov r0, r9 + lsrs r0, 27 + mov r9, r0 + adds r0, r1, 0 + mov r7, r9 + ands r0, r7 + lsls r0, 1 + orrs r4, r0 + mov r0, r8 + lsrs r0, 27 + mov r8, r0 + adds r0, r1, 0 + mov r7, r8 + ands r0, r7 + lsls r0, 2 + orrs r4, r0 + lsrs r6, 27 + adds r0, r1, 0 + ands r0, r6 + lsls r0, 3 + orrs r4, r0 + lsrs r5, 27 + adds r0, r1, 0 + ands r0, r5 + lsls r0, 4 + orrs r4, r0 + lsrs r3, 27 + ands r1, r3 + lsls r1, 5 + orrs r4, r1 + ldr r5, _0802989C @ =gUnknown_02024DEC + lsls r0, r2, 2 + adds r0, r2 + lsls r0, 3 + movs r1, 0x3F + bl __divsi3 + adds r0, 0x1E + strh r0, [r5] + ldr r5, _080298A0 @ =0x02000000 + lsls r0, r4, 4 + subs r0, r4 + movs r1, 0x3F + bl __divsi3 + adds r1, r0, 0x1 + ldr r0, _080298A4 @ =0x0001601c + adds r5, r0 + strb r1, [r5] + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0x8 + bls _08029876 + adds r0, r1, 0x1 + strb r0, [r5] +_08029876: + ldrb r0, [r5] + movs r1, 0xC0 + orrs r0, r1 + strb r0, [r5] + ldr r1, _080298A8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029894: .4byte gBattleMons +_08029898: .4byte gUnknown_02024C07 +_0802989C: .4byte gUnknown_02024DEC +_080298A0: .4byte 0x02000000 +_080298A4: .4byte 0x0001601c +_080298A8: .4byte gUnknown_02024C10 + thumb_func_end sub_8029784 + + thumb_func_start atkC2_selectnexttarget +atkC2_selectnexttarget: @ 80298AC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08029908 @ =gUnknown_02024C08 + movs r1, 0 + strb r1, [r0] + ldr r1, _0802990C @ =gUnknown_02024A68 + ldrb r1, [r1] + adds r6, r0, 0 + ldr r0, _08029910 @ =gUnknown_02024C10 + mov r8, r0 + cmp r1, 0 + beq _080298F6 + adds r3, r6, 0 + ldr r0, _08029914 @ =gUnknown_02024C07 + ldrb r5, [r0] + ldr r0, _08029918 @ =gBitTable + mov r12, r0 + adds r4, r1, 0 + ldr r7, _0802991C @ =gUnknown_02024C0C +_080298D4: + ldrb r2, [r3] + cmp r2, r5 + beq _080298EA + ldrb r0, [r7] + ldrb r1, [r6] + lsls r1, 2 + add r1, r12 + ldr r1, [r1] + ands r0, r1 + cmp r0, 0 + beq _080298F6 +_080298EA: + adds r0, r2, 0x1 + strb r0, [r3] + lsls r0, 24 + lsrs r0, 24 + cmp r0, r4 + bcc _080298D4 +_080298F6: + mov r1, r8 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029908: .4byte gUnknown_02024C08 +_0802990C: .4byte gUnknown_02024A68 +_08029910: .4byte gUnknown_02024C10 +_08029914: .4byte gUnknown_02024C07 +_08029918: .4byte gBitTable +_0802991C: .4byte gUnknown_02024C0C + thumb_func_end atkC2_selectnexttarget + + thumb_func_start atkC3_setfutureattack +atkC3_setfutureattack: @ 8029920 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + ldr r0, _08029958 @ =gUnknown_02024DBC + mov r8, r0 + ldr r7, _0802995C @ =gUnknown_02024C08 + ldrb r1, [r7] + adds r0, r1, r0 + ldrb r6, [r0] + cmp r6, 0 + beq _08029964 + ldr r3, _08029960 @ =gUnknown_02024C10 + 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 _08029A2E + .align 2, 0 +_08029958: .4byte gUnknown_02024DBC +_0802995C: .4byte gUnknown_02024C08 +_08029960: .4byte gUnknown_02024C10 +_08029964: + lsls r1, 1 + mov r0, r8 + adds r0, 0x18 + adds r1, r0 + ldr r2, _08029A04 @ =gUnknown_02024BE6 + mov r9, r2 + ldrh r0, [r2] + strh r0, [r1] + mov r0, r8 + adds r0, 0x4 + ldrb r4, [r7] + adds r0, r4 + ldr r5, _08029A08 @ =gUnknown_02024C07 + ldrb r1, [r5] + strb r1, [r0] + ldrb r0, [r7] + add r0, r8 + movs r1, 0x3 + strb r1, [r0] + ldr r4, _08029A0C @ =gUnknown_02024C7A + ldrb r0, [r7] + bl battle_get_per_side_status + movs r1, 0x1 + mov r10, r1 + ands r1, r0 + lsls r1, 1 + adds r1, r4 + ldrh r3, [r1] + ldrb r0, [r5] + movs r4, 0x58 + muls r0, r4 + ldr r2, _08029A10 @ =gBattleMons + adds r0, r2 + ldrb r1, [r7] + muls r1, r4 + adds r1, r2 + mov r4, r9 + ldrh r2, [r4] + str r6, [sp] + str r6, [sp, 0x4] + ldrb r4, [r5] + str r4, [sp, 0x8] + ldrb r4, [r7] + str r4, [sp, 0xC] + bl CalculateBaseDamage + ldrb r1, [r7] + lsls r1, 2 + mov r2, r8 + adds r2, 0x8 + adds r1, r2 + str r0, [r1] + ldr r1, _08029A14 @ =gUnknown_02024D28 + ldrb r0, [r5] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _080299F2 + ldrb r4, [r7] + lsls r4, 2 + adds r4, r2 + ldr r1, [r4] + lsls r0, r1, 4 + subs r0, r1 + movs r1, 0xA + bl __divsi3 + str r0, [r4] +_080299F2: + mov r0, r9 + ldrh r1, [r0] + ldr r0, _08029A18 @ =0x00000161 + cmp r1, r0 + bne _08029A20 + ldr r0, _08029A1C @ =gUnknown_02024D1E + mov r1, r10 + strb r1, [r0, 0x5] + b _08029A26 + .align 2, 0 +_08029A04: .4byte gUnknown_02024BE6 +_08029A08: .4byte gUnknown_02024C07 +_08029A0C: .4byte gUnknown_02024C7A +_08029A10: .4byte gBattleMons +_08029A14: .4byte gUnknown_02024D28 +_08029A18: .4byte 0x00000161 +_08029A1C: .4byte gUnknown_02024D1E +_08029A20: + ldr r1, _08029A40 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] +_08029A26: + ldr r1, _08029A44 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08029A2E: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029A40: .4byte gUnknown_02024D1E +_08029A44: .4byte gUnknown_02024C10 + thumb_func_end atkC3_setfutureattack + + thumb_func_start atkC4_802B910 +atkC4_802B910: @ 8029A48 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _08029A8C @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + ldr r7, _08029A90 @ =gEnemyParty + cmp r0, 0 + bne _08029A62 + ldr r7, _08029A94 @ =gPlayerParty +_08029A62: + ldr r2, _08029A98 @ =gBattleMons + ldr r0, _08029A9C @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _08029AA4 + ldr r3, _08029AA0 @ =gUnknown_02024C10 + 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] + b _08029C40 + .align 2, 0 +_08029A8C: .4byte gUnknown_02024C07 +_08029A90: .4byte gEnemyParty +_08029A94: .4byte gPlayerParty +_08029A98: .4byte gBattleMons +_08029A9C: .4byte gUnknown_02024C08 +_08029AA0: .4byte gUnknown_02024C10 +_08029AA4: + ldr r6, _08029BE0 @ =gUnknown_02024D1E + ldrb r0, [r6] + mov r8, r0 + cmp r0, 0x5 + bls _08029AB0 + b _08029C0C +_08029AB0: + adds r4, r6, 0 + movs r5, 0x64 +_08029AB4: + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08029AF8 + ldrb r0, [r6] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08029AF8 + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08029AF8 + ldrb r0, [r4] + muls r0, r5 + adds r0, r7, r0 + movs r1, 0x37 + bl GetMonData + cmp r0, 0 + beq _08029B08 +_08029AF8: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + adds r6, r4, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x5 + bls _08029AB4 +_08029B08: + ldr r1, _08029BE0 @ =gUnknown_02024D1E + mov r9, r1 + ldrb r2, [r1] + cmp r2, 0x5 + bhi _08029C0C + ldr r1, _08029BE4 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r6, _08029BE8 @ =gUnknown_02024C07 + ldrb r0, [r6] + strb r0, [r1, 0x2] + strb r2, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _08029BEC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x9 + str r0, [r1] + ldr r2, _08029BF0 @ =gUnknown_02024BEC + mov r8, r2 + ldr r5, _08029BF4 @ =gBaseStats + mov r1, r9 + ldrb r0, [r1] + movs r4, 0x64 + muls r0, r4 + adds r0, r7, r0 + movs r1, 0xB + bl GetMonData + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r3, [r1, 0x1] + mov r2, r8 + str r3, [r2] + ldr r2, _08029BF8 @ =gBattleMoves + ldr r0, _08029BFC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + muls r0, r3 + mov r1, r8 + str r0, [r1] + mov r2, r9 + ldrb r0, [r2] + muls r0, r4 + adds r0, r7, r0 + movs r1, 0x38 + bl GetMonData + lsls r0, 1 + movs r1, 0x5 + bl __udivsi3 + adds r0, 0x2 + mov r2, r8 + ldr r1, [r2] + muls r0, r1 + str r0, [r2] + ldr r3, _08029C00 @ =gBattleMons + ldr r1, _08029C04 @ =gUnknown_02024C08 + ldrb r2, [r1] + movs r1, 0x58 + muls r1, r2 + adds r1, r3 + ldrh r2, [r1] + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r5 + ldrb r1, [r1, 0x2] + bl __divsi3 + mov r1, r8 + str r0, [r1] + movs r1, 0x32 + bl __divsi3 + adds r2, r0, 0x2 + mov r0, r8 + str r2, [r0] + ldr r1, _08029C08 @ =gUnknown_02024D28 + ldrb r0, [r6] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + bge _08029BD4 + lsls r0, r2, 4 + subs r0, r2 + movs r1, 0xA + bl __divsi3 + mov r1, r8 + str r0, [r1] +_08029BD4: + mov r2, r9 + ldrb r0, [r2] + adds r0, 0x1 + strb r0, [r2] + b _08029C46 + .align 2, 0 +_08029BE0: .4byte gUnknown_02024D1E +_08029BE4: .4byte gUnknown_030041C0 +_08029BE8: .4byte gUnknown_02024C07 +_08029BEC: .4byte gUnknown_02024C10 +_08029BF0: .4byte gUnknown_02024BEC +_08029BF4: .4byte gBaseStats +_08029BF8: .4byte gBattleMoves +_08029BFC: .4byte gUnknown_02024BE6 +_08029C00: .4byte gBattleMons +_08029C04: .4byte gUnknown_02024C08 +_08029C08: .4byte gUnknown_02024D28 +_08029C0C: + mov r0, r8 + cmp r0, 0 + beq _08029C2C + ldr r3, _08029C28 @ =gUnknown_02024C10 + 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] + b _08029C40 + .align 2, 0 +_08029C28: .4byte gUnknown_02024C10 +_08029C2C: + ldr r3, _08029C54 @ =gUnknown_02024C10 + ldr r2, [r3] + 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] +_08029C40: + lsls r0, 24 + orrs r1, r0 + str r1, [r3] +_08029C46: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08029C54: .4byte gUnknown_02024C10 + thumb_func_end atkC4_802B910 + + thumb_func_start atkC5_hidepreattack +atkC5_hidepreattack: @ 8029C58 + push {lr} + ldr r0, _08029C6C @ =gUnknown_02024BE6 + ldrh r1, [r0] + cmp r1, 0x5B + beq _08029C98 + cmp r1, 0x5B + bgt _08029C70 + cmp r1, 0x13 + beq _08029C7C + b _08029CC4 + .align 2, 0 +_08029C6C: .4byte gUnknown_02024BE6 +_08029C70: + ldr r0, _08029C8C @ =0x00000123 + cmp r1, r0 + beq _08029CB0 + adds r0, 0x31 + cmp r1, r0 + bne _08029CC4 +_08029C7C: + ldr r2, _08029C90 @ =gUnknown_02024C98 + ldr r0, _08029C94 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x40 + b _08029CC0 + .align 2, 0 +_08029C8C: .4byte 0x00000123 +_08029C90: .4byte gUnknown_02024C98 +_08029C94: .4byte gUnknown_02024C07 +_08029C98: + ldr r2, _08029CA8 @ =gUnknown_02024C98 + ldr r0, _08029CAC @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + b _08029CC0 + .align 2, 0 +_08029CA8: .4byte gUnknown_02024C98 +_08029CAC: .4byte gUnknown_02024C07 +_08029CB0: + ldr r2, _08029CD0 @ =gUnknown_02024C98 + ldr r0, _08029CD4 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 11 +_08029CC0: + orrs r0, r2 + str r0, [r1] +_08029CC4: + ldr r1, _08029CD8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08029CD0: .4byte gUnknown_02024C98 +_08029CD4: .4byte gUnknown_02024C07 +_08029CD8: .4byte gUnknown_02024C10 + thumb_func_end atkC5_hidepreattack + + thumb_func_start atkC6_unhidepostattack +atkC6_unhidepostattack: @ 8029CDC + push {lr} + ldr r0, _08029CF0 @ =gUnknown_02024BE6 + ldrh r1, [r0] + cmp r1, 0x5B + beq _08029D20 + cmp r1, 0x5B + bgt _08029CF4 + cmp r1, 0x13 + beq _08029D00 + b _08029D4E + .align 2, 0 +_08029CF0: .4byte gUnknown_02024BE6 +_08029CF4: + ldr r0, _08029D14 @ =0x00000123 + cmp r1, r0 + beq _08029D3C + adds r0, 0x31 + cmp r1, r0 + bne _08029D4E +_08029D00: + ldr r2, _08029D18 @ =gUnknown_02024C98 + ldr r0, _08029D1C @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x41 + negs r2, r2 + b _08029D4A + .align 2, 0 +_08029D14: .4byte 0x00000123 +_08029D18: .4byte gUnknown_02024C98 +_08029D1C: .4byte gUnknown_02024C07 +_08029D20: + ldr r2, _08029D34 @ =gUnknown_02024C98 + ldr r0, _08029D38 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x81 + negs r2, r2 + b _08029D4A + .align 2, 0 +_08029D34: .4byte gUnknown_02024C98 +_08029D38: .4byte gUnknown_02024C07 +_08029D3C: + ldr r2, _08029D5C @ =gUnknown_02024C98 + ldr r0, _08029D60 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + ldr r2, _08029D64 @ =0xfffbffff +_08029D4A: + ands r0, r2 + str r0, [r1] +_08029D4E: + ldr r1, _08029D68 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08029D5C: .4byte gUnknown_02024C98 +_08029D60: .4byte gUnknown_02024C07 +_08029D64: .4byte 0xfffbffff +_08029D68: .4byte gUnknown_02024C10 + thumb_func_end atkC6_unhidepostattack + + thumb_func_start atkC7_setminimize +atkC7_setminimize: @ 8029D6C + push {lr} + ldr r0, _08029D9C @ =gUnknown_02024C6C + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 18 + ands r0, r1 + cmp r0, 0 + beq _08029D90 + ldr r2, _08029DA0 @ =gUnknown_02024C98 + ldr r0, _08029DA4 @ =gUnknown_02024C07 + ldrb r1, [r0] + lsls r1, 2 + adds r1, r2 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 1 + orrs r0, r2 + str r0, [r1] +_08029D90: + ldr r1, _08029DA8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08029D9C: .4byte gUnknown_02024C6C +_08029DA0: .4byte gUnknown_02024C98 +_08029DA4: .4byte gUnknown_02024C07 +_08029DA8: .4byte gUnknown_02024C10 + thumb_func_end atkC7_setminimize + + thumb_func_start sub_8029DAC +sub_8029DAC: @ 8029DAC + push {lr} + ldr r3, _08029DD0 @ =word_2024DB8 + ldrh r1, [r3] + movs r2, 0x80 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08029DDC + ldr r2, _08029DD4 @ =gUnknown_02024C68 + ldrb r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2] + ldr r1, _08029DD8 @ =gUnknown_02024D1E + movs r0, 0x2 + strb r0, [r1, 0x5] + b _08029DEA + .align 2, 0 +_08029DD0: .4byte word_2024DB8 +_08029DD4: .4byte gUnknown_02024C68 +_08029DD8: .4byte gUnknown_02024D1E +_08029DDC: + strh r2, [r3] + ldr r0, _08029DF8 @ =gUnknown_02024D1E + movs r1, 0x5 + strb r1, [r0, 0x5] + ldr r0, _08029DFC @ =gUnknown_02024DBC + adds r0, 0x28 + strb r1, [r0] +_08029DEA: + ldr r1, _08029E00 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_08029DF8: .4byte gUnknown_02024D1E +_08029DFC: .4byte gUnknown_02024DBC +_08029E00: .4byte gUnknown_02024C10 + thumb_func_end sub_8029DAC + + thumb_func_start atkC9_jumpifattackandspecialattackcannotfall +atkC9_jumpifattackandspecialattackcannotfall: @ 8029E04 + push {r4,lr} + ldr r2, _08029E48 @ =gBattleMons + ldr r0, _08029E4C @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + movs r0, 0x19 + ldrsb r0, [r1, r0] + adds r3, r2, 0 + cmp r0, 0 + bne _08029E58 + movs r0, 0x1C + ldrsb r0, [r1, r0] + cmp r0, 0 + bne _08029E58 + ldr r0, _08029E50 @ =gUnknown_02024D1E + ldrb r0, [r0, 0x6] + cmp r0, 0x1 + beq _08029E58 + ldr r3, _08029E54 @ =gUnknown_02024C10 + 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 _08029E84 + .align 2, 0 +_08029E48: .4byte gBattleMons +_08029E4C: .4byte gUnknown_02024C08 +_08029E50: .4byte gUnknown_02024D1E +_08029E54: .4byte gUnknown_02024C10 +_08029E58: + ldr r4, _08029E8C @ =gUnknown_02024A60 + ldr r0, _08029E90 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r4] + ldr r2, _08029E94 @ =gUnknown_02024BEC + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + ldrh r0, [r0, 0x28] + str r0, [r2] + ldr r1, _08029E98 @ =0x00007fff + movs r0, 0 + bl dp01_build_cmdbuf_x18_0_aa_health_bar_update + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _08029E9C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_08029E84: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08029E8C: .4byte gUnknown_02024A60 +_08029E90: .4byte gUnknown_02024C07 +_08029E94: .4byte gUnknown_02024BEC +_08029E98: .4byte 0x00007fff +_08029E9C: .4byte gUnknown_02024C10 + thumb_func_end atkC9_jumpifattackandspecialattackcannotfall + + thumb_func_start atkCA_setforcedtarget +atkCA_setforcedtarget: @ 8029EA0 + push {r4,r5,lr} + ldr r4, _08029EE0 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + ldr r5, _08029EE4 @ =gUnknown_02024C80 + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + movs r0, 0x1 + strb r0, [r1, 0x8] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r4] + strb r0, [r1, 0x9] + ldr r1, _08029EE8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08029EE0: .4byte gUnknown_02024C07 +_08029EE4: .4byte gUnknown_02024C80 +_08029EE8: .4byte gUnknown_02024C10 + thumb_func_end atkCA_setforcedtarget + + thumb_func_start atkCB_setcharge +atkCB_setcharge: @ 8029EEC + push {r4,lr} + ldr r0, _08029F40 @ =gUnknown_02024C98 + ldr r3, _08029F44 @ =gUnknown_02024C07 + ldrb r1, [r3] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 2 + orrs r0, r2 + str r0, [r1] + ldr r4, _08029F48 @ =gUnknown_02024CA8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x12] + movs r1, 0x10 + negs r1, r1 + ands r1, r2 + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x12] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x12] + movs r1, 0xF + ands r1, r2 + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x12] + ldr r1, _08029F4C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08029F40: .4byte gUnknown_02024C98 +_08029F44: .4byte gUnknown_02024C07 +_08029F48: .4byte gUnknown_02024CA8 +_08029F4C: .4byte gUnknown_02024C10 + thumb_func_end atkCB_setcharge + + thumb_func_start atkCC_callterrainattack +atkCC_callterrainattack: @ 8029F50 + push {r4,lr} + ldr r2, _08029FA0 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _08029FA4 @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _08029FA8 @ =gUnknown_02024BE6 + ldr r1, _08029FAC @ =gNaturePowerMoves + ldr r0, _08029FB0 @ =gUnknown_0300428C + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _08029FB4 @ =gUnknown_02024C08 + strb r0, [r1] + ldr r3, _08029FB8 @ =gUnknown_081D6BBC + ldr r2, _08029FBC @ =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + bl b_movescr_stack_push + ldr r1, _08029FC0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08029FA0: .4byte gUnknown_02024C6C +_08029FA4: .4byte 0xfffffbff +_08029FA8: .4byte gUnknown_02024BE6 +_08029FAC: .4byte gNaturePowerMoves +_08029FB0: .4byte gUnknown_0300428C +_08029FB4: .4byte gUnknown_02024C08 +_08029FB8: .4byte gUnknown_081D6BBC +_08029FBC: .4byte gBattleMoves +_08029FC0: .4byte gUnknown_02024C10 + thumb_func_end atkCC_callterrainattack + + thumb_func_start atkCD_cureifburnedparalysedorpoisoned +atkCD_cureifburnedparalysedorpoisoned: @ 8029FC4 + push {r4-r6,lr} + sub sp, 0x4 + ldr r1, _0802A010 @ =gBattleMons + ldr r3, _0802A014 @ =gUnknown_02024C07 + ldrb r0, [r3] + movs r6, 0x58 + muls r0, r6 + adds r5, r1, 0 + adds r5, 0x4C + adds r2, r0, r5 + ldr r0, [r2] + movs r1, 0xD8 + ands r0, r1 + cmp r0, 0 + beq _0802A020 + movs r0, 0 + str r0, [r2] + ldr r1, _0802A018 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r4, _0802A01C @ =gUnknown_02024A60 + ldrb r0, [r3] + strb r0, [r4] + ldrb r0, [r4] + muls r0, r6 + adds r0, r5 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + b _0802A03A + .align 2, 0 +_0802A010: .4byte gBattleMons +_0802A014: .4byte gUnknown_02024C07 +_0802A018: .4byte gUnknown_02024C10 +_0802A01C: .4byte gUnknown_02024A60 +_0802A020: + ldr r3, _0802A044 @ =gUnknown_02024C10 + 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] +_0802A03A: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802A044: .4byte gUnknown_02024C10 + thumb_func_end atkCD_cureifburnedparalysedorpoisoned + + thumb_func_start atkCE_settorment +atkCE_settorment: @ 802A048 + push {lr} + ldr r1, _0802A080 @ =gBattleMons + ldr r0, _0802A084 @ =gUnknown_02024C08 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r1, [r0] + movs r2, 0x80 + lsls r2, 24 + cmp r1, 0 + bge _0802A08C + ldr r3, _0802A088 @ =gUnknown_02024C10 + 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 _0802A098 + .align 2, 0 +_0802A080: .4byte gBattleMons +_0802A084: .4byte gUnknown_02024C08 +_0802A088: .4byte gUnknown_02024C10 +_0802A08C: + orrs r1, r2 + str r1, [r0] + ldr r1, _0802A09C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802A098: + pop {r0} + bx r0 + .align 2, 0 +_0802A09C: .4byte gUnknown_02024C10 + thumb_func_end atkCE_settorment + + thumb_func_start atkCF_jumpifnodamage +atkCF_jumpifnodamage: @ 802A0A0 + push {lr} + ldr r2, _0802A0CC @ =gUnknown_02024D28 + ldr r0, _0802A0D0 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r0, r2, 0x4 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + bne _0802A0C0 + adds r0, r2, 0 + adds r0, 0x8 + adds r0, r1, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802A0D8 +_0802A0C0: + ldr r1, _0802A0D4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802A0F2 + .align 2, 0 +_0802A0CC: .4byte gUnknown_02024D28 +_0802A0D0: .4byte gUnknown_02024C07 +_0802A0D4: .4byte gUnknown_02024C10 +_0802A0D8: + ldr r3, _0802A0F8 @ =gUnknown_02024C10 + 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] +_0802A0F2: + pop {r0} + bx r0 + .align 2, 0 +_0802A0F8: .4byte gUnknown_02024C10 + thumb_func_end atkCF_jumpifnodamage + + thumb_func_start atkD0_settaunt +atkD0_settaunt: @ 802A0FC + push {r4,lr} + ldr r4, _0802A140 @ =gUnknown_02024CA8 + ldr r3, _0802A144 @ =gUnknown_02024C08 + ldrb r0, [r3] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r2, r1, r4 + ldrb r1, [r2, 0x13] + lsls r0, r1, 28 + cmp r0, 0 + bne _0802A14C + movs r0, 0x10 + negs r0, r0 + ands r0, r1 + movs r1, 0x2 + orrs r0, r1 + strb r0, [r2, 0x13] + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0, 0x13] + movs r1, 0xF + ands r1, r2 + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0, 0x13] + ldr r1, _0802A148 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802A166 + .align 2, 0 +_0802A140: .4byte gUnknown_02024CA8 +_0802A144: .4byte gUnknown_02024C08 +_0802A148: .4byte gUnknown_02024C10 +_0802A14C: + ldr r3, _0802A16C @ =gUnknown_02024C10 + 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] +_0802A166: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802A16C: .4byte gUnknown_02024C10 + thumb_func_end atkD0_settaunt + + thumb_func_start sub_802A170 +sub_802A170: @ 802A170 + push {r4,lr} + ldr r4, _0802A1D8 @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r3, _0802A1DC @ =gUnknown_02024C08 + strb r0, [r3] + ldr r0, _0802A1E0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802A1F4 + ldr r0, _0802A1E4 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _0802A1E8 @ =gBitTable + ldrb r3, [r3] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802A1F4 + ldr r1, _0802A1EC @ =gUnknown_02024D28 + ldrb r0, [r4] + lsls r0, 4 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 28 + cmp r0, 0 + blt _0802A1F4 + lsls r0, r3, 4 + adds r2, r0, r1 + ldrb r1, [r2] + lsls r0, r1, 28 + cmp r0, 0 + blt _0802A1F4 + movs r0, 0x8 + orrs r0, r1 + strb r0, [r2] + ldr r1, _0802A1F0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802A20E + .align 2, 0 +_0802A1D8: .4byte gUnknown_02024C07 +_0802A1DC: .4byte gUnknown_02024C08 +_0802A1E0: .4byte gUnknown_020239F8 +_0802A1E4: .4byte gUnknown_02024C0C +_0802A1E8: .4byte gBitTable +_0802A1EC: .4byte gUnknown_02024D28 +_0802A1F0: .4byte gUnknown_02024C10 +_0802A1F4: + ldr r3, _0802A214 @ =gUnknown_02024C10 + 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] +_0802A20E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802A214: .4byte gUnknown_02024C10 + thumb_func_end sub_802A170 + + thumb_func_start sub_802A218 +sub_802A218: @ 802A218 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + ldr r0, _0802A30C @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802A24C + ldr r0, _0802A310 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0802A314 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _0802A24C + ldr r0, _0802A318 @ =gTrainerBattleOpponent + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _0802A2EE +_0802A24C: + ldr r4, _0802A30C @ =gUnknown_02024C07 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r2, r0, 24 + ldr r0, _0802A310 @ =gUnknown_020239F8 + ldrh r1, [r0] + ldr r0, _0802A314 @ =0x00000902 + ands r0, r1 + cmp r0, 0 + bne _0802A290 + ldr r0, _0802A318 @ =gTrainerBattleOpponent + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + beq _0802A290 + ldr r0, _0802A31C @ =gUnknown_02024DBC + adds r0, 0x29 + adds r0, r2, r0 + ldrb r1, [r0] + ldr r3, _0802A320 @ =gBitTable + ldr r2, _0802A324 @ =gUnknown_02024A6A + ldrb r0, [r4] + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + lsls r0, 2 + adds r0, r3 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802A2EE +_0802A290: + ldr r0, _0802A328 @ =gBattleMons + mov r9, r0 + ldr r1, _0802A30C @ =gUnknown_02024C07 + ldrb r4, [r1] + movs r2, 0x58 + mov r8, r2 + mov r0, r8 + muls r0, r4 + mov r3, r9 + adds r5, r0, r3 + ldrh r3, [r5, 0x2E] + adds r1, r3, 0 + cmp r1, 0 + bne _0802A2BE + ldr r0, _0802A32C @ =gUnknown_02024C08 + ldrb r0, [r0] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + beq _0802A2EE +_0802A2BE: + cmp r1, 0xAF + beq _0802A2EE + ldr r7, _0802A32C @ =gUnknown_02024C08 + ldrb r0, [r7] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + mov r1, r9 + adds r2, r0, r1 + ldrh r1, [r2, 0x2E] + cmp r1, 0xAF + beq _0802A2EE + adds r0, r3, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bls _0802A2EE + adds r0, r1, 0 + subs r0, 0x79 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0xB + bhi _0802A334 +_0802A2EE: + ldr r3, _0802A330 @ =gUnknown_02024C10 + 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 _0802A49A + .align 2, 0 +_0802A30C: .4byte gUnknown_02024C07 +_0802A310: .4byte gUnknown_020239F8 +_0802A314: .4byte 0x00000902 +_0802A318: .4byte gTrainerBattleOpponent +_0802A31C: .4byte gUnknown_02024DBC +_0802A320: .4byte gBitTable +_0802A324: .4byte gUnknown_02024A6A +_0802A328: .4byte gBattleMons +_0802A32C: .4byte gUnknown_02024C08 +_0802A330: .4byte gUnknown_02024C10 +_0802A334: + adds r0, r2, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x3C + bne _0802A36C + ldr r1, _0802A360 @ =gUnknown_02024C10 + ldr r0, _0802A364 @ =gUnknown_081D9913 + str r0, [r1] + ldr r1, _0802A368 @ =byte_2024C06 + ldrb r0, [r7] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + ldrb r1, [r1] + bl sub_81074C4 + b _0802A49A + .align 2, 0 +_0802A360: .4byte gUnknown_02024C10 +_0802A364: .4byte gUnknown_081D9913 +_0802A368: .4byte byte_2024C06 +_0802A36C: + lsls r0, r4, 1 + ldr r4, _0802A458 @ =0x020160f0 + adds r6, r0, r4 + ldrh r5, [r5, 0x2E] + mov r10, r5 + strh r1, [r6] + ldr r3, _0802A45C @ =gUnknown_02024C07 + ldrb r0, [r3] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + movs r1, 0 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + mov r3, r10 + strh r3, [r0, 0x2E] + ldr r5, _0802A460 @ =gUnknown_02024A60 + ldr r1, _0802A45C @ =gUnknown_02024C07 + ldrb r0, [r1] + strb r0, [r5] + str r6, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldr r2, _0802A45C @ =gUnknown_02024C07 + ldrb r0, [r2] + bl dp01_battle_side_mark_buffer_for_execution + ldrb r0, [r7] + strb r0, [r5] + ldrb r0, [r7] + mov r3, r8 + muls r3, r0 + adds r0, r3, 0 + mov r1, r9 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r0, _0802A464 @ =0xfffe9f10 + adds r4, r0 + ldrb r0, [r7] + lsls r0, 1 + ldr r2, _0802A468 @ =0x000160e8 + adds r0, r2 + adds r0, r4 + movs r1, 0 + strb r1, [r0] + ldrb r0, [r7] + lsls r0, 1 + ldr r1, _0802A46C @ =0x000160e9 + adds r0, r1 + adds r0, r4 + movs r3, 0 + strb r3, [r0] + ldr r3, _0802A45C @ =gUnknown_02024C07 + ldrb r0, [r3] + lsls r0, 1 + adds r0, r2 + adds r0, r4 + movs r2, 0 + strb r2, [r0] + ldrb r0, [r3] + lsls r0, 1 + adds r0, r1 + adds r0, r4 + strb r2, [r0] + ldr r1, _0802A470 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r1, _0802A474 @ =gUnknown_030041C0 + movs r3, 0xFD + strb r3, [r1] + movs r2, 0xA + strb r2, [r1, 0x1] + ldrh r0, [r6] + strb r0, [r1, 0x2] + ldrh r0, [r6] + lsrs r0, 8 + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _0802A478 @ =gUnknown_03004290 + strb r3, [r1] + strb r2, [r1, 0x1] + mov r3, r10 + strb r3, [r1, 0x2] + mov r2, r10 + lsrs r0, r2, 8 + strb r0, [r1, 0x3] + movs r0, 0x1 + negs r0, r0 + strb r0, [r1, 0x4] + cmp r2, 0 + beq _0802A480 + ldrh r0, [r6] + cmp r0, 0 + beq _0802A494 + ldr r1, _0802A47C @ =gUnknown_02024D1E + movs r0, 0x2 + b _0802A498 + .align 2, 0 +_0802A458: .4byte 0x020160f0 +_0802A45C: .4byte gUnknown_02024C07 +_0802A460: .4byte gUnknown_02024A60 +_0802A464: .4byte 0xfffe9f10 +_0802A468: .4byte 0x000160e8 +_0802A46C: .4byte 0x000160e9 +_0802A470: .4byte gUnknown_02024C10 +_0802A474: .4byte gUnknown_030041C0 +_0802A478: .4byte gUnknown_03004290 +_0802A47C: .4byte gUnknown_02024D1E +_0802A480: + ldrh r0, [r6] + cmp r0, 0 + beq _0802A494 + ldr r0, _0802A490 @ =gUnknown_02024D1E + movs r3, 0 + strb r3, [r0, 0x5] + b _0802A49A + .align 2, 0 +_0802A490: .4byte gUnknown_02024D1E +_0802A494: + ldr r1, _0802A4AC @ =gUnknown_02024D1E + movs r0, 0x1 +_0802A498: + strb r0, [r1, 0x5] +_0802A49A: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A4AC: .4byte gUnknown_02024D1E + thumb_func_end sub_802A218 + + thumb_func_start sub_802A4B0 +sub_802A4B0: @ 802A4B0 + push {r4,lr} + ldr r3, _0802A4F0 @ =gBattleMons + ldr r4, _0802A4F4 @ =gUnknown_02024C08 + ldrb r0, [r4] + movs r2, 0x58 + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r1, [r0] + adds r0, r1, 0 + cmp r0, 0 + beq _0802A504 + cmp r0, 0x19 + beq _0802A504 + ldr r0, _0802A4F8 @ =gUnknown_02024C07 + ldrb r0, [r0] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + strb r1, [r0] + ldr r1, _0802A4FC @ =byte_2024C06 + ldrb r0, [r4] + muls r0, r2 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r1] + ldr r1, _0802A500 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802A51E + .align 2, 0 +_0802A4F0: .4byte gBattleMons +_0802A4F4: .4byte gUnknown_02024C08 +_0802A4F8: .4byte gUnknown_02024C07 +_0802A4FC: .4byte byte_2024C06 +_0802A500: .4byte gUnknown_02024C10 +_0802A504: + ldr r3, _0802A524 @ =gUnknown_02024C10 + 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] +_0802A51E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802A524: .4byte gUnknown_02024C10 + thumb_func_end sub_802A4B0 + + thumb_func_start atkD4_802C408 +atkD4_802C408: @ 802A528 + push {r4-r7,lr} + ldr r7, _0802A53C @ =gUnknown_02024C10 + ldr r2, [r7] + ldrb r3, [r2, 0x1] + cmp r3, 0 + beq _0802A540 + cmp r3, 0x1 + beq _0802A578 + b _0802A5F4 + .align 2, 0 +_0802A53C: .4byte gUnknown_02024C10 +_0802A540: + ldr r1, _0802A56C @ =gUnknown_02024DBC + ldr r4, _0802A570 @ =gUnknown_02024C07 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r5, [r4] + adds r3, r0, r5 + ldrb r0, [r3] + cmp r0, 0 + bne _0802A5C4 + movs r0, 0x2 + strb r0, [r3] + ldrb r0, [r4] + adds r1, 0x24 + adds r1, r0, r1 + ldr r2, _0802A574 @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r2 + ldrh r0, [r0] + strb r0, [r1] + ldr r0, [r7] + adds r0, 0x6 + b _0802A5F2 + .align 2, 0 +_0802A56C: .4byte gUnknown_02024DBC +_0802A570: .4byte gUnknown_02024C07 +_0802A574: .4byte gUnknown_02024A6A +_0802A578: + ldr r1, _0802A5DC @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x4 + strb r0, [r1, 0x1] + ldr r4, _0802A5E0 @ =gUnknown_02024C08 + ldrb r0, [r4] + strb r0, [r1, 0x2] + ldr r0, _0802A5E4 @ =gUnknown_02024DBC + adds r0, 0x24 + ldrb r5, [r4] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1, 0x3] + movs r0, 0xFF + strb r0, [r1, 0x4] + ldr r1, _0802A5E8 @ =gUnknown_02024BEC + ldr r6, _0802A5EC @ =gBattleMons + ldrb r0, [r4] + movs r5, 0x58 + muls r0, r5 + adds r0, r6 + ldrh r0, [r0, 0x2C] + lsrs r0, 1 + str r0, [r1] + cmp r0, 0 + bne _0802A5B0 + str r3, [r1] +_0802A5B0: + ldr r0, [r1] + negs r0, r0 + str r0, [r1] + ldrb r0, [r4] + muls r0, r5 + adds r0, r6 + ldrh r1, [r0, 0x28] + ldrh r0, [r0, 0x2C] + cmp r1, r0 + bne _0802A5F0 +_0802A5C4: + 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, [r7] + b _0802A5F4 + .align 2, 0 +_0802A5DC: .4byte gUnknown_030041C0 +_0802A5E0: .4byte gUnknown_02024C08 +_0802A5E4: .4byte gUnknown_02024DBC +_0802A5E8: .4byte gUnknown_02024BEC +_0802A5EC: .4byte gBattleMons +_0802A5F0: + adds r0, r2, 0x6 +_0802A5F2: + str r0, [r7] +_0802A5F4: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end atkD4_802C408 + + thumb_func_start sub_802A5FC +sub_802A5FC: @ 802A5FC + push {lr} + ldr r1, _0802A634 @ =gUnknown_02024C98 + ldr r0, _0802A638 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 3 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0802A640 + ldr r3, _0802A63C @ =gUnknown_02024C10 + 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 _0802A64C + .align 2, 0 +_0802A634: .4byte gUnknown_02024C98 +_0802A638: .4byte gUnknown_02024C07 +_0802A63C: .4byte gUnknown_02024C10 +_0802A640: + orrs r1, r3 + str r1, [r2] + ldr r1, _0802A650 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802A64C: + pop {r0} + bx r0 + .align 2, 0 +_0802A650: .4byte gUnknown_02024C10 + thumb_func_end sub_802A5FC + + thumb_func_start atkD6_doubledamagedealtifdamaged +atkD6_doubledamagedealtifdamaged: @ 802A654 + push {lr} + ldr r3, _0802A6A4 @ =gUnknown_02024D28 + ldr r0, _0802A6A8 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r0, r3, 0x4 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802A674 + adds r0, r2, r3 + ldr r1, _0802A6AC @ =gUnknown_02024C08 + ldrb r0, [r0, 0xC] + ldrb r1, [r1] + cmp r0, r1 + beq _0802A68C +_0802A674: + adds r0, r3, 0 + adds r0, 0x8 + adds r0, r2, r0 + ldr r0, [r0] + cmp r0, 0 + beq _0802A696 + adds r0, r2, r3 + ldr r1, _0802A6AC @ =gUnknown_02024C08 + ldrb r0, [r0, 0xD] + ldrb r1, [r1] + cmp r0, r1 + bne _0802A696 +_0802A68C: + ldr r0, _0802A6B0 @ =0x02000000 + ldr r1, _0802A6B4 @ =0x0001601f + adds r0, r1 + movs r1, 0x2 + strb r1, [r0] +_0802A696: + ldr r1, _0802A6B8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802A6A4: .4byte gUnknown_02024D28 +_0802A6A8: .4byte gUnknown_02024C07 +_0802A6AC: .4byte gUnknown_02024C08 +_0802A6B0: .4byte 0x02000000 +_0802A6B4: .4byte 0x0001601f +_0802A6B8: .4byte gUnknown_02024C10 + thumb_func_end atkD6_doubledamagedealtifdamaged + + thumb_func_start sub_802A6BC +sub_802A6BC: @ 802A6BC + push {r4,lr} + ldr r1, _0802A700 @ =gUnknown_02024C98 + ldr r0, _0802A704 @ =gUnknown_02024C08 + ldrb r3, [r0] + lsls r0, r3, 2 + adds r4, r0, r1 + ldr r2, [r4] + movs r0, 0xC0 + lsls r0, 5 + ands r0, r2 + cmp r0, 0 + bne _0802A6E4 + ldr r1, _0802A708 @ =gBattleMons + movs r0, 0x58 + muls r0, r3 + adds r1, 0x4C + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0802A710 +_0802A6E4: + ldr r3, _0802A70C @ =gUnknown_02024C10 + 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 _0802A720 + .align 2, 0 +_0802A700: .4byte gUnknown_02024C98 +_0802A704: .4byte gUnknown_02024C08 +_0802A708: .4byte gBattleMons +_0802A70C: .4byte gUnknown_02024C10 +_0802A710: + movs r0, 0x80 + lsls r0, 5 + orrs r2, r0 + str r2, [r4] + ldr r1, _0802A728 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802A720: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802A728: .4byte gUnknown_02024C10 + thumb_func_end sub_802A6BC + + thumb_func_start atkD8_setdamagetohealthdifference +atkD8_setdamagetohealthdifference: @ 802A72C + push {lr} + ldr r2, _0802A768 @ =gBattleMons + ldr r0, _0802A76C @ =gUnknown_02024C08 + ldrb r0, [r0] + movs r1, 0x58 + muls r0, r1 + adds r3, r0, r2 + ldr r0, _0802A770 @ =gUnknown_02024C07 + ldrb r0, [r0] + muls r0, r1 + adds r1, r0, r2 + ldrh r0, [r3, 0x28] + ldrh r2, [r1, 0x28] + cmp r0, r2 + bhi _0802A778 + ldr r3, _0802A774 @ =gUnknown_02024C10 + 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 _0802A78A + .align 2, 0 +_0802A768: .4byte gBattleMons +_0802A76C: .4byte gUnknown_02024C08 +_0802A770: .4byte gUnknown_02024C07 +_0802A774: .4byte gUnknown_02024C10 +_0802A778: + ldr r2, _0802A790 @ =gUnknown_02024BEC + ldrh r0, [r3, 0x28] + ldrh r1, [r1, 0x28] + subs r0, r1 + str r0, [r2] + ldr r1, _0802A794 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802A78A: + pop {r0} + bx r0 + .align 2, 0 +_0802A790: .4byte gUnknown_02024BEC +_0802A794: .4byte gUnknown_02024C10 + thumb_func_end atkD8_setdamagetohealthdifference + + thumb_func_start atkD9_scaledamagebyhealthratio +atkD9_scaledamagebyhealthratio: @ 802A798 + push {r4,lr} + ldr r4, _0802A7E4 @ =gUnknown_02024DEC + ldrh r0, [r4] + cmp r0, 0 + bne _0802A7D4 + ldr r2, _0802A7E8 @ =gBattleMoves + ldr r0, _0802A7EC @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r3, [r0, 0x1] + ldr r2, _0802A7F0 @ =gBattleMons + ldr r0, _0802A7F4 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldrh r0, [r1, 0x28] + muls r0, r3 + ldrh r1, [r1, 0x2C] + bl __divsi3 + strh r0, [r4] + lsls r0, 16 + cmp r0, 0 + bne _0802A7D4 + movs r0, 0x1 + strh r0, [r4] +_0802A7D4: + ldr r1, _0802A7F8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802A7E4: .4byte gUnknown_02024DEC +_0802A7E8: .4byte gBattleMoves +_0802A7EC: .4byte gUnknown_02024BE6 +_0802A7F0: .4byte gBattleMons +_0802A7F4: .4byte gUnknown_02024C07 +_0802A7F8: .4byte gUnknown_02024C10 + thumb_func_end atkD9_scaledamagebyhealthratio + + thumb_func_start atkDA_abilityswap +atkDA_abilityswap: @ 802A7FC + push {r4-r6,lr} + ldr r5, _0802A860 @ =gBattleMons + ldr r0, _0802A864 @ =gUnknown_02024C07 + ldrb r0, [r0] + movs r4, 0x58 + muls r0, r4 + adds r0, r5 + adds r2, r0, 0 + adds r2, 0x20 + ldrb r1, [r2] + cmp r1, 0 + bne _0802A824 + ldr r0, _0802A868 @ =gUnknown_02024C08 + ldrb r0, [r0] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0 + beq _0802A844 +_0802A824: + cmp r1, 0x19 + beq _0802A844 + ldr r6, _0802A868 @ =gUnknown_02024C08 + ldrb r0, [r6] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + ldrb r3, [r0] + cmp r3, 0x19 + beq _0802A844 + ldr r0, _0802A86C @ =gUnknown_02024C68 + ldrb r1, [r0] + movs r0, 0x29 + ands r0, r1 + cmp r0, 0 + beq _0802A874 +_0802A844: + ldr r3, _0802A870 @ =gUnknown_02024C10 + 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 _0802A88A + .align 2, 0 +_0802A860: .4byte gBattleMons +_0802A864: .4byte gUnknown_02024C07 +_0802A868: .4byte gUnknown_02024C08 +_0802A86C: .4byte gUnknown_02024C68 +_0802A870: .4byte gUnknown_02024C10 +_0802A874: + ldrb r1, [r2] + strb r3, [r2] + ldrb r0, [r6] + muls r0, r4 + adds r0, r5 + adds r0, 0x20 + strb r1, [r0] + ldr r1, _0802A890 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802A88A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802A890: .4byte gUnknown_02024C10 + thumb_func_end atkDA_abilityswap + + thumb_func_start atkDB_imprisoneffect +atkDB_imprisoneffect: @ 802A894 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r0, 0 + mov r8, r0 + ldr r1, _0802A8B8 @ =gUnknown_02024C98 + ldr r0, _0802A8BC @ =gUnknown_02024C07 + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 6 + ands r0, r1 + cmp r0, 0 + beq _0802A8E8 + b _0802A95E + .align 2, 0 +_0802A8B8: .4byte gUnknown_02024C98 +_0802A8BC: .4byte gUnknown_02024C07 +_0802A8C0: + ldr r0, _0802A8E0 @ =gUnknown_02024C98 + mov r2, r9 + ldrb r1, [r2] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + movs r2, 0x80 + lsls r2, 6 + orrs r0, r2 + str r0, [r1] + ldr r1, _0802A8E4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802A956 + .align 2, 0 +_0802A8E0: .4byte gUnknown_02024C98 +_0802A8E4: .4byte gUnknown_02024C10 +_0802A8E8: + adds r0, r2, 0 + bl sub_801529C + movs r6, 0 + b _0802A94E +_0802A8F2: + adds r0, r6, 0 + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r8, r0 + beq _0802A948 + movs r4, 0 + ldr r7, _0802A984 @ =gUnknown_02024C07 + mov r9, r7 + ldr r0, _0802A988 @ =gBattleMons + mov r12, r0 + mov r1, r9 + ldrb r0, [r1] + mov r2, r12 + adds r2, 0xC + movs r1, 0x58 + muls r0, r1 + adds r3, r0, r2 + adds r5, r6, 0 + muls r5, r1 +_0802A91C: + movs r2, 0 + ldrh r1, [r3] + mov r0, r12 + adds r0, 0xC + adds r0, r5, r0 +_0802A926: + ldrh r7, [r0] + cmp r1, r7 + bne _0802A930 + cmp r1, 0 + bne _0802A938 +_0802A930: + adds r0, 0x2 + adds r2, 0x1 + cmp r2, 0x3 + ble _0802A926 +_0802A938: + cmp r2, 0x4 + bne _0802A944 + adds r3, 0x2 + adds r4, 0x1 + cmp r4, 0x3 + ble _0802A91C +_0802A944: + cmp r4, 0x4 + bne _0802A8C0 +_0802A948: + adds r0, r6, 0x1 + lsls r0, 24 + lsrs r6, r0, 24 +_0802A94E: + ldr r0, _0802A98C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r6, r0 + bcc _0802A8F2 +_0802A956: + ldr r0, _0802A98C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r6, r0 + bne _0802A978 +_0802A95E: + ldr r3, _0802A990 @ =gUnknown_02024C10 + 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] +_0802A978: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802A984: .4byte gUnknown_02024C07 +_0802A988: .4byte gBattleMons +_0802A98C: .4byte gUnknown_02024A68 +_0802A990: .4byte gUnknown_02024C10 + thumb_func_end atkDB_imprisoneffect + + thumb_func_start atkDC_setgrudge +atkDC_setgrudge: @ 802A994 + push {lr} + ldr r1, _0802A9CC @ =gUnknown_02024C98 + ldr r0, _0802A9D0 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 7 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + beq _0802A9D8 + ldr r3, _0802A9D4 @ =gUnknown_02024C10 + 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 _0802A9E4 + .align 2, 0 +_0802A9CC: .4byte gUnknown_02024C98 +_0802A9D0: .4byte gUnknown_02024C07 +_0802A9D4: .4byte gUnknown_02024C10 +_0802A9D8: + orrs r1, r3 + str r1, [r2] + ldr r1, _0802A9E8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802A9E4: + pop {r0} + bx r0 + .align 2, 0 +_0802A9E8: .4byte gUnknown_02024C10 + thumb_func_end atkDC_setgrudge + + thumb_func_start atkDD_weightdamagecalculation +atkDD_weightdamagecalculation: @ 802A9EC + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + ldr r2, _0802AA50 @ =gWeightDamage + ldrh r0, [r2] + ldr r1, _0802AA54 @ =0x0000ffff + cmp r0, r1 + beq _0802AA64 + adds r6, r2, 0 + ldr r0, _0802AA58 @ =gBattleMons + mov r8, r0 + adds r7, r1, 0 + adds r4, r6, 0 +_0802AA08: + ldr r0, _0802AA5C @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + add r0, r8 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D54 + ldrh r1, [r4] + lsls r0, 16 + lsrs r0, 16 + cmp r1, r0 + bhi _0802AA36 + adds r4, 0x4 + adds r5, 0x2 + ldrh r0, [r4] + cmp r0, r7 + bne _0802AA08 +_0802AA36: + lsls r0, r5, 1 + adds r0, r6 + ldrh r1, [r0] + ldr r0, _0802AA54 @ =0x0000ffff + cmp r1, r0 + beq _0802AA64 + ldr r0, _0802AA60 @ =gUnknown_02024DEC + adds r1, r5, 0x1 + lsls r1, 1 + adds r1, r6 + ldrh r1, [r1] + strh r1, [r0] + b _0802AA6A + .align 2, 0 +_0802AA50: .4byte gWeightDamage +_0802AA54: .4byte 0x0000ffff +_0802AA58: .4byte gBattleMons +_0802AA5C: .4byte gUnknown_02024C08 +_0802AA60: .4byte gUnknown_02024DEC +_0802AA64: + ldr r1, _0802AA7C @ =gUnknown_02024DEC + movs r0, 0x78 + strh r0, [r1] +_0802AA6A: + ldr r1, _0802AA80 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802AA7C: .4byte gUnknown_02024DEC +_0802AA80: .4byte gUnknown_02024C10 + thumb_func_end atkDD_weightdamagecalculation + + thumb_func_start atkDE_asistattackselect +atkDE_asistattackselect: @ 802AA84 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + mov r10, r0 + ldr r0, _0802AB9C @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_get_per_side_status + movs r1, 0x1 + ands r1, r0 + ldr r0, _0802ABA0 @ =gPlayerParty + str r0, [sp] + cmp r1, 0 + beq _0802AAAC + ldr r1, _0802ABA4 @ =gEnemyParty + str r1, [sp] +_0802AAAC: + movs r2, 0 +_0802AAAE: + ldr r1, _0802ABA8 @ =gUnknown_02024A6A + ldr r0, _0802AB9C @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + adds r1, r2, 0x1 + str r1, [sp, 0x4] + ldrh r0, [r0] + cmp r2, r0 + beq _0802AB54 + movs r0, 0x64 + adds r6, r2, 0 + muls r6, r0 + ldr r0, [sp] + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _0802AB54 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _0802AB54 + movs r5, 0 + ldr r1, _0802ABAC @ =0x0000ffff + mov r8, r1 + mov r9, r6 + mov r1, r10 + lsls r0, r1, 1 + ldr r1, _0802ABB0 @ =0x02016024 + adds r6, r0, r1 +_0802AAF8: + movs r7, 0 + adds r1, r5, 0 + adds r1, 0xD + ldr r0, [sp] + add r0, r9 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r4, 0 + bl sub_802838C + lsls r0, 24 + adds r1, r5, 0x1 + cmp r0, 0 + bne _0802AB4E + ldr r0, _0802ABB4 @ =gUnknown_081FACFE + ldrh r2, [r0] + adds r3, r0, 0 + cmp r2, r8 + beq _0802AB42 + cmp r4, r2 + beq _0802AB38 + ldr r5, _0802ABAC @ =0x0000ffff + adds r2, r3, 0 +_0802AB2A: + adds r2, 0x2 + adds r7, 0x1 + ldrh r0, [r2] + cmp r0, r5 + beq _0802AB42 + cmp r4, r0 + bne _0802AB2A +_0802AB38: + lsls r0, r7, 1 + adds r0, r3 + ldrh r0, [r0] + cmp r0, r8 + bne _0802AB4E +_0802AB42: + cmp r4, 0 + beq _0802AB4E + strh r4, [r6] + adds r6, 0x2 + movs r0, 0x1 + add r10, r0 +_0802AB4E: + adds r5, r1, 0 + cmp r5, 0x3 + ble _0802AAF8 +_0802AB54: + ldr r2, [sp, 0x4] + cmp r2, 0x5 + ble _0802AAAE + mov r1, r10 + cmp r1, 0 + beq _0802ABCC + ldr r2, _0802ABB8 @ =gUnknown_02024C6C + ldr r0, [r2] + ldr r1, _0802ABBC @ =0xfffffbff + ands r0, r1 + str r0, [r2] + ldr r4, _0802ABC0 @ =gUnknown_02024BEA + bl Random + movs r1, 0xFF + ands r1, r0 + mov r0, r10 + muls r0, r1 + asrs r0, 8 + lsls r0, 1 + ldr r1, _0802ABB0 @ =0x02016024 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0 + bl sub_801B5C0 + ldr r1, _0802ABC4 @ =gUnknown_02024C08 + strb r0, [r1] + ldr r1, _0802ABC8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802ABE6 + .align 2, 0 +_0802AB9C: .4byte gUnknown_02024C07 +_0802ABA0: .4byte gPlayerParty +_0802ABA4: .4byte gEnemyParty +_0802ABA8: .4byte gUnknown_02024A6A +_0802ABAC: .4byte 0x0000ffff +_0802ABB0: .4byte 0x02016024 +_0802ABB4: .4byte gUnknown_081FACFE +_0802ABB8: .4byte gUnknown_02024C6C +_0802ABBC: .4byte 0xfffffbff +_0802ABC0: .4byte gUnknown_02024BEA +_0802ABC4: .4byte gUnknown_02024C08 +_0802ABC8: .4byte gUnknown_02024C10 +_0802ABCC: + ldr r3, _0802ABF8 @ =gUnknown_02024C10 + 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] +_0802ABE6: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802ABF8: .4byte gUnknown_02024C10 + thumb_func_end atkDE_asistattackselect + + thumb_func_start atkDF_setmagiccoat +atkDF_setmagiccoat: @ 802ABFC + push {lr} + ldr r1, _0802AC44 @ =gUnknown_02024C08 + ldr r3, _0802AC48 @ =gUnknown_02024C07 + ldrb r0, [r3] + strb r0, [r1] + ldr r2, _0802AC4C @ =gUnknown_02024D68 + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0802AC50 @ =gUnknown_02024A7E + ldrb r1, [r0] + ldr r0, _0802AC54 @ =gUnknown_02024A68 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _0802AC5C + ldr r3, _0802AC58 @ =gUnknown_02024C10 + 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 _0802AC74 + .align 2, 0 +_0802AC44: .4byte gUnknown_02024C08 +_0802AC48: .4byte gUnknown_02024C07 +_0802AC4C: .4byte gUnknown_02024D68 +_0802AC50: .4byte gUnknown_02024A7E +_0802AC54: .4byte gUnknown_02024A68 +_0802AC58: .4byte gUnknown_02024C10 +_0802AC5C: + ldr r0, _0802AC78 @ =gUnknown_02024D28 + ldrb r1, [r3] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + movs r2, 0x10 + orrs r0, r2 + strb r0, [r1] + ldr r1, _0802AC7C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802AC74: + pop {r0} + bx r0 + .align 2, 0 +_0802AC78: .4byte gUnknown_02024D28 +_0802AC7C: .4byte gUnknown_02024C10 + thumb_func_end atkDF_setmagiccoat + + thumb_func_start atkE0_setstealstatchange +atkE0_setstealstatchange: @ 802AC80 + push {lr} + ldr r2, _0802ACC4 @ =gUnknown_02024D68 + ldr r3, _0802ACC8 @ =gUnknown_02024C07 + ldrb r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + ldr r0, _0802ACCC @ =gUnknown_02024A7E + ldrb r1, [r0] + ldr r0, _0802ACD0 @ =gUnknown_02024A68 + ldrb r0, [r0] + subs r0, 0x1 + cmp r1, r0 + bne _0802ACD8 + ldr r3, _0802ACD4 @ =gUnknown_02024C10 + 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 _0802ACEE + .align 2, 0 +_0802ACC4: .4byte gUnknown_02024D68 +_0802ACC8: .4byte gUnknown_02024C07 +_0802ACCC: .4byte gUnknown_02024A7E +_0802ACD0: .4byte gUnknown_02024A68 +_0802ACD4: .4byte gUnknown_02024C10 +_0802ACD8: + ldr r0, _0802ACF4 @ =gUnknown_02024D28 + ldrb r1, [r3] + lsls r1, 4 + adds r1, r0 + ldrb r0, [r1] + orrs r0, r2 + strb r0, [r1] + ldr r1, _0802ACF8 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802ACEE: + pop {r0} + bx r0 + .align 2, 0 +_0802ACF4: .4byte gUnknown_02024D28 +_0802ACF8: .4byte gUnknown_02024C10 + thumb_func_end atkE0_setstealstatchange + + thumb_func_start atkE1_802CBE4 +atkE1_802CBE4: @ 802ACFC + push {r4-r6,lr} + ldr r4, _0802ADA0 @ =0x02000000 + ldr r1, _0802ADA4 @ =0x000160dd + adds r0, r4, r1 + ldrb r0, [r0] + subs r1, 0xDA + adds r4, r1 + strb r0, [r4] + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r5, r0, 24 + ldr r2, _0802ADA8 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r2] + movs r0, 0x9 + strb r0, [r2, 0x1] + ldr r3, _0802ADAC @ =gBattleMons + ldrb r1, [r4] + movs r0, 0x58 + muls r0, r1 + adds r0, r3 + adds r0, 0x20 + ldrb r0, [r0] + strb r0, [r2, 0x2] + movs r0, 0xFF + strb r0, [r2, 0x3] + ldr r2, _0802ADB0 @ =gUnknown_02024C08 + ldr r1, _0802ADB4 @ =gUnknown_02024A68 + ldrb r0, [r2] + ldrb r1, [r1] + cmp r0, r1 + bcs _0802AD84 + adds r4, r2, 0 + ldr r6, _0802ADB8 @ =gBitTable +_0802AD44: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, r5 + beq _0802AD66 + ldr r0, _0802ADBC @ =gUnknown_02024C0C + ldrb r1, [r0] + ldrb r0, [r4] + lsls r0, 2 + adds r0, r6 + ldr r0, [r0] + ands r1, r0 + ldr r2, _0802ADB4 @ =gUnknown_02024A68 + cmp r1, 0 + beq _0802AD7A +_0802AD66: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _0802ADB4 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + adds r2, r1, 0 + ldrb r1, [r2] + cmp r0, r1 + bcc _0802AD44 +_0802AD7A: + ldr r0, _0802ADB0 @ =gUnknown_02024C08 + ldrb r0, [r0] + ldrb r2, [r2] + cmp r0, r2 + bcc _0802ADC4 +_0802AD84: + ldr r3, _0802ADC0 @ =gUnknown_02024C10 + 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 _0802ADCC + .align 2, 0 +_0802ADA0: .4byte 0x02000000 +_0802ADA4: .4byte 0x000160dd +_0802ADA8: .4byte gUnknown_030041C0 +_0802ADAC: .4byte gBattleMons +_0802ADB0: .4byte gUnknown_02024C08 +_0802ADB4: .4byte gUnknown_02024A68 +_0802ADB8: .4byte gBitTable +_0802ADBC: .4byte gUnknown_02024C0C +_0802ADC0: .4byte gUnknown_02024C10 +_0802ADC4: + ldr r1, _0802ADD4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802ADCC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802ADD4: .4byte gUnknown_02024C10 + thumb_func_end atkE1_802CBE4 + + thumb_func_start sub_802ADD8 +sub_802ADD8: @ 802ADD8 + push {r4-r7,lr} + sub sp, 0x4 + ldr r6, _0802AE44 @ =gUnknown_02024C10 + ldr r0, [r6] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r5, _0802AE48 @ =gUnknown_02024A60 + strb r0, [r5] + ldr r4, _0802AE4C @ =gBattleMons + ldrb r0, [r5] + movs r1, 0x58 + mov r12, r1 + mov r1, r12 + muls r1, r0 + adds r0, r1, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1E + bne _0802AE34 + adds r4, 0x4C + adds r1, r4 + movs r0, 0 + str r0, [r1] + ldr r2, _0802AE50 @ =gBitTable + ldr r1, _0802AE54 @ =0x02000000 + ldrb r3, [r5] + ldr r7, _0802AE58 @ =0x00016064 + adds r0, r3, r7 + adds r0, r1 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0] + mov r0, r12 + muls r0, r3 + adds r0, r4 + str r0, [sp] + movs r0, 0 + movs r1, 0x28 + movs r3, 0x4 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution +_0802AE34: + ldr r0, [r6] + adds r0, 0x2 + str r0, [r6] + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802AE44: .4byte gUnknown_02024C10 +_0802AE48: .4byte gUnknown_02024A60 +_0802AE4C: .4byte gBattleMons +_0802AE50: .4byte gBitTable +_0802AE54: .4byte 0x02000000 +_0802AE58: .4byte 0x00016064 + thumb_func_end sub_802ADD8 + + thumb_func_start atkE3_jumpiffainted +atkE3_jumpiffainted: @ 802AE5C + push {r4,lr} + ldr r4, _0802AE98 @ =gUnknown_02024C10 + ldr r0, [r4] + ldrb r0, [r0, 0x1] + bl sub_8015150 + ldr r1, _0802AE9C @ =gUnknown_02024A60 + strb r0, [r1] + ldr r2, _0802AEA0 @ =gBattleMons + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0, 0x28] + cmp r0, 0 + bne _0802AEA4 + ldr r2, [r4] + 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, [r4] + b _0802AEAA + .align 2, 0 +_0802AE98: .4byte gUnknown_02024C10 +_0802AE9C: .4byte gUnknown_02024A60 +_0802AEA0: .4byte gBattleMons +_0802AEA4: + ldr r0, [r4] + adds r0, 0x6 + str r0, [r4] +_0802AEAA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end atkE3_jumpiffainted + + thumb_func_start sub_802AEB0 +sub_802AEB0: @ 802AEB0 + push {lr} + ldr r0, _0802AEC4 @ =gUnknown_0300428C + ldrb r0, [r0] + cmp r0, 0x7 + bhi _0802AF4C + lsls r0, 2 + ldr r1, _0802AEC8 @ =_0802AECC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802AEC4: .4byte gUnknown_0300428C +_0802AEC8: .4byte _0802AECC + .align 2, 0 +_0802AECC: + .4byte _0802AEEC + .4byte _0802AEF8 + .4byte _0802AF04 + .4byte _0802AF10 + .4byte _0802AF1C + .4byte _0802AF28 + .4byte _0802AF34 + .4byte _0802AF40 +_0802AEEC: + ldr r1, _0802AEF4 @ =gUnknown_02024D1E + movs r0, 0x2 + b _0802AF50 + .align 2, 0 +_0802AEF4: .4byte gUnknown_02024D1E +_0802AEF8: + ldr r1, _0802AF00 @ =gUnknown_02024D1E + movs r0, 0x1 + b _0802AF50 + .align 2, 0 +_0802AF00: .4byte gUnknown_02024D1E +_0802AF04: + ldr r1, _0802AF0C @ =gUnknown_02024D1E + movs r0, 0x1B + b _0802AF50 + .align 2, 0 +_0802AF0C: .4byte gUnknown_02024D1E +_0802AF10: + ldr r1, _0802AF18 @ =gUnknown_02024D1E + movs r0, 0x17 + b _0802AF50 + .align 2, 0 +_0802AF18: .4byte gUnknown_02024D1E +_0802AF1C: + ldr r1, _0802AF24 @ =gUnknown_02024D1E + movs r0, 0x16 + b _0802AF50 + .align 2, 0 +_0802AF24: .4byte gUnknown_02024D1E +_0802AF28: + ldr r1, _0802AF30 @ =gUnknown_02024D1E + movs r0, 0x18 + b _0802AF50 + .align 2, 0 +_0802AF30: .4byte gUnknown_02024D1E +_0802AF34: + ldr r1, _0802AF3C @ =gUnknown_02024D1E + movs r0, 0x7 + b _0802AF50 + .align 2, 0 +_0802AF3C: .4byte gUnknown_02024D1E +_0802AF40: + ldr r1, _0802AF48 @ =gUnknown_02024D1E + movs r0, 0x8 + b _0802AF50 + .align 2, 0 +_0802AF48: .4byte gUnknown_02024D1E +_0802AF4C: + ldr r1, _0802AF60 @ =gUnknown_02024D1E + movs r0, 0x5 +_0802AF50: + strb r0, [r1, 0x3] + ldr r1, _0802AF64 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r0} + bx r0 + .align 2, 0 +_0802AF60: .4byte gUnknown_02024D1E +_0802AF64: .4byte gUnknown_02024C10 + thumb_func_end sub_802AEB0 + + thumb_func_start sub_802AF68 +sub_802AF68: @ 802AF68 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + movs r7, 0 + ldr r0, _0802AFB4 @ =gBaseStats + mov r9, r0 + ldr r1, _0802AFB8 @ =gPickupItems + mov r8, r1 +_0802AF7A: + movs r0, 0x64 + adds r4, r7, 0 + muls r4, r0 + ldr r0, _0802AFBC @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + cmp r0, 0 + beq _0802AFC0 + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x17] + b _0802AFCA + .align 2, 0 +_0802AFB4: .4byte gBaseStats +_0802AFB8: .4byte gPickupItems +_0802AFBC: .4byte gPlayerParty +_0802AFC0: + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x16] +_0802AFCA: + adds r4, r7, 0x1 + cmp r0, 0x35 + bne _0802B032 + cmp r5, 0 + beq _0802B032 + movs r0, 0xCE + lsls r0, 1 + cmp r5, r0 + beq _0802B032 + cmp r6, 0 + bne _0802B032 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _0802B032 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x64 + bl __umodsi3 + lsls r0, 16 + lsrs r3, r0, 16 + movs r2, 0 + mov r1, r8 + ldrh r0, [r1, 0x2] + cmp r0, r3 + bgt _0802B020 + adds r1, 0x2 +_0802B012: + adds r1, 0x4 + adds r2, 0x2 + cmp r2, 0x11 + bgt _0802B020 + ldrh r0, [r1] + cmp r0, r3 + ble _0802B012 +_0802B020: + movs r0, 0x64 + muls r0, r7 + ldr r1, _0802B04C @ =gPlayerParty + adds r0, r1 + lsls r2, 1 + add r2, r8 + movs r1, 0xC + bl SetMonData +_0802B032: + adds r7, r4, 0 + cmp r7, 0x5 + ble _0802AF7A + ldr r1, _0802B050 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B04C: .4byte gPlayerParty +_0802B050: .4byte gUnknown_02024C10 + thumb_func_end sub_802AF68 + + thumb_func_start atkE6_castform_transform +atkE6_castform_transform: @ 802B054 + push {r4,lr} + ldr r4, _0802B0A8 @ =gUnknown_02024A60 + ldr r3, _0802B0AC @ =0x02000000 + ldr r1, _0802B0B0 @ =0x00016003 + adds r0, r3, r1 + ldrb r0, [r0] + strb r0, [r4] + ldr r1, _0802B0B4 @ =gBattleMons + ldrb r2, [r4] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 17 + ands r0, r1 + cmp r0, 0 + beq _0802B086 + ldr r0, _0802B0B8 @ =0x0001609b + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x80 + orrs r0, r1 + strb r0, [r2] +_0802B086: + ldr r1, _0802B0B8 @ =0x0001609b + adds r0, r3, r1 + ldrb r2, [r0] + movs r0, 0 + movs r1, 0 + bl dp01_build_cmdbuf_x34_a_bb_aka_battle_anim + ldrb r0, [r4] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0802B0BC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802B0A8: .4byte gUnknown_02024A60 +_0802B0AC: .4byte 0x02000000 +_0802B0B0: .4byte 0x00016003 +_0802B0B4: .4byte gBattleMons +_0802B0B8: .4byte 0x0001609b +_0802B0BC: .4byte gUnknown_02024C10 + thumb_func_end atkE6_castform_transform + + thumb_func_start atkE7_castform_switch +atkE7_castform_switch: @ 802B0C0 + push {r4,r5,lr} + ldr r1, _0802B0F4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r5, _0802B0F8 @ =0x02000000 + ldr r1, _0802B0FC @ =0x00016003 + adds r0, r5, r1 + ldrb r0, [r0] + bl castform_switch + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0802B0EC + ldr r0, _0802B100 @ =gUnknown_081D977D + bl b_push_move_exec + subs r1, r4, 0x1 + ldr r2, _0802B104 @ =0x0001609b + adds r0, r5, r2 + strb r1, [r0] +_0802B0EC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802B0F4: .4byte gUnknown_02024C10 +_0802B0F8: .4byte 0x02000000 +_0802B0FC: .4byte 0x00016003 +_0802B100: .4byte gUnknown_081D977D +_0802B104: .4byte 0x0001609b + thumb_func_end atkE7_castform_switch + + thumb_func_start atkE8_settypebasedhalvers +atkE8_settypebasedhalvers: @ 802B108 + push {r4,lr} + movs r4, 0 + ldr r2, _0802B144 @ =gBattleMoves + ldr r0, _0802B148 @ =gUnknown_02024BE6 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0xC9 + bne _0802B158 + ldr r1, _0802B14C @ =gUnknown_02024C98 + ldr r0, _0802B150 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 9 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _0802B17C + orrs r1, r3 + str r1, [r2] + ldr r0, _0802B154 @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + b _0802B180 + .align 2, 0 +_0802B144: .4byte gBattleMoves +_0802B148: .4byte gUnknown_02024BE6 +_0802B14C: .4byte gUnknown_02024C98 +_0802B150: .4byte gUnknown_02024C07 +_0802B154: .4byte gUnknown_02024D1E +_0802B158: + ldr r1, _0802B18C @ =gUnknown_02024C98 + ldr r0, _0802B190 @ =gUnknown_02024C07 + ldrb r0, [r0] + lsls r0, 2 + adds r2, r0, r1 + ldr r1, [r2] + movs r3, 0x80 + lsls r3, 10 + adds r0, r1, 0 + ands r0, r3 + cmp r0, 0 + bne _0802B17C + orrs r1, r3 + str r1, [r2] + ldr r1, _0802B194 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + movs r4, 0x1 +_0802B17C: + cmp r4, 0 + beq _0802B19C +_0802B180: + ldr r1, _0802B198 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802B1B6 + .align 2, 0 +_0802B18C: .4byte gUnknown_02024C98 +_0802B190: .4byte gUnknown_02024C07 +_0802B194: .4byte gUnknown_02024D1E +_0802B198: .4byte gUnknown_02024C10 +_0802B19C: + ldr r3, _0802B1BC @ =gUnknown_02024C10 + 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] +_0802B1B6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802B1BC: .4byte gUnknown_02024C10 + thumb_func_end atkE8_settypebasedhalvers + + thumb_func_start sub_802B1C0 +sub_802B1C0: @ 802B1C0 + push {lr} + sub sp, 0x4 + movs r0, 0 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0xD + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0802B276 + str r0, [sp] + movs r0, 0x13 + movs r1, 0 + movs r2, 0x4D + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + bne _0802B276 + ldr r3, _0802B218 @ =word_2024DB8 + ldrb r0, [r3] + ldr r2, _0802B21C @ =0x02000000 + cmp r0, 0 + beq _0802B202 + ldr r0, _0802B220 @ =0x0001601f + adds r1, r2, r0 + movs r0, 0x2 + strb r0, [r1] +_0802B202: + ldrh r1, [r3] + movs r0, 0x7 + ands r0, r1 + cmp r0, 0 + beq _0802B228 + ldr r0, _0802B224 @ =0x0001601c + adds r1, r2, r0 + movs r0, 0x8B + strb r0, [r1] + b _0802B276 + .align 2, 0 +_0802B218: .4byte word_2024DB8 +_0802B21C: .4byte 0x02000000 +_0802B220: .4byte 0x0001601f +_0802B224: .4byte 0x0001601c +_0802B228: + movs r0, 0x18 + ands r0, r1 + cmp r0, 0 + beq _0802B240 + ldr r0, _0802B23C @ =0x0001601c + adds r1, r2, r0 + movs r0, 0x85 + strb r0, [r1] + b _0802B276 + .align 2, 0 +_0802B23C: .4byte 0x0001601c +_0802B240: + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + beq _0802B258 + ldr r0, _0802B254 @ =0x0001601c + adds r1, r2, r0 + movs r0, 0x8A + strb r0, [r1] + b _0802B276 + .align 2, 0 +_0802B254: .4byte 0x0001601c +_0802B258: + movs r3, 0x80 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0802B270 + ldr r0, _0802B26C @ =0x0001601c + adds r1, r2, r0 + movs r0, 0x8F + strb r0, [r1] + b _0802B276 + .align 2, 0 +_0802B26C: .4byte 0x0001601c +_0802B270: + ldr r1, _0802B284 @ =0x0001601c + adds r0, r2, r1 + strb r3, [r0] +_0802B276: + ldr r1, _0802B288 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0802B284: .4byte 0x0001601c +_0802B288: .4byte gUnknown_02024C10 + thumb_func_end sub_802B1C0 + + thumb_func_start atkEA_recycleitem +atkEA_recycleitem: @ 802B28C + push {r4-r7,lr} + sub sp, 0x4 + ldr r7, _0802B2F0 @ =gUnknown_02024A60 + ldr r0, _0802B2F4 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r7] + ldrb r2, [r7] + lsls r1, r2, 1 + ldr r0, _0802B2F8 @ =0x020160cc + adds r6, r1, r0 + ldrh r5, [r6] + cmp r5, 0 + beq _0802B308 + ldr r4, _0802B2FC @ =gBattleMons + movs r3, 0x58 + adds r0, r2, 0 + muls r0, r3 + adds r0, r4 + ldrh r0, [r0, 0x2E] + cmp r0, 0 + bne _0802B308 + ldr r1, _0802B300 @ =gUnknown_02024C04 + strh r5, [r1] + strh r0, [r6] + ldrb r0, [r7] + muls r0, r3 + adds r0, r4 + ldrh r1, [r1] + strh r1, [r0, 0x2E] + ldrb r0, [r7] + muls r0, r3 + adds r1, r4, 0 + adds r1, 0x2E + adds r0, r1 + str r0, [sp] + movs r0, 0 + movs r1, 0x2 + movs r2, 0 + movs r3, 0x2 + bl dp01_build_cmdbuf_x02_a_b_varargs + ldrb r0, [r7] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0802B304 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802B322 + .align 2, 0 +_0802B2F0: .4byte gUnknown_02024A60 +_0802B2F4: .4byte gUnknown_02024C07 +_0802B2F8: .4byte 0x020160cc +_0802B2FC: .4byte gBattleMons +_0802B300: .4byte gUnknown_02024C04 +_0802B304: .4byte gUnknown_02024C10 +_0802B308: + ldr r3, _0802B32C @ =gUnknown_02024C10 + 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] +_0802B322: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B32C: .4byte gUnknown_02024C10 + thumb_func_end atkEA_recycleitem + + thumb_func_start atkEB_settypetoterrain +atkEB_settypetoterrain: @ 802B330 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0802B3A0 @ =gBattleMons + mov r8, r0 + ldr r7, _0802B3A4 @ =gUnknown_02024C07 + ldrb r0, [r7] + movs r6, 0x58 + muls r0, r6 + mov r1, r8 + adds r3, r0, r1 + movs r0, 0x21 + adds r0, r3 + mov r12, r0 + ldr r5, _0802B3A8 @ =gTerrainToType + ldr r4, _0802B3AC @ =gUnknown_0300428C + ldrb r0, [r4] + adds r0, r5 + ldrb r2, [r0] + mov r1, r12 + ldrb r0, [r1] + adds r1, r2, 0 + cmp r0, r1 + beq _0802B3B8 + adds r0, r3, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, r1 + beq _0802B3B8 + mov r0, r12 + strb r2, [r0] + ldrb r0, [r7] + adds r1, r0, 0 + muls r1, r6 + add r1, r8 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + adds r1, 0x22 + strb r0, [r1] + ldr r1, _0802B3B0 @ =gUnknown_030041C0 + movs r0, 0xFD + strb r0, [r1] + movs r0, 0x3 + strb r0, [r1, 0x1] + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + strb r0, [r1, 0x2] + movs r0, 0xFF + strb r0, [r1, 0x3] + ldr r1, _0802B3B4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802B3D2 + .align 2, 0 +_0802B3A0: .4byte gBattleMons +_0802B3A4: .4byte gUnknown_02024C07 +_0802B3A8: .4byte gTerrainToType +_0802B3AC: .4byte gUnknown_0300428C +_0802B3B0: .4byte gUnknown_030041C0 +_0802B3B4: .4byte gUnknown_02024C10 +_0802B3B8: + ldr r3, _0802B3DC @ =gUnknown_02024C10 + 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] +_0802B3D2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B3DC: .4byte gUnknown_02024C10 + thumb_func_end atkEB_settypetoterrain + + thumb_func_start sub_802B3E0 +sub_802B3E0: @ 802B3E0 + push {r4,r5,lr} + ldr r5, _0802B45C @ =gUnknown_02024C07 + ldrb r0, [r5] + bl battle_get_per_side_status + movs r1, 0x2 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r4, _0802B460 @ =gUnknown_02024A60 + strb r0, [r4] + ldr r0, _0802B464 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802B490 + ldr r0, _0802B468 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _0802B46C @ =gBitTable + ldrb r3, [r4] + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802B490 + ldr r0, _0802B470 @ =gUnknown_02024C18 + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _0802B490 + ldr r1, _0802B474 @ =gUnknown_02024C60 + lsls r0, r3, 1 + adds r0, r1 + ldrh r2, [r0] + cmp r2, 0xE4 + bne _0802B490 + ldr r0, _0802B478 @ =gUnknown_02024A76 + adds r0, r3, r0 + movs r1, 0xB + strb r1, [r0] + ldr r0, _0802B47C @ =gUnknown_02024BE6 + strh r2, [r0] + ldr r1, _0802B480 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + ldr r1, _0802B484 @ =0x02000000 + ldr r0, _0802B488 @ =0x00016002 + adds r2, r1, r0 + movs r0, 0x1 + strb r0, [r2] + ldrb r0, [r5] + ldr r2, _0802B48C @ =0x000160a7 + adds r1, r2 + strb r0, [r1] + ldrb r0, [r4] + strb r0, [r5] + b _0802B4AA + .align 2, 0 +_0802B45C: .4byte gUnknown_02024C07 +_0802B460: .4byte gUnknown_02024A60 +_0802B464: .4byte gUnknown_020239F8 +_0802B468: .4byte gUnknown_02024C0C +_0802B46C: .4byte gBitTable +_0802B470: .4byte gUnknown_02024C18 +_0802B474: .4byte gUnknown_02024C60 +_0802B478: .4byte gUnknown_02024A76 +_0802B47C: .4byte gUnknown_02024BE6 +_0802B480: .4byte gUnknown_02024C10 +_0802B484: .4byte 0x02000000 +_0802B488: .4byte 0x00016002 +_0802B48C: .4byte 0x000160a7 +_0802B490: + ldr r3, _0802B4B0 @ =gUnknown_02024C10 + 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] +_0802B4AA: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802B4B0: .4byte gUnknown_02024C10 + thumb_func_end sub_802B3E0 + + thumb_func_start sub_802B4B4 +sub_802B4B4: @ 802B4B4 + push {r4,r5,lr} + ldr r1, _0802B4DC @ =gUnknown_02024C0A + ldr r3, _0802B4E0 @ =gUnknown_02024C07 + ldrb r0, [r3] + strb r0, [r1] + ldr r2, _0802B4E4 @ =gUnknown_02024C08 + lsls r0, 24 + lsrs r0, 24 + adds r4, r1, 0 + ldrb r1, [r2] + cmp r0, r1 + bne _0802B4F0 + ldr r0, _0802B4E8 @ =0x02000000 + ldr r5, _0802B4EC @ =0x00016003 + adds r1, r0, r5 + ldrb r1, [r1] + strb r1, [r2] + strb r1, [r3] + b _0802B4FA + .align 2, 0 +_0802B4DC: .4byte gUnknown_02024C0A +_0802B4E0: .4byte gUnknown_02024C07 +_0802B4E4: .4byte gUnknown_02024C08 +_0802B4E8: .4byte 0x02000000 +_0802B4EC: .4byte 0x00016003 +_0802B4F0: + ldr r0, _0802B510 @ =0x02000000 + ldr r3, _0802B514 @ =0x00016003 + adds r1, r0, r3 + ldrb r1, [r1] + strb r1, [r2] +_0802B4FA: + ldrb r1, [r4] + ldr r5, _0802B514 @ =0x00016003 + adds r0, r5 + strb r1, [r0] + ldr r1, _0802B518 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802B510: .4byte 0x02000000 +_0802B514: .4byte 0x00016003 +_0802B518: .4byte gUnknown_02024C10 + thumb_func_end sub_802B4B4 + + thumb_func_start sub_802B51C +sub_802B51C: @ 802B51C + push {r4,lr} + ldr r0, _0802B56C @ =gUnknown_02024C07 + ldrb r0, [r0] + bl battle_side_get_owner + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0802B570 @ =gUnknown_02024C80 + lsls r3, r0, 1 + adds r0, r3, r0 + lsls r0, 2 + adds r4, r0, r1 + ldrb r0, [r4] + cmp r0, 0 + bne _0802B544 + ldrb r2, [r4, 0x1] + cmp r2, 0 + beq _0802B58C +_0802B544: + ldr r2, _0802B574 @ =gUnknown_02024C7A + adds r2, r3, r2 + ldrh r1, [r2] + ldr r0, _0802B578 @ =0x0000fffe + ands r0, r1 + movs r3, 0 + ldr r1, _0802B57C @ =0x0000fffd + ands r0, r1 + strh r0, [r2] + strb r3, [r4] + strb r3, [r4, 0x1] + ldr r0, _0802B580 @ =0x02000000 + ldr r2, _0802B584 @ =0x00016002 + adds r1, r0, r2 + movs r2, 0x1 + strb r2, [r1] + ldr r3, _0802B588 @ =0x000160a1 + adds r0, r3 + b _0802B598 + .align 2, 0 +_0802B56C: .4byte gUnknown_02024C07 +_0802B570: .4byte gUnknown_02024C80 +_0802B574: .4byte gUnknown_02024C7A +_0802B578: .4byte 0x0000fffe +_0802B57C: .4byte 0x0000fffd +_0802B580: .4byte 0x02000000 +_0802B584: .4byte 0x00016002 +_0802B588: .4byte 0x000160a1 +_0802B58C: + ldr r0, _0802B5A8 @ =0x02000000 + ldr r3, _0802B5AC @ =0x00016002 + adds r1, r0, r3 + strb r2, [r1] + ldr r1, _0802B5B0 @ =0x000160a1 + adds r0, r1 +_0802B598: + strb r2, [r0] + ldr r1, _0802B5B4 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802B5A8: .4byte 0x02000000 +_0802B5AC: .4byte 0x00016002 +_0802B5B0: .4byte 0x000160a1 +_0802B5B4: .4byte gUnknown_02024C10 + thumb_func_end sub_802B51C + + thumb_func_start sub_802B5B8 +sub_802B5B8: @ 802B5B8 + push {r4-r7,lr} + movs r4, 0 + ldr r0, _0802B5F8 @ =gUnknown_02024A64 + ldr r0, [r0] + cmp r0, 0 + beq _0802B5C6 + b _0802B94E +_0802B5C6: + ldr r5, _0802B5FC @ =gUnknown_02024A60 + ldr r0, _0802B600 @ =gUnknown_02024C07 + ldrb r0, [r0] + strb r0, [r5] + ldr r6, _0802B604 @ =gUnknown_02024C08 + movs r1, 0x1 + eors r0, r1 + strb r0, [r6] + ldr r0, _0802B608 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802B614 + movs r0, 0 + movs r1, 0x5 + bl dp01_build_cmdbuf_x0D_a + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0802B60C @ =gUnknown_02024C10 + ldr r0, _0802B610 @ =gUnknown_081D9F35 + b _0802B94C + .align 2, 0 +_0802B5F8: .4byte gUnknown_02024A64 +_0802B5FC: .4byte gUnknown_02024A60 +_0802B600: .4byte gUnknown_02024C07 +_0802B604: .4byte gUnknown_02024C08 +_0802B608: .4byte gUnknown_020239F8 +_0802B60C: .4byte gUnknown_02024C10 +_0802B610: .4byte gUnknown_081D9F35 +_0802B614: + movs r0, 0x80 + lsls r0, 2 + ands r0, r1 + cmp r0, 0 + beq _0802B63C + movs r0, 0 + movs r1, 0x4 + bl dp01_build_cmdbuf_x0D_a + ldrb r0, [r5] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0802B634 @ =gUnknown_02024C10 + ldr r0, _0802B638 @ =gUnknown_081D9F00 + b _0802B94C + .align 2, 0 +_0802B634: .4byte gUnknown_02024C10 +_0802B638: .4byte gUnknown_081D9F00 +_0802B63C: + ldr r0, _0802B660 @ =gUnknown_02024C04 + ldrh r0, [r0] + cmp r0, 0x5 + bne _0802B66C + ldr r0, _0802B664 @ =0x02000000 + ldr r1, _0802B668 @ =0x00016089 + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r0, r1, 8 + subs r0, r1 + movs r1, 0x64 + bl __divsi3 + lsls r0, 24 + lsrs r5, r0, 24 + b _0802B684 + .align 2, 0 +_0802B660: .4byte gUnknown_02024C04 +_0802B664: .4byte 0x02000000 +_0802B668: .4byte 0x00016089 +_0802B66C: + ldr r3, _0802B6A0 @ =gBaseStats + ldr r2, _0802B6A4 @ =gBattleMons + ldrb r1, [r6] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r5, [r0, 0x8] +_0802B684: + ldr r2, _0802B6A8 @ =gUnknown_02024C04 + ldrh r0, [r2] + cmp r0, 0x5 + bhi _0802B68E + b _0802B784 +_0802B68E: + subs r0, 0x6 + cmp r0, 0x6 + bls _0802B696 + b _0802B78E +_0802B696: + lsls r0, 2 + ldr r1, _0802B6AC @ =_0802B6B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802B6A0: .4byte gBaseStats +_0802B6A4: .4byte gBattleMons +_0802B6A8: .4byte gUnknown_02024C04 +_0802B6AC: .4byte _0802B6B0 + .align 2, 0 +_0802B6B0: + .4byte _0802B6CC + .4byte _0802B6FC + .4byte _0802B70E + .4byte _0802B73C + .4byte _0802B76C + .4byte _0802B72E + .4byte _0802B72E +_0802B6CC: + ldr r2, _0802B6F4 @ =gBattleMons + ldr r0, _0802B6F8 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r1, r0, 0 + adds r1, 0x21 + ldrb r1, [r1] + cmp r1, 0xB + beq _0802B760 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0xB + beq _0802B760 + cmp r1, 0x6 + beq _0802B760 + cmp r0, 0x6 + beq _0802B760 + b _0802B72E + .align 2, 0 +_0802B6F4: .4byte gBattleMons +_0802B6F8: .4byte gUnknown_02024C08 +_0802B6FC: + bl sav1_map_get_light_level + lsls r0, 24 + lsrs r0, 24 + movs r4, 0xA + cmp r0, 0x5 + bne _0802B78E + movs r4, 0x23 + b _0802B78E +_0802B70E: + ldr r2, _0802B734 @ =gBattleMons + ldr r0, _0802B738 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x2A + ldrb r1, [r0] + cmp r1, 0x27 + bhi _0802B72E + movs r0, 0x28 + subs r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x9 + bhi _0802B78E +_0802B72E: + movs r4, 0xA + b _0802B78E + .align 2, 0 +_0802B734: .4byte gBattleMons +_0802B738: .4byte gUnknown_02024C08 +_0802B73C: + ldr r2, _0802B764 @ =gBattleMons + ldr r0, _0802B768 @ =gUnknown_02024C08 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + movs r4, 0xA + cmp r0, 0 + beq _0802B78E +_0802B760: + movs r4, 0x1E + b _0802B78E + .align 2, 0 +_0802B764: .4byte gBattleMons +_0802B768: .4byte gUnknown_02024C08 +_0802B76C: + ldr r0, _0802B780 @ =gUnknown_030042E0 + ldrb r0, [r0, 0x13] + adds r0, 0xA + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x28 + bls _0802B78E + movs r4, 0x28 + b _0802B78E + .align 2, 0 +_0802B780: .4byte gUnknown_030042E0 +_0802B784: + ldr r1, _0802B7F4 @ =gBallCatchBonuses + ldrh r0, [r2] + subs r0, 0x2 + adds r0, r1 + ldrb r4, [r0] +_0802B78E: + adds r0, r5, 0 + muls r0, r4 + movs r1, 0xA + bl __divsi3 + ldr r5, _0802B7F8 @ =gBattleMons + ldr r1, _0802B7FC @ =gUnknown_02024C08 + ldrb r1, [r1] + movs r7, 0x58 + adds r4, r1, 0 + muls r4, r7 + adds r3, r4, r5 + ldrh r2, [r3, 0x2C] + lsls r1, r2, 1 + adds r1, r2 + ldrh r2, [r3, 0x28] + lsls r2, 1 + subs r2, r1, r2 + muls r0, r2 + bl __divsi3 + adds r6, r0, 0 + adds r5, 0x4C + adds r4, r5 + ldr r4, [r4] + movs r0, 0x27 + ands r0, r4 + cmp r0, 0 + beq _0802B7CA + lsls r6, 1 +_0802B7CA: + ands r4, r7 + cmp r4, 0 + beq _0802B7DC + lsls r0, r6, 4 + subs r0, r6 + movs r1, 0xA + bl __udivsi3 + adds r6, r0, 0 +_0802B7DC: + ldr r1, _0802B800 @ =gUnknown_02024C04 + ldrh r0, [r1] + cmp r0, 0x5 + beq _0802B81C + cmp r0, 0x1 + bne _0802B808 + ldr r0, _0802B804 @ =gUnknown_030042E0 + ldrb r1, [r0, 0x5] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0, 0x5] + b _0802B81C + .align 2, 0 +_0802B7F4: .4byte gBallCatchBonuses +_0802B7F8: .4byte gBattleMons +_0802B7FC: .4byte gUnknown_02024C08 +_0802B800: .4byte gUnknown_02024C04 +_0802B804: .4byte gUnknown_030042E0 +_0802B808: + ldr r0, _0802B860 @ =gUnknown_030042E0 + ldrh r1, [r1] + adds r0, r1 + adds r1, r0, 0 + adds r1, 0x34 + ldrb r0, [r1] + cmp r0, 0xFE + bhi _0802B81C + adds r0, 0x1 + strb r0, [r1] +_0802B81C: + cmp r6, 0xFE + bls _0802B880 + movs r0, 0 + movs r1, 0x4 + bl dp01_build_cmdbuf_x0D_a + ldr r0, _0802B864 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + ldr r1, _0802B868 @ =gUnknown_02024C10 + ldr r0, _0802B86C @ =gUnknown_081D9EC2 + str r0, [r1] + ldr r1, _0802B870 @ =gUnknown_02024A6A + ldr r0, _0802B874 @ =gUnknown_02024C08 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802B878 @ =gEnemyParty + adds r0, r1 + ldr r2, _0802B87C @ =gUnknown_02024C04 + movs r1, 0x26 + bl SetMonData + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + beq _0802B90E + b _0802B938 + .align 2, 0 +_0802B860: .4byte gUnknown_030042E0 +_0802B864: .4byte gUnknown_02024A60 +_0802B868: .4byte gUnknown_02024C10 +_0802B86C: .4byte gUnknown_081D9EC2 +_0802B870: .4byte gUnknown_02024A6A +_0802B874: .4byte gUnknown_02024C08 +_0802B878: .4byte gEnemyParty +_0802B87C: .4byte gUnknown_02024C04 +_0802B880: + movs r0, 0xFF + lsls r0, 16 + adds r1, r6, 0 + bl __udivsi3 + bl Sqrt + lsls r0, 16 + lsrs r0, 16 + bl Sqrt + lsls r0, 16 + lsrs r6, r0, 16 + ldr r0, _0802B8A8 @ =0x000ffff0 + adds r1, r6, 0 + bl __udivsi3 + adds r6, r0, 0 + movs r4, 0 + b _0802B8B2 + .align 2, 0 +_0802B8A8: .4byte 0x000ffff0 +_0802B8AC: + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 +_0802B8B2: + cmp r4, 0x3 + bhi _0802B8C2 + bl Random + lsls r0, 16 + lsrs r0, 16 + cmp r0, r6 + bcc _0802B8AC +_0802B8C2: + ldr r5, _0802B918 @ =gUnknown_02024C04 + ldrh r0, [r5] + cmp r0, 0x1 + bne _0802B8CC + movs r4, 0x4 +_0802B8CC: + movs r0, 0 + adds r1, r4, 0 + bl dp01_build_cmdbuf_x0D_a + ldr r0, _0802B91C @ =gUnknown_02024A60 + ldrb r0, [r0] + bl dp01_battle_side_mark_buffer_for_execution + cmp r4, 0x4 + bne _0802B944 + ldr r1, _0802B920 @ =gUnknown_02024C10 + ldr r0, _0802B924 @ =gUnknown_081D9EC2 + str r0, [r1] + ldr r1, _0802B928 @ =gUnknown_02024A6A + ldr r0, _0802B92C @ =gUnknown_02024C08 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802B930 @ =gEnemyParty + adds r0, r1 + movs r1, 0x26 + adds r2, r5, 0 + bl SetMonData + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _0802B938 +_0802B90E: + ldr r1, _0802B934 @ =gUnknown_02024D1E + movs r0, 0 + strb r0, [r1, 0x5] + b _0802B94E + .align 2, 0 +_0802B918: .4byte gUnknown_02024C04 +_0802B91C: .4byte gUnknown_02024A60 +_0802B920: .4byte gUnknown_02024C10 +_0802B924: .4byte gUnknown_081D9EC2 +_0802B928: .4byte gUnknown_02024A6A +_0802B92C: .4byte gUnknown_02024C08 +_0802B930: .4byte gEnemyParty +_0802B934: .4byte gUnknown_02024D1E +_0802B938: + ldr r1, _0802B940 @ =gUnknown_02024D1E + movs r0, 0x1 + strb r0, [r1, 0x5] + b _0802B94E + .align 2, 0 +_0802B940: .4byte gUnknown_02024D1E +_0802B944: + ldr r0, _0802B954 @ =gUnknown_02024D1E + strb r4, [r0, 0x5] + ldr r1, _0802B958 @ =gUnknown_02024C10 + ldr r0, _0802B95C @ =gUnknown_081D9F0A +_0802B94C: + str r0, [r1] +_0802B94E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802B954: .4byte gUnknown_02024D1E +_0802B958: .4byte gUnknown_02024C10 +_0802B95C: .4byte gUnknown_081D9F0A + thumb_func_end sub_802B5B8 + + thumb_func_start sub_802B960 +sub_802B960: @ 802B960 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r0, _0802B9C8 @ =gUnknown_02024A6A + mov r9, r0 + ldr r5, _0802B9CC @ =gUnknown_02024C07 + ldrb r0, [r5] + movs r4, 0x1 + eors r0, r4 + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + movs r1, 0x64 + mov r8, r1 + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + ldr r6, _0802B9D0 @ =gEnemyParty + adds r0, r6 + bl GiveMonToPlayer + ldr r2, _0802B9D4 @ =gUnknown_030042E0 + ldr r1, _0802B9D8 @ =gBattleMons + ldrb r0, [r5] + eors r4, r0 + movs r0, 0x58 + muls r0, r4 + adds r0, r1 + ldrh r0, [r0] + strh r0, [r2, 0x28] + lsls r4, 1 + add r4, r9 + ldrh r0, [r4] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + adds r2, 0x2A + movs r1, 0x2 + bl GetMonData + ldr r1, _0802B9DC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802B9C8: .4byte gUnknown_02024A6A +_0802B9CC: .4byte gUnknown_02024C07 +_0802B9D0: .4byte gEnemyParty +_0802B9D4: .4byte gUnknown_030042E0 +_0802B9D8: .4byte gBattleMons +_0802B9DC: .4byte gUnknown_02024C10 + thumb_func_end sub_802B960 + + thumb_func_start sub_802B9E0 +sub_802B9E0: @ 802B9E0 + push {r4-r6,lr} + ldr r4, _0802BA20 @ =gBattleMons + ldr r6, _0802BA24 @ =gUnknown_02024C08 + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r0, r4 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x1 + bl sub_8090D90 + lsls r0, 24 + cmp r0, 0 + beq _0802BA2C + ldr r3, _0802BA28 @ =gUnknown_02024C10 + 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 _0802BA82 + .align 2, 0 +_0802BA20: .4byte gBattleMons +_0802BA24: .4byte gUnknown_02024C08 +_0802BA28: .4byte gUnknown_02024C10 +_0802BA2C: + ldrb r0, [r6] + muls r0, r5 + adds r0, r4 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl sub_8090D90 + ldrb r0, [r6] + adds r2, r0, 0 + muls r2, r5 + adds r0, r2, r4 + ldrh r0, [r0] + cmp r0, 0xC9 + bne _0802BA5C + ldr r0, _0802BA88 @ =gSaveBlock2 + adds r1, r4, 0 + adds r1, 0x48 + adds r1, r2, r1 + ldr r1, [r1] + str r1, [r0, 0x1C] +_0802BA5C: + ldrb r0, [r6] + adds r2, r0, 0 + muls r2, r5 + adds r0, r2, r4 + ldrh r1, [r0] + movs r0, 0x9A + lsls r0, 1 + cmp r1, r0 + bne _0802BA7A + ldr r0, _0802BA88 @ =gSaveBlock2 + adds r1, r4, 0 + adds r1, 0x48 + adds r1, r2, r1 + ldr r1, [r1] + str r1, [r0, 0x20] +_0802BA7A: + ldr r1, _0802BA8C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] +_0802BA82: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802BA88: .4byte gSaveBlock2 +_0802BA8C: .4byte gUnknown_02024C10 + thumb_func_end sub_802B9E0 + + thumb_func_start sub_802BA90 +sub_802BA90: @ 802BA90 + push {r4-r7,lr} + sub sp, 0x4 + ldr r7, _0802BAA8 @ =gUnknown_02024D1E + ldrb r1, [r7] + cmp r1, 0x1 + beq _0802BAC6 + cmp r1, 0x1 + bgt _0802BAAC + cmp r1, 0 + beq _0802BAB8 + b _0802BBC4 + .align 2, 0 +_0802BAA8: .4byte gUnknown_02024D1E +_0802BAAC: + cmp r1, 0x2 + beq _0802BB10 + cmp r1, 0x3 + bne _0802BAB6 + b _0802BBB0 +_0802BAB6: + b _0802BBC4 +_0802BAB8: + movs r0, 0x1 + negs r0, r0 + str r1, [sp] + movs r1, 0 + movs r2, 0 + movs r3, 0x10 + b _0802BB6E +_0802BAC6: + ldr r0, _0802BB04 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802BBC4 + ldr r4, _0802BB08 @ =gBattleMons + ldr r6, _0802BB0C @ =gUnknown_02024C08 + ldrb r0, [r6] + movs r5, 0x58 + muls r0, r5 + adds r0, r4 + ldrh r0, [r0] + bl SpeciesToNationalPokedexNum + lsls r0, 16 + lsrs r0, 16 + ldrb r1, [r6] + adds r2, r1, 0 + muls r2, r5 + adds r1, r4, 0 + adds r1, 0x54 + adds r1, r2, r1 + ldr r1, [r1] + adds r4, 0x48 + adds r2, r4 + ldr r2, [r2] + bl sub_809070C + strb r0, [r7, 0x1] + b _0802BB72 + .align 2, 0 +_0802BB04: .4byte gPaletteFade +_0802BB08: .4byte gBattleMons +_0802BB0C: .4byte gUnknown_02024C08 +_0802BB10: + ldr r0, _0802BB7C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802BBC4 + ldr r0, _0802BB80 @ =gMain + ldr r1, [r0, 0x4] + ldr r0, _0802BB84 @ =sub_800F808 + cmp r1, r0 + bne _0802BBC4 + ldr r2, _0802BB88 @ =gTasks + ldrb r1, [r7, 0x1] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r4, [r0, 0x4] + cmp r4, 0 + bne _0802BBC4 + ldr r0, _0802BB8C @ =gBattleTerrainTiles_Building + ldr r1, _0802BB90 @ =0x06008000 + bl LZDecompressVram + ldr r0, _0802BB94 @ =gBattleTerrainTilemap_Building + ldr r1, _0802BB98 @ =0x0600d000 + bl LZDecompressVram + ldr r0, _0802BB9C @ =gBattleTerrainPalette_BattleTower + movs r1, 0x20 + movs r2, 0x60 + bl LoadCompressedPalette + ldr r1, _0802BBA0 @ =REG_BG3CNT + ldr r2, _0802BBA4 @ =0x00005a0b + adds r0, r2, 0 + strh r0, [r1] + ldr r1, _0802BBA8 @ =gUnknown_030041B0 + movs r2, 0x80 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r0, _0802BBAC @ =0x0000fffc + str r4, [sp] + movs r1, 0 + movs r2, 0x10 + movs r3, 0 +_0802BB6E: + bl BeginNormalPaletteFade +_0802BB72: + ldrb r0, [r7] + adds r0, 0x1 + strb r0, [r7] + b _0802BBC4 + .align 2, 0 +_0802BB7C: .4byte gPaletteFade +_0802BB80: .4byte gMain +_0802BB84: .4byte sub_800F808 +_0802BB88: .4byte gTasks +_0802BB8C: .4byte gBattleTerrainTiles_Building +_0802BB90: .4byte 0x06008000 +_0802BB94: .4byte gBattleTerrainTilemap_Building +_0802BB98: .4byte 0x0600d000 +_0802BB9C: .4byte gBattleTerrainPalette_BattleTower +_0802BBA0: .4byte REG_BG3CNT +_0802BBA4: .4byte 0x00005a0b +_0802BBA8: .4byte gUnknown_030041B0 +_0802BBAC: .4byte 0x0000fffc +_0802BBB0: + ldr r0, _0802BBCC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802BBC4 + ldr r1, _0802BBD0 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] +_0802BBC4: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802BBCC: .4byte gPaletteFade +_0802BBD0: .4byte gUnknown_02024C10 + thumb_func_end sub_802BA90 + + thumb_func_start sub_802BBD4 +sub_802BBD4: @ 802BBD4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r12, r1 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 24 + lsrs r7, r3, 24 + lsls r4, 24 + lsrs r4, 24 + mov r8, r4 + mov r2, r12 + cmp r2, r7 + bgt _0802BC5A + lsls r1, r6, 1 + ldr r0, _0802BC20 @ =0x0600c000 + adds r1, r0 + mov r9, r1 +_0802BC06: + adds r1, r6, 0 + adds r0, r2, 0x1 + mov r10, r0 + cmp r1, r5 + bgt _0802BC54 + lsls r0, r2, 6 + mov r4, r9 + adds r3, r4, r0 +_0802BC16: + cmp r2, r12 + bne _0802BC28 + ldr r0, _0802BC24 @ =0x00001022 + b _0802BC36 + .align 2, 0 +_0802BC20: .4byte 0x0600c000 +_0802BC24: .4byte 0x00001022 +_0802BC28: + cmp r2, r7 + bne _0802BC34 + ldr r0, _0802BC30 @ =0x00001028 + b _0802BC36 + .align 2, 0 +_0802BC30: .4byte 0x00001028 +_0802BC34: + ldr r0, _0802BC68 @ =0x00001025 +_0802BC36: + cmp r1, r6 + beq _0802BC42 + adds r0, 0x1 + cmp r1, r5 + bne _0802BC42 + adds r0, 0x1 +_0802BC42: + mov r4, r8 + cmp r4, 0 + beq _0802BC4A + movs r0, 0 +_0802BC4A: + strh r0, [r3] + adds r3, 0x2 + adds r1, 0x1 + cmp r1, r5 + ble _0802BC16 +_0802BC54: + mov r2, r10 + cmp r2, r7 + ble _0802BC06 +_0802BC5A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802BC68: .4byte 0x00001025 + thumb_func_end sub_802BBD4 + + thumb_func_start sub_802BC6C +sub_802BC6C: @ 802BC6C + push {lr} + ldr r0, _0802BC88 @ =gUnknown_02024D1E + ldrb r1, [r0, 0x1] + lsls r1, 28 + movs r0, 0x90 + lsls r0, 23 + adds r1, r0 + lsrs r1, 24 + movs r0, 0xC8 + bl sub_814A880 + pop {r0} + bx r0 + .align 2, 0 +_0802BC88: .4byte gUnknown_02024D1E + thumb_func_end sub_802BC6C + + thumb_func_start nullsub_6 +nullsub_6: @ 802BC8C + bx lr + thumb_func_end nullsub_6 + + thumb_func_start atkF3_receive_new_pokemon_maybe +atkF3_receive_new_pokemon_maybe: @ 802BC90 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + ldr r0, _0802BCB4 @ =gUnknown_02024D1E + ldrb r1, [r0] + adds r4, r0, 0 + cmp r1, 0x4 + bls _0802BCA8 + b _0802BEDA +_0802BCA8: + lsls r0, r1, 2 + ldr r1, _0802BCB8 @ =_0802BCBC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802BCB4: .4byte gUnknown_02024D1E +_0802BCB8: .4byte _0802BCBC + .align 2, 0 +_0802BCBC: + .4byte _0802BCD0 + .4byte _0802BCEC + .4byte _0802BD84 + .4byte _0802BE50 + .4byte _0802BEA4 +_0802BCD0: + bl sub_8023A80 + ldr r0, _0802BCE8 @ =gUnknown_02024D1E + ldrb r1, [r0] + adds r1, 0x1 + movs r2, 0 + strb r1, [r0] + strb r2, [r0, 0x1] + bl sub_802BC6C + b _0802BEDA + .align 2, 0 +_0802BCE8: .4byte gUnknown_02024D1E +_0802BCEC: + ldr r0, _0802BD60 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802BD10 + ldrb r0, [r4, 0x1] + cmp r0, 0 + beq _0802BD10 + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0 + strb r0, [r4, 0x1] + bl sub_802BC6C +_0802BD10: + ldr r0, _0802BD60 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802BD36 + ldr r4, _0802BD64 @ =gUnknown_02024D1E + ldrb r0, [r4, 0x1] + cmp r0, 0 + bne _0802BD36 + movs r0, 0x5 + bl PlaySE + bl nullsub_6 + movs r0, 0x1 + strb r0, [r4, 0x1] + bl sub_802BC6C +_0802BD36: + ldr r0, _0802BD60 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802BD68 + movs r0, 0x5 + bl PlaySE + ldr r1, _0802BD64 @ =gUnknown_02024D1E + ldrb r0, [r1, 0x1] + cmp r0, 0 + bne _0802BD7A + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + movs r0, 0x3 + bl BeginFastPaletteFade + b _0802BEDA + .align 2, 0 +_0802BD60: .4byte gMain +_0802BD64: .4byte gUnknown_02024D1E +_0802BD68: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0802BD72 + b _0802BEDA +_0802BD72: + movs r0, 0x5 + bl PlaySE + ldr r1, _0802BD80 @ =gUnknown_02024D1E +_0802BD7A: + movs r0, 0x4 + strb r0, [r1] + b _0802BEDA + .align 2, 0 +_0802BD80: .4byte gUnknown_02024D1E +_0802BD84: + ldr r0, _0802BE34 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802BD92 + b _0802BEDA +_0802BD92: + ldr r7, _0802BE38 @ =gUnknown_02024A6A + ldr r0, _0802BE3C @ =gUnknown_02024C07 + mov r10, r0 + ldrb r0, [r0] + movs r4, 0x1 + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0x64 + mov r9, r1 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + ldr r1, _0802BE40 @ =gEnemyParty + mov r8, r1 + add r0, r8 + movs r1, 0x2 + ldr r2, _0802BE44 @ =0x02016079 + bl GetMonData + mov r1, r10 + ldrb r0, [r1] + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + movs r1, 0xB + bl GetMonData + adds r6, r0, 0 + lsls r6, 16 + lsrs r6, 16 + mov r1, r10 + ldrb r0, [r1] + eors r0, r4 + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + bl GetMonGender + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + mov r1, r10 + ldrb r0, [r1] + eors r4, r0 + lsls r4, 1 + adds r4, r7 + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + add r0, r8 + movs r1, 0 + movs r2, 0 + bl GetMonData + str r0, [sp] + ldr r0, _0802BE48 @ =sub_800F808 + str r0, [sp, 0x4] + movs r0, 0x2 + ldr r1, _0802BE44 @ =0x02016079 + adds r2, r6, 0 + adds r3, r5, 0 + bl DoNamingScreen + ldr r1, _0802BE4C @ =gUnknown_02024D1E + ldrb r0, [r1] + adds r0, 0x1 + strb r0, [r1] + b _0802BEDA + .align 2, 0 +_0802BE34: .4byte gPaletteFade +_0802BE38: .4byte gUnknown_02024A6A +_0802BE3C: .4byte gUnknown_02024C07 +_0802BE40: .4byte gEnemyParty +_0802BE44: .4byte 0x02016079 +_0802BE48: .4byte sub_800F808 +_0802BE4C: .4byte gUnknown_02024D1E +_0802BE50: + ldr r0, _0802BE88 @ =gMain + ldr r1, [r0, 0x4] + ldr r0, _0802BE8C @ =sub_800F808 + cmp r1, r0 + bne _0802BEDA + ldr r0, _0802BE90 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802BEDA + ldr r2, _0802BE94 @ =gUnknown_02024A6A + ldr r0, _0802BE98 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x1 + eors r0, r1 + lsls r0, 1 + adds r0, r2 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802BE9C @ =gEnemyParty + adds r0, r1 + ldr r2, _0802BEA0 @ =0x02016079 + movs r1, 0x2 + bl SetMonData + b _0802BEC0 + .align 2, 0 +_0802BE88: .4byte gMain +_0802BE8C: .4byte sub_800F808 +_0802BE90: .4byte gPaletteFade +_0802BE94: .4byte gUnknown_02024A6A +_0802BE98: .4byte gUnknown_02024C07 +_0802BE9C: .4byte gEnemyParty +_0802BEA0: .4byte 0x02016079 +_0802BEA4: + bl CalculatePlayerPartyCount + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _0802BEC0 + ldr r1, _0802BEBC @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x5 + str r0, [r1] + b _0802BEDA + .align 2, 0 +_0802BEBC: .4byte gUnknown_02024C10 +_0802BEC0: + ldr r3, _0802BEEC @ =gUnknown_02024C10 + 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] +_0802BEDA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802BEEC: .4byte gUnknown_02024C10 + thumb_func_end atkF3_receive_new_pokemon_maybe + + thumb_func_start sub_802BEF0 +sub_802BEF0: @ 802BEF0 + ldr r2, _0802BF10 @ =gBattleMons + ldr r0, _0802BF14 @ =gUnknown_02024C07 + ldrb r1, [r0] + movs r0, 0x58 + muls r1, r0 + adds r1, r2 + ldr r0, _0802BF18 @ =gUnknown_02024BEC + ldr r2, [r0] + ldrh r0, [r1, 0x28] + subs r0, r2 + strh r0, [r1, 0x28] + ldr r1, _0802BF1C @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802BF10: .4byte gBattleMons +_0802BF14: .4byte gUnknown_02024C07 +_0802BF18: .4byte gUnknown_02024BEC +_0802BF1C: .4byte gUnknown_02024C10 + thumb_func_end sub_802BEF0 + + thumb_func_start sub_802BF20 +sub_802BF20: @ 802BF20 + ldr r1, _0802BF3C @ =gBattleMons + ldr r0, _0802BF40 @ =gUnknown_02024C07 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x4C + adds r0, r1 + movs r1, 0 + str r1, [r0] + ldr r1, _0802BF44 @ =gUnknown_02024C10 + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + bx lr + .align 2, 0 +_0802BF3C: .4byte gBattleMons +_0802BF40: .4byte gUnknown_02024C07 +_0802BF44: .4byte gUnknown_02024C10 + thumb_func_end sub_802BF20 + + thumb_func_start sub_802BF48 +sub_802BF48: @ 802BF48 + ldr r1, _0802BF50 @ =gUnknown_02024A7F + movs r0, 0xC + strb r0, [r1] + bx lr + .align 2, 0 +_0802BF50: .4byte gUnknown_02024A7F + thumb_func_end sub_802BF48 + + thumb_func_start sub_802BF54 +sub_802BF54: @ 802BF54 + ldr r1, _0802BF64 @ =gUnknown_02024A7F + movs r0, 0xC + strb r0, [r1] + ldr r1, _0802BF68 @ =gUnknown_02024A7E + ldr r0, _0802BF6C @ =gUnknown_02024A68 + ldrb r0, [r0] + strb r0, [r1] + bx lr + .align 2, 0 +_0802BF64: .4byte gUnknown_02024A7F +_0802BF68: .4byte gUnknown_02024A7E +_0802BF6C: .4byte gUnknown_02024A68 + thumb_func_end sub_802BF54 + + thumb_func_start nullsub_91 +nullsub_91: @ 802BF70 + bx lr + thumb_func_end nullsub_91 + + thumb_func_start sub_802BF74 +sub_802BF74: @ 802BF74 + ldr r1, _0802BF8C @ =gUnknown_03004330 + ldr r0, _0802BF90 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802BF94 @ =sub_802C014 + str r1, [r0] + ldr r1, _0802BF98 @ =gUnknown_02024E6D + movs r0, 0 + strb r0, [r1] + bx lr + .align 2, 0 +_0802BF8C: .4byte gUnknown_03004330 +_0802BF90: .4byte gUnknown_02024A60 +_0802BF94: .4byte sub_802C014 +_0802BF98: .4byte gUnknown_02024E6D + thumb_func_end sub_802BF74 + + thumb_func_start dp01_tbl1_exec_completed +dp01_tbl1_exec_completed: @ 802BF9C + push {r4,lr} + sub sp, 0x4 + ldr r1, _0802BFDC @ =gUnknown_03004330 + ldr r4, _0802BFE0 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802BFE4 @ =sub_802C014 + str r1, [r0] + ldr r0, _0802BFE8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802BFF0 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl dp01_prepare_buffer_wireless_probably + ldr r1, _0802BFEC @ =gUnknown_02023A60 + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _0802C002 + .align 2, 0 +_0802BFDC: .4byte gUnknown_03004330 +_0802BFE0: .4byte gUnknown_02024A60 +_0802BFE4: .4byte sub_802C014 +_0802BFE8: .4byte gUnknown_020239F8 +_0802BFEC: .4byte gUnknown_02023A60 +_0802BFF0: + ldr r2, _0802C00C @ =gUnknown_02024A64 + ldr r1, _0802C010 @ =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0802C002: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C00C: .4byte gUnknown_02024A64 +_0802C010: .4byte gBitTable + thumb_func_end dp01_tbl1_exec_completed + + thumb_func_start sub_802C014 +sub_802C014: @ 802C014 + push {lr} + ldr r2, _0802C048 @ =gUnknown_02024A64 + ldr r1, _0802C04C @ =gBitTable + ldr r0, _0802C050 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0802C060 + ldr r0, _0802C054 @ =gUnknown_02023A60 + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _0802C05C + ldr r0, _0802C058 @ =gUnknown_081FAD98 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _0802C060 + .align 2, 0 +_0802C048: .4byte gUnknown_02024A64 +_0802C04C: .4byte gBitTable +_0802C050: .4byte gUnknown_02024A60 +_0802C054: .4byte gUnknown_02023A60 +_0802C058: .4byte gUnknown_081FAD98 +_0802C05C: + bl dp01_tbl1_exec_completed +_0802C060: + pop {r0} + bx r0 + thumb_func_end sub_802C014 + + thumb_func_start bx_0802E404 +bx_0802E404: @ 802C064 + push {lr} + ldr r2, _0802C08C @ =gSprites + ldr r1, _0802C090 @ =gUnknown_02024BE0 + ldr r0, _0802C094 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x24 + ldrsh r0, [r0, r1] + cmp r0, 0 + bne _0802C086 + bl dp01_tbl1_exec_completed +_0802C086: + pop {r0} + bx r0 + .align 2, 0 +_0802C08C: .4byte gSprites +_0802C090: .4byte gUnknown_02024BE0 +_0802C094: .4byte gUnknown_02024A60 + thumb_func_end bx_0802E404 + + thumb_func_start sub_802C098 +sub_802C098: @ 802C098 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r7, _0802C0FC @ =gUnknown_02023A60 + ldr r4, _0802C100 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r2, r0, 9 + adds r1, r7, 0x2 + adds r1, r2, r1 + ldrb r5, [r1] + adds r1, r7, 0x3 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r5, r1 + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldr r0, _0802C104 @ =gMain + ldrh r1, [r0, 0x2E] + movs r2, 0x1 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0802C13E + movs r0, 0x5 + bl PlaySE + bl sub_814A7FC + ldr r1, _0802C108 @ =gUnknown_02024E60 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0802C11C + cmp r0, 0x1 + bgt _0802C10C + cmp r0, 0 + beq _0802C116 + b _0802C138 + .align 2, 0 +_0802C0FC: .4byte gUnknown_02023A60 +_0802C100: .4byte gUnknown_02024A60 +_0802C104: .4byte gMain +_0802C108: .4byte gUnknown_02024E60 +_0802C10C: + cmp r0, 0x2 + beq _0802C122 + cmp r0, 0x3 + beq _0802C12E + b _0802C138 +_0802C116: + movs r0, 0x1 + movs r1, 0 + b _0802C126 +_0802C11C: + movs r0, 0x1 + movs r1, 0x1 + b _0802C126 +_0802C122: + movs r0, 0x1 + movs r1, 0x2 +_0802C126: + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + b _0802C138 +_0802C12E: + movs r0, 0x1 + movs r1, 0x3 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb +_0802C138: + bl dp01_tbl1_exec_completed + b _0802C2AC +_0802C13E: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802C178 + ldr r5, _0802C174 @ =gUnknown_02024E60 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0802C158 + b _0802C2AC +_0802C158: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl nullsub_8 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + b _0802C200 + .align 2, 0 +_0802C174: .4byte gUnknown_02024E60 +_0802C178: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802C1B0 + ldr r5, _0802C1AC @ =gUnknown_02024E60 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0802C192 + b _0802C2AC +_0802C192: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl nullsub_8 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x1 + b _0802C200 + .align 2, 0 +_0802C1AC: .4byte gUnknown_02024E60 +_0802C1B0: + movs r0, 0x40 + mov r8, r0 + ands r0, r1 + cmp r0, 0 + beq _0802C1D0 + ldr r5, _0802C1CC @ =gUnknown_02024E60 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802C2AC + b _0802C1E8 + .align 2, 0 +_0802C1CC: .4byte gUnknown_02024E60 +_0802C1D0: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802C218 + ldr r5, _0802C214 @ =gUnknown_02024E60 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _0802C2AC +_0802C1E8: + movs r0, 0x5 + bl PlaySE + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl nullsub_8 + ldrb r1, [r4] + adds r1, r5 + ldrb r0, [r1] + movs r2, 0x2 +_0802C200: + eors r0, r2 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_802E3E4 + b _0802C2AC + .align 2, 0 +_0802C214: .4byte gUnknown_02024E60 +_0802C218: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802C2A0 + ldr r6, _0802C294 @ =gUnknown_020239F8 + ldrh r1, [r6] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _0802C2AC + ldrb r0, [r4] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x2 + bne _0802C2AC + movs r0, 0 + bl battle_get_side_with_given_state + ldr r1, _0802C298 @ =gUnknown_02024C0C + ldrb r1, [r1] + ldr r2, _0802C29C @ =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0802C2AC + ldrh r1, [r6] + mov r0, r8 + ands r0, r1 + cmp r0, 0 + bne _0802C2AC + ldrb r0, [r4] + lsls r0, 9 + adds r1, r7, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0802C278 + cmp r5, 0xC + bhi _0802C2AC + adds r0, r5, 0 + movs r1, 0x1 + bl AddBagItem +_0802C278: + movs r0, 0x5 + bl PlaySE + movs r0, 0x1 + movs r1, 0xC + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl dp01_tbl1_exec_completed + bl sub_814A7FC + b _0802C2AC + .align 2, 0 +_0802C294: .4byte gUnknown_020239F8 +_0802C298: .4byte gUnknown_02024C0C +_0802C29C: .4byte gBitTable +_0802C2A0: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0802C2AC + bl sub_804454C +_0802C2AC: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802C098 + + thumb_func_start unref_sub_802C2B8 +unref_sub_802C2B8: @ 802C2B8 + push {r4,lr} + ldr r4, _0802C2E0 @ =gUnknown_02024A60 + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + ldrb r0, [r4] + movs r1, 0 + bl dp11b_obj_free + ldr r1, _0802C2E4 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802C2E8 @ =sub_802C2EC + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802C2E0: .4byte gUnknown_02024A60 +_0802C2E4: .4byte gUnknown_03004330 +_0802C2E8: .4byte sub_802C2EC + thumb_func_end unref_sub_802C2B8 + + thumb_func_start sub_802C2EC +sub_802C2EC: @ 802C2EC + push {r4,r5,lr} + sub sp, 0x4 + ldr r1, _0802C384 @ =gUnknown_081FAE7C + mov r0, sp + movs r2, 0x4 + bl memcpy + ldr r0, _0802C388 @ =gUnknown_03004344 + ldrb r0, [r0] + movs r1, 0x1 + movs r2, 0xF + movs r3, 0x1 + bl dp11b_obj_instanciate + movs r4, 0 + ldr r0, _0802C38C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r0, 0 + beq _0802C32E +_0802C312: + ldr r0, _0802C388 @ =gUnknown_03004344 + ldrb r0, [r0] + cmp r4, r0 + beq _0802C324 + lsls r0, r4, 24 + lsrs r0, 24 + movs r1, 0x1 + bl dp11b_obj_free +_0802C324: + adds r4, 0x1 + ldr r0, _0802C38C @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r4, r0 + blt _0802C312 +_0802C32E: + ldr r0, _0802C390 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802C3A8 + bl sub_814A7FC + movs r0, 0x5 + bl PlaySE + ldr r2, _0802C394 @ =gSprites + ldr r1, _0802C398 @ =gUnknown_02024BE0 + ldr r4, _0802C388 @ =gUnknown_03004344 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802C39C @ =sub_8010574 + str r1, [r0] + ldr r1, _0802C3A0 @ =gUnknown_02024E64 + ldr r0, _0802C3A4 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r2, [r0] + ldrb r0, [r4] + lsls r0, 8 + orrs r2, r0 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + bl dp01_tbl1_exec_completed + b _0802C658 + .align 2, 0 +_0802C384: .4byte gUnknown_081FAE7C +_0802C388: .4byte gUnknown_03004344 +_0802C38C: .4byte gUnknown_02024A68 +_0802C390: .4byte gMain +_0802C394: .4byte gSprites +_0802C398: .4byte gUnknown_02024BE0 +_0802C39C: .4byte sub_8010574 +_0802C3A0: .4byte gUnknown_02024E64 +_0802C3A4: .4byte gUnknown_02024A60 +_0802C3A8: + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802C41C + movs r0, 0x5 + bl PlaySE + ldr r2, _0802C400 @ =gSprites + ldr r1, _0802C404 @ =gUnknown_02024BE0 + ldr r5, _0802C408 @ =gUnknown_03004344 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802C40C @ =sub_8010574 + str r1, [r0] + ldr r1, _0802C410 @ =gUnknown_03004330 + ldr r4, _0802C414 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802C418 @ =sub_802C68C + str r1, [r0] + ldrb r0, [r4] + movs r1, 0x1 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldrb r0, [r4] + movs r1, 0 + movs r2, 0x7 + movs r3, 0x1 + bl dp11b_obj_instanciate + ldrb r0, [r5] + movs r1, 0x1 + bl dp11b_obj_free + b _0802C658 + .align 2, 0 +_0802C400: .4byte gSprites +_0802C404: .4byte gUnknown_02024BE0 +_0802C408: .4byte gUnknown_03004344 +_0802C40C: .4byte sub_8010574 +_0802C410: .4byte gUnknown_03004330 +_0802C414: .4byte gUnknown_02024A60 +_0802C418: .4byte sub_802C68C +_0802C41C: + movs r0, 0x60 + ands r0, r1 + cmp r0, 0 + bne _0802C426 + b _0802C540 +_0802C426: + movs r0, 0x5 + bl PlaySE + ldr r2, _0802C458 @ =gSprites + ldr r1, _0802C45C @ =gUnknown_02024BE0 + ldr r3, _0802C460 @ =gUnknown_03004344 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802C464 @ =sub_8010574 + str r1, [r0] + adds r5, r3, 0 +_0802C448: + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + mov r0, sp + b _0802C472 + .align 2, 0 +_0802C458: .4byte gSprites +_0802C45C: .4byte gUnknown_02024BE0 +_0802C460: .4byte gUnknown_03004344 +_0802C464: .4byte sub_8010574 +_0802C468: + adds r4, 0x1 + cmp r4, 0x3 + bgt _0802C478 + mov r2, sp + adds r0, r2, r4 +_0802C472: + ldrb r0, [r0] + cmp r1, r0 + bne _0802C468 +_0802C478: + subs r4, 0x1 + cmp r4, 0 + bge _0802C480 + movs r4, 0x3 +_0802C480: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl battle_get_side_with_given_state + strb r0, [r5] + ldr r1, _0802C4B4 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + beq _0802C478 + movs r4, 0 + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0802C4FE + cmp r0, 0x1 + bgt _0802C4B8 + cmp r0, 0 + beq _0802C4C2 + b _0802C500 + .align 2, 0 +_0802C4B4: .4byte gUnknown_02024A68 +_0802C4B8: + cmp r0, 0x2 + beq _0802C4C2 + cmp r0, 0x3 + beq _0802C4FE + b _0802C500 +_0802C4C2: + ldr r2, _0802C520 @ =gUnknown_02024A60 + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _0802C4FE + ldr r1, _0802C524 @ =gUnknown_02024A6A + ldrb r2, [r2] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802C528 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802C52C @ =gUnknown_02024E64 + adds r2, r1 + ldrb r1, [r2] + adds r1, 0xD + bl GetMonData + ldr r2, _0802C530 @ =gBattleMoves + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802C500 +_0802C4FE: + adds r4, 0x1 +_0802C500: + ldr r0, _0802C534 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _0802C538 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, _0802C53C @ =gUnknown_03004344 + cmp r1, 0 + beq _0802C518 + movs r4, 0 +_0802C518: + cmp r4, 0 + beq _0802C448 + b _0802C640 + .align 2, 0 +_0802C520: .4byte gUnknown_02024A60 +_0802C524: .4byte gUnknown_02024A6A +_0802C528: .4byte gPlayerParty +_0802C52C: .4byte gUnknown_02024E64 +_0802C530: .4byte gBattleMoves +_0802C534: .4byte gUnknown_02024C0C +_0802C538: .4byte gBitTable +_0802C53C: .4byte gUnknown_03004344 +_0802C540: + movs r0, 0x90 + ands r0, r1 + cmp r0, 0 + bne _0802C54A + b _0802C658 +_0802C54A: + movs r0, 0x5 + bl PlaySE + ldr r2, _0802C57C @ =gSprites + ldr r1, _0802C580 @ =gUnknown_02024BE0 + ldr r3, _0802C584 @ =gUnknown_03004344 + ldrb r0, [r3] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802C588 @ =sub_8010574 + str r1, [r0] + adds r5, r3, 0 +_0802C56C: + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r1, r0, 24 + movs r4, 0 + mov r0, sp + b _0802C596 + .align 2, 0 +_0802C57C: .4byte gSprites +_0802C580: .4byte gUnknown_02024BE0 +_0802C584: .4byte gUnknown_03004344 +_0802C588: .4byte sub_8010574 +_0802C58C: + adds r4, 0x1 + cmp r4, 0x3 + bgt _0802C59C + mov r2, sp + adds r0, r2, r4 +_0802C596: + ldrb r0, [r0] + cmp r1, r0 + bne _0802C58C +_0802C59C: + adds r4, 0x1 + cmp r4, 0x3 + ble _0802C5A4 + movs r4, 0 +_0802C5A4: + mov r1, sp + adds r0, r1, r4 + ldrb r0, [r0] + bl battle_get_side_with_given_state + strb r0, [r5] + ldr r1, _0802C5D8 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + beq _0802C59C + movs r4, 0 + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0802C622 + cmp r0, 0x1 + bgt _0802C5DC + cmp r0, 0 + beq _0802C5E6 + b _0802C624 + .align 2, 0 +_0802C5D8: .4byte gUnknown_02024A68 +_0802C5DC: + cmp r0, 0x2 + beq _0802C5E6 + cmp r0, 0x3 + beq _0802C622 + b _0802C624 +_0802C5E6: + ldr r2, _0802C660 @ =gUnknown_02024A60 + ldrb r0, [r2] + ldrb r1, [r5] + cmp r0, r1 + bne _0802C622 + ldr r1, _0802C664 @ =gUnknown_02024A6A + ldrb r2, [r2] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802C668 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802C66C @ =gUnknown_02024E64 + adds r2, r1 + ldrb r1, [r2] + adds r1, 0xD + bl GetMonData + ldr r2, _0802C670 @ =gBattleMoves + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x6] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802C624 +_0802C622: + adds r4, 0x1 +_0802C624: + ldr r0, _0802C674 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _0802C678 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + ldr r0, _0802C67C @ =gUnknown_03004344 + cmp r1, 0 + beq _0802C63C + movs r4, 0 +_0802C63C: + cmp r4, 0 + beq _0802C56C +_0802C640: + ldr r2, _0802C680 @ =gSprites + ldr r1, _0802C684 @ =gUnknown_02024BE0 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802C688 @ =sub_8010520 + str r1, [r0] +_0802C658: + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802C660: .4byte gUnknown_02024A60 +_0802C664: .4byte gUnknown_02024A6A +_0802C668: .4byte gPlayerParty +_0802C66C: .4byte gUnknown_02024E64 +_0802C670: .4byte gBattleMoves +_0802C674: .4byte gUnknown_02024C0C +_0802C678: .4byte gBitTable +_0802C67C: .4byte gUnknown_03004344 +_0802C680: .4byte gSprites +_0802C684: .4byte gUnknown_02024BE0 +_0802C688: .4byte sub_8010520 + thumb_func_end sub_802C2EC + + thumb_func_start sub_802C68C +sub_802C68C: @ 802C68C + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r0, 0 + mov r8, r0 + ldr r7, _0802C6E4 @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 9 + ldr r1, _0802C6E8 @ =gUnknown_02023A64 + adds r6, r0, r1 + ldr r0, _0802C6EC @ =gMain + ldrh r1, [r0, 0x2E] + movs r5, 0x1 + adds r4, r5, 0 + ands r4, r1 + cmp r4, 0 + bne _0802C6B2 + b _0802C864 +_0802C6B2: + movs r0, 0x5 + bl PlaySE + ldr r1, _0802C6F0 @ =gUnknown_02024E64 + ldrb r0, [r7] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r1, r6, r0 + ldrh r0, [r1] + cmp r0, 0xAE + bne _0802C6F4 + ldrb r0, [r6, 0x12] + movs r4, 0 + cmp r0, 0x7 + beq _0802C702 + ldrb r1, [r6, 0x13] + movs r0, 0x7 + eors r1, r0 + negs r0, r1 + orrs r0, r1 + asrs r4, r0, 31 + movs r0, 0x10 + ands r4, r0 + b _0802C702 + .align 2, 0 +_0802C6E4: .4byte gUnknown_02024A60 +_0802C6E8: .4byte gUnknown_02023A64 +_0802C6EC: .4byte gMain +_0802C6F0: .4byte gUnknown_02024E64 +_0802C6F4: + ldr r2, _0802C714 @ =gBattleMoves + ldrh r1, [r1] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r4, [r0, 0x6] +_0802C702: + movs r0, 0x10 + ands r0, r4 + cmp r0, 0 + beq _0802C720 + ldr r0, _0802C718 @ =gUnknown_03004344 + ldr r1, _0802C71C @ =gUnknown_02024A60 + ldrb r1, [r1] + strb r1, [r0] + b _0802C73A + .align 2, 0 +_0802C714: .4byte gBattleMoves +_0802C718: .4byte gUnknown_03004344 +_0802C71C: .4byte gUnknown_02024A60 +_0802C720: + ldr r0, _0802C764 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_get_per_side_status + adds r1, r0, 0 + movs r2, 0x1 + movs r0, 0x1 + ands r0, r1 + eors r0, r2 + bl battle_get_side_with_given_state + ldr r1, _0802C768 @ =gUnknown_03004344 + strb r0, [r1] +_0802C73A: + ldr r3, _0802C76C @ =gUnknown_02023A60 + ldr r5, _0802C764 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r1, r2, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _0802C770 + movs r0, 0x2 + ands r0, r4 + cmp r0, 0 + beq _0802C7B2 + adds r0, r3, 0x2 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0 + bne _0802C7B2 + movs r2, 0x1 + add r8, r2 + b _0802C7B2 + .align 2, 0 +_0802C764: .4byte gUnknown_02024A60 +_0802C768: .4byte gUnknown_03004344 +_0802C76C: .4byte gUnknown_02023A60 +_0802C770: + movs r0, 0x7D + ands r0, r4 + cmp r0, 0 + bne _0802C77C + movs r0, 0x1 + add r8, r0 +_0802C77C: + ldr r0, _0802C7D0 @ =gUnknown_02024E64 + adds r0, r2, r0 + adds r1, r6, 0 + adds r1, 0x8 + ldrb r0, [r0] + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + beq _0802C7B8 + movs r0, 0x12 + ands r0, r4 + cmp r0, 0 + bne _0802C7B2 + movs r0, 0 + bl sub_803C348 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _0802C7B2 + ldrb r0, [r5] + bl sub_803C434 + ldr r1, _0802C7D4 @ =gUnknown_03004344 + strb r0, [r1] + movs r2, 0 + mov r8, r2 +_0802C7B2: + mov r0, r8 + cmp r0, 0 + bne _0802C7DC +_0802C7B8: + bl sub_814A7FC + ldr r1, _0802C7D0 @ =gUnknown_02024E64 + ldr r0, _0802C7D8 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r2, [r0] + ldr r0, _0802C7D4 @ =gUnknown_03004344 + ldrb r0, [r0] + lsls r0, 8 + orrs r2, r0 + b _0802C888 + .align 2, 0 +_0802C7D0: .4byte gUnknown_02024E64 +_0802C7D4: .4byte gUnknown_03004344 +_0802C7D8: .4byte gUnknown_02024A60 +_0802C7DC: + ldr r1, _0802C7F8 @ =gUnknown_03004330 + ldr r2, _0802C7FC @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802C800 @ =sub_802C2EC + str r1, [r0] + movs r0, 0x12 + ands r4, r0 + cmp r4, 0 + beq _0802C808 + ldr r1, _0802C804 @ =gUnknown_03004344 + ldrb r0, [r2] + b _0802C838 + .align 2, 0 +_0802C7F8: .4byte gUnknown_03004330 +_0802C7FC: .4byte gUnknown_02024A60 +_0802C800: .4byte sub_802C2EC +_0802C804: .4byte gUnknown_03004344 +_0802C808: + movs r0, 0x1 + bl battle_get_side_with_given_state + ldr r1, _0802C828 @ =gUnknown_02024C0C + ldrb r1, [r1] + ldr r2, _0802C82C @ =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _0802C830 + movs r0, 0x3 + b _0802C832 + .align 2, 0 +_0802C828: .4byte gUnknown_02024C0C +_0802C82C: .4byte gBitTable +_0802C830: + movs r0, 0x1 +_0802C832: + bl battle_get_side_with_given_state + ldr r1, _0802C854 @ =gUnknown_03004344 +_0802C838: + strb r0, [r1] + ldr r2, _0802C858 @ =gSprites + ldr r1, _0802C85C @ =gUnknown_02024BE0 + ldr r0, _0802C854 @ =gUnknown_03004344 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802C860 @ =sub_8010520 + b _0802CA36 + .align 2, 0 +_0802C854: .4byte gUnknown_03004344 +_0802C858: .4byte gSprites +_0802C85C: .4byte gUnknown_02024BE0 +_0802C860: .4byte sub_8010520 +_0802C864: + movs r6, 0x2 + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + beq _0802C8A4 + bl sub_814A7FC + movs r0, 0x5 + bl PlaySE + ldr r0, _0802C898 @ =gUnknown_030042A4 + strh r4, [r0] + ldr r1, _0802C89C @ =gUnknown_030042A0 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + ldr r2, _0802C8A0 @ =0x0000ffff +_0802C888: + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + bl dp01_tbl1_exec_completed + b _0802CA38 + .align 2, 0 +_0802C898: .4byte gUnknown_030042A4 +_0802C89C: .4byte gUnknown_030042A0 +_0802C8A0: .4byte 0x0000ffff +_0802C8A4: + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802C8D4 + ldr r4, _0802C8D0 @ =gUnknown_02024E64 + adds r2, r4 + ldrb r1, [r2] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _0802C8BC + b _0802CA38 +_0802C8BC: + ldrb r0, [r2] + bl nullsub_7 + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + movs r2, 0x1 + eors r0, r2 + b _0802C976 + .align 2, 0 +_0802C8D0: .4byte gUnknown_02024E64 +_0802C8D4: + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802C914 + ldr r4, _0802C90C @ =gUnknown_02024E64 + adds r3, r2, r4 + ldrb r2, [r3] + movs r6, 0x1 + adds r0, r5, 0 + ands r0, r2 + cmp r0, 0 + beq _0802C8EE + b _0802CA38 +_0802C8EE: + ldr r1, _0802C910 @ =gUnknown_03004348 + adds r0, r6, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcc _0802C8FC + b _0802CA38 +_0802C8FC: + ldrb r0, [r3] + bl nullsub_7 + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + eors r0, r6 + b _0802C976 + .align 2, 0 +_0802C90C: .4byte gUnknown_02024E64 +_0802C910: .4byte gUnknown_03004348 +_0802C914: + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802C944 + ldr r4, _0802C940 @ =gUnknown_02024E64 + adds r2, r4 + ldrb r1, [r2] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _0802C92C + b _0802CA38 +_0802C92C: + ldrb r0, [r2] + bl nullsub_7 + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + movs r2, 0x2 + eors r0, r2 + b _0802C976 + .align 2, 0 +_0802C940: .4byte gUnknown_02024E64 +_0802C944: + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802C99C + ldr r4, _0802C994 @ =gUnknown_02024E64 + adds r3, r2, r4 + ldrb r2, [r3] + movs r5, 0x2 + adds r0, r6, 0 + ands r0, r2 + cmp r0, 0 + bne _0802CA38 + ldr r1, _0802C998 @ =gUnknown_03004348 + adds r0, r5, 0 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802CA38 + ldrb r0, [r3] + bl nullsub_7 + ldrb r1, [r7] + adds r1, r4 + ldrb r0, [r1] + eors r0, r5 +_0802C976: + strb r0, [r1] + movs r0, 0x5 + bl PlaySE + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + bl sub_802E3B4 + bl sub_802E220 + bl sub_802E2D4 + b _0802CA38 + .align 2, 0 +_0802C994: .4byte gUnknown_02024E64 +_0802C998: .4byte gUnknown_03004348 +_0802C99C: + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0802CA38 + ldr r0, _0802C9D8 @ =gUnknown_03004348 + ldrb r0, [r0] + cmp r0, 0x1 + bls _0802CA38 + ldr r0, _0802C9DC @ =gUnknown_020239F8 + ldrh r1, [r0] + adds r0, r6, 0 + ands r0, r1 + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + bne _0802CA38 + ldr r4, _0802C9E0 @ =gUnknown_02024E64 + adds r0, r2, r4 + ldrb r0, [r0] + ldr r1, _0802C9E4 @ =gUnknown_081FAE80 + bl sub_802E12C + ldrb r0, [r7] + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0802C9EC + ldr r0, _0802C9E8 @ =gUnknown_03004344 + strb r5, [r0] + b _0802C9F4 + .align 2, 0 +_0802C9D8: .4byte gUnknown_03004348 +_0802C9DC: .4byte gUnknown_020239F8 +_0802C9E0: .4byte gUnknown_02024E64 +_0802C9E4: .4byte gUnknown_081FAE80 +_0802C9E8: .4byte gUnknown_03004344 +_0802C9EC: + ldr r1, _0802CA44 @ =gUnknown_03004344 + adds r0, 0x1 + strb r0, [r1] + adds r0, r1, 0 +_0802C9F4: + ldrb r0, [r0] + movs r1, 0x1B + bl sub_802E3B4 + ldr r4, _0802CA48 @ =gUnknown_03004210 + ldr r1, _0802CA4C @ =0x00001016 + movs r0, 0x1C + str r0, [sp] + movs r0, 0x3A + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r2, 0x17 + movs r3, 0x37 + bl FillWindowRect + ldr r1, _0802CA50 @ =gUnknown_08400D89 + movs r2, 0xA4 + lsls r2, 2 + movs r0, 0x37 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x17 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _0802CA54 @ =gUnknown_03004330 + ldr r0, _0802CA58 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802CA5C @ =sub_802CA60 +_0802CA36: + str r1, [r0] +_0802CA38: + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802CA44: .4byte gUnknown_03004344 +_0802CA48: .4byte gUnknown_03004210 +_0802CA4C: .4byte 0x00001016 +_0802CA50: .4byte gUnknown_08400D89 +_0802CA54: .4byte gUnknown_03004330 +_0802CA58: .4byte gUnknown_02024A60 +_0802CA5C: .4byte sub_802CA60 + thumb_func_end sub_802C68C + + thumb_func_start sub_802CA60 +sub_802CA60: @ 802CA60 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + ldr r0, _0802CDEC @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x5 + ands r0, r1 + cmp r0, 0 + bne _0802CA7A + b _0802CE78 +_0802CA7A: + movs r0, 0x5 + bl PlaySE + ldr r0, _0802CDF0 @ =gUnknown_02024E64 + mov r10, r0 + ldr r1, _0802CDF4 @ =gUnknown_02024A60 + mov r8, r1 + ldrb r1, [r1] + adds r2, r1, r0 + ldr r5, _0802CDF8 @ =gUnknown_03004344 + ldrb r0, [r2] + ldrb r3, [r5] + cmp r0, r3 + bne _0802CA98 + b _0802CE14 +_0802CA98: + lsls r1, 9 + ldr r0, _0802CDFC @ =gUnknown_02023A64 + adds r1, r0 + mov r9, r1 + ldrb r1, [r2] + lsls r1, 1 + add r1, r9 + ldrh r6, [r1] + ldrb r0, [r5] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + strh r0, [r1] + ldrb r0, [r5] + lsls r0, 1 + add r0, r9 + strh r6, [r0] + mov r1, r8 + ldrb r0, [r1] + add r0, r10 + ldrb r1, [r0] + mov r7, r9 + adds r7, 0x8 + adds r1, r7, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r0, r7, r0 + strb r6, [r0] + mov r2, r8 + ldrb r0, [r2] + add r0, r10 + ldrb r1, [r0] + mov r2, r9 + adds r2, 0xC + adds r1, r2, r1 + ldrb r6, [r1] + ldrb r0, [r5] + adds r0, r2, r0 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r5] + adds r2, r0 + strb r6, [r2] + mov r3, r8 + ldrb r1, [r3] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + ldr r2, _0802CE00 @ =gUnknown_02024CA8 + adds r6, r0, r2 + ldrb r4, [r6, 0x18] + lsls r3, r4, 24 + lsrs r2, r3, 28 + ldr r0, _0802CE04 @ =gBitTable + mov r12, r0 + add r1, r10 + ldrb r0, [r1] + lsls r0, 2 + add r0, r12 + ldr r0, [r0] + ands r2, r0 + cmp r2, 0 + beq _0802CB52 + lsrs r1, r3, 28 + bics r1, r0 + lsls r1, 4 + movs r2, 0xF + adds r0, r2, 0 + ands r0, r4 + orrs r0, r1 + strb r0, [r6, 0x18] + mov r1, r8 + ldrb r0, [r1] + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + ldr r3, _0802CE00 @ =gUnknown_02024CA8 + adds r1, r3 + ldrb r4, [r1, 0x18] + lsrs r3, r4, 4 + ldrb r0, [r5] + lsls r0, 2 + add r0, r12 + ldr r0, [r0] + orrs r0, r3 + lsls r0, 4 + ands r2, r4 + orrs r2, r0 + strb r2, [r1, 0x18] +_0802CB52: + bl sub_802E1B0 + movs r6, 0 + mov r12, r7 + mov r5, sp + adds r5, 0x20 + str r5, [sp, 0x28] + ldr r2, _0802CE08 @ =gBattleMons + mov r0, r8 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r4, r0, 0 + adds r4, 0x3B + mov r7, r8 + mov r10, r2 + movs r5, 0x3 +_0802CB76: + mov r3, sp + adds r3, r6 + adds r3, 0x8 + ldrb r1, [r4] + lsls r2, r6, 1 + adds r0, r5, 0 + lsls r0, r2 + ands r1, r0 + asrs r1, r2 + strb r1, [r3] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802CB76 + ldr r1, _0802CDF0 @ =gUnknown_02024E64 + ldrb r0, [r7] + adds r0, r1 + ldrb r0, [r0] + add r0, sp + adds r0, 0x8 + ldrb r0, [r0] + ldr r2, [sp, 0x28] + strb r0, [r2] + ldrb r0, [r7] + adds r0, r1 + ldrb r0, [r0] + mov r2, sp + adds r2, r0 + adds r2, 0x8 + ldr r1, _0802CDF8 @ =gUnknown_03004344 + ldrb r0, [r1] + add r0, sp + adds r0, 0x8 + ldrb r0, [r0] + movs r3, 0 + strb r0, [r2] + ldrb r0, [r1] + mov r1, sp + adds r1, r0 + adds r1, 0x8 + ldr r5, [sp, 0x28] + ldrb r0, [r5] + strb r0, [r1] + strb r3, [r5] + movs r6, 0 + ldr r2, [sp, 0x28] +_0802CBD0: + mov r0, sp + adds r0, r6 + adds r0, 0x8 + ldrb r1, [r0] + lsls r0, r6, 1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802CBD0 + ldrb r1, [r7] + movs r0, 0x58 + muls r0, r1 + add r0, r10 + adds r0, 0x3B + ldr r2, [sp, 0x28] + ldrb r1, [r2] + strb r1, [r0] + movs r6, 0 + adds r4, r7, 0 + movs r3, 0x58 + movs r5, 0x24 + add r5, r10 + mov r8, r5 + mov r2, r9 + mov r7, r10 + adds r7, 0xC + mov r5, r12 +_0802CC0C: + lsls r1, r6, 1 + ldrb r0, [r4] + muls r0, r3 + adds r1, r0 + adds r1, r7 + ldrh r0, [r2] + strh r0, [r1] + ldrb r0, [r4] + adds r1, r0, 0 + muls r1, r3 + adds r1, r6, r1 + add r1, r8 + adds r0, r5, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r2, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802CC0C + ldr r2, _0802CDF4 @ =gUnknown_02024A60 + ldrb r1, [r2] + movs r0, 0x58 + muls r0, r1 + mov r1, r10 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x80 + lsls r1, 14 + ands r0, r1 + cmp r0, 0 + beq _0802CC4E + b _0802CE1C +_0802CC4E: + movs r6, 0 + mov r0, sp + adds r0, 0xC + str r0, [sp, 0x24] + add r1, sp, 0x14 + mov r10, r1 + ldr r3, _0802CE0C @ =gUnknown_02024A6A + mov r9, r3 + mov r8, r2 + movs r7, 0x64 + ldr r5, _0802CE10 @ =gPlayerParty + adds r4, r0, 0 +_0802CC66: + mov r1, r8 + ldrb r0, [r1] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0xD + bl GetMonData + strh r0, [r4] + mov r2, r8 + ldrb r0, [r2] + lsls r0, 1 + add r0, r9 + ldrh r0, [r0] + muls r0, r7 + adds r0, r5 + adds r1, r6, 0 + adds r1, 0x11 + bl GetMonData + mov r3, r10 + adds r1, r3, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802CC66 + ldr r1, _0802CE0C @ =gUnknown_02024A6A + ldr r0, _0802CDF4 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802CE10 @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + ldr r5, [sp, 0x28] + strb r0, [r5] + movs r6, 0 + movs r5, 0x3 + ldr r4, [sp, 0x28] +_0802CCC6: + mov r3, sp + adds r3, r6 + adds r3, 0x8 + lsls r2, r6, 1 + adds r1, r5, 0 + lsls r1, r2 + ldrb r0, [r4] + ands r0, r1 + asrs r0, r2 + strb r0, [r3] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802CCC6 + ldr r4, _0802CDF0 @ =gUnknown_02024E64 + ldr r3, _0802CDF4 @ =gUnknown_02024A60 + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + lsls r1, 1 + ldr r0, [sp, 0x24] + adds r1, r0, r1 + ldrh r6, [r1] + ldr r2, _0802CDF8 @ =gUnknown_03004344 + ldrb r0, [r2] + lsls r0, 1 + ldr r5, [sp, 0x24] + adds r0, r5, r0 + ldrh r0, [r0] + movs r5, 0 + strh r0, [r1] + ldrb r0, [r2] + lsls r0, 1 + ldr r1, [sp, 0x24] + adds r0, r1, r0 + strh r6, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r1, [r0] + add r1, r10 + ldrb r6, [r1] + ldrb r0, [r2] + add r0, r10 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + add r0, r10 + strb r6, [r0] + ldrb r0, [r3] + adds r0, r4 + ldrb r0, [r0] + add r0, sp + adds r0, 0x8 + ldrb r0, [r0] + ldr r1, [sp, 0x28] + strb r0, [r1] + ldrb r0, [r3] + adds r0, r4 + ldrb r0, [r0] + mov r1, sp + adds r1, r0 + adds r1, 0x8 + ldrb r0, [r2] + add r0, sp + adds r0, 0x8 + ldrb r0, [r0] + strb r0, [r1] + ldrb r0, [r2] + mov r1, sp + adds r1, r0 + adds r1, 0x8 + ldr r2, [sp, 0x28] + ldrb r0, [r2] + strb r0, [r1] + strb r5, [r2] + movs r6, 0 + ldr r2, [sp, 0x28] +_0802CD5E: + mov r0, sp + adds r0, r6 + adds r0, 0x8 + ldrb r1, [r0] + lsls r0, r6, 1 + lsls r1, r0 + ldrb r0, [r2] + orrs r0, r1 + strb r0, [r2] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802CD5E + movs r6, 0 + ldr r3, _0802CE0C @ =gUnknown_02024A6A + mov r10, r3 + ldr r5, _0802CDF4 @ =gUnknown_02024A60 + mov r9, r5 + movs r0, 0x64 + mov r8, r0 + ldr r7, _0802CE10 @ =gPlayerParty + ldr r5, [sp, 0x24] + adds r5, 0x8 + ldr r4, [sp, 0x24] +_0802CD8C: + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r2, r8 + muls r2, r0 + adds r0, r2, 0 + adds r0, r7 + adds r1, r6, 0 + adds r1, 0xD + adds r2, r4, 0 + bl SetMonData + mov r3, r9 + ldrb r0, [r3] + lsls r0, 1 + add r0, r10 + ldrh r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r7 + adds r1, r6, 0 + adds r1, 0x11 + adds r2, r5, 0 + bl SetMonData + adds r5, 0x1 + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802CD8C + ldr r1, _0802CE0C @ =gUnknown_02024A6A + ldr r0, _0802CDF4 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802CE10 @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + ldr r2, [sp, 0x28] + bl SetMonData + b _0802CE1C + .align 2, 0 +_0802CDEC: .4byte gMain +_0802CDF0: .4byte gUnknown_02024E64 +_0802CDF4: .4byte gUnknown_02024A60 +_0802CDF8: .4byte gUnknown_03004344 +_0802CDFC: .4byte gUnknown_02023A64 +_0802CE00: .4byte gUnknown_02024CA8 +_0802CE04: .4byte gBitTable +_0802CE08: .4byte gBattleMons +_0802CE0C: .4byte gUnknown_02024A6A +_0802CE10: .4byte gPlayerParty +_0802CE14: + ldrb r0, [r5] + ldr r1, _0802CF20 @ =gUnknown_08400D49 + bl sub_802E12C +_0802CE1C: + ldr r1, _0802CF24 @ =gUnknown_03004330 + ldr r2, _0802CF28 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802CF2C @ =sub_802C68C + str r1, [r0] + ldr r3, _0802CF30 @ =gUnknown_02024E64 + ldrb r0, [r2] + adds r0, r3 + ldr r1, _0802CF34 @ =gUnknown_03004344 + ldrb r1, [r1] + strb r1, [r0] + ldrb r0, [r2] + adds r0, r3 + ldrb r0, [r0] + movs r1, 0 + bl sub_802E3B4 + ldr r4, _0802CF38 @ =gUnknown_03004210 + ldr r1, _0802CF3C @ =0x00001016 + movs r0, 0x1C + str r0, [sp] + movs r0, 0x3A + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r2, 0x17 + movs r3, 0x37 + bl FillWindowRect + ldr r1, _0802CF40 @ =gUnknown_08400D38 + movs r2, 0xA4 + lsls r2, 2 + movs r0, 0x37 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x17 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + bl sub_802E220 + bl sub_802E2D4 +_0802CE78: + ldr r6, _0802CF44 @ =gMain + ldrh r1, [r6, 0x2E] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0 + beq _0802CEF0 + movs r0, 0x5 + bl PlaySE + ldr r0, _0802CF34 @ =gUnknown_03004344 + ldrb r0, [r0] + bl nullsub_7 + ldr r5, _0802CF30 @ =gUnknown_02024E64 + ldr r4, _0802CF28 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + movs r1, 0 + bl sub_802E3B4 + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + ldr r1, _0802CF20 @ =gUnknown_08400D49 + bl sub_802E12C + ldr r1, _0802CF24 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802CF2C @ =sub_802C68C + str r1, [r0] + ldr r4, _0802CF38 @ =gUnknown_03004210 + ldr r1, _0802CF3C @ =0x00001016 + movs r0, 0x1C + str r0, [sp] + movs r0, 0x3A + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r2, 0x17 + movs r3, 0x37 + bl FillWindowRect + ldr r1, _0802CF40 @ =gUnknown_08400D38 + movs r2, 0xA4 + lsls r2, 2 + movs r0, 0x37 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x17 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + bl sub_802E220 + bl sub_802E2D4 +_0802CEF0: + ldrh r1, [r6, 0x2E] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0802CF8C + ldr r3, _0802CF34 @ =gUnknown_03004344 + ldrb r2, [r3] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _0802CF8C + ldr r0, _0802CF30 @ =gUnknown_02024E64 + ldr r1, _0802CF28 @ =gUnknown_02024A60 + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _0802CF48 + ldrb r0, [r1] + movs r1, 0x1D + bl sub_802E3B4 + b _0802CF4E + .align 2, 0 +_0802CF20: .4byte gUnknown_08400D49 +_0802CF24: .4byte gUnknown_03004330 +_0802CF28: .4byte gUnknown_02024A60 +_0802CF2C: .4byte sub_802C68C +_0802CF30: .4byte gUnknown_02024E64 +_0802CF34: .4byte gUnknown_03004344 +_0802CF38: .4byte gUnknown_03004210 +_0802CF3C: .4byte 0x00001016 +_0802CF40: .4byte gUnknown_08400D38 +_0802CF44: .4byte gMain +_0802CF48: + ldrb r0, [r3] + bl nullsub_7 +_0802CF4E: + ldr r4, _0802CF78 @ =gUnknown_03004344 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl PlaySE + ldr r1, _0802CF7C @ =gUnknown_02024E64 + ldr r0, _0802CF80 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802CF84 + adds r0, r1, 0 + movs r1, 0 + bl sub_802E3B4 + b _0802CF8C + .align 2, 0 +_0802CF78: .4byte gUnknown_03004344 +_0802CF7C: .4byte gUnknown_02024E64 +_0802CF80: .4byte gUnknown_02024A60 +_0802CF84: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_802E3B4 +_0802CF8C: + ldr r0, _0802CFC8 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _0802D020 + ldr r3, _0802CFCC @ =gUnknown_03004344 + ldrb r2, [r3] + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + bne _0802D020 + ldr r1, _0802CFD0 @ =gUnknown_03004348 + movs r0, 0x1 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802D020 + ldr r0, _0802CFD4 @ =gUnknown_02024E64 + ldr r1, _0802CFD8 @ =gUnknown_02024A60 + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + cmp r2, r0 + bne _0802CFDC + ldrb r0, [r1] + movs r1, 0x1D + bl sub_802E3B4 + b _0802CFE2 + .align 2, 0 +_0802CFC8: .4byte gMain +_0802CFCC: .4byte gUnknown_03004344 +_0802CFD0: .4byte gUnknown_03004348 +_0802CFD4: .4byte gUnknown_02024E64 +_0802CFD8: .4byte gUnknown_02024A60 +_0802CFDC: + ldrb r0, [r3] + bl nullsub_7 +_0802CFE2: + ldr r4, _0802D00C @ =gUnknown_03004344 + ldrb r0, [r4] + movs r1, 0x1 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl PlaySE + ldr r1, _0802D010 @ =gUnknown_02024E64 + ldr r0, _0802D014 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802D018 + adds r0, r1, 0 + movs r1, 0 + bl sub_802E3B4 + b _0802D020 + .align 2, 0 +_0802D00C: .4byte gUnknown_03004344 +_0802D010: .4byte gUnknown_02024E64 +_0802D014: .4byte gUnknown_02024A60 +_0802D018: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_802E3B4 +_0802D020: + ldr r0, _0802D050 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802D0A4 + ldr r3, _0802D054 @ =gUnknown_03004344 + ldrb r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + beq _0802D0A4 + ldr r0, _0802D058 @ =gUnknown_02024E64 + ldr r1, _0802D05C @ =gUnknown_02024A60 + ldrb r1, [r1] + adds r1, r0 + ldrb r5, [r1] + cmp r2, r5 + bne _0802D060 + ldrb r0, [r1] + movs r1, 0x1D + bl sub_802E3B4 + b _0802D066 + .align 2, 0 +_0802D050: .4byte gMain +_0802D054: .4byte gUnknown_03004344 +_0802D058: .4byte gUnknown_02024E64 +_0802D05C: .4byte gUnknown_02024A60 +_0802D060: + ldrb r0, [r3] + bl nullsub_7 +_0802D066: + ldr r4, _0802D090 @ =gUnknown_03004344 + ldrb r0, [r4] + movs r1, 0x2 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl PlaySE + ldr r1, _0802D094 @ =gUnknown_02024E64 + ldr r0, _0802D098 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802D09C + adds r0, r1, 0 + movs r1, 0 + bl sub_802E3B4 + b _0802D0A4 + .align 2, 0 +_0802D090: .4byte gUnknown_03004344 +_0802D094: .4byte gUnknown_02024E64 +_0802D098: .4byte gUnknown_02024A60 +_0802D09C: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_802E3B4 +_0802D0A4: + ldr r0, _0802D0E0 @ =gMain + ldrh r1, [r0, 0x2E] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _0802D138 + ldr r3, _0802D0E4 @ =gUnknown_03004344 + ldrb r2, [r3] + movs r0, 0x2 + ands r0, r2 + cmp r0, 0 + bne _0802D138 + ldr r1, _0802D0E8 @ =gUnknown_03004348 + movs r0, 0x2 + eors r0, r2 + ldrb r1, [r1] + cmp r0, r1 + bcs _0802D138 + ldr r0, _0802D0EC @ =gUnknown_02024E64 + ldr r1, _0802D0F0 @ =gUnknown_02024A60 + ldrb r1, [r1] + adds r1, r0 + ldrb r0, [r1] + cmp r2, r0 + bne _0802D0F4 + ldrb r0, [r1] + movs r1, 0x1D + bl sub_802E3B4 + b _0802D0FA + .align 2, 0 +_0802D0E0: .4byte gMain +_0802D0E4: .4byte gUnknown_03004344 +_0802D0E8: .4byte gUnknown_03004348 +_0802D0EC: .4byte gUnknown_02024E64 +_0802D0F0: .4byte gUnknown_02024A60 +_0802D0F4: + ldrb r0, [r3] + bl nullsub_7 +_0802D0FA: + ldr r4, _0802D124 @ =gUnknown_03004344 + ldrb r0, [r4] + movs r1, 0x2 + eors r0, r1 + strb r0, [r4] + movs r0, 0x5 + bl PlaySE + ldr r1, _0802D128 @ =gUnknown_02024E64 + ldr r0, _0802D12C @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r4] + ldrb r0, [r0] + cmp r1, r0 + bne _0802D130 + adds r0, r1, 0 + movs r1, 0 + bl sub_802E3B4 + b _0802D138 + .align 2, 0 +_0802D124: .4byte gUnknown_03004344 +_0802D128: .4byte gUnknown_02024E64 +_0802D12C: .4byte gUnknown_02024A60 +_0802D130: + ldrb r0, [r4] + movs r1, 0x1B + bl sub_802E3B4 +_0802D138: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_802CA60 + + thumb_func_start sub_802D148 +sub_802D148: @ 802D148 + push {lr} + ldr r0, _0802D178 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _0802D174 + movs r0, 0x5A + bl m4aSongNumStop + ldr r3, _0802D17C @ =gMain + ldr r0, _0802D180 @ =0x0000043d + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _0802D184 @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r3] + ldr r0, _0802D188 @ =c2_8011A1C + bl SetMainCallback2 +_0802D174: + pop {r0} + bx r0 + .align 2, 0 +_0802D178: .4byte gReceivedRemoteLinkPlayers +_0802D17C: .4byte gMain +_0802D180: .4byte 0x0000043d +_0802D184: .4byte gUnknown_030042D0 +_0802D188: .4byte c2_8011A1C + thumb_func_end sub_802D148 + + thumb_func_start sub_802D18C +sub_802D18C: @ 802D18C + push {lr} + ldr r0, _0802D1BC @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802D1F2 + ldr r0, _0802D1C0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802D1D0 + bl sub_800832C + ldr r1, _0802D1C4 @ =gUnknown_03004330 + ldr r0, _0802D1C8 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802D1CC @ =sub_802D148 + str r1, [r0] + b _0802D1F2 + .align 2, 0 +_0802D1BC: .4byte gPaletteFade +_0802D1C0: .4byte gUnknown_020239F8 +_0802D1C4: .4byte gUnknown_03004330 +_0802D1C8: .4byte gUnknown_02024A60 +_0802D1CC: .4byte sub_802D148 +_0802D1D0: + movs r0, 0x5A + bl m4aSongNumStop + ldr r2, _0802D1F8 @ =gMain + ldr r0, _0802D1FC @ =0x0000043d + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, _0802D200 @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl SetMainCallback2 +_0802D1F2: + pop {r0} + bx r0 + .align 2, 0 +_0802D1F8: .4byte gMain +_0802D1FC: .4byte 0x0000043d +_0802D200: .4byte gUnknown_030042D0 + thumb_func_end sub_802D18C + + thumb_func_start sub_802D204 +sub_802D204: @ 802D204 + push {lr} + ldr r2, _0802D22C @ =gSprites + ldr r1, _0802D230 @ =gUnknown_02024BE0 + ldr r0, _0802D234 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802D238 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0802D228 + bl dp01_tbl1_exec_completed +_0802D228: + pop {r0} + bx r0 + .align 2, 0 +_0802D22C: .4byte gSprites +_0802D230: .4byte gUnknown_02024BE0 +_0802D234: .4byte gUnknown_02024A60 +_0802D238: .4byte SpriteCallbackDummy + thumb_func_end sub_802D204 + + thumb_func_start sub_802D23C +sub_802D23C: @ 802D23C + push {lr} + ldr r2, _0802D264 @ =gSprites + ldr r1, _0802D268 @ =gUnknown_02024BE0 + ldr r0, _0802D26C @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802D270 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0802D260 + bl dp01_tbl1_exec_completed +_0802D260: + pop {r0} + bx r0 + .align 2, 0 +_0802D264: .4byte gSprites +_0802D268: .4byte gUnknown_02024BE0 +_0802D26C: .4byte gUnknown_02024A60 +_0802D270: .4byte SpriteCallbackDummy + thumb_func_end sub_802D23C + + thumb_func_start sub_802D274 +sub_802D274: @ 802D274 + push {r4-r6,lr} + ldr r6, _0802D2CC @ =gSprites + ldr r5, _0802D2D0 @ =gUnknown_02024BE0 + ldr r4, _0802D2D4 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r6, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, [r0] + ldr r0, _0802D2D8 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0802D2C6 + ldr r0, _0802D2DC @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + bl nullsub_10 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl FreeSpriteOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + bl dp01_tbl1_exec_completed +_0802D2C6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D2CC: .4byte gSprites +_0802D2D0: .4byte gUnknown_02024BE0 +_0802D2D4: .4byte gUnknown_02024A60 +_0802D2D8: .4byte SpriteCallbackDummy +_0802D2DC: .4byte gSaveBlock2 + thumb_func_end sub_802D274 + + thumb_func_start sub_802D2E0 +sub_802D2E0: @ 802D2E0 + push {lr} + ldr r3, _0802D314 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r2, _0802D318 @ =0x02017810 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _0802D310 + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strb r0, [r1, 0x9] + bl dp01_tbl1_exec_completed +_0802D310: + pop {r0} + bx r0 + .align 2, 0 +_0802D314: .4byte gUnknown_02024A60 +_0802D318: .4byte 0x02017810 + thumb_func_end sub_802D2E0 + + thumb_func_start sub_802D31C +sub_802D31C: @ 802D31C + push {r4-r7,lr} + movs r6, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0802D340 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0802D374 + ldr r0, _0802D360 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802D374 +_0802D340: + ldr r2, _0802D364 @ =gSprites + ldr r1, _0802D368 @ =gUnknown_03004340 + ldr r0, _0802D36C @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802D370 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0802D3AA + b _0802D3A8 + .align 2, 0 +_0802D360: .4byte gUnknown_020239F8 +_0802D364: .4byte gSprites +_0802D368: .4byte gUnknown_03004340 +_0802D36C: .4byte gUnknown_02024A60 +_0802D370: .4byte SpriteCallbackDummy +_0802D374: + ldr r2, _0802D45C @ =gSprites + ldr r5, _0802D460 @ =gUnknown_03004340 + ldr r0, _0802D464 @ =gUnknown_02024A60 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, _0802D468 @ =SpriteCallbackDummy + cmp r4, r0 + bne _0802D3AA + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _0802D3AA +_0802D3A8: + movs r6, 0x1 +_0802D3AA: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _0802D3B6 + movs r6, 0 +_0802D3B6: + cmp r6, 0 + bne _0802D3BC + b _0802D4DA +_0802D3BC: + ldr r7, _0802D464 @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r5, _0802D46C @ =0x02017810 + adds r4, r0, r5 + ldrb r1, [r4, 0x1] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0802D3D8 + b _0802D4DA +_0802D3D8: + movs r6, 0x2 + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _0802D4DA + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, _0802D470 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r0, _0802D474 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802D47C + ldr r0, _0802D478 @ =gMPlay_BGM + bl m4aMPlayContinue + b _0802D488 + .align 2, 0 +_0802D45C: .4byte gSprites +_0802D460: .4byte gUnknown_03004340 +_0802D464: .4byte gUnknown_02024A60 +_0802D468: .4byte SpriteCallbackDummy +_0802D46C: .4byte 0x02017810 +_0802D470: .4byte 0x000027f9 +_0802D474: .4byte gUnknown_020239F8 +_0802D478: .4byte gMPlay_BGM +_0802D47C: + ldr r0, _0802D4E0 @ =gMPlay_BGM + ldr r1, _0802D4E4 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_0802D488: + ldr r7, _0802D4E8 @ =gUnknown_02024A6A + ldr r4, _0802D4EC @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0802D4F0 @ =gPlayerParty + adds r0, r5 + bl sub_80324F8 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0802D4BE + ldrb r0, [r4] + movs r1, 0x2 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + bl sub_80324F8 +_0802D4BE: + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802D4F4 @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, _0802D4F8 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802D4FC @ =sub_802D2E0 + str r1, [r0] +_0802D4DA: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D4E0: .4byte gMPlay_BGM +_0802D4E4: .4byte 0x0000ffff +_0802D4E8: .4byte gUnknown_02024A6A +_0802D4EC: .4byte gUnknown_02024A60 +_0802D4F0: .4byte gPlayerParty +_0802D4F4: .4byte 0x02017810 +_0802D4F8: .4byte gUnknown_03004330 +_0802D4FC: .4byte sub_802D2E0 + thumb_func_end sub_802D31C + + thumb_func_start sub_802D500 +sub_802D500: @ 802D500 + push {r4-r7,lr} + ldr r5, _0802D654 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + ldr r4, _0802D658 @ =0x02017810 + adds r0, r4 + ldrb r1, [r0] + movs r7, 0x88 + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _0802D530 + ldr r0, _0802D65C @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0802D660 @ =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_0802D530: + ldrb r0, [r5] + movs r6, 0x2 + adds r2, r6, 0 + eors r2, r0 + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + bne _0802D55E + ldr r0, _0802D65C @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0802D660 @ =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_0802D55E: + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r3, 0x8 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0802D64C + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0802D64C + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0802D5EE + ldr r0, _0802D664 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0802D5EE + ldr r1, _0802D668 @ =gUnknown_0300434C + ldrb r0, [r5] + eors r0, r6 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802D66C @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r4, _0802D670 @ =gUnknown_03004340 + ldrb r0, [r5] + adds r1, r6, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0802D65C @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0802D660 @ =gPlayerParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r5] + eors r0, r6 + bl sub_804777C + ldrb r0, [r5] + eors r0, r6 + adds r0, r4 + ldrb r0, [r0] + bl sub_8043DFC +_0802D5EE: + ldr r1, _0802D668 @ =gUnknown_0300434C + ldr r4, _0802D654 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802D66C @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r5, _0802D670 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _0802D65C @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0802D660 @ =gPlayerParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r4] + bl sub_804777C + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8043DFC + ldr r2, _0802D674 @ =0x02017840 + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, _0802D678 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802D67C @ =sub_802D31C + str r1, [r0] +_0802D64C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802D654: .4byte gUnknown_02024A60 +_0802D658: .4byte 0x02017810 +_0802D65C: .4byte gUnknown_02024A6A +_0802D660: .4byte gPlayerParty +_0802D664: .4byte gUnknown_020239F8 +_0802D668: .4byte gUnknown_0300434C +_0802D66C: .4byte gSprites +_0802D670: .4byte gUnknown_03004340 +_0802D674: .4byte 0x02017840 +_0802D678: .4byte gUnknown_03004330 +_0802D67C: .4byte sub_802D31C + thumb_func_end sub_802D500 + + thumb_func_start sub_802D680 +sub_802D680: @ 802D680 + push {r4-r6,lr} + ldr r2, _0802D710 @ =gSprites + ldr r0, _0802D714 @ =gUnknown_03004340 + ldr r6, _0802D718 @ =gUnknown_02024A60 + ldrb r3, [r6] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _0802D71C @ =SpriteCallbackDummy + cmp r1, r0 + bne _0802D708 + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r5, _0802D720 @ =0x02017810 + adds r2, r0, r5 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0802D708 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrb r0, [r6] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _0802D724 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldrb r2, [r6] + lsls r0, r2, 2 + adds r1, r5, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0802D6FC + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_0802D6FC: + ldr r0, _0802D728 @ =gUnknown_03004330 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _0802D72C @ =sub_802D730 + str r0, [r1] +_0802D708: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D710: .4byte gSprites +_0802D714: .4byte gUnknown_03004340 +_0802D718: .4byte gUnknown_02024A60 +_0802D71C: .4byte SpriteCallbackDummy +_0802D720: .4byte 0x02017810 +_0802D724: .4byte 0x000027f9 +_0802D728: .4byte gUnknown_03004330 +_0802D72C: .4byte sub_802D730 + thumb_func_end sub_802D680 + + thumb_func_start sub_802D730 +sub_802D730: @ 802D730 + push {r4,lr} + ldr r4, _0802D780 @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802D784 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0802D77A + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _0802D77A + ldr r0, _0802D788 @ =gMPlay_BGM + ldr r1, _0802D78C @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + ldr r2, _0802D790 @ =gUnknown_02024A6A + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802D794 @ =gPlayerParty + adds r0, r2 + bl sub_80324F8 + bl dp01_tbl1_exec_completed +_0802D77A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D780: .4byte gUnknown_02024A60 +_0802D784: .4byte 0x02017810 +_0802D788: .4byte gMPlay_BGM +_0802D78C: .4byte 0x0000ffff +_0802D790: .4byte gUnknown_02024A6A +_0802D794: .4byte gPlayerParty + thumb_func_end sub_802D730 + + thumb_func_start sub_802D798 +sub_802D798: @ 802D798 + push {r4-r6,lr} + ldr r5, _0802D844 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + ldr r6, _0802D848 @ =0x02017810 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _0802D7C6 + ldr r0, _0802D84C @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0802D850 @ =gPlayerParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_0802D7C6: + ldr r4, _0802D854 @ =gSprites + ldr r0, _0802D858 @ =gUnknown_0300434C + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _0802D85C @ =SpriteCallbackDummy + cmp r1, r0 + bne _0802D83C + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0802D83C + adds r0, r3, r4 + bl DestroySprite + ldr r4, _0802D860 @ =gUnknown_03004340 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _0802D84C @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0802D850 @ =gPlayerParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r5] + bl sub_804777C + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_8043DFC + ldrb r0, [r5] + bl sub_8031F88 + ldr r1, _0802D864 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802D868 @ =sub_802D680 + str r1, [r0] +_0802D83C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D844: .4byte gUnknown_02024A60 +_0802D848: .4byte 0x02017810 +_0802D84C: .4byte gUnknown_02024A6A +_0802D850: .4byte gPlayerParty +_0802D854: .4byte gSprites +_0802D858: .4byte gUnknown_0300434C +_0802D85C: .4byte SpriteCallbackDummy +_0802D860: .4byte gUnknown_03004340 +_0802D864: .4byte gUnknown_03004330 +_0802D868: .4byte sub_802D680 + thumb_func_end sub_802D798 + + thumb_func_start c3_0802FDF4 +c3_0802FDF4: @ 802D86C + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + bne _0802D88E + ldr r0, _0802D894 @ =gMPlay_BGM + ldr r1, _0802D898 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl + adds r0, r4, 0 + bl DestroyTask +_0802D88E: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802D894: .4byte gMPlay_BGM +_0802D898: .4byte 0x0000ffff + thumb_func_end c3_0802FDF4 + + thumb_func_start bx_t1_healthbar_update +bx_t1_healthbar_update: @ 802D89C + push {r4-r6,lr} + ldr r5, _0802D8DC @ =gUnknown_02024A60 + ldrb r0, [r5] + ldr r6, _0802D8E0 @ =gUnknown_03004340 + adds r1, r0, r6 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8045C78 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + bl sub_8043DFC + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _0802D8E4 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + movs r2, 0 + bl sub_80440EC + b _0802D8FE + .align 2, 0 +_0802D8DC: .4byte gUnknown_02024A60 +_0802D8E0: .4byte gUnknown_03004340 +_0802D8E4: + ldr r2, _0802D904 @ =gUnknown_02024A6A + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802D908 @ =gPlayerParty + adds r0, r2 + bl sub_80324F8 + bl dp01_tbl1_exec_completed +_0802D8FE: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802D904: .4byte gUnknown_02024A6A +_0802D908: .4byte gPlayerParty + thumb_func_end bx_t1_healthbar_update + + thumb_func_start sub_802D90C +sub_802D90C: @ 802D90C + push {lr} + ldr r0, _0802D920 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + bne _0802D91A + bl dp01_tbl1_exec_completed +_0802D91A: + pop {r0} + bx r0 + .align 2, 0 +_0802D920: .4byte gUnknown_03004210 + thumb_func_end sub_802D90C + + thumb_func_start sub_802D924 +sub_802D924: @ 802D924 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r1, _0802DA24 @ =gTasks + lsls r0, 2 + add r0, r9 + lsls r0, 3 + adds r0, r1 + mov r8, r0 + ldrb r0, [r0, 0x8] + mov r10, r0 + mov r1, r8 + ldrb r7, [r1, 0xC] + str r7, [sp, 0x8] + ldrh r2, [r1, 0xA] + str r2, [sp, 0xC] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + beq _0802D96A + ldr r1, _0802DA28 @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r10, r0 + bne _0802D96A + b _0802DA80 +_0802D96A: + movs r0, 0x64 + mov r1, r10 + muls r1, r0 + ldr r0, _0802DA2C @ =gPlayerParty + adds r6, r1, r0 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x4] + ldr r3, _0802DA30 @ =gExperienceTables + adds r4, 0x1 + lsls r4, 2 + ldr r2, _0802DA34 @ =gBaseStats + lsls r1, r5, 3 + subs r1, r5 + lsls r1, 2 + adds r1, r2 + ldrb r2, [r1, 0x13] + movs r1, 0xCA + lsls r1, 1 + muls r1, r2 + adds r4, r1 + adds r4, r3 + ldr r2, [r4] + str r2, [sp] + ldr r3, [sp, 0xC] + lsls r1, r3, 16 + asrs r1, 16 + adds r0, r1 + cmp r0, r2 + bcc _0802DA58 + adds r0, r6, 0 + movs r1, 0x19 + mov r2, sp + bl SetMonData + adds r0, r6, 0 + bl CalculateMonStats + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + ldr r0, [sp, 0xC] + subs r2, r0, r2 + ldr r4, _0802DA38 @ =gUnknown_02024A60 + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl dp01_build_cmdbuf_x21_a_bb + strb r5, [r4] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802DA40 + ldr r2, _0802DA28 @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r2 + mov r1, r10 + ldrh r0, [r0] + cmp r1, r0 + beq _0802DA1E + movs r0, 0x2 + eors r7, r0 + lsls r0, r7, 1 + adds r0, r2 + ldrh r0, [r0] + cmp r1, r0 + bne _0802DA40 +_0802DA1E: + ldr r0, _0802DA3C @ =sub_802DCB0 + b _0802DA82 + .align 2, 0 +_0802DA24: .4byte gTasks +_0802DA28: .4byte gUnknown_02024A6A +_0802DA2C: .4byte gPlayerParty +_0802DA30: .4byte gExperienceTables +_0802DA34: .4byte gBaseStats +_0802DA38: .4byte gUnknown_02024A60 +_0802DA3C: .4byte sub_802DCB0 +_0802DA40: + ldr r0, _0802DA50 @ =gTasks + mov r2, r9 + lsls r1, r2, 2 + add r1, r9 + lsls r1, 3 + adds r1, r0 + ldr r0, _0802DA54 @ =sub_802DDC4 + b _0802DA84 + .align 2, 0 +_0802DA50: .4byte gTasks +_0802DA54: .4byte sub_802DDC4 +_0802DA58: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r6, 0 + movs r1, 0x19 + bl SetMonData + ldr r1, _0802DA78 @ =gUnknown_03004330 + ldr r3, [sp, 0x8] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, _0802DA7C @ =sub_802D90C + str r1, [r0] + mov r0, r9 + bl DestroyTask + b _0802DA86 + .align 2, 0 +_0802DA78: .4byte gUnknown_03004330 +_0802DA7C: .4byte sub_802D90C +_0802DA80: + ldr r0, _0802DA98 @ =sub_802DA9C +_0802DA82: + mov r1, r8 +_0802DA84: + str r0, [r1] +_0802DA86: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802DA98: .4byte sub_802DA9C + thumb_func_end sub_802D924 + + thumb_func_start sub_802DA9C +sub_802DA9C: @ 802DA9C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0802DB54 @ =gTasks + lsls r2, r0, 2 + mov r8, r2 + add r8, r0 + mov r0, r8 + lsls r0, 3 + mov r8, r0 + add r8, r1 + mov r2, r8 + ldrb r1, [r2, 0x8] + movs r0, 0xA + ldrsh r2, [r2, r0] + mov r9, r2 + mov r2, r8 + ldrb r2, [r2, 0xC] + mov r10, r2 + movs r0, 0x64 + adds r6, r1, 0 + muls r6, r0 + ldr r0, _0802DB58 @ =gPlayerParty + adds r6, r0 + adds r0, r6, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + movs r1, 0xB + bl GetMonData + adds r5, r0, 0 + lsls r5, 16 + lsrs r5, 16 + adds r0, r6, 0 + movs r1, 0x19 + bl GetMonData + adds r3, r0, 0 + ldr r6, _0802DB5C @ =gExperienceTables + lsls r1, r4, 2 + ldr r2, _0802DB60 @ =gBaseStats + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r2 + ldrb r2, [r0, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r2 + adds r1, r0 + adds r1, r6 + ldr r1, [r1] + subs r3, r1 + adds r4, 0x1 + lsls r4, 2 + adds r4, r0 + adds r4, r6 + ldr r2, [r4] + subs r2, r1 + ldr r0, _0802DB64 @ =gUnknown_03004340 + add r0, r10 + ldrb r1, [r0] + mov r0, r9 + negs r0, r0 + str r0, [sp] + mov r0, r10 + bl sub_8043D84 + movs r0, 0x21 + bl PlaySE + ldr r0, _0802DB68 @ =sub_802DB6C + mov r1, r8 + str r0, [r1] + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802DB54: .4byte gTasks +_0802DB58: .4byte gPlayerParty +_0802DB5C: .4byte gExperienceTables +_0802DB60: .4byte gBaseStats +_0802DB64: .4byte gUnknown_03004340 +_0802DB68: .4byte sub_802DB6C + thumb_func_end sub_802DA9C + + thumb_func_start sub_802DB6C +sub_802DB6C: @ 802DB6C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _0802DB98 @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r6, r0, r1 + ldrh r1, [r6, 0x1C] + movs r2, 0x1C + ldrsh r0, [r6, r2] + cmp r0, 0xC + bgt _0802DB9C + adds r0, r1, 0x1 + strh r0, [r6, 0x1C] + b _0802DC98 + .align 2, 0 +_0802DB98: .4byte gTasks +_0802DB9C: + ldrb r0, [r6, 0x8] + mov r9, r0 + ldrh r2, [r6, 0xA] + mov r10, r2 + ldrb r7, [r6, 0xC] + ldr r5, _0802DC64 @ =gUnknown_03004340 + adds r5, r7, r5 + ldrb r1, [r5] + adds r0, r7, 0 + movs r2, 0x1 + movs r3, 0 + bl sub_8045C78 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r5] + bl sub_8043DFC + lsls r4, 16 + asrs r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r4, r0 + bne _0802DC98 + movs r0, 0x21 + bl m4aSongNumStop + movs r0, 0x64 + mov r1, r9 + muls r1, r0 + ldr r0, _0802DC68 @ =gPlayerParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x38 + bl GetMonData + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x4] + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + ldr r3, _0802DC6C @ =gExperienceTables + adds r4, 0x1 + lsls r4, 2 + ldr r2, _0802DC70 @ =gBaseStats + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1, 0x13] + movs r0, 0xCA + lsls r0, 1 + muls r0, r1 + adds r4, r0 + adds r4, r3 + ldr r1, [r4] + str r1, [sp] + mov r2, r10 + lsls r0, r2, 16 + asrs r4, r0, 16 + ldr r0, [sp, 0x4] + adds r0, r4 + cmp r0, r1 + blt _0802DC7C + adds r0, r5, 0 + movs r1, 0x19 + mov r2, sp + bl SetMonData + adds r0, r5, 0 + bl CalculateMonStats + ldr r2, [sp] + add r0, sp, 0x4 + ldrh r0, [r0] + subs r2, r0 + subs r2, r4, r2 + ldr r4, _0802DC74 @ =gUnknown_02024A60 + ldrb r5, [r4] + strb r7, [r4] + lsls r2, 16 + lsrs r2, 16 + movs r0, 0x1 + movs r1, 0xB + bl dp01_build_cmdbuf_x21_a_bb + strb r5, [r4] + ldr r0, _0802DC78 @ =sub_802DCB0 + str r0, [r6] + b _0802DC98 + .align 2, 0 +_0802DC64: .4byte gUnknown_03004340 +_0802DC68: .4byte gPlayerParty +_0802DC6C: .4byte gExperienceTables +_0802DC70: .4byte gBaseStats +_0802DC74: .4byte gUnknown_02024A60 +_0802DC78: .4byte sub_802DCB0 +_0802DC7C: + str r0, [sp, 0x4] + add r2, sp, 0x4 + adds r0, r5, 0 + movs r1, 0x19 + bl SetMonData + ldr r1, _0802DCA8 @ =gUnknown_03004330 + lsls r0, r7, 2 + adds r0, r1 + ldr r1, _0802DCAC @ =sub_802D90C + str r1, [r0] + mov r0, r8 + bl DestroyTask +_0802DC98: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802DCA8: .4byte gUnknown_03004330 +_0802DCAC: .4byte sub_802D90C + thumb_func_end sub_802DB6C + + thumb_func_start sub_802DCB0 +sub_802DCB0: @ 802DCB0 + push {r4-r6,lr} + lsls r0, 24 + lsrs r5, r0, 24 + ldr r1, _0802DD04 @ =gTasks + lsls r0, r5, 2 + adds r0, r5 + lsls r0, 3 + adds r0, r1 + ldrb r4, [r0, 0xC] + ldrb r6, [r0, 0x8] + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802DCE4 + ldr r1, _0802DD08 @ =gUnknown_02024A6A + movs r0, 0x2 + adds r2, r4, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + bne _0802DCE4 + adds r4, r2, 0 +_0802DCE4: + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r4, 0 + movs r3, 0 + bl move_anim_start_t4 + ldr r0, _0802DD04 @ =gTasks + lsls r1, r5, 2 + adds r1, r5 + lsls r1, 3 + adds r1, r0 + ldr r0, _0802DD0C @ =sub_802DD10 + str r0, [r1] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802DD04: .4byte gTasks +_0802DD08: .4byte gUnknown_02024A6A +_0802DD0C: .4byte sub_802DD10 + thumb_func_end sub_802DCB0 + + thumb_func_start sub_802DD10 +sub_802DD10: @ 802DD10 + push {r4-r7,lr} + lsls r0, 24 + lsrs r6, r0, 24 + ldr r1, _0802DD78 @ =gTasks + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 3 + adds r2, r0, r1 + ldrb r5, [r2, 0xC] + lsls r0, r5, 1 + adds r0, r5 + lsls r0, 2 + ldr r1, _0802DD7C @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0802DDAE + ldrb r4, [r2, 0x8] + movs r0, 0x64 + adds r1, r4, 0 + muls r1, r0 + ldr r0, _0802DD80 @ =gPlayerParty + adds r7, r1, r0 + adds r0, r7, 0 + movs r1, 0x38 + bl GetMonData + bl battle_type_is_double + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0802DD8C + ldr r1, _0802DD84 @ =gUnknown_02024A6A + movs r0, 0x2 + adds r2, r5, 0 + eors r2, r0 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + bne _0802DD8C + ldr r0, _0802DD88 @ =gUnknown_03004340 + adds r0, r2, r0 + ldrb r0, [r0] + adds r1, r7, 0 + movs r2, 0 + bl sub_8045A5C + b _0802DDA0 + .align 2, 0 +_0802DD78: .4byte gTasks +_0802DD7C: .4byte 0x02017810 +_0802DD80: .4byte gPlayerParty +_0802DD84: .4byte gUnknown_02024A6A +_0802DD88: .4byte gUnknown_03004340 +_0802DD8C: + ldr r0, _0802DDB4 @ =gUnknown_03004340 + adds r0, r5, r0 + ldrb r0, [r0] + movs r1, 0x64 + muls r1, r4 + ldr r2, _0802DDB8 @ =gPlayerParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C +_0802DDA0: + ldr r0, _0802DDBC @ =gTasks + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + adds r1, r0 + ldr r0, _0802DDC0 @ =sub_802DDC4 + str r0, [r1] +_0802DDAE: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802DDB4: .4byte gUnknown_03004340 +_0802DDB8: .4byte gPlayerParty +_0802DDBC: .4byte gTasks +_0802DDC0: .4byte sub_802DDC4 + thumb_func_end sub_802DD10 + + thumb_func_start sub_802DDC4 +sub_802DDC4: @ 802DDC4 + push {r4,r5,lr} + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _0802DE00 @ =gTasks + lsls r4, r5, 2 + adds r4, r5 + lsls r4, 3 + adds r4, r0 + ldrb r1, [r4, 0x8] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802DE04 @ =gPlayerParty + adds r0, r1 + movs r1, 0x38 + bl GetMonData + ldrb r0, [r4, 0xC] + ldr r1, _0802DE08 @ =gUnknown_03004330 + lsls r0, 2 + adds r0, r1 + ldr r1, _0802DE0C @ =sub_802D90C + str r1, [r0] + adds r0, r5, 0 + bl DestroyTask + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802DE00: .4byte gTasks +_0802DE04: .4byte gPlayerParty +_0802DE08: .4byte gUnknown_03004330 +_0802DE0C: .4byte sub_802D90C + thumb_func_end sub_802DDC4 + + thumb_func_start sub_802DE10 +sub_802DE10: @ 802DE10 + push {r4-r6,lr} + ldr r6, _0802DE94 @ =gSprites + ldr r5, _0802DE98 @ =gUnknown_02024BE0 + ldr r4, _0802DE9C @ =gUnknown_02024A60 + ldrb r2, [r4] + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r3, 0x22 + ldrsh r1, [r0, r3] + movs r3, 0x26 + ldrsh r0, [r0, r3] + adds r1, r0 + cmp r1, 0xA0 + ble _0802DE8C + ldr r1, _0802DEA0 @ =gUnknown_02024A6A + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802DEA4 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + bl nullsub_9 + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + bl FreeOamMatrix + ldrb r0, [r4] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + bl DestroySprite + ldr r1, _0802DEA8 @ =gUnknown_03004340 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl1_exec_completed +_0802DE8C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802DE94: .4byte gSprites +_0802DE98: .4byte gUnknown_02024BE0 +_0802DE9C: .4byte gUnknown_02024A60 +_0802DEA0: .4byte gUnknown_02024A6A +_0802DEA4: .4byte gPlayerParty +_0802DEA8: .4byte gUnknown_03004340 + thumb_func_end sub_802DE10 + + thumb_func_start sub_802DEAC +sub_802DEAC: @ 802DEAC + push {r4-r6,lr} + ldr r6, _0802DF04 @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _0802DF08 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0802DEFC + ldr r5, _0802DF0C @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0802DF10 @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, _0802DF14 @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl1_exec_completed +_0802DEFC: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802DF04: .4byte gUnknown_02024A60 +_0802DF08: .4byte 0x02017810 +_0802DF0C: .4byte gUnknown_02024BE0 +_0802DF10: .4byte gSprites +_0802DF14: .4byte gUnknown_03004340 + thumb_func_end sub_802DEAC + + thumb_func_start sub_802DF18 +sub_802DF18: @ 802DF18 + push {lr} + ldr r0, _0802DF2C @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + bne _0802DF26 + bl dp01_tbl1_exec_completed +_0802DF26: + pop {r0} + bx r0 + .align 2, 0 +_0802DF2C: .4byte gUnknown_03004210 + thumb_func_end sub_802DF18 + + thumb_func_start sub_802DF30 +sub_802DF30: @ 802DF30 + push {r4,lr} + ldr r0, _0802DF70 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802DF6A + ldr r1, _0802DF74 @ =gUnknown_03004330 + ldr r2, _0802DF78 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802DF7C @ =sub_802DF88 + str r1, [r0] + ldr r3, _0802DF80 @ =gTasks + ldr r1, _0802DF84 @ =gUnknown_0300434C + ldrb r0, [r2] + adds r0, r1 + ldrb r0, [r0] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r3 + ldrb r4, [r1, 0x8] + bl DestroyTask + adds r0, r4, 0 + bl sub_8094E20 +_0802DF6A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802DF70: .4byte gPaletteFade +_0802DF74: .4byte gUnknown_03004330 +_0802DF78: .4byte gUnknown_02024A60 +_0802DF7C: .4byte sub_802DF88 +_0802DF80: .4byte gTasks +_0802DF84: .4byte gUnknown_0300434C + thumb_func_end sub_802DF30 + + thumb_func_start sub_802DF88 +sub_802DF88: @ 802DF88 + push {lr} + ldr r0, _0802DFB8 @ =gMain + ldr r1, [r0, 0x4] + ldr r0, _0802DFBC @ =sub_800F808 + cmp r1, r0 + bne _0802DFF8 + ldr r0, _0802DFC0 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802DFF8 + ldr r0, _0802DFC4 @ =gUnknown_0202E8F4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0802DFD0 + ldr r0, _0802DFC8 @ =gUnknown_0202E8F5 + ldrb r1, [r0] + ldr r2, _0802DFCC @ =gUnknown_02038470 + movs r0, 0x1 + bl dp01_build_cmdbuf_x22_a_three_bytes + b _0802DFDA + .align 2, 0 +_0802DFB8: .4byte gMain +_0802DFBC: .4byte sub_800F808 +_0802DFC0: .4byte gPaletteFade +_0802DFC4: .4byte gUnknown_0202E8F4 +_0802DFC8: .4byte gUnknown_0202E8F5 +_0802DFCC: .4byte gUnknown_02038470 +_0802DFD0: + movs r0, 0x1 + movs r1, 0x6 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes +_0802DFDA: + ldr r1, _0802DFFC @ =gUnknown_02023A60 + ldr r0, _0802E000 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0xF + ands r0, r1 + cmp r0, 0x1 + bne _0802DFF4 + bl b_link_standby_message +_0802DFF4: + bl dp01_tbl1_exec_completed +_0802DFF8: + pop {r0} + bx r0 + .align 2, 0 +_0802DFFC: .4byte gUnknown_02023A60 +_0802E000: .4byte gUnknown_02024A60 + thumb_func_end sub_802DF88 + + thumb_func_start sub_802E004 +sub_802E004: @ 802E004 + push {lr} + ldr r0, _0802E02C @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802E028 + ldr r1, _0802E030 @ =gUnknown_03004330 + ldr r0, _0802E034 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802E038 @ =sub_802E03C + str r1, [r0] + bl nullsub_14 + bl sub_80A6DCC +_0802E028: + pop {r0} + bx r0 + .align 2, 0 +_0802E02C: .4byte gPaletteFade +_0802E030: .4byte gUnknown_03004330 +_0802E034: .4byte gUnknown_02024A60 +_0802E038: .4byte sub_802E03C + thumb_func_end sub_802E004 + + thumb_func_start sub_802E03C +sub_802E03C: @ 802E03C + push {lr} + ldr r0, _0802E068 @ =gMain + ldr r1, [r0, 0x4] + ldr r0, _0802E06C @ =sub_800F808 + cmp r1, r0 + bne _0802E062 + ldr r0, _0802E070 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _0802E062 + ldr r0, _0802E074 @ =word_203855E + ldrh r1, [r0] + movs r0, 0x1 + bl dp01_build_cmdbuf_x23_aa_0 + bl dp01_tbl1_exec_completed +_0802E062: + pop {r0} + bx r0 + .align 2, 0 +_0802E068: .4byte gMain +_0802E06C: .4byte sub_800F808 +_0802E070: .4byte gPaletteFade +_0802E074: .4byte word_203855E + thumb_func_end sub_802E03C + + thumb_func_start bx_wait_t1 +bx_wait_t1: @ 802E078 + push {lr} + ldr r0, _0802E0A4 @ =gUnknown_02024E6D + ldrb r0, [r0] + cmp r0, 0 + beq _0802E09A + ldr r0, _0802E0A8 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802E0AC @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _0802E09E +_0802E09A: + bl dp01_tbl1_exec_completed +_0802E09E: + pop {r0} + bx r0 + .align 2, 0 +_0802E0A4: .4byte gUnknown_02024E6D +_0802E0A8: .4byte gUnknown_02024A60 +_0802E0AC: .4byte 0x02017810 + thumb_func_end bx_wait_t1 + + thumb_func_start bx_blink_t1 +bx_blink_t1: @ 802E0B0 + push {r4,lr} + ldr r1, _0802E0EC @ =gUnknown_02024BE0 + ldr r0, _0802E0F0 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _0802E0F4 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _0802E0FC + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, _0802E0F8 @ =gUnknown_02024E6D + strb r3, [r0] + bl dp01_tbl1_exec_completed + b _0802E126 + .align 2, 0 +_0802E0EC: .4byte gUnknown_02024BE0 +_0802E0F0: .4byte gUnknown_02024A60 +_0802E0F4: .4byte gSprites +_0802E0F8: .4byte gUnknown_02024E6D +_0802E0FC: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _0802E120 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_0802E120: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_0802E126: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t1 + + thumb_func_start sub_802E12C +sub_802E12C: @ 802E12C + push {r4-r6,lr} + sub sp, 0x4 + adds r6, r0, 0 + ldr r0, _0802E180 @ =gUnknown_02024A60 + ldrb r4, [r0] + lsls r4, 9 + ldr r0, _0802E184 @ =gUnknown_02023A64 + adds r4, r0 + ldr r5, _0802E188 @ =gUnknown_020238CC + adds r0, r5, 0 + bl StringCopy + lsls r0, r6, 1 + adds r4, r0 + ldrh r1, [r4] + movs r0, 0xD + muls r1, r0 + ldr r0, _0802E18C @ =gMoveNames + adds r1, r0 + adds r0, r5, 0 + bl StringAppend + ldr r4, _0802E190 @ =gUnknown_03004210 + adds r1, r5, 0 + lsls r0, r6, 2 + adds r0, r6 + lsls r0, 18 + movs r2, 0xC0 + lsls r2, 18 + adds r0, r2 + lsrs r2, r0, 16 + movs r0, 0x1 + ands r0, r6 + movs r3, 0x1 + cmp r0, 0 + beq _0802E176 + movs r3, 0xB +_0802E176: + cmp r6, 0x1 + bgt _0802E194 + movs r0, 0x37 + b _0802E196 + .align 2, 0 +_0802E180: .4byte gUnknown_02024A60 +_0802E184: .4byte gUnknown_02023A64 +_0802E188: .4byte gUnknown_020238CC +_0802E18C: .4byte gMoveNames +_0802E190: .4byte gUnknown_03004210 +_0802E194: + movs r0, 0x39 +_0802E196: + str r0, [sp] + adds r0, r4, 0 + bl InitWindow + ldr r0, _0802E1AC @ =gUnknown_03004210 + bl sub_8002F44 + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802E1AC: .4byte gUnknown_03004210 + thumb_func_end sub_802E12C + + thumb_func_start sub_802E1B0 +sub_802E1B0: @ 802E1B0 + push {r4-r6,lr} + sub sp, 0x8 + ldr r0, _0802E208 @ =gUnknown_02024A60 + ldrb r4, [r0] + lsls r4, 9 + ldr r0, _0802E20C @ =gUnknown_02023A64 + adds r4, r0 + ldr r5, _0802E210 @ =gUnknown_03004348 + movs r0, 0 + strb r0, [r5] + ldr r0, _0802E214 @ =gUnknown_03004210 + ldr r1, _0802E218 @ =0x00001016 + movs r2, 0x14 + str r2, [sp] + movs r2, 0x3A + str r2, [sp, 0x4] + movs r2, 0x1 + movs r3, 0x37 + bl FillWindowRect + movs r6, 0 +_0802E1DA: + lsls r0, r6, 24 + lsrs r0, 24 + bl nullsub_7 + adds r0, r6, 0 + ldr r1, _0802E21C @ =gUnknown_08400D49 + bl sub_802E12C + ldrh r0, [r4] + cmp r0, 0 + beq _0802E1F6 + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] +_0802E1F6: + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802E1DA + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802E208: .4byte gUnknown_02024A60 +_0802E20C: .4byte gUnknown_02023A64 +_0802E210: .4byte gUnknown_03004348 +_0802E214: .4byte gUnknown_03004210 +_0802E218: .4byte 0x00001016 +_0802E21C: .4byte gUnknown_08400D49 + thumb_func_end sub_802E1B0 + + thumb_func_start sub_802E220 +sub_802E220: @ 802E220 + push {r4-r6,lr} + sub sp, 0x4 + ldr r4, _0802E2B8 @ =gUnknown_02023A60 + ldr r6, _0802E2BC @ =gUnknown_02024A60 + ldrb r0, [r6] + lsls r1, r0, 9 + adds r0, r4, 0x2 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0802E2B0 + adds r4, 0x4 + adds r4, r1, r4 + ldr r2, _0802E2C0 @ =gUnknown_020238CC + ldr r1, _0802E2C4 @ =gUnknown_08400D49 + adds r0, r2, 0 + bl StringCopy + adds r2, r0, 0 + movs r1, 0xFC + strb r1, [r2] + movs r0, 0x11 + strb r0, [r2, 0x1] + movs r0, 0x2 + strb r0, [r2, 0x2] + adds r2, 0x3 + strb r1, [r2] + movs r0, 0x14 + strb r0, [r2, 0x1] + movs r0, 0x6 + strb r0, [r2, 0x2] + adds r2, 0x3 + ldr r5, _0802E2C8 @ =gUnknown_02024E64 + ldrb r1, [r6] + adds r1, r5 + adds r0, r4, 0 + adds r0, 0x8 + ldrb r1, [r1] + adds r0, r1 + ldrb r1, [r0] + adds r0, r2, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + adds r2, r0, 0 + movs r0, 0xBA + strb r0, [r2] + adds r2, 0x1 + ldrb r0, [r6] + adds r0, r5 + adds r4, 0xC + ldrb r0, [r0] + adds r4, r0 + ldrb r1, [r4] + adds r0, r2, 0 + movs r2, 0x1 + movs r3, 0x2 + bl ConvertIntToDecimalStringN + ldr r4, _0802E2CC @ =gUnknown_03004210 + ldr r1, _0802E2C0 @ =gUnknown_020238CC + ldr r2, _0802E2D0 @ =0x000002a2 + movs r0, 0x37 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x19 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 +_0802E2B0: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802E2B8: .4byte gUnknown_02023A60 +_0802E2BC: .4byte gUnknown_02024A60 +_0802E2C0: .4byte gUnknown_020238CC +_0802E2C4: .4byte gUnknown_08400D49 +_0802E2C8: .4byte gUnknown_02024E64 +_0802E2CC: .4byte gUnknown_03004210 +_0802E2D0: .4byte 0x000002a2 + thumb_func_end sub_802E220 + + thumb_func_start sub_802E2D4 +sub_802E2D4: @ 802E2D4 + push {r4,r5,lr} + sub sp, 0x8 + ldr r4, _0802E314 @ =gUnknown_02023A60 + ldr r5, _0802E318 @ =gUnknown_02024A60 + ldrb r0, [r5] + lsls r1, r0, 9 + adds r0, r4, 0x2 + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0802E328 + ldr r4, _0802E31C @ =gUnknown_03004210 + ldr r1, _0802E320 @ =0x00001016 + movs r0, 0x1C + str r0, [sp] + movs r0, 0x3A + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r2, 0x17 + movs r3, 0x37 + bl FillWindowRect + ldr r1, _0802E324 @ =gUnknown_08400D52 + movs r2, 0xA4 + lsls r2, 2 + movs r0, 0x37 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x13 + bl InitWindow + b _0802E388 + .align 2, 0 +_0802E314: .4byte gUnknown_02023A60 +_0802E318: .4byte gUnknown_02024A60 +_0802E31C: .4byte gUnknown_03004210 +_0802E320: .4byte 0x00001016 +_0802E324: .4byte gUnknown_08400D52 +_0802E328: + adds r4, 0x4 + adds r4, r1, r4 + ldr r3, _0802E398 @ =gUnknown_020238CC + ldr r1, _0802E39C @ =gUnknown_08400D49 + adds r0, r3, 0 + bl StringCopy + adds r3, r0, 0 + ldr r2, _0802E3A0 @ =gBattleMoves + ldr r1, _0802E3A4 @ =gUnknown_02024E64 + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + lsls r0, 1 + adds r4, r0 + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + lsls r1, r0, 3 + subs r1, r0 + ldr r0, _0802E3A8 @ =gTypeNames + adds r1, r0 + adds r0, r3, 0 + bl StringCopy + ldr r4, _0802E3AC @ =gUnknown_03004210 + ldr r1, _0802E3B0 @ =0x00001016 + movs r0, 0x1C + str r0, [sp] + movs r0, 0x3A + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r2, 0x17 + movs r3, 0x39 + bl FillWindowRect + ldr r1, _0802E398 @ =gUnknown_020238CC + movs r2, 0xB0 + lsls r2, 2 + movs r0, 0x39 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x17 + bl InitWindow +_0802E388: + ldr r0, _0802E3AC @ =gUnknown_03004210 + bl sub_8002F44 + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802E398: .4byte gUnknown_020238CC +_0802E39C: .4byte gUnknown_08400D49 +_0802E3A0: .4byte gBattleMoves +_0802E3A4: .4byte gUnknown_02024E64 +_0802E3A8: .4byte gTypeNames +_0802E3AC: .4byte gUnknown_03004210 +_0802E3B0: .4byte 0x00001016 + thumb_func_end sub_802E2D4 + + thumb_func_start sub_802E3B4 +sub_802E3B4: @ 802E3B4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x48 + bl sub_814A958 + ldr r1, _0802E3DC @ =gUnknown_081FAE89 + lsls r4, 1 + adds r0, r4, r1 + ldrb r0, [r0] + adds r1, 0x1 + adds r4, r1 + ldrb r1, [r4] + bl sub_814A880 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802E3DC: .4byte gUnknown_081FAE89 + thumb_func_end sub_802E3B4 + + thumb_func_start nullsub_7 +nullsub_7: @ 802E3E0 + bx lr + thumb_func_end nullsub_7 + + thumb_func_start sub_802E3E4 +sub_802E3E4: @ 802E3E4 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + movs r0, 0x2A + bl sub_814A958 + ldr r1, _0802E40C @ =gUnknown_081FAE91 + lsls r4, 1 + adds r0, r4, r1 + ldrb r0, [r0] + adds r1, 0x1 + adds r4, r1 + ldrb r1, [r4] + bl sub_814A880 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802E40C: .4byte gUnknown_081FAE91 + thumb_func_end sub_802E3E4 + + thumb_func_start nullsub_8 +nullsub_8: @ 802E410 + bx lr + thumb_func_end nullsub_8 + + thumb_func_start sub_802E414 +sub_802E414: @ 802E414 + push {lr} + ldr r0, _0802E420 @ =sub_807AD58 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0802E420: .4byte sub_807AD58 + thumb_func_end sub_802E414 + + thumb_func_start sub_802E424 +sub_802E424: @ 802E424 + push {lr} + ldr r0, _0802E430 @ =sub_807AD58 + bl SetMainCallback2 + pop {r0} + bx r0 + .align 2, 0 +_0802E430: .4byte sub_807AD58 + thumb_func_end sub_802E424 + + thumb_func_start sub_802E434 +sub_802E434: @ 802E434 + push {lr} + ldr r0, _0802E458 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802E45C @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _0802E452 + bl dp01_tbl1_exec_completed +_0802E452: + pop {r0} + bx r0 + .align 2, 0 +_0802E458: .4byte gUnknown_02024A60 +_0802E45C: .4byte 0x02017810 + thumb_func_end sub_802E434 + + thumb_func_start sub_802E460 +sub_802E460: @ 802E460 + push {lr} + ldr r0, _0802E484 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0802E488 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _0802E47E + bl dp01_tbl1_exec_completed +_0802E47E: + pop {r0} + bx r0 + .align 2, 0 +_0802E484: .4byte gUnknown_02024A60 +_0802E488: .4byte 0x02017810 + thumb_func_end sub_802E460 + + thumb_func_start b_link_standby_message +b_link_standby_message: @ 802E48C + push {lr} + sub sp, 0x4 + ldr r0, _0802E4BC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0802E4B6 + ldr r0, _0802E4C0 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _0802E4C4 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r0, _0802E4C8 @ =gUnknown_03004210 + ldr r1, _0802E4CC @ =gUnknown_08400CE0 + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 +_0802E4B6: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0802E4BC: .4byte gUnknown_020239F8 +_0802E4C0: .4byte gUnknown_030042A4 +_0802E4C4: .4byte gUnknown_030042A0 +_0802E4C8: .4byte gUnknown_03004210 +_0802E4CC: .4byte gUnknown_08400CE0 + thumb_func_end b_link_standby_message + + thumb_func_start dp01t_00_1_getattr +dp01t_00_1_getattr: @ 802E4D0 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, _0802E4FC @ =gUnknown_02023A60 + ldr r0, _0802E500 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0802E508 + ldr r0, _0802E504 @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl dp01_getattr_by_ch1_for_player_pokemon_ + adds r6, r0, 0 + b _0802E52A + .align 2, 0 +_0802E4FC: .4byte gUnknown_02023A60 +_0802E500: .4byte gUnknown_02024A60 +_0802E504: .4byte gUnknown_02024A6A +_0802E508: + ldrb r4, [r1] + movs r5, 0 +_0802E50C: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0802E522 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl dp01_getattr_by_ch1_for_player_pokemon_ + adds r6, r0 +_0802E522: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _0802E50C +_0802E52A: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl dp01_tbl1_exec_completed + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_1_getattr + + thumb_func_start dp01_getattr_by_ch1_for_player_pokemon_ +dp01_getattr_by_ch1_for_player_pokemon_: @ 802E544 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, _0802E578 @ =gUnknown_02023A60 + ldr r3, _0802E57C @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _0802E56E + bl _0802ECDA +_0802E56E: + lsls r0, 2 + ldr r1, _0802E580 @ =_0802E584 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802E578: .4byte gUnknown_02023A60 +_0802E57C: .4byte gUnknown_02024A60 +_0802E580: .4byte _0802E584 + .align 2, 0 +_0802E584: + .4byte _0802E674 + .4byte _0802E898 + .4byte _0802E8A8 + .4byte _0802E8B8 + .4byte _0802E920 + .4byte _0802E920 + .4byte _0802E920 + .4byte _0802E920 + .4byte _0802E93C + .4byte _0802E978 + .4byte _0802E978 + .4byte _0802E978 + .4byte _0802E978 + .4byte _0802ECDA + .4byte _0802ECDA + .4byte _0802ECDA + .4byte _0802ECDA + .4byte _0802E994 + .4byte _0802E9A4 + .4byte _0802E9D4 + .4byte _0802E9E4 + .4byte _0802E9F4 + .4byte _0802EA04 + .4byte _0802EA14 + .4byte _0802EA24 + .4byte _0802EA34 + .4byte _0802EA44 + .4byte _0802EA54 + .4byte _0802EA64 + .4byte _0802EA74 + .4byte _0802EA84 + .4byte _0802EA94 + .4byte _0802EAE4 + .4byte _0802EAF4 + .4byte _0802EB04 + .4byte _0802EB14 + .4byte _0802EB24 + .4byte _0802EB34 + .4byte _0802EB44 + .4byte _0802EB54 + .4byte _0802EB64 + .4byte _0802EB98 + .4byte _0802EBA8 + .4byte _0802EBB8 + .4byte _0802EBC8 + .4byte _0802EBD8 + .4byte _0802EBE8 + .4byte _0802EBF8 + .4byte _0802EC08 + .4byte _0802EC28 + .4byte _0802EC38 + .4byte _0802EC48 + .4byte _0802EC58 + .4byte _0802EC68 + .4byte _0802EC78 + .4byte _0802EC88 + .4byte _0802EC98 + .4byte _0802ECA8 + .4byte _0802ECB8 + .4byte _0802ECC8 +_0802E674: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0802E888 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_0802E6C0: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802E6C0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0802E888 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, _0802E88C @ =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, _0802E890 @ =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, _0802E894 @ =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_0802E878: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _0802E878 + b _0802ECDA + .align 2, 0 +_0802E888: .4byte gPlayerParty +_0802E88C: .4byte 0xfffffc1f +_0802E890: .4byte 0xfff07fff +_0802E894: .4byte 0xfffffe0f +_0802E898: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E8A4 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + b _0802EC12 + .align 2, 0 +_0802E8A4: .4byte gPlayerParty +_0802E8A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E8B4 @ =gPlayerParty + adds r0, r1 + movs r1, 0xC + b _0802EC12 + .align 2, 0 +_0802E8B4: .4byte gPlayerParty +_0802E8B8: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0802E91C @ =gPlayerParty + adds r4, r1, r0 + mov r8, r9 +_0802E8CE: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0802E8CE + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E91C @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_0802E90C: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _0802E90C + b _0802ECDA + .align 2, 0 +_0802E91C: .4byte gPlayerParty +_0802E920: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E938 @ =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _0802EC12 + .align 2, 0 +_0802E938: .4byte gPlayerParty +_0802E93C: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, _0802E974 @ =gPlayerParty + mov r8, r2 +_0802E948: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _0802E948 + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E974 @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _0802ECDA + .align 2, 0 +_0802E974: .4byte gPlayerParty +_0802E978: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E990 @ =gPlayerParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _0802ECD2 + .align 2, 0 +_0802E990: .4byte gPlayerParty +_0802E994: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E9A0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1 + b _0802E9AE + .align 2, 0 +_0802E9A0: .4byte gPlayerParty +_0802E9A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E9D0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x19 +_0802E9AE: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _0802ECDA + .align 2, 0 +_0802E9D0: .4byte gPlayerParty +_0802E9D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E9E0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1A + b _0802ECD2 + .align 2, 0 +_0802E9E0: .4byte gPlayerParty +_0802E9E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802E9F0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1B + b _0802ECD2 + .align 2, 0 +_0802E9F0: .4byte gPlayerParty +_0802E9F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA00 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1C + b _0802ECD2 + .align 2, 0 +_0802EA00: .4byte gPlayerParty +_0802EA04: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA10 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1D + b _0802ECD2 + .align 2, 0 +_0802EA10: .4byte gPlayerParty +_0802EA14: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA20 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1E + b _0802ECD2 + .align 2, 0 +_0802EA20: .4byte gPlayerParty +_0802EA24: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA30 @ =gPlayerParty + adds r0, r1 + movs r1, 0x1F + b _0802ECD2 + .align 2, 0 +_0802EA30: .4byte gPlayerParty +_0802EA34: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA40 @ =gPlayerParty + adds r0, r1 + movs r1, 0x20 + b _0802ECD2 + .align 2, 0 +_0802EA40: .4byte gPlayerParty +_0802EA44: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA50 @ =gPlayerParty + adds r0, r1 + movs r1, 0x22 + b _0802ECD2 + .align 2, 0 +_0802EA50: .4byte gPlayerParty +_0802EA54: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA60 @ =gPlayerParty + adds r0, r1 + movs r1, 0x23 + b _0802ECD2 + .align 2, 0 +_0802EA60: .4byte gPlayerParty +_0802EA64: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA70 @ =gPlayerParty + adds r0, r1 + movs r1, 0x24 + b _0802ECD2 + .align 2, 0 +_0802EA70: .4byte gPlayerParty +_0802EA74: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA80 @ =gPlayerParty + adds r0, r1 + movs r1, 0x25 + b _0802ECD2 + .align 2, 0 +_0802EA80: .4byte gPlayerParty +_0802EA84: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EA90 @ =gPlayerParty + adds r0, r1 + movs r1, 0x26 + b _0802ECD2 + .align 2, 0 +_0802EA90: .4byte gPlayerParty +_0802EA94: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0802EAE0 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _0802ECDA + .align 2, 0 +_0802EAE0: .4byte gPlayerParty +_0802EAE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EAF0 @ =gPlayerParty + adds r0, r1 + movs r1, 0x27 + b _0802ECD2 + .align 2, 0 +_0802EAF0: .4byte gPlayerParty +_0802EAF4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB00 @ =gPlayerParty + adds r0, r1 + movs r1, 0x28 + b _0802ECD2 + .align 2, 0 +_0802EB00: .4byte gPlayerParty +_0802EB04: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB10 @ =gPlayerParty + adds r0, r1 + movs r1, 0x29 + b _0802ECD2 + .align 2, 0 +_0802EB10: .4byte gPlayerParty +_0802EB14: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB20 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2A + b _0802ECD2 + .align 2, 0 +_0802EB20: .4byte gPlayerParty +_0802EB24: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB30 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2B + b _0802ECD2 + .align 2, 0 +_0802EB30: .4byte gPlayerParty +_0802EB34: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB40 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2C + b _0802ECD2 + .align 2, 0 +_0802EB40: .4byte gPlayerParty +_0802EB44: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB50 @ =gPlayerParty + adds r0, r1 + movs r1, 0 + b _0802EB6E + .align 2, 0 +_0802EB50: .4byte gPlayerParty +_0802EB54: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB60 @ =gPlayerParty + adds r0, r1 + movs r1, 0x9 + b _0802EC12 + .align 2, 0 +_0802EB60: .4byte gPlayerParty +_0802EB64: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EB94 @ =gPlayerParty + adds r0, r1 + movs r1, 0x37 +_0802EB6E: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _0802ECDA + .align 2, 0 +_0802EB94: .4byte gPlayerParty +_0802EB98: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EBA4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x38 + b _0802ECD2 + .align 2, 0 +_0802EBA4: .4byte gPlayerParty +_0802EBA8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EBB4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x39 + b _0802EC12 + .align 2, 0 +_0802EBB4: .4byte gPlayerParty +_0802EBB8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EBC4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3A + b _0802EC12 + .align 2, 0 +_0802EBC4: .4byte gPlayerParty +_0802EBC8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EBD4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3B + b _0802EC12 + .align 2, 0 +_0802EBD4: .4byte gPlayerParty +_0802EBD8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EBE4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3C + b _0802EC12 + .align 2, 0 +_0802EBE4: .4byte gPlayerParty +_0802EBE8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EBF4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3D + b _0802EC12 + .align 2, 0 +_0802EBF4: .4byte gPlayerParty +_0802EBF8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC04 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3E + b _0802EC12 + .align 2, 0 +_0802EC04: .4byte gPlayerParty +_0802EC08: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC24 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3F +_0802EC12: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _0802ECDA + .align 2, 0 +_0802EC24: .4byte gPlayerParty +_0802EC28: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC34 @ =gPlayerParty + adds r0, r1 + movs r1, 0x16 + b _0802ECD2 + .align 2, 0 +_0802EC34: .4byte gPlayerParty +_0802EC38: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC44 @ =gPlayerParty + adds r0, r1 + movs r1, 0x17 + b _0802ECD2 + .align 2, 0 +_0802EC44: .4byte gPlayerParty +_0802EC48: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC54 @ =gPlayerParty + adds r0, r1 + movs r1, 0x18 + b _0802ECD2 + .align 2, 0 +_0802EC54: .4byte gPlayerParty +_0802EC58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC64 @ =gPlayerParty + adds r0, r1 + movs r1, 0x21 + b _0802ECD2 + .align 2, 0 +_0802EC64: .4byte gPlayerParty +_0802EC68: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC74 @ =gPlayerParty + adds r0, r1 + movs r1, 0x2F + b _0802ECD2 + .align 2, 0 +_0802EC74: .4byte gPlayerParty +_0802EC78: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC84 @ =gPlayerParty + adds r0, r1 + movs r1, 0x30 + b _0802ECD2 + .align 2, 0 +_0802EC84: .4byte gPlayerParty +_0802EC88: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802EC94 @ =gPlayerParty + adds r0, r1 + movs r1, 0x32 + b _0802ECD2 + .align 2, 0 +_0802EC94: .4byte gPlayerParty +_0802EC98: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802ECA4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x33 + b _0802ECD2 + .align 2, 0 +_0802ECA4: .4byte gPlayerParty +_0802ECA8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802ECB4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x34 + b _0802ECD2 + .align 2, 0 +_0802ECB4: .4byte gPlayerParty +_0802ECB8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802ECC4 @ =gPlayerParty + adds r0, r1 + movs r1, 0x35 + b _0802ECD2 + .align 2, 0 +_0802ECC4: .4byte gPlayerParty +_0802ECC8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802ECEC @ =gPlayerParty + adds r0, r1 + movs r1, 0x36 +_0802ECD2: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_0802ECDA: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0802ECEC: .4byte gPlayerParty + thumb_func_end dp01_getattr_by_ch1_for_player_pokemon_ + + thumb_func_start sub_802ECF0 +sub_802ECF0: @ 802ECF0 + push {r4-r7,lr} + sub sp, 0x58 + ldr r2, _0802ED68 @ =gUnknown_02024A6A + ldr r5, _0802ED6C @ =gUnknown_02024A60 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r3, _0802ED70 @ =gUnknown_02023A60 + lsls r1, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, _0802ED74 @ =gPlayerParty + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, 0 + adds r0, r3, 0x2 + adds r1, r0 + adds r7, r5, 0 + mov r12, r3 + ldrb r1, [r1] + cmp r2, r1 + bcs _0802ED46 + adds r3, r0, 0 +_0802ED2C: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r5] + lsls r0, 9 + adds r0, r3 + ldrb r0, [r0] + cmp r2, r0 + bcc _0802ED2C +_0802ED46: + ldrb r0, [r7] + lsls r0, 9 + mov r1, r12 + adds r1, 0x2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + adds r2, r4, 0 + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl dp01_tbl1_exec_completed + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802ED68: .4byte gUnknown_02024A6A +_0802ED6C: .4byte gUnknown_02024A60 +_0802ED70: .4byte gUnknown_02023A60 +_0802ED74: .4byte gPlayerParty + thumb_func_end sub_802ECF0 + + thumb_func_start dp01t_02_1_setattr +dp01t_02_1_setattr: @ 802ED78 + push {r4,r5,lr} + ldr r1, _0802ED9C @ =gUnknown_02023A60 + ldr r0, _0802EDA0 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0802EDA8 + ldr r0, _0802EDA4 @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl dp01_setattr_by_ch1_for_player_pokemon + b _0802EDC6 + .align 2, 0 +_0802ED9C: .4byte gUnknown_02023A60 +_0802EDA0: .4byte gUnknown_02024A60 +_0802EDA4: .4byte gUnknown_02024A6A +_0802EDA8: + ldrb r4, [r1] + movs r5, 0 +_0802EDAC: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _0802EDBA + adds r0, r5, 0 + bl dp01_setattr_by_ch1_for_player_pokemon +_0802EDBA: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _0802EDAC +_0802EDC6: + bl dp01_tbl1_exec_completed + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end dp01t_02_1_setattr + + thumb_func_start dp01_setattr_by_ch1_for_player_pokemon +dp01_setattr_by_ch1_for_player_pokemon: @ 802EDD0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x34 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0802EE08 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + ldr r2, _0802EE0C @ =gUnknown_02023A63 + adds r3, r0, r2 + adds r6, r3, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r7, r2, 0 + cmp r0, 0x3B + bls _0802EDFC + bl _0802F796 +_0802EDFC: + lsls r0, 2 + ldr r1, _0802EE10 @ =_0802EE14 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0802EE08: .4byte gUnknown_02024A60 +_0802EE0C: .4byte gUnknown_02023A63 +_0802EE10: .4byte _0802EE14 + .align 2, 0 +_0802EE14: + .4byte _0802EF04 + .4byte _0802F09C + .4byte _0802F0BC + .4byte _0802F0DC + .4byte _0802F134 + .4byte _0802F134 + .4byte _0802F134 + .4byte _0802F134 + .4byte _0802F15C + .4byte _0802F1C0 + .4byte _0802F1C0 + .4byte _0802F1C0 + .4byte _0802F1C0 + .4byte _0802F796 + .4byte _0802F796 + .4byte _0802F796 + .4byte _0802F796 + .4byte _0802F1F0 + .4byte _0802F210 + .4byte _0802F230 + .4byte _0802F250 + .4byte _0802F270 + .4byte _0802F290 + .4byte _0802F2B0 + .4byte _0802F2D0 + .4byte _0802F2F0 + .4byte _0802F310 + .4byte _0802F330 + .4byte _0802F350 + .4byte _0802F370 + .4byte _0802F390 + .4byte _0802F3B0 + .4byte _0802F420 + .4byte _0802F440 + .4byte _0802F460 + .4byte _0802F480 + .4byte _0802F4A0 + .4byte _0802F4C0 + .4byte _0802F4E0 + .4byte _0802F500 + .4byte _0802F520 + .4byte _0802F540 + .4byte _0802F560 + .4byte _0802F580 + .4byte _0802F5A0 + .4byte _0802F5C0 + .4byte _0802F5E0 + .4byte _0802F600 + .4byte _0802F620 + .4byte _0802F640 + .4byte _0802F660 + .4byte _0802F680 + .4byte _0802F6A0 + .4byte _0802F6C0 + .4byte _0802F6E0 + .4byte _0802F700 + .4byte _0802F720 + .4byte _0802F740 + .4byte _0802F760 + .4byte _0802F780 +_0802EF04: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0802F098 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r6, 0 + bl SetMonData + adds r2, r6, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r6 + mov r10, r0 + adds r0, r6, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r6, 0x2 + str r0, [sp, 0x4] + adds r0, r6, 0x4 + str r0, [sp, 0x8] + adds r0, r6, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r7, r6, 0 + adds r7, 0x24 + adds r4, r6, 0 + adds r4, 0xC +_0802EF6A: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r7, 0 + bl SetMonData + adds r7, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0802EF6A + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0802F098 @ =gPlayerParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r6, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r6, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r6, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r6, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F098: .4byte gPlayerParty +_0802F09C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F0B4 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F0B8 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xB + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F0B4: .4byte gPlayerParty +_0802F0B8: .4byte gUnknown_02024A60 +_0802F0BC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F0D4 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F0D8 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0xC + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F0D4: .4byte gPlayerParty +_0802F0D8: .4byte gUnknown_02024A60 +_0802F0DC: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r3 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _0802F130 @ =gPlayerParty + adds r7, r1, r0 + adds r6, r3, 0 + adds r6, 0x8 + adds r4, r3, 0 +_0802F0F6: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _0802F0F6 + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F130 @ =gPlayerParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F130: .4byte gPlayerParty +_0802F134: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F150 @ =gPlayerParty + adds r0, r1 + ldr r3, _0802F154 @ =gUnknown_02023A60 + ldr r1, _0802F158 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _0802F1D8 + .align 2, 0 +_0802F150: .4byte gPlayerParty +_0802F154: .4byte gUnknown_02023A60 +_0802F158: .4byte gUnknown_02024A60 +_0802F15C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0802F1B8 @ =gPlayerParty + adds r4, r0 + ldr r5, _0802F1BC @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x11 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F1B8: .4byte gPlayerParty +_0802F1BC: .4byte gUnknown_02024A60 +_0802F1C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F1E4 @ =gPlayerParty + adds r0, r1 + ldr r3, _0802F1E8 @ =gUnknown_02023A60 + ldr r1, _0802F1EC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_0802F1D8: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F1E4: .4byte gPlayerParty +_0802F1E8: .4byte gUnknown_02023A60 +_0802F1EC: .4byte gUnknown_02024A60 +_0802F1F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F208 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F20C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F208: .4byte gPlayerParty +_0802F20C: .4byte gUnknown_02024A60 +_0802F210: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F228 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F22C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x19 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F228: .4byte gPlayerParty +_0802F22C: .4byte gUnknown_02024A60 +_0802F230: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F248 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F24C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1A + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F248: .4byte gPlayerParty +_0802F24C: .4byte gUnknown_02024A60 +_0802F250: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F268 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F26C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1B + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F268: .4byte gPlayerParty +_0802F26C: .4byte gUnknown_02024A60 +_0802F270: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F288 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F28C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1C + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F288: .4byte gPlayerParty +_0802F28C: .4byte gUnknown_02024A60 +_0802F290: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F2A8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F2AC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1D + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F2A8: .4byte gPlayerParty +_0802F2AC: .4byte gUnknown_02024A60 +_0802F2B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F2C8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F2CC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1E + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F2C8: .4byte gPlayerParty +_0802F2CC: .4byte gUnknown_02024A60 +_0802F2D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F2E8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F2EC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x1F + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F2E8: .4byte gPlayerParty +_0802F2EC: .4byte gUnknown_02024A60 +_0802F2F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F308 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F30C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x20 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F308: .4byte gPlayerParty +_0802F30C: .4byte gUnknown_02024A60 +_0802F310: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F328 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F32C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x22 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F328: .4byte gPlayerParty +_0802F32C: .4byte gUnknown_02024A60 +_0802F330: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F348 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F34C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x23 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F348: .4byte gPlayerParty +_0802F34C: .4byte gUnknown_02024A60 +_0802F350: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F368 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F36C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x24 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F368: .4byte gPlayerParty +_0802F36C: .4byte gUnknown_02024A60 +_0802F370: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F388 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F38C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x25 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F388: .4byte gPlayerParty +_0802F38C: .4byte gUnknown_02024A60 +_0802F390: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F3A8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F3AC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x26 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F3A8: .4byte gPlayerParty +_0802F3AC: .4byte gUnknown_02024A60 +_0802F3B0: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0802F418 @ =gPlayerParty + adds r4, r0 + ldr r5, _0802F41C @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r2, 9 + adds r2, r7 + adds r0, r4, 0 + movs r1, 0x27 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r5] + lsls r2, 9 + adds r0, r7, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _0802F4D0 + .align 2, 0 +_0802F418: .4byte gPlayerParty +_0802F41C: .4byte gUnknown_02024A60 +_0802F420: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F438 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F43C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x27 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F438: .4byte gPlayerParty +_0802F43C: .4byte gUnknown_02024A60 +_0802F440: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F458 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F45C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x28 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F458: .4byte gPlayerParty +_0802F45C: .4byte gUnknown_02024A60 +_0802F460: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F478 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F47C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x29 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F478: .4byte gPlayerParty +_0802F47C: .4byte gUnknown_02024A60 +_0802F480: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F498 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F49C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2A + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F498: .4byte gPlayerParty +_0802F49C: .4byte gUnknown_02024A60 +_0802F4A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F4B8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F4BC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2B + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F4B8: .4byte gPlayerParty +_0802F4BC: .4byte gUnknown_02024A60 +_0802F4C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F4D8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F4DC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 +_0802F4D0: + movs r1, 0x2C + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F4D8: .4byte gPlayerParty +_0802F4DC: .4byte gUnknown_02024A60 +_0802F4E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F4F8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F4FC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F4F8: .4byte gPlayerParty +_0802F4FC: .4byte gUnknown_02024A60 +_0802F500: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F518 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F51C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x9 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F518: .4byte gPlayerParty +_0802F51C: .4byte gUnknown_02024A60 +_0802F520: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F538 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F53C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x37 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F538: .4byte gPlayerParty +_0802F53C: .4byte gUnknown_02024A60 +_0802F540: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F558 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F55C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x38 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F558: .4byte gPlayerParty +_0802F55C: .4byte gUnknown_02024A60 +_0802F560: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F578 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F57C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x39 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F578: .4byte gPlayerParty +_0802F57C: .4byte gUnknown_02024A60 +_0802F580: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F598 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F59C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3A + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F598: .4byte gPlayerParty +_0802F59C: .4byte gUnknown_02024A60 +_0802F5A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F5B8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F5BC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3B + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F5B8: .4byte gPlayerParty +_0802F5BC: .4byte gUnknown_02024A60 +_0802F5C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F5D8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F5DC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3C + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F5D8: .4byte gPlayerParty +_0802F5DC: .4byte gUnknown_02024A60 +_0802F5E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F5F8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F5FC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3D + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F5F8: .4byte gPlayerParty +_0802F5FC: .4byte gUnknown_02024A60 +_0802F600: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F618 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F61C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3E + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F618: .4byte gPlayerParty +_0802F61C: .4byte gUnknown_02024A60 +_0802F620: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F638 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F63C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x3F + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F638: .4byte gPlayerParty +_0802F63C: .4byte gUnknown_02024A60 +_0802F640: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F658 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F65C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x16 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F658: .4byte gPlayerParty +_0802F65C: .4byte gUnknown_02024A60 +_0802F660: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F678 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F67C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x17 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F678: .4byte gPlayerParty +_0802F67C: .4byte gUnknown_02024A60 +_0802F680: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F698 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F69C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x18 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F698: .4byte gPlayerParty +_0802F69C: .4byte gUnknown_02024A60 +_0802F6A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F6B8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F6BC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x21 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F6B8: .4byte gPlayerParty +_0802F6BC: .4byte gUnknown_02024A60 +_0802F6C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F6D8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F6DC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x2F + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F6D8: .4byte gPlayerParty +_0802F6DC: .4byte gUnknown_02024A60 +_0802F6E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F6F8 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F6FC @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x30 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F6F8: .4byte gPlayerParty +_0802F6FC: .4byte gUnknown_02024A60 +_0802F700: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F718 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F71C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x32 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F718: .4byte gPlayerParty +_0802F71C: .4byte gUnknown_02024A60 +_0802F720: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F738 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F73C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x33 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F738: .4byte gPlayerParty +_0802F73C: .4byte gUnknown_02024A60 +_0802F740: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F758 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F75C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x34 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F758: .4byte gPlayerParty +_0802F75C: .4byte gUnknown_02024A60 +_0802F760: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F778 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F77C @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x35 + bl SetMonData + b _0802F796 + .align 2, 0 +_0802F778: .4byte gPlayerParty +_0802F77C: .4byte gUnknown_02024A60 +_0802F780: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0802F7C0 @ =gPlayerParty + adds r0, r1 + ldr r1, _0802F7C4 @ =gUnknown_02024A60 + ldrb r2, [r1] + lsls r2, 9 + adds r2, r7 + movs r1, 0x36 + bl SetMonData +_0802F796: + ldr r2, _0802F7C8 @ =gUnknown_02024A6A + ldr r0, _0802F7C4 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802F7C0 @ =gPlayerParty + adds r0, r2 + bl sub_80324F8 + add sp, 0x34 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802F7C0: .4byte gPlayerParty +_0802F7C4: .4byte gUnknown_02024A60 +_0802F7C8: .4byte gUnknown_02024A6A + thumb_func_end dp01_setattr_by_ch1_for_player_pokemon + + thumb_func_start sub_802F7CC +sub_802F7CC: @ 802F7CC + push {r4-r7,lr} + ldr r1, _0802F830 @ =gUnknown_02024A6A + ldr r7, _0802F834 @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, _0802F838 @ =gUnknown_02023A60 + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _0802F83C @ =gPlayerParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _0802F824 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_0802F802: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _0802F802 +_0802F824: + bl dp01_tbl1_exec_completed + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802F830: .4byte gUnknown_02024A6A +_0802F834: .4byte gUnknown_02024A60 +_0802F838: .4byte gUnknown_02023A60 +_0802F83C: .4byte gPlayerParty + thumb_func_end sub_802F7CC + + thumb_func_start sub_802F840 +sub_802F840: @ 802F840 + push {r4,lr} + ldr r2, _0802F88C @ =gUnknown_02024A6A + ldr r4, _0802F890 @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802F894 @ =gPlayerParty + adds r0, r2 + bl sub_80318FC + ldr r2, _0802F898 @ =gSprites + ldr r0, _0802F89C @ =gUnknown_02024BE0 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldr r1, _0802F8A0 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802F8A4 @ =bx_0802E404 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0802F88C: .4byte gUnknown_02024A6A +_0802F890: .4byte gUnknown_02024A60 +_0802F894: .4byte gPlayerParty +_0802F898: .4byte gSprites +_0802F89C: .4byte gUnknown_02024BE0 +_0802F8A0: .4byte gUnknown_03004330 +_0802F8A4: .4byte bx_0802E404 + thumb_func_end sub_802F840 + + thumb_func_start sub_802F8A8 +sub_802F8A8: @ 802F8A8 + push {r4-r6,lr} + ldr r5, _0802F914 @ =gUnknown_02024A60 + ldrb r0, [r5] + ldr r4, _0802F918 @ =gUnknown_02023A60 + lsls r1, r0, 9 + adds r6, r4, 0x2 + adds r1, r6 + ldrb r1, [r1] + bl sub_8032AA8 + ldr r2, _0802F91C @ =gUnknown_02024A6A + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r2 + lsls r0, 9 + adds r4, 0x1 + adds r0, r4 + ldrb r0, [r0] + movs r4, 0 + strh r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802F920 @ =gPlayerParty + adds r0, r2 + bl sub_80318FC + ldr r1, _0802F924 @ =gUnknown_02024E60 + ldrb r0, [r5] + adds r0, r1 + strb r4, [r0] + ldr r1, _0802F928 @ =gUnknown_02024E64 + ldrb r0, [r5] + adds r0, r1 + strb r4, [r0] + ldrb r0, [r5] + lsls r1, r0, 9 + adds r1, r6 + ldrb r1, [r1] + bl sub_802F934 + ldr r1, _0802F92C @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802F930 @ =sub_802D798 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802F914: .4byte gUnknown_02024A60 +_0802F918: .4byte gUnknown_02023A60 +_0802F91C: .4byte gUnknown_02024A6A +_0802F920: .4byte gPlayerParty +_0802F924: .4byte gUnknown_02024E60 +_0802F928: .4byte gUnknown_02024E64 +_0802F92C: .4byte gUnknown_03004330 +_0802F930: .4byte sub_802D798 + thumb_func_end sub_802F8A8 + + thumb_func_start sub_802F934 +sub_802F934: @ 802F934 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8032AA8 + ldr r0, _0802FA78 @ =gUnknown_02024A6A + lsls r2, r6, 1 + adds r2, r0 + ldr r0, _0802FA7C @ =gUnknown_02023A60 + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r2] + ldrh r1, [r2] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0802FA80 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _0802FA84 @ =sub_80312F0 + bl object_new_hidden_with_callback + ldr r1, _0802FA88 @ =gUnknown_0300434C + mov r9, r1 + add r9, r6 + mov r1, r9 + strb r0, [r1] + adds r0, r6, 0 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl GetMonSpriteTemplate_803C56C + ldr r0, _0802FA8C @ =gUnknown_02024E8C + mov r10, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_8077F68 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r10 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, _0802FA90 @ =gUnknown_02024BE0 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _0802FA94 @ =gSprites + mov r0, r9 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _0802FA98 @ =gUnknown_02024E84 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0802FA9C @ =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFF + bl sub_8046400 + mov r1, r9 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802FA78: .4byte gUnknown_02024A6A +_0802FA7C: .4byte gUnknown_02023A60 +_0802FA80: .4byte gPlayerParty +_0802FA84: .4byte sub_80312F0 +_0802FA88: .4byte gUnknown_0300434C +_0802FA8C: .4byte gUnknown_02024E8C +_0802FA90: .4byte gUnknown_02024BE0 +_0802FA94: .4byte gSprites +_0802FA98: .4byte gUnknown_02024E84 +_0802FA9C: .4byte SpriteCallbackDummy + thumb_func_end sub_802F934 + + thumb_func_start sub_802FAA0 +sub_802FAA0: @ 802FAA0 + push {r4-r6,lr} + ldr r1, _0802FAD0 @ =gUnknown_02023A60 + ldr r6, _0802FAD4 @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _0802FAE4 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _0802FAD8 @ =0x02017810 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, _0802FADC @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FAE0 @ =sub_802FB2C + str r1, [r0] + b _0802FB1A + .align 2, 0 +_0802FAD0: .4byte gUnknown_02023A60 +_0802FAD4: .4byte gUnknown_02024A60 +_0802FAD8: .4byte 0x02017810 +_0802FADC: .4byte gUnknown_03004330 +_0802FAE0: .4byte sub_802FB2C +_0802FAE4: + ldr r5, _0802FB20 @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0802FB24 @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldr r1, _0802FB28 @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl1_exec_completed +_0802FB1A: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802FB20: .4byte gUnknown_02024BE0 +_0802FB24: .4byte gSprites +_0802FB28: .4byte gUnknown_03004340 + thumb_func_end sub_802FAA0 + + thumb_func_start sub_802FB2C +sub_802FB2C: @ 802FB2C + push {r4,r5,lr} + ldr r5, _0802FB48 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _0802FB4C @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _0802FB50 + cmp r0, 0x1 + beq _0802FB7C + b _0802FBA4 + .align 2, 0 +_0802FB48: .4byte gUnknown_02024A60 +_0802FB4C: .4byte 0x02017810 +_0802FB50: + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0802FB6C + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0802FB6C: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _0802FBA4 +_0802FB7C: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0802FBA4 + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x1 + bl move_anim_start_t4 + ldr r1, _0802FBAC @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FBB0 @ =sub_802DEAC + str r1, [r0] +_0802FBA4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802FBAC: .4byte gUnknown_03004330 +_0802FBB0: .4byte sub_802DEAC + thumb_func_end sub_802FB2C + + thumb_func_start sub_802FBB4 +sub_802FBB4: @ 802FBB4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _0802FBDC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0802FBE8 + ldr r0, _0802FBE0 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_get_per_side_status + movs r1, 0x2 + ands r1, r0 + ldr r7, _0802FBE4 @ =0x0000fff0 + cmp r1, 0 + beq _0802FBEA + movs r7, 0x10 + b _0802FBEA + .align 2, 0 +_0802FBDC: .4byte gUnknown_020239F8 +_0802FBE0: .4byte gUnknown_02024A60 +_0802FBE4: .4byte 0x0000fff0 +_0802FBE8: + movs r7, 0 +_0802FBEA: + ldr r4, _0802FCB8 @ =gSaveBlock2 + ldrb r0, [r4, 0x8] + ldr r6, _0802FCBC @ =gUnknown_02024A60 + ldrb r1, [r6] + bl sub_8031AF4 + ldrb r5, [r4, 0x8] + ldrb r0, [r6] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r5, 0 + bl GetMonSpriteTemplate_803C5A0 + ldr r0, _0802FCC0 @ =gUnknown_02024E8C + mov r8, r0 + lsls r5, r7, 16 + movs r0, 0xA0 + lsls r0, 15 + adds r5, r0 + asrs r5, 16 + ldr r1, _0802FCC4 @ =gTrainerBackPicCoords + ldrb r0, [r4, 0x8] + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 15 + adds r4, r0 + asrs r4, 16 + ldrb r0, [r6] + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r5, _0802FCC8 @ =gUnknown_02024BE0 + ldrb r1, [r6] + adds r1, r5 + strb r0, [r1] + ldr r4, _0802FCCC @ =gSprites + ldrb r3, [r6] + adds r0, r3, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0xF0 + strh r1, [r0, 0x24] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0802FCD0 @ =0x0000fffe + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _0802FCD4 @ =sub_80313A0 + str r1, [r0] + ldr r1, _0802FCD8 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FCDC @ =sub_802D204 + str r1, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0802FCB8: .4byte gSaveBlock2 +_0802FCBC: .4byte gUnknown_02024A60 +_0802FCC0: .4byte gUnknown_02024E8C +_0802FCC4: .4byte gTrainerBackPicCoords +_0802FCC8: .4byte gUnknown_02024BE0 +_0802FCCC: .4byte gSprites +_0802FCD0: .4byte 0x0000fffe +_0802FCD4: .4byte sub_80313A0 +_0802FCD8: .4byte gUnknown_03004330 +_0802FCDC: .4byte sub_802D204 + thumb_func_end sub_802FBB4 + + thumb_func_start sub_802FCE0 +sub_802FCE0: @ 802FCE0 + push {r4-r6,lr} + ldr r4, _0802FD94 @ =gSaveBlock2 + ldrb r0, [r4, 0x8] + ldr r5, _0802FD98 @ =gUnknown_02024A60 + ldrb r1, [r5] + bl sub_8031AF4 + ldrb r6, [r4, 0x8] + ldrb r0, [r5] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl GetMonSpriteTemplate_803C5A0 + ldr r0, _0802FD9C @ =gUnknown_02024E8C + ldr r2, _0802FDA0 @ =gTrainerBackPicCoords + ldrb r1, [r4, 0x8] + lsls r1, 2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 15 + adds r2, r1 + asrs r2, 16 + movs r1, 0x50 + movs r3, 0x1E + bl CreateSprite + ldr r6, _0802FDA4 @ =gUnknown_02024BE0 + ldrb r1, [r5] + adds r1, r6 + strb r0, [r1] + ldr r4, _0802FDA8 @ =gSprites + ldrb r3, [r5] + adds r0, r3, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0802FDAC @ =0x0000ffa0 + strh r1, [r0, 0x24] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _0802FDB0 @ =sub_80313A0 + str r1, [r0] + ldr r1, _0802FDB4 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FDB8 @ =sub_802D23C + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802FD94: .4byte gSaveBlock2 +_0802FD98: .4byte gUnknown_02024A60 +_0802FD9C: .4byte gUnknown_02024E8C +_0802FDA0: .4byte gTrainerBackPicCoords +_0802FDA4: .4byte gUnknown_02024BE0 +_0802FDA8: .4byte gSprites +_0802FDAC: .4byte 0x0000ffa0 +_0802FDB0: .4byte sub_80313A0 +_0802FDB4: .4byte gUnknown_03004330 +_0802FDB8: .4byte sub_802D23C + thumb_func_end sub_802FCE0 + + thumb_func_start sub_802FDBC +sub_802FDBC: @ 802FDBC + push {r4-r6,lr} + ldr r5, _0802FE5C @ =gUnknown_02024BE0 + ldr r6, _0802FE60 @ =gUnknown_02024A60 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0802FE64 @ =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0802FE68 @ =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0802FE6C @ =sub_8078B34 + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0802FE70 @ =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x1 + bl StartSpriteAnim + ldr r1, _0802FE74 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FE78 @ =sub_802D274 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0802FE5C: .4byte gUnknown_02024BE0 +_0802FE60: .4byte gUnknown_02024A60 +_0802FE64: .4byte gSprites +_0802FE68: .4byte 0x0000ffd8 +_0802FE6C: .4byte sub_8078B34 +_0802FE70: .4byte SpriteCallbackDummy +_0802FE74: .4byte gUnknown_03004330 +_0802FE78: .4byte sub_802D274 + thumb_func_end sub_802FDBC + + thumb_func_start sub_802FE7C +sub_802FE7C: @ 802FE7C + push {r4,r5,lr} + ldr r5, _0802FEC0 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _0802FEC4 @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _0802FEC8 + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0802FEAE + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0802FEAE: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _0802FF3E + .align 2, 0 +_0802FEC0: .4byte gUnknown_02024A60 +_0802FEC4: .4byte 0x02017810 +_0802FEC8: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0802FF3E + strb r4, [r3, 0x4] + ldr r2, _0802FF44 @ =gUnknown_02024A6A + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _0802FF48 @ =gPlayerParty + adds r0, r2 + bl sub_80324F8 + movs r1, 0x40 + negs r1, r1 + movs r0, 0x10 + bl PlaySE12WithPanning + ldr r2, _0802FF4C @ =gSprites + ldr r3, _0802FF50 @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + strh r4, [r0, 0x30] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + movs r1, 0x5 + strh r1, [r0, 0x32] + ldrb r0, [r5] + adds r0, r3 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _0802FF54 @ =sub_80105EC + str r1, [r0] + ldr r1, _0802FF58 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FF5C @ =sub_802DE10 + str r1, [r0] +_0802FF3E: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802FF44: .4byte gUnknown_02024A6A +_0802FF48: .4byte gPlayerParty +_0802FF4C: .4byte gSprites +_0802FF50: .4byte gUnknown_02024BE0 +_0802FF54: .4byte sub_80105EC +_0802FF58: .4byte gUnknown_03004330 +_0802FF5C: .4byte sub_802DE10 + thumb_func_end sub_802FE7C + + thumb_func_start sub_802FF60 +sub_802FF60: @ 802FF60 + push {lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x2 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + bl dp01_tbl1_exec_completed + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_802FF60 + + thumb_func_start sub_802FF80 +sub_802FF80: @ 802FF80 + push {r4,r5,lr} + ldr r1, _0802FFBC @ =0x02017840 + movs r0, 0x4 + strb r0, [r1, 0x8] + ldr r1, _0802FFC0 @ =gUnknown_02024E6D + movs r0, 0x1 + strb r0, [r1] + ldr r5, _0802FFC4 @ =gUnknown_02024A60 + ldrb r4, [r5] + movs r0, 0x1 + bl battle_get_side_with_given_state + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x3 + bl move_anim_start_t4 + ldr r1, _0802FFC8 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0802FFCC @ =bx_wait_t1 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0802FFBC: .4byte 0x02017840 +_0802FFC0: .4byte gUnknown_02024E6D +_0802FFC4: .4byte gUnknown_02024A60 +_0802FFC8: .4byte gUnknown_03004330 +_0802FFCC: .4byte bx_wait_t1 + thumb_func_end sub_802FF80 + + thumb_func_start sub_802FFD0 +sub_802FFD0: @ 802FFD0 + push {r4,r5,lr} + ldr r1, _08030014 @ =gUnknown_02023A60 + ldr r5, _08030018 @ =gUnknown_02024A60 + ldrb r0, [r5] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r1, [r0] + ldr r0, _0803001C @ =0x02017840 + strb r1, [r0, 0x8] + ldr r1, _08030020 @ =gUnknown_02024E6D + movs r0, 0x1 + strb r0, [r1] + ldrb r4, [r5] + movs r0, 0x1 + bl battle_get_side_with_given_state + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 24 + adds r0, r4, 0 + adds r1, r4, 0 + movs r3, 0x3 + bl move_anim_start_t4 + ldr r1, _08030024 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030028 @ =bx_wait_t1 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08030014: .4byte gUnknown_02023A60 +_08030018: .4byte gUnknown_02024A60 +_0803001C: .4byte 0x02017840 +_08030020: .4byte gUnknown_02024E6D +_08030024: .4byte gUnknown_03004330 +_08030028: .4byte bx_wait_t1 + thumb_func_end sub_802FFD0 + + thumb_func_start sub_803002C +sub_803002C: @ 803002C + push {lr} + ldr r1, _08030054 @ =gUnknown_02023A60 + ldr r0, _08030058 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0803004A +_08030040: + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08030040 +_0803004A: + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030054: .4byte gUnknown_02023A60 +_08030058: .4byte gUnknown_02024A60 + thumb_func_end sub_803002C + + thumb_func_start dp01t_0F_1_move_anim +dp01t_0F_1_move_anim: @ 803005C + push {r4-r6,lr} + ldr r6, _08030140 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _0803006E + b _0803017E +_0803006E: + ldr r0, _08030144 @ =gUnknown_02023A60 + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, _08030148 @ =gUnknown_0202F7C4 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _0803014C @ =gUnknown_0202F7BC + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _08030150 @ =gUnknown_0202F7B8 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, _08030154 @ =gUnknown_0202F7BE + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _08030158 @ =gUnknown_0202F7C0 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _0803015C @ =gUnknown_0202F7B4 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, _08030160 @ =gUnknown_02024E70 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_8031720 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08030164 + bl dp01_tbl1_exec_completed + b _0803017E + .align 2, 0 +_08030140: .4byte gUnknown_02024A60 +_08030144: .4byte gUnknown_02023A60 +_08030148: .4byte gUnknown_0202F7C4 +_0803014C: .4byte gUnknown_0202F7BC +_08030150: .4byte gUnknown_0202F7B8 +_08030154: .4byte gUnknown_0202F7BE +_08030158: .4byte gUnknown_0202F7C0 +_0803015C: .4byte gUnknown_0202F7B4 +_08030160: .4byte gUnknown_02024E70 +_08030164: + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08030184 @ =0x02017810 + adds r0, r1 + strb r2, [r0, 0x4] + ldr r1, _08030188 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803018C @ =sub_8030190 + str r1, [r0] +_0803017E: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08030184: .4byte 0x02017810 +_08030188: .4byte gUnknown_03004330 +_0803018C: .4byte sub_8030190 + thumb_func_end dp01t_0F_1_move_anim + + thumb_func_start sub_8030190 +sub_8030190: @ 8030190 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, _080301D4 @ =gUnknown_02023A60 + ldr r5, _080301D8 @ =gUnknown_02024A60 + ldrb r3, [r5] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r9, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r6, r2, 0x2 + mov r8, r6 + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r7, [r1] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r6, _080301DC @ =0x02017810 + adds r0, r6 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _0803021E + cmp r2, 0x1 + bgt _080301E0 + cmp r2, 0 + beq _080301EA + b _080302E8 + .align 2, 0 +_080301D4: .4byte gUnknown_02023A60 +_080301D8: .4byte gUnknown_02024A60 +_080301DC: .4byte 0x02017810 +_080301E0: + cmp r2, 0x2 + beq _08030244 + cmp r2, 0x3 + beq _080302B0 + b _080302E8 +_080301EA: + lsls r1, r3, 2 + adds r0, r6, 0 + subs r0, 0x10 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _0803020E + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0803020E: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _080302E8 +_0803021E: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080302E8 + movs r0, 0 + bl sub_80326EC + adds r0, r4, 0 + bl move_anim_start_t1 + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _080302E8 +_08030244: + ldr r0, _080302A0 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _080302A4 @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _080302E8 + movs r0, 0x1 + bl sub_80326EC + ldrb r2, [r5] + lsls r0, r2, 2 + adds r4, r6, 0 + subs r4, 0x10 + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0803028C + cmp r7, 0x1 + bhi _0803028C + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0] + movs r1, 0x9 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_0803028C: + ldr r0, _080302A8 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080302AC @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _080302E8 + .align 2, 0 +_080302A0: .4byte gUnknown_0202F7AC +_080302A4: .4byte gUnknown_0202F7B1 +_080302A8: .4byte gUnknown_02024A60 +_080302AC: .4byte 0x02017810 +_080302B0: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080302E8 + bl sub_8031F24 + ldrb r0, [r5] + lsls r2, r0, 9 + mov r3, r9 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_80324BC + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strb r4, [r0, 0x4] + bl dp01_tbl1_exec_completed +_080302E8: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8030190 + + thumb_func_start sub_80302F4 +sub_80302F4: @ 80302F4 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08030338 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _0803033C @ =gUnknown_030042A0 + strh r1, [r0] + ldr r4, _08030340 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 9 + ldr r1, _08030344 @ =gUnknown_02023A62 + adds r0, r1 + ldrh r0, [r0] + bl sub_8120AA8 + ldr r0, _08030348 @ =gUnknown_03004210 + ldr r1, _0803034C @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08030350 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030354 @ =sub_802DF18 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030338: .4byte gUnknown_030042A4 +_0803033C: .4byte gUnknown_030042A0 +_08030340: .4byte gUnknown_02024A60 +_08030344: .4byte gUnknown_02023A62 +_08030348: .4byte gUnknown_03004210 +_0803034C: .4byte gUnknown_020238CC +_08030350: .4byte gUnknown_03004330 +_08030354: .4byte sub_802DF18 + thumb_func_end sub_80302F4 + + thumb_func_start dp01t_11_1_message_for_player_only +dp01t_11_1_message_for_player_only: @ 8030358 + push {lr} + ldr r0, _08030370 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08030374 + bl sub_80302F4 + b _08030378 + .align 2, 0 +_08030370: .4byte gUnknown_02024A60 +_08030374: + bl dp01_tbl1_exec_completed +_08030378: + pop {r0} + bx r0 + thumb_func_end dp01t_11_1_message_for_player_only + + thumb_func_start sub_803037C +sub_803037C: @ 803037C + push {r4,lr} + sub sp, 0x8 + ldr r1, _08030434 @ =gUnknown_030042A4 + movs r0, 0 + strh r0, [r1] + ldr r1, _08030438 @ =gUnknown_030042A0 + movs r0, 0xA0 + strh r0, [r1] + ldr r4, _0803043C @ =gUnknown_03004210 + movs r0, 0x1B + str r0, [sp] + movs r0, 0x12 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0x2 + movs r3, 0xF + bl FillWindowRect + movs r0, 0x10 + str r0, [sp] + movs r0, 0x26 + str r0, [sp, 0x4] + adds r0, r4, 0 + movs r1, 0xA + movs r2, 0x2 + movs r3, 0x23 + bl FillWindowRect + ldr r1, _08030440 @ =gUnknown_03004330 + ldr r0, _08030444 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030448 @ =sub_802C098 + str r1, [r0] + ldr r1, _0803044C @ =gUnknown_08400CF3 + movs r2, 0xC8 + lsls r2, 1 + movs r0, 0x23 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x12 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + ldr r1, _08030450 @ =0x0000ffff + ldr r3, _08030454 @ =0x00002d9f + movs r0, 0 + str r0, [sp] + movs r2, 0xC + bl sub_814A5C0 + movs r4, 0 +_080303EC: + lsls r0, r4, 24 + lsrs r0, 24 + bl nullsub_8 + adds r4, 0x1 + cmp r4, 0x3 + ble _080303EC + ldr r1, _08030458 @ =gUnknown_02024E60 + ldr r0, _08030444 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_802E3E4 + ldr r0, _0803045C @ =gUnknown_08400CA8 + bl get_battle_strings_ + ldr r4, _0803043C @ =gUnknown_03004210 + ldr r1, _08030460 @ =gUnknown_020238CC + movs r2, 0xDC + lsls r2, 1 + movs r0, 0x23 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x2 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030434: .4byte gUnknown_030042A4 +_08030438: .4byte gUnknown_030042A0 +_0803043C: .4byte gUnknown_03004210 +_08030440: .4byte gUnknown_03004330 +_08030444: .4byte gUnknown_02024A60 +_08030448: .4byte sub_802C098 +_0803044C: .4byte gUnknown_08400CF3 +_08030450: .4byte 0x0000ffff +_08030454: .4byte 0x00002d9f +_08030458: .4byte gUnknown_02024E60 +_0803045C: .4byte gUnknown_08400CA8 +_08030460: .4byte gUnknown_020238CC + thumb_func_end sub_803037C + + thumb_func_start nullsub_42 +nullsub_42: @ 8030464 + bx lr + thumb_func_end nullsub_42 + + thumb_func_start sub_8030468 +sub_8030468: @ 8030468 + push {lr} + sub sp, 0x4 + ldr r1, _08030494 @ =0x0000ffff + ldr r3, _08030498 @ =0x00002d9f + movs r0, 0 + str r0, [sp] + movs r2, 0xC + bl sub_814A5C0 + bl sub_80304A8 + ldr r1, _0803049C @ =gUnknown_03004330 + ldr r0, _080304A0 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _080304A4 @ =sub_802C68C + str r1, [r0] + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_08030494: .4byte 0x0000ffff +_08030498: .4byte 0x00002d9f +_0803049C: .4byte gUnknown_03004330 +_080304A0: .4byte gUnknown_02024A60 +_080304A4: .4byte sub_802C68C + thumb_func_end sub_8030468 + + thumb_func_start sub_80304A8 +sub_80304A8: @ 80304A8 + push {r4,lr} + sub sp, 0x4 + ldr r1, _08030510 @ =gUnknown_030042A4 + movs r0, 0 + strh r0, [r1] + ldr r1, _08030514 @ =gUnknown_030042A0 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r2, 0 + strh r0, [r1] + bl sub_802E1B0 + ldr r1, _08030518 @ =gUnknown_03004344 + movs r0, 0xFF + strb r0, [r1] + ldr r1, _0803051C @ =gUnknown_02024E64 + ldr r4, _08030520 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + movs r1, 0 + bl sub_802E3B4 + ldr r1, _08030524 @ =gUnknown_02023A60 + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _08030500 + ldr r4, _08030528 @ =gUnknown_03004210 + ldr r1, _0803052C @ =gUnknown_08400D38 + movs r2, 0xA4 + lsls r2, 2 + movs r0, 0x37 + str r0, [sp] + adds r0, r4, 0 + movs r3, 0x17 + bl InitWindow + adds r0, r4, 0 + bl sub_8002F44 +_08030500: + bl sub_802E220 + bl sub_802E2D4 + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030510: .4byte gUnknown_030042A4 +_08030514: .4byte gUnknown_030042A0 +_08030518: .4byte gUnknown_03004344 +_0803051C: .4byte gUnknown_02024E64 +_08030520: .4byte gUnknown_02024A60 +_08030524: .4byte gUnknown_02023A60 +_08030528: .4byte gUnknown_03004210 +_0803052C: .4byte gUnknown_08400D38 + thumb_func_end sub_80304A8 + + thumb_func_start sub_8030530 +sub_8030530: @ 8030530 + push {r4,r5,lr} + sub sp, 0x4 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _0803057C @ =gUnknown_03004330 + ldr r2, _08030580 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030584 @ =sub_802E004 + str r1, [r0] + ldr r1, _08030588 @ =gUnknown_02024E6C + ldrb r0, [r2] + strb r0, [r1] + movs r3, 0 + ldr r5, _0803058C @ =gUnknown_02038470 + ldr r4, _08030590 @ =gUnknown_02023A60 +_0803055E: + adds r0, r3, r5 + ldrb r1, [r2] + lsls r1, 9 + adds r1, 0x1 + adds r1, r3, r1 + adds r1, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r3, 0x1 + cmp r3, 0x2 + ble _0803055E + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803057C: .4byte gUnknown_03004330 +_08030580: .4byte gUnknown_02024A60 +_08030584: .4byte sub_802E004 +_08030588: .4byte gUnknown_02024E6C +_0803058C: .4byte gUnknown_02038470 +_08030590: .4byte gUnknown_02023A60 + thumb_func_end sub_8030530 + + thumb_func_start sub_8030594 +sub_8030594: @ 8030594 + push {r4,r5,lr} + sub sp, 0x4 + ldr r0, _08030644 @ =TaskDummy + movs r1, 0xFF + bl CreateTask + ldr r3, _08030648 @ =gUnknown_0300434C + ldr r5, _0803064C @ =gUnknown_02024A60 + ldrb r1, [r5] + adds r1, r3 + strb r0, [r1] + ldr r4, _08030650 @ =gTasks + ldrb r2, [r5] + adds r3, r2, r3 + ldrb r0, [r3] + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldr r4, _08030654 @ =gUnknown_02023A60 + lsls r2, 9 + adds r3, r4, 0x1 + adds r2, r3 + ldrb r2, [r2] + movs r0, 0xF + ands r0, r2 + strh r0, [r1, 0x8] + ldr r2, _08030658 @ =0x02000000 + ldrb r0, [r5] + lsls r0, 9 + adds r0, r3 + ldrb r0, [r0] + lsrs r0, 4 + ldr r3, _0803065C @ =0x00016054 + adds r1, r2, r3 + strb r0, [r1] + ldrb r0, [r5] + lsls r0, 9 + adds r1, r4, 0x2 + adds r0, r1 + ldrb r1, [r0] + adds r3, 0x49 + adds r0, r2, r3 + strb r1, [r0] + ldrb r0, [r5] + lsls r0, 9 + adds r1, r4, 0x3 + adds r0, r1 + ldrb r0, [r0] + ldr r1, _08030660 @ =0x000160c0 + adds r2, r1 + strb r0, [r2] + movs r2, 0 + ldr r3, _08030664 @ =gUnknown_02038470 +_08030600: + adds r0, r2, r3 + ldrb r1, [r5] + lsls r1, 9 + adds r1, 0x4 + adds r1, r2, r1 + adds r1, r4 + ldrb r1, [r1] + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x2 + ble _08030600 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + ldr r1, _08030668 @ =gUnknown_03004330 + ldr r2, _0803064C @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803066C @ =sub_802DF30 + str r1, [r0] + ldr r1, _08030670 @ =gUnknown_02024E6C + ldrb r0, [r2] + strb r0, [r1] + add sp, 0x4 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08030644: .4byte TaskDummy +_08030648: .4byte gUnknown_0300434C +_0803064C: .4byte gUnknown_02024A60 +_08030650: .4byte gTasks +_08030654: .4byte gUnknown_02023A60 +_08030658: .4byte 0x02000000 +_0803065C: .4byte 0x00016054 +_08030660: .4byte 0x000160c0 +_08030664: .4byte gUnknown_02038470 +_08030668: .4byte gUnknown_03004330 +_0803066C: .4byte sub_802DF30 +_08030670: .4byte gUnknown_02024E6C + thumb_func_end sub_8030594 + + thumb_func_start sub_8030674 +sub_8030674: @ 8030674 + push {lr} + sub sp, 0x4 + bl sub_80325B8 + movs r0, 0x1 + negs r0, r0 + movs r1, 0 + str r1, [sp] + movs r1, 0x2 + movs r2, 0 + movs r3, 0x10 + bl BeginNormalPaletteFade + bl dp01_tbl1_exec_completed + add sp, 0x4 + pop {r0} + bx r0 + thumb_func_end sub_8030674 + + thumb_func_start sub_8030698 +sub_8030698: @ 8030698 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, _08030710 @ =gUnknown_02023A60 + ldr r0, _08030714 @ =gUnknown_02024A60 + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, _08030718 @ =0x00007fff + cmp r7, r0 + beq _08030728 + ldr r6, _0803071C @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, _08030720 @ =gPlayerParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _08030724 @ =gUnknown_03004340 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_8043D84 + b _08030762 + .align 2, 0 +_08030710: .4byte gUnknown_02023A60 +_08030714: .4byte gUnknown_02024A60 +_08030718: .4byte 0x00007fff +_0803071C: .4byte gUnknown_02024A6A +_08030720: .4byte gPlayerParty +_08030724: .4byte gUnknown_03004340 +_08030728: + ldr r1, _08030780 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08030784 @ =gPlayerParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r4, _08030788 @ =gUnknown_03004340 + adds r1, r0, r4 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_8043D84 + mov r1, r9 + ldrb r0, [r1] + adds r0, r4 + ldrb r0, [r0] + movs r1, 0 + movs r2, 0 + bl sub_80440EC +_08030762: + ldr r1, _0803078C @ =gUnknown_03004330 + ldr r0, _08030790 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030794 @ =bx_t1_healthbar_update + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030780: .4byte gUnknown_02024A6A +_08030784: .4byte gPlayerParty +_08030788: .4byte gUnknown_03004340 +_0803078C: .4byte gUnknown_03004330 +_08030790: .4byte gUnknown_02024A60 +_08030794: .4byte bx_t1_healthbar_update + thumb_func_end sub_8030698 + + thumb_func_start sub_8030798 +sub_8030798: @ 8030798 + push {r4-r7,lr} + ldr r5, _080307C4 @ =gUnknown_02023A60 + ldr r6, _080307C8 @ =gUnknown_02024A60 + ldrb r0, [r6] + lsls r0, 9 + adds r1, r5, 0x1 + adds r0, r1 + ldrb r7, [r0] + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _080307CC @ =gPlayerParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + cmp r0, 0x63 + bls _080307D0 + bl dp01_tbl1_exec_completed + b _0803081C + .align 2, 0 +_080307C4: .4byte gUnknown_02023A60 +_080307C8: .4byte gUnknown_02024A60 +_080307CC: .4byte gPlayerParty +_080307D0: + movs r0, 0x1 + bl load_gfxc_health_bar + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + ldrb r1, [r6] + lsls r1, 9 + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r0, r5, 0x3 + adds r1, r0 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + ldr r0, _08030824 @ =sub_802D924 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08030828 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r7, [r1, 0x8] + strh r4, [r1, 0xA] + ldrb r0, [r6] + strh r0, [r1, 0xC] + ldr r1, _0803082C @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030830 @ =nullsub_91 + str r1, [r0] +_0803081C: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030824: .4byte sub_802D924 +_08030828: .4byte gTasks +_0803082C: .4byte gUnknown_03004330 +_08030830: .4byte nullsub_91 + thumb_func_end sub_8030798 + + thumb_func_start sub_8030834 +sub_8030834: @ 8030834 + push {r4,lr} + ldr r4, _0803088C @ =gUnknown_02024A60 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08030884 + ldr r0, _08030890 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08030894 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _08030898 @ =gPlayerParty + adds r1, r2 + movs r2, 0x9 + bl sub_8045A5C + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _0803089C @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, _080308A0 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _080308A4 @ =sub_802E434 + str r1, [r0] +_08030884: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803088C: .4byte gUnknown_02024A60 +_08030890: .4byte gUnknown_03004340 +_08030894: .4byte gUnknown_02024A6A +_08030898: .4byte gPlayerParty +_0803089C: .4byte 0x02017810 +_080308A0: .4byte gUnknown_03004330 +_080308A4: .4byte sub_802E434 + thumb_func_end sub_8030834 + + thumb_func_start sub_80308A8 +sub_80308A8: @ 80308A8 + push {r4,r5,lr} + ldr r5, _08030900 @ =gUnknown_02024A60 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _080308F8 + ldr r4, _08030904 @ =gUnknown_02023A60 + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, _08030908 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803090C @ =sub_802E434 + str r1, [r0] +_080308F8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08030900: .4byte gUnknown_02024A60 +_08030904: .4byte gUnknown_02023A60 +_08030908: .4byte gUnknown_03004330 +_0803090C: .4byte sub_802E434 + thumb_func_end sub_80308A8 + + thumb_func_start sub_8030910 +sub_8030910: @ 8030910 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x4 + ldr r0, _0803096C @ =gUnknown_02024A6A + mov r8, r0 + ldr r4, _08030970 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + movs r6, 0x64 + muls r0, r6 + ldr r5, _08030974 @ =gPlayerParty + adds r0, r5 + movs r1, 0x37 + bl GetMonData + ldr r2, _08030978 @ =gUnknown_02023A60 + ldrb r1, [r4] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + eors r0, r1 + mov r1, sp + strb r0, [r1] + ldrb r0, [r4] + lsls r0, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + movs r1, 0x37 + mov r2, sp + bl SetMonData + bl dp01_tbl1_exec_completed + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803096C: .4byte gUnknown_02024A6A +_08030970: .4byte gUnknown_02024A60 +_08030974: .4byte gPlayerParty +_08030978: .4byte gUnknown_02023A60 + thumb_func_end sub_8030910 + + thumb_func_start sub_803097C +sub_803097C: @ 803097C + push {lr} + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_803097C + + thumb_func_start sub_8030988 +sub_8030988: @ 8030988 + push {r4,r5,lr} + ldr r3, _080309EC @ =gUnknown_02023A60 + ldr r0, _080309F0 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r2, 9 + adds r0, r3, 0x1 + adds r0, r2, r0 + ldrb r5, [r0] + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r5, r0 + adds r0, r3, 0x3 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 16 + orrs r5, r0 + adds r0, r3, 0x4 + adds r0, r2, r0 + ldrb r4, [r0] + lsls r4, 24 + adds r0, r3, 0x5 + adds r0, r2, r0 + ldrb r1, [r0] + adds r0, r3, 0x6 + adds r0, r2, r0 + ldrb r0, [r0] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + adds r3, 0x7 + adds r2, r3 + orrs r5, r4 + lsrs r4, r1, 16 + movs r0, 0x80 + lsls r0, 5 + cmp r4, r0 + bhi _080309F8 + ldr r0, _080309F4 @ =0x040000d4 + str r2, [r0] + str r5, [r0, 0x4] + lsrs r1, 17 + movs r2, 0x80 + lsls r2, 24 + orrs r1, r2 + str r1, [r0, 0x8] + ldr r0, [r0, 0x8] + b _08030A24 + .align 2, 0 +_080309EC: .4byte gUnknown_02023A60 +_080309F0: .4byte gUnknown_02024A60 +_080309F4: .4byte 0x040000d4 +_080309F8: + ldr r3, _08030A30 @ =0x040000d4 + str r2, [r3] + str r5, [r3, 0x4] + ldr r0, _08030A34 @ =0x80000800 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] + movs r0, 0x80 + lsls r0, 5 + adds r2, r0 + adds r5, r0 + ldr r1, _08030A38 @ =0xfffff000 + adds r4, r1 + cmp r4, r0 + bhi _080309F8 + str r2, [r3] + str r5, [r3, 0x4] + lsrs r0, r4, 1 + movs r1, 0x80 + lsls r1, 24 + orrs r0, r1 + str r0, [r3, 0x8] + ldr r0, [r3, 0x8] +_08030A24: + bl dp01_tbl1_exec_completed + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08030A30: .4byte 0x040000d4 +_08030A34: .4byte 0x80000800 +_08030A38: .4byte 0xfffff000 + thumb_func_end sub_8030988 + + thumb_func_start sub_8030A3C +sub_8030A3C: @ 8030A3C + push {lr} + ldr r2, _08030A64 @ =gUnknown_02023A60 + ldr r0, _08030A68 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayBGM + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030A64: .4byte gUnknown_02023A60 +_08030A68: .4byte gUnknown_02024A60 + thumb_func_end sub_8030A3C + + thumb_func_start sub_8030A6C +sub_8030A6C: @ 8030A6C + push {lr} + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8030A6C + + thumb_func_start sub_8030A78 +sub_8030A78: @ 8030A78 + push {lr} + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8030A78 + + thumb_func_start sub_8030A8C +sub_8030A8C: @ 8030A8C + push {lr} + movs r0, 0x1 + movs r1, 0 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8030A8C + + thumb_func_start sub_8030AA0 +sub_8030AA0: @ 8030AA0 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl dp01_build_cmdbuf_x23_aa_0 + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8030AA0 + + thumb_func_start sub_8030AB4 +sub_8030AB4: @ 8030AB4 + push {lr} + movs r0, 0x1 + movs r1, 0 + bl dp01_build_cmdbuf_x24_aa_0 + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8030AB4 + + thumb_func_start sub_8030AC8 +sub_8030AC8: @ 8030AC8 + push {lr} + ldr r2, _08030AE0 @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030AE0: .4byte gUnknown_020238C8 + thumb_func_end sub_8030AC8 + + thumb_func_start sub_8030AE4 +sub_8030AE4: @ 8030AE4 + push {lr} + ldr r3, _08030B10 @ =gUnknown_020238C8 + ldr r1, _08030B14 @ =gUnknown_02023A60 + ldr r0, _08030B18 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030B10: .4byte gUnknown_020238C8 +_08030B14: .4byte gUnknown_02023A60 +_08030B18: .4byte gUnknown_02024A60 + thumb_func_end sub_8030AE4 + + thumb_func_start sub_8030B1C +sub_8030B1C: @ 8030B1C + push {lr} + ldr r2, _08030B30 @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030B30: .4byte gUnknown_020238C8 + thumb_func_end sub_8030B1C + + thumb_func_start sub_8030B34 +sub_8030B34: @ 8030B34 + push {lr} + ldr r3, _08030B58 @ =gUnknown_020238C8 + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030B58: .4byte gUnknown_020238C8 + thumb_func_end sub_8030B34 + + thumb_func_start dp01t_29_1_blink +dp01t_29_1_blink: @ 8030B5C + push {r4,lr} + ldr r3, _08030B84 @ =gSprites + ldr r2, _08030B88 @ =gUnknown_02024BE0 + ldr r4, _08030B8C @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _08030B90 + bl dp01_tbl1_exec_completed + b _08030BBA + .align 2, 0 +_08030B84: .4byte gSprites +_08030B88: .4byte gUnknown_02024BE0 +_08030B8C: .4byte gUnknown_02024A60 +_08030B90: + ldr r1, _08030BC0 @ =gUnknown_02024E6D + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_8047858 + ldr r1, _08030BC4 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030BC8 @ =bx_blink_t1 + str r1, [r0] +_08030BBA: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030BC0: .4byte gUnknown_02024E6D +_08030BC4: .4byte gUnknown_03004330 +_08030BC8: .4byte bx_blink_t1 + thumb_func_end dp01t_29_1_blink + + thumb_func_start sub_8030BCC +sub_8030BCC: @ 8030BCC + push {lr} + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8030BCC + + thumb_func_start sub_8030BD8 +sub_8030BD8: @ 8030BD8 + push {r4,lr} + ldr r4, _08030C14 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _08030BEC + movs r3, 0xC0 +_08030BEC: + ldr r2, _08030C18 @ =gUnknown_02023A60 + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl dp01_tbl1_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08030C14: .4byte gUnknown_02024A60 +_08030C18: .4byte gUnknown_02023A60 + thumb_func_end sub_8030BD8 + + thumb_func_start sub_8030C1C +sub_8030C1C: @ 8030C1C + push {lr} + ldr r2, _08030C44 @ =gUnknown_02023A60 + ldr r0, _08030C48 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030C44: .4byte gUnknown_02023A60 +_08030C48: .4byte gUnknown_02024A60 + thumb_func_end sub_8030C1C + + thumb_func_start sub_8030C4C +sub_8030C4C: @ 8030C4C + push {lr} + ldr r1, _08030C80 @ =gUnknown_02024A6A + ldr r0, _08030C84 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08030C88 @ =gPlayerParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + negs r1, r1 + movs r2, 0x5 + bl PlayCry3 + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030C80: .4byte gUnknown_02024A6A +_08030C84: .4byte gUnknown_02024A60 +_08030C88: .4byte gPlayerParty + thumb_func_end sub_8030C4C + + thumb_func_start dp01t_2E_1_battle_intro +dp01t_2E_1_battle_intro: @ 8030C8C + push {lr} + ldr r1, _08030CB4 @ =gUnknown_02023A60 + ldr r0, _08030CB8 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80E43C0 + ldr r2, _08030CBC @ =gUnknown_02024DE8 + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08030CB4: .4byte gUnknown_02023A60 +_08030CB8: .4byte gUnknown_02024A60 +_08030CBC: .4byte gUnknown_02024DE8 + thumb_func_end dp01t_2E_1_battle_intro + + thumb_func_start sub_8030CC0 +sub_8030CC0: @ 8030CC0 + push {r4-r7,lr} + ldr r6, _08030DF8 @ =gUnknown_02024BE0 + ldr r7, _08030DFC @ =gUnknown_02024A60 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _08030E00 @ =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x32 + strh r1, [r0, 0x2E] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08030E04 @ =0x0000ffd8 + strh r1, [r0, 0x32] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08030E08 @ =sub_8078B34 + str r1, [r0] + ldrb r2, [r7] + adds r0, r2, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x38] + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08030E0C @ =sub_8030E38 + bl oamt_set_x3A_32 + ldrb r0, [r7] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x1 + bl StartSpriteAnim + ldr r0, _08030E10 @ =0x0000d6f8 + bl AllocSpritePalette + adds r4, r0, 0 + lsls r4, 24 + ldr r1, _08030E14 @ =gTrainerBackPicPaletteTable + ldr r0, _08030E18 @ =gSaveBlock2 + ldrb r0, [r0, 0x8] + lsls r0, 3 + adds r0, r1 + ldr r0, [r0] + lsrs r4, 20 + movs r2, 0x80 + lsls r2, 1 + adds r1, r4, r2 + movs r2, 0x20 + bl LoadCompressedPalette + ldrb r0, [r7] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r4 + strb r0, [r1, 0x5] + ldr r0, _08030E1C @ =task05_08033660 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08030E20 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r7] + strh r0, [r1, 0x8] + ldrb r3, [r7] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r2, _08030E24 @ =0x02017810 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08030DDC + ldr r0, _08030E28 @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, _08030E2C @ =sub_8044CA0 + str r1, [r0] +_08030DDC: + adds r2, 0x30 + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, _08030E30 @ =gUnknown_03004330 + ldrb r0, [r7] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030E34 @ =nullsub_91 + str r1, [r0] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030DF8: .4byte gUnknown_02024BE0 +_08030DFC: .4byte gUnknown_02024A60 +_08030E00: .4byte gSprites +_08030E04: .4byte 0x0000ffd8 +_08030E08: .4byte sub_8078B34 +_08030E0C: .4byte sub_8030E38 +_08030E10: .4byte 0x0000d6f8 +_08030E14: .4byte gTrainerBackPicPaletteTable +_08030E18: .4byte gSaveBlock2 +_08030E1C: .4byte task05_08033660 +_08030E20: .4byte gTasks +_08030E24: .4byte 0x02017810 +_08030E28: .4byte gUnknown_02024E68 +_08030E2C: .4byte sub_8044CA0 +_08030E30: .4byte gUnknown_03004330 +_08030E34: .4byte nullsub_91 + thumb_func_end sub_8030CC0 + + thumb_func_start sub_8030E38 +sub_8030E38: @ 8030E38 + push {r4,r5,lr} + adds r5, r0, 0 + ldrh r4, [r5, 0x38] + lsls r4, 24 + lsrs r4, 24 + bl FreeSpriteOamMatrix + ldrb r0, [r5, 0x5] + lsrs r0, 4 + bl GetSpritePaletteTagByPaletteNum + lsls r0, 16 + lsrs r0, 16 + bl FreeSpritePaletteByTag + adds r0, r5, 0 + bl DestroySprite + ldr r1, _08030E90 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08030E94 @ =gPlayerParty + adds r0, r1 + adds r1, r4, 0 + bl sub_80318FC + ldr r0, _08030E98 @ =gUnknown_02024BE0 + adds r4, r0 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08030E9C @ =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08030E90: .4byte gUnknown_02024A6A +_08030E94: .4byte gPlayerParty +_08030E98: .4byte gUnknown_02024BE0 +_08030E9C: .4byte gSprites + thumb_func_end sub_8030E38 + + thumb_func_start task05_08033660 +task05_08033660: @ 8030EA0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r1, _08030EC8 @ =gTasks + lsls r0, 2 + add r0, r8 + lsls r0, 3 + adds r1, r0, r1 + ldrh r2, [r1, 0xA] + movs r3, 0xA + ldrsh r0, [r1, r3] + cmp r0, 0x1E + bgt _08030ECC + adds r0, r2, 0x1 + strh r0, [r1, 0xA] + b _08030F88 + .align 2, 0 +_08030EC8: .4byte gTasks +_08030ECC: + ldr r7, _08030F0C @ =gUnknown_02024A60 + ldrb r0, [r7] + mov r9, r0 + ldrh r0, [r1, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08030EEC + ldr r0, _08030F10 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08030F1C +_08030EEC: + ldr r0, _08030F14 @ =gUnknown_02023A60 + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, _08030F18 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_802F934 + b _08030F70 + .align 2, 0 +_08030F0C: .4byte gUnknown_02024A60 +_08030F10: .4byte gUnknown_020239F8 +_08030F14: .4byte gUnknown_02023A60 +_08030F18: .4byte gUnknown_02024A6A +_08030F1C: + ldr r4, _08030F94 @ =gUnknown_02023A60 + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r5, _08030F98 @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_802F934 + ldrb r0, [r7] + movs r6, 0x2 + eors r0, r6 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r5 + ldrh r0, [r0] + strb r0, [r1] + ldrb r1, [r7] + lsls r0, r1, 1 + adds r0, r5 + ldrh r2, [r0] + movs r0, 0x64 + muls r0, r2 + ldr r2, _08030F9C @ =gPlayerParty + adds r0, r2 + bl sub_80318FC + ldrb r0, [r7] + movs r1, 0 + bl sub_802F934 + ldrb r0, [r7] + eors r0, r6 + strb r0, [r7] +_08030F70: + ldr r1, _08030FA0 @ =gUnknown_03004330 + ldr r2, _08030FA4 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08030FA8 @ =sub_802D500 + str r1, [r0] + mov r3, r9 + strb r3, [r2] + mov r0, r8 + bl DestroyTask +_08030F88: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08030F94: .4byte gUnknown_02023A60 +_08030F98: .4byte gUnknown_02024A6A +_08030F9C: .4byte gPlayerParty +_08030FA0: .4byte gUnknown_03004330 +_08030FA4: .4byte gUnknown_02024A60 +_08030FA8: .4byte sub_802D500 + thumb_func_end task05_08033660 + + thumb_func_start sub_8030FAC +sub_8030FAC: @ 8030FAC + push {r4-r6,lr} + ldr r1, _08030FD4 @ =gUnknown_02023A60 + ldr r0, _08030FD8 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08030FDC + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08030FDC + bl dp01_tbl1_exec_completed + b _08031044 + .align 2, 0 +_08030FD4: .4byte gUnknown_02023A60 +_08030FD8: .4byte gUnknown_02024A60 +_08030FDC: + ldr r5, _0803104C @ =gUnknown_02024A60 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r6, _08031050 @ =0x02017810 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, _08031054 @ =gUnknown_02023A64 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_8044804 + ldr r2, _08031058 @ =gUnknown_02024E68 + ldrb r1, [r5] + adds r1, r2 + movs r2, 0 + strb r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strb r2, [r0, 0x5] + ldrb r1, [r5] + lsls r0, r1, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08031038 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + movs r1, 0x5D + strb r1, [r0, 0x5] +_08031038: + ldr r0, _0803105C @ =gUnknown_03004330 + ldrb r1, [r5] + lsls r1, 2 + adds r1, r0 + ldr r0, _08031060 @ =sub_8031064 + str r0, [r1] +_08031044: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803104C: .4byte gUnknown_02024A60 +_08031050: .4byte 0x02017810 +_08031054: .4byte gUnknown_02023A64 +_08031058: .4byte gUnknown_02024E68 +_0803105C: .4byte gUnknown_03004330 +_08031060: .4byte sub_8031064 + thumb_func_end sub_8030FAC + + thumb_func_start sub_8031064 +sub_8031064: @ 8031064 + push {r4,lr} + ldr r4, _0803109C @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _080310A0 @ =0x02017810 + adds r0, r3 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08031094 + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 + strb r0, [r1, 0x5] + bl dp01_tbl1_exec_completed +_08031094: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803109C: .4byte gUnknown_02024A60 +_080310A0: .4byte 0x02017810 + thumb_func_end sub_8031064 + + thumb_func_start sub_80310A4 +sub_80310A4: @ 80310A4 + push {lr} + ldr r0, _080310DC @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r1, _080310E0 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080310D2 + ldr r2, _080310E4 @ =gTasks + ldr r0, _080310E8 @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _080310EC @ =sub_8044CA0 + str r1, [r0] +_080310D2: + bl dp01_tbl1_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_080310DC: .4byte gUnknown_02024A60 +_080310E0: .4byte 0x02017810 +_080310E4: .4byte gTasks +_080310E8: .4byte gUnknown_02024E68 +_080310EC: .4byte sub_8044CA0 + thumb_func_end sub_80310A4 + + thumb_func_start sub_80310F0 +sub_80310F0: @ 80310F0 + push {r4,lr} + ldr r4, _08031110 @ =gUnknown_02024A60 + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + ldrb r0, [r4] + movs r1, 0 + bl dp11b_obj_free + bl dp01_tbl1_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031110: .4byte gUnknown_02024A60 + thumb_func_end sub_80310F0 + + thumb_func_start dp01t_33_1_enemy_move +dp01t_33_1_enemy_move: @ 8031114 + push {r4,lr} + ldr r4, _08031164 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _0803115A + ldr r3, _08031168 @ =gSprites + ldr r0, _0803116C @ =gUnknown_02024BE0 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, _08031170 @ =gUnknown_02023A60 + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_8031F88 +_0803115A: + bl dp01_tbl1_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031164: .4byte gUnknown_02024A60 +_08031168: .4byte gSprites +_0803116C: .4byte gUnknown_02024BE0 +_08031170: .4byte gUnknown_02023A60 + thumb_func_end dp01t_33_1_enemy_move + + thumb_func_start bx_exec_buffer_A_ch0_tbl1 +bx_exec_buffer_A_ch0_tbl1: @ 8031174 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _080311B8 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _080311CC + ldr r5, _080311BC @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _080311C0 + bl dp01_tbl1_exec_completed + b _080311CC + .align 2, 0 +_080311B8: .4byte gUnknown_02024A60 +_080311BC: .4byte gUnknown_02023A60 +_080311C0: + ldr r0, _080311D4 @ =gUnknown_03004330 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _080311D8 @ =sub_802E460 + str r0, [r1] +_080311CC: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080311D4: .4byte gUnknown_03004330 +_080311D8: .4byte sub_802E460 + thumb_func_end bx_exec_buffer_A_ch0_tbl1 + + thumb_func_start dp01t_35_1_link_standby_message_and_free_vram +dp01t_35_1_link_standby_message_and_free_vram: @ 80311DC + push {r4,lr} + ldr r1, _080311FC @ =gUnknown_02023A60 + ldr r0, _08031200 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0803120E + cmp r0, 0x1 + bgt _08031204 + cmp r0, 0 + beq _0803120A + b _0803122C + .align 2, 0 +_080311FC: .4byte gUnknown_02023A60 +_08031200: .4byte gUnknown_02024A60 +_08031204: + cmp r0, 0x2 + beq _08031228 + b _0803122C +_0803120A: + bl b_link_standby_message +_0803120E: + ldr r4, _08031224 @ =gUnknown_02024A60 + ldrb r0, [r4] + movs r1, 0x1 + bl dp11b_obj_free + ldrb r0, [r4] + movs r1, 0 + bl dp11b_obj_free + b _0803122C + .align 2, 0 +_08031224: .4byte gUnknown_02024A60 +_08031228: + bl b_link_standby_message +_0803122C: + bl dp01_tbl1_exec_completed + pop {r4} + pop {r0} + bx r0 + thumb_func_end dp01t_35_1_link_standby_message_and_free_vram + + thumb_func_start sub_8031238 +sub_8031238: @ 8031238 + push {r4,lr} + ldr r1, _08031258 @ =gUnknown_02023A60 + ldr r4, _0803125C @ =gUnknown_02024A60 + ldrb r3, [r4] + lsls r0, r3, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r2, [r0] + cmp r2, 0x1 + beq _08031280 + cmp r2, 0x1 + bgt _08031260 + cmp r2, 0 + beq _08031266 + b _08031290 + .align 2, 0 +_08031258: .4byte gUnknown_02023A60 +_0803125C: .4byte gUnknown_02024A60 +_08031260: + cmp r2, 0x2 + beq _08031288 + b _08031290 +_08031266: + ldr r0, _08031278 @ =gUnknown_02024E60 + adds r0, r3, r0 + strb r2, [r0] + ldr r1, _0803127C @ =gUnknown_02024E64 + ldrb r0, [r4] + adds r0, r1 + strb r2, [r0] + b _08031290 + .align 2, 0 +_08031278: .4byte gUnknown_02024E60 +_0803127C: .4byte gUnknown_02024E64 +_08031280: + ldr r0, _08031284 @ =gUnknown_02024E60 + b _0803128A + .align 2, 0 +_08031284: .4byte gUnknown_02024E60 +_08031288: + ldr r0, _0803129C @ =gUnknown_02024E64 +_0803128A: + adds r0, r3, r0 + movs r1, 0 + strb r1, [r0] +_08031290: + bl dp01_tbl1_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803129C: .4byte gUnknown_02024E64 + thumb_func_end sub_8031238 + + thumb_func_start sub_80312A0 +sub_80312A0: @ 80312A0 + push {r4,lr} + ldr r2, _080312D8 @ =gUnknown_02024D26 + ldr r1, _080312DC @ =gUnknown_02023A60 + ldr r4, _080312E0 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + strb r0, [r2] + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl dp01_tbl1_exec_completed + ldr r1, _080312E4 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _080312E8 @ =sub_802D18C + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080312D8: .4byte gUnknown_02024D26 +_080312DC: .4byte gUnknown_02023A60 +_080312E0: .4byte gUnknown_02024A60 +_080312E4: .4byte gUnknown_03004330 +_080312E8: .4byte sub_802D18C + thumb_func_end sub_80312A0 + + thumb_func_start nullsub_43 +nullsub_43: @ 80312EC + bx lr + thumb_func_end nullsub_43 + + thumb_func_start sub_80312F0 +sub_80312F0: @ 80312F0 + push {r4-r7,lr} + adds r6, r0, 0 + ldrh r0, [r6, 0x30] + lsls r0, 24 + lsrs r0, 24 + ldr r7, _08031334 @ =gSprites + lsls r1, r0, 4 + adds r1, r0 + lsls r5, r1, 2 + adds r3, r5, r7 + adds r0, r3, 0 + adds r0, 0x3F + ldrb r4, [r0] + lsls r0, r4, 26 + cmp r0, 0 + bge _08031354 + adds r0, r3, 0 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + blt _08031354 + adds r1, r3, 0 + adds r1, 0x2C + ldrb r2, [r1] + lsls r0, r2, 25 + cmp r0, 0 + bge _08031338 + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + b _08031354 + .align 2, 0 +_08031334: .4byte gSprites +_08031338: + lsls r0, r4, 27 + cmp r0, 0 + bge _08031354 + adds r0, r7, 0 + adds r0, 0x1C + adds r0, r5, r0 + ldr r1, _0803135C @ =sub_80105DC + str r1, [r0] + adds r0, r3, 0 + movs r1, 0 + bl StartSpriteAffineAnim + ldr r0, _08031360 @ =SpriteCallbackDummy + str r0, [r6, 0x1C] +_08031354: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803135C: .4byte sub_80105DC +_08031360: .4byte SpriteCallbackDummy + thumb_func_end sub_80312F0 + + thumb_func_start unref_sub_8031364 +unref_sub_8031364: @ 8031364 + push {r4,lr} + adds r4, r0, 0 + lsls r1, 24 + adds r3, r4, 0 + adds r3, 0x2C + ldrb r0, [r3] + movs r2, 0x40 + orrs r0, r2 + strb r0, [r3] + ldr r0, _08031388 @ =SpriteCallbackDummy + str r0, [r4, 0x1C] + cmp r1, 0 + bne _0803138C + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim + b _08031394 + .align 2, 0 +_08031388: .4byte SpriteCallbackDummy +_0803138C: + adds r0, r4, 0 + movs r1, 0x1 + bl StartSpriteAffineAnim +_08031394: + adds r0, r4, 0 + bl AnimateSprite + pop {r4} + pop {r0} + bx r0 + thumb_func_end unref_sub_8031364 + + thumb_func_start sub_80313A0 +sub_80313A0: @ 80313A0 + push {lr} + adds r2, r0, 0 + ldr r0, _080313C8 @ =gUnknown_02024DE8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080313C2 + ldrh r0, [r2, 0x2E] + ldrh r1, [r2, 0x24] + adds r0, r1 + strh r0, [r2, 0x24] + lsls r0, 16 + cmp r0, 0 + bne _080313C2 + ldr r0, _080313CC @ =SpriteCallbackDummy + str r0, [r2, 0x1C] +_080313C2: + pop {r0} + bx r0 + .align 2, 0 +_080313C8: .4byte gUnknown_02024DE8 +_080313CC: .4byte SpriteCallbackDummy + thumb_func_end sub_80313A0 + + thumb_func_start move_anim_start_t2_for_situation +move_anim_start_t2_for_situation: @ 80313D0 + push {r4-r6,lr} + adds r4, r1, 0 + lsls r0, 24 + ldr r5, _08031400 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r1, r2, 1 + adds r1, r2 + lsls r1, 2 + ldr r6, _08031404 @ =0x02017810 + adds r1, r6 + ldrb r2, [r1] + movs r3, 0x10 + orrs r2, r3 + strb r2, [r1] + cmp r0, 0 + bne _0803144C + cmp r4, 0x20 + bne _08031408 + ldrb r0, [r5] + movs r1, 0x6 + bl move_anim_start_t2 + b _080314C2 + .align 2, 0 +_08031400: .4byte gUnknown_02024A60 +_08031404: .4byte 0x02017810 +_08031408: + cmp r4, 0x8 + beq _08031414 + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + beq _0803141E +_08031414: + ldrb r0, [r5] + movs r1, 0 + bl move_anim_start_t2 + b _080314C2 +_0803141E: + cmp r4, 0x10 + bne _0803142C + ldrb r0, [r5] + movs r1, 0x2 + bl move_anim_start_t2 + b _080314C2 +_0803142C: + movs r0, 0x7 + ands r0, r4 + cmp r0, 0 + beq _0803143E + ldrb r0, [r5] + movs r1, 0x4 + bl move_anim_start_t2 + b _080314C2 +_0803143E: + cmp r4, 0x40 + bne _080314AE + ldrb r0, [r5] + movs r1, 0x5 + bl move_anim_start_t2 + b _080314C2 +_0803144C: + movs r0, 0xF0 + lsls r0, 12 + ands r0, r4 + cmp r0, 0 + beq _08031460 + ldrb r0, [r5] + movs r1, 0x3 + bl move_anim_start_t2 + b _080314C2 +_08031460: + movs r0, 0x7 + ands r0, r4 + cmp r0, 0 + beq _08031472 + ldrb r0, [r5] + movs r1, 0x1 + bl move_anim_start_t2 + b _080314C2 +_08031472: + movs r0, 0x80 + lsls r0, 21 + ands r0, r4 + cmp r0, 0 + beq _08031486 + ldrb r0, [r5] + movs r1, 0x7 + bl move_anim_start_t2 + b _080314C2 +_08031486: + movs r0, 0x80 + lsls r0, 20 + ands r0, r4 + cmp r0, 0 + beq _0803149A + ldrb r0, [r5] + movs r1, 0x8 + bl move_anim_start_t2 + b _080314C2 +_0803149A: + movs r0, 0xE0 + lsls r0, 8 + ands r0, r4 + cmp r0, 0 + beq _080314AE + ldrb r0, [r5] + movs r1, 0x9 + bl move_anim_start_t2 + b _080314C2 +_080314AE: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] +_080314C2: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end move_anim_start_t2_for_situation + + thumb_func_start move_anim_start_t3 +move_anim_start_t3: @ 80314C8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, [sp, 0x20] + lsls r0, 24 + lsrs r6, r0, 24 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r10, r2 + lsls r3, 24 + lsrs r5, r3, 24 + lsls r4, 16 + lsrs r7, r4, 16 + cmp r5, 0 + bne _0803150C + movs r0, 0x80 + ands r0, r7 + cmp r0, 0 + beq _0803150C + ldr r0, _08031508 @ =gUnknown_02024E84 + adds r0, r6, r0 + movs r2, 0x7F + adds r1, r7, 0 + ands r1, r2 + strb r1, [r0] + movs r0, 0x1 + b _080315C2 + .align 2, 0 +_08031508: .4byte gUnknown_02024E84 +_0803150C: + lsls r1, r6, 2 + ldr r0, _08031530 @ =0x02017800 + adds r4, r1, r0 + ldrb r1, [r4] + movs r0, 0x4 + mov r8, r0 + ands r0, r1 + cmp r0, 0 + beq _08031578 + adds r0, r5, 0 + bl sub_803163C + lsls r0, 24 + cmp r0, 0 + bne _08031534 + movs r0, 0x1 + b _080315C2 + .align 2, 0 +_08031530: .4byte 0x02017800 +_08031534: + ldrb r1, [r4] + mov r0, r8 + ands r0, r1 + cmp r0, 0 + beq _08031578 + cmp r5, 0x2 + bne _08031578 + ldr r1, _08031570 @ =gSprites + ldr r0, _08031574 @ =gUnknown_02024BE0 + adds r0, r6, r0 + ldrb r2, [r0] + lsls r0, r2, 4 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _08031578 + adds r0, r6, 0 + movs r1, 0x1 + bl refresh_graphics_maybe + adds r0, r6, 0 + bl sub_80324E0 + movs r0, 0x1 + b _080315C2 + .align 2, 0 +_08031570: .4byte gSprites +_08031574: .4byte gUnknown_02024BE0 +_08031578: + ldr r0, _080315D0 @ =gUnknown_0202F7C8 + mov r1, r9 + strb r1, [r0] + ldr r0, _080315D4 @ =gUnknown_0202F7C9 + mov r1, r10 + strb r1, [r0] + ldr r4, _080315D8 @ =0x02017840 + strh r7, [r4] + ldr r0, _080315DC @ =gBattleAnims_Unknown1 + adds r1, r5, 0 + movs r2, 0 + bl move_something + ldr r0, _080315E0 @ =sub_80315E8 + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080315E4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r6, [r1, 0x8] + movs r0, 0x8 + ldrsh r1, [r1, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + subs r4, 0x30 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] + movs r0, 0 +_080315C2: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080315D0: .4byte gUnknown_0202F7C8 +_080315D4: .4byte gUnknown_0202F7C9 +_080315D8: .4byte 0x02017840 +_080315DC: .4byte gBattleAnims_Unknown1 +_080315E0: .4byte sub_80315E8 +_080315E4: .4byte gTasks + thumb_func_end move_anim_start_t3 + + thumb_func_start sub_80315E8 +sub_80315E8: @ 80315E8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _0803162C @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08031630 @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _08031626 + ldr r1, _08031634 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _08031638 @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x21 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_08031626: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803162C: .4byte gUnknown_0202F7AC +_08031630: .4byte gUnknown_0202F7B1 +_08031634: .4byte gTasks +_08031638: .4byte 0x02017810 + thumb_func_end sub_80315E8 + + thumb_func_start sub_803163C +sub_803163C: @ 803163C + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xD + bgt _08031650 + cmp r0, 0xA + bge _08031654 + cmp r0, 0x2 + beq _08031654 + b _08031658 +_08031650: + cmp r0, 0x11 + bne _08031658 +_08031654: + movs r0, 0x1 + b _0803165A +_08031658: + movs r0, 0 +_0803165A: + pop {r1} + bx r1 + thumb_func_end sub_803163C + + thumb_func_start move_anim_start_t4 +move_anim_start_t4: @ 8031660 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + lsls r3, 24 + lsrs r3, 24 + ldr r0, _080316B4 @ =gUnknown_0202F7C8 + strb r1, [r0] + ldr r0, _080316B8 @ =gUnknown_0202F7C9 + strb r2, [r0] + ldr r0, _080316BC @ =gBattleAnims_Unknown2 + adds r1, r3, 0 + movs r2, 0 + bl move_something + ldr r0, _080316C0 @ =sub_80316CC + movs r1, 0xA + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r2, _080316C4 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r2 + strh r4, [r1, 0x8] + movs r0, 0x8 + ldrsh r1, [r1, r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080316C8 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r2, 0x40 + orrs r1, r2 + strb r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080316B4: .4byte gUnknown_0202F7C8 +_080316B8: .4byte gUnknown_0202F7C9 +_080316BC: .4byte gBattleAnims_Unknown2 +_080316C0: .4byte sub_80316CC +_080316C4: .4byte gTasks +_080316C8: .4byte 0x02017810 + thumb_func_end move_anim_start_t4 + + thumb_func_start sub_80316CC +sub_80316CC: @ 80316CC + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _08031710 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08031714 @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _0803170A + ldr r1, _08031718 @ =gTasks + lsls r0, r4, 2 + adds r0, r4 + lsls r0, 3 + adds r0, r1 + movs r1, 0x8 + ldrsh r0, [r0, r1] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _0803171C @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x41 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + adds r0, r4, 0 + bl DestroyTask +_0803170A: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031710: .4byte gUnknown_0202F7AC +_08031714: .4byte gUnknown_0202F7B1 +_08031718: .4byte gTasks +_0803171C: .4byte 0x02017810 + thumb_func_end sub_80316CC + + thumb_func_start sub_8031720 +sub_8031720: @ 8031720 + movs r0, 0 + bx lr + thumb_func_end sub_8031720 + + thumb_func_start mplay_80342A4 +mplay_80342A4: @ 8031724 + push {r4,r5,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0 + bl IsSEPlaying + lsls r0, 24 + cmp r0, 0 + beq _08031764 + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + ldr r2, _0803176C @ =0x02017810 + adds r1, r2 + ldrb r0, [r1, 0x8] + adds r0, 0x1 + strb r0, [r1, 0x8] + ldr r0, _08031770 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x8] + cmp r0, 0x1D + bls _08031768 + ldr r0, _08031774 @ =gMPlay_SE1 + bl m4aMPlayStop + ldr r0, _08031778 @ =gMPlay_SE2 + bl m4aMPlayStop +_08031764: + cmp r5, 0 + beq _0803177C +_08031768: + movs r0, 0x1 + b _0803178A + .align 2, 0 +_0803176C: .4byte 0x02017810 +_08031770: .4byte gUnknown_02024A60 +_08031774: .4byte gMPlay_SE1 +_08031778: .4byte gMPlay_SE2 +_0803177C: + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + ldr r1, _08031790 @ =0x02017810 + adds r0, r1 + strb r5, [r0, 0x8] + movs r0, 0 +_0803178A: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08031790: .4byte 0x02017810 + thumb_func_end mplay_80342A4 + + thumb_func_start sub_8031794 +sub_8031794: @ 8031794 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r1, 0 + bl GetMonData + str r0, [sp, 0xC] + mov r0, r9 + lsls r1, r0, 2 + ldr r0, _080317D0 @ =0x02017800 + adds r2, r1, r0 + ldrh r0, [r2, 0x2] + cmp r0, 0 + bne _080317D4 + mov r0, r8 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + ldr r7, [sp, 0xC] + b _080317DC + .align 2, 0 +_080317D0: .4byte 0x02017800 +_080317D4: + ldrh r6, [r2, 0x2] + ldr r0, _08031838 @ =gUnknown_02024E70 + adds r0, r1, r0 + ldr r7, [r0] +_080317DC: + mov r0, r8 + movs r1, 0x1 + bl GetMonData + mov r10, r0 + mov r0, r9 + bl battle_get_per_side_status + lsls r0, 24 + lsls r5, r6, 3 + ldr r1, _0803183C @ =gMonFrontPicTable + adds r5, r1 + ldr r1, _08031840 @ =gMonFrontPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08031844 @ =gUnknown_081FAF4C + lsrs r0, 22 + adds r0, r4 + ldr r0, [r0] + str r0, [sp] + str r6, [sp, 0x4] + str r7, [sp, 0x8] + adds r0, r5, 0 + bl sub_800D334 + mov r1, r9 + lsls r2, r1, 4 + movs r0, 0x80 + lsls r0, 1 + adds r7, r2, r0 + lsls r1, 2 + ldr r0, _08031848 @ =0x02017800 + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + str r1, [sp, 0x10] + adds r4, r2, 0 + cmp r0, 0 + bne _0803184C + mov r0, r8 + bl pokemon_get_pal + b _08031856 + .align 2, 0 +_08031838: .4byte gUnknown_02024E70 +_0803183C: .4byte gMonFrontPicTable +_08031840: .4byte gMonFrontPicCoords +_08031844: .4byte gUnknown_081FAF4C +_08031848: .4byte 0x02017800 +_0803184C: + adds r0, r6, 0 + mov r1, r10 + ldr r2, [sp, 0xC] + bl species_and_otid_get_pal +_08031856: + adds r5, r0, 0 + ldr r1, _080318E0 @ =0x02000000 + mov r8, r1 + adds r0, r5, 0 + bl sub_800D238 + mov r0, r8 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette + adds r1, r4, 0 + adds r1, 0x80 + mov r0, r8 + movs r2, 0x20 + bl LoadPalette + ldr r0, _080318E4 @ =SPECIES_CASTFORM + cmp r6, r0 + bne _080318A2 + subs r0, 0x81 + adds r7, r4, r0 + movs r4, 0xB2 + lsls r4, 9 + add r4, r8 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _080318E8 @ =gUnknown_02024E84 + add r0, r9 + ldrb r0, [r0] + lsls r0, 5 + adds r0, r4 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette +_080318A2: + movs r0, 0xBC + lsls r0, 9 + add r0, r8 + ldr r1, [sp, 0x10] + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _080318CE + ldr r3, _080318EC @ =0x00007fff + adds r0, r7, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r7, 1 + ldr r0, _080318F0 @ =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, _080318F4 @ =gPlttBufferUnfaded + adds r1, r2 + ldr r2, _080318F8 @ =REG_BG0CNT + bl CpuSet +_080318CE: + 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 +_080318E0: .4byte 0x02000000 +_080318E4: .4byte SPECIES_CASTFORM +_080318E8: .4byte gUnknown_02024E84 +_080318EC: .4byte 0x00007fff +_080318F0: .4byte gPlttBufferFaded +_080318F4: .4byte gPlttBufferUnfaded +_080318F8: .4byte REG_BG0CNT + thumb_func_end sub_8031794 + + thumb_func_start sub_80318FC +sub_80318FC: @ 80318FC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + movs r1, 0 + bl GetMonData + str r0, [sp, 0xC] + mov r0, r9 + lsls r1, r0, 2 + ldr r0, _08031938 @ =0x02017800 + adds r2, r1, r0 + ldrh r0, [r2, 0x2] + cmp r0, 0 + bne _0803193C + mov r0, r8 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r6, r0, 16 + ldr r7, [sp, 0xC] + b _08031944 + .align 2, 0 +_08031938: .4byte 0x02017800 +_0803193C: + ldrh r6, [r2, 0x2] + ldr r0, _080319A0 @ =gUnknown_02024E70 + adds r0, r1, r0 + ldr r7, [r0] +_08031944: + mov r0, r8 + movs r1, 0x1 + bl GetMonData + mov r10, r0 + mov r0, r9 + bl battle_get_per_side_status + lsls r0, 24 + lsls r5, r6, 3 + ldr r1, _080319A4 @ =gMonBackPicTable + adds r5, r1 + ldr r1, _080319A8 @ =gMonBackPicCoords + lsls r2, r6, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _080319AC @ =gUnknown_081FAF4C + lsrs r0, 22 + adds r0, r4 + ldr r0, [r0] + str r0, [sp] + str r6, [sp, 0x4] + str r7, [sp, 0x8] + adds r0, r5, 0 + bl sub_800D334 + mov r1, r9 + lsls r2, r1, 4 + movs r0, 0x80 + lsls r0, 1 + adds r7, r2, r0 + lsls r1, 2 + ldr r0, _080319B0 @ =0x02017800 + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + str r1, [sp, 0x10] + adds r4, r2, 0 + cmp r0, 0 + bne _080319B4 + mov r0, r8 + bl pokemon_get_pal + b _080319BE + .align 2, 0 +_080319A0: .4byte gUnknown_02024E70 +_080319A4: .4byte gMonBackPicTable +_080319A8: .4byte gMonBackPicCoords +_080319AC: .4byte gUnknown_081FAF4C +_080319B0: .4byte 0x02017800 +_080319B4: + adds r0, r6, 0 + mov r1, r10 + ldr r2, [sp, 0xC] + bl species_and_otid_get_pal +_080319BE: + adds r5, r0, 0 + ldr r1, _08031A48 @ =0x02000000 + mov r8, r1 + adds r0, r5, 0 + bl sub_800D238 + mov r0, r8 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette + adds r1, r4, 0 + adds r1, 0x80 + mov r0, r8 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08031A4C @ =SPECIES_CASTFORM + cmp r6, r0 + bne _08031A0A + subs r0, 0x81 + adds r7, r4, r0 + movs r4, 0xB2 + lsls r4, 9 + add r4, r8 + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _08031A50 @ =gUnknown_02024E84 + add r0, r9 + ldrb r0, [r0] + lsls r0, 5 + adds r0, r4 + adds r1, r7, 0 + movs r2, 0x20 + bl LoadPalette +_08031A0A: + movs r0, 0xBC + lsls r0, 9 + add r0, r8 + ldr r1, [sp, 0x10] + adds r0, r1, r0 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _08031A36 + ldr r3, _08031A54 @ =0x00007fff + adds r0, r7, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r7, 1 + ldr r0, _08031A58 @ =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, _08031A5C @ =gPlttBufferUnfaded + adds r1, r2 + ldr r2, _08031A60 @ =REG_BG0CNT + bl CpuSet +_08031A36: + 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 +_08031A48: .4byte 0x02000000 +_08031A4C: .4byte SPECIES_CASTFORM +_08031A50: .4byte gUnknown_02024E84 +_08031A54: .4byte 0x00007fff +_08031A58: .4byte gPlttBufferFaded +_08031A5C: .4byte gPlttBufferUnfaded +_08031A60: .4byte REG_BG0CNT + thumb_func_end sub_80318FC + + thumb_func_start unref_sub_8031A64 +unref_sub_8031A64: @ 8031A64 + bx lr + thumb_func_end unref_sub_8031A64 + + thumb_func_start nullsub_9 +nullsub_9: @ 8031A68 + bx lr + thumb_func_end nullsub_9 + + thumb_func_start sub_8031A6C +sub_8031A6C: @ 8031A6C + push {r4-r6,lr} + sub sp, 0x10 + adds r4, r0, 0 + adds r0, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_per_side_status + lsls r0, 24 + lsls r6, r4, 3 + ldr r5, _08031ADC @ =gTrainerFrontPicTable + adds r5, r6, r5 + ldr r1, _08031AE0 @ =gTrainerFrontPicCoords + lsls r4, 2 + adds r4, r1 + ldrb r1, [r4] + ldrb r2, [r4, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08031AE4 @ =gUnknown_081FAF4C + lsrs r0, 22 + adds r0, r4 + ldr r4, [r0] + str r4, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r5, 0 + bl DecompressPicFromTable_2 + str r4, [sp, 0x8] + ldrh r2, [r5, 0x4] + ldr r0, _08031AE8 @ =0xffff0000 + ldr r1, [sp, 0xC] + ands r1, r0 + orrs r1, r2 + str r1, [sp, 0xC] + ldrh r2, [r5, 0x6] + lsls r2, 16 + ldr r0, _08031AEC @ =0x0000ffff + ands r0, r1 + orrs r0, r2 + str r0, [sp, 0xC] + add r0, sp, 0x8 + bl LoadCompressedObjectPic + ldr r0, _08031AF0 @ =gTrainerFrontPicPaletteTable + adds r6, r0 + adds r0, r6, 0 + bl LoadCompressedObjectPalette + add sp, 0x10 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08031ADC: .4byte gTrainerFrontPicTable +_08031AE0: .4byte gTrainerFrontPicCoords +_08031AE4: .4byte gUnknown_081FAF4C +_08031AE8: .4byte 0xffff0000 +_08031AEC: .4byte 0x0000ffff +_08031AF0: .4byte gTrainerFrontPicPaletteTable + thumb_func_end sub_8031A6C + + thumb_func_start sub_8031AF4 +sub_8031AF4: @ 8031AF4 + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x8 + adds r4, r0, 0 + adds r5, r1, 0 + lsls r4, 16 + lsrs r4, 16 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsls r1, r4, 3 + mov r8, r1 + ldr r6, _08031B60 @ =gTrainerBackPicTable + add r6, r8 + ldr r1, _08031B64 @ =gTrainerBackPicCoords + lsls r4, 2 + adds r4, r1 + ldrb r1, [r4] + ldrb r2, [r4, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08031B68 @ =gUnknown_081FAF4C + lsrs r0, 22 + adds r0, r4 + ldr r0, [r0] + str r0, [sp] + movs r0, 0 + str r0, [sp, 0x4] + adds r0, r6, 0 + bl DecompressPicFromTable_2 + ldr r0, _08031B6C @ =gTrainerBackPicPaletteTable + add r8, r0 + mov r1, r8 + ldr r0, [r1] + lsls r5, 20 + movs r1, 0x80 + lsls r1, 17 + adds r5, r1 + lsrs r5, 16 + adds r1, r5, 0 + movs r2, 0x20 + bl LoadCompressedPalette + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08031B60: .4byte gTrainerBackPicTable +_08031B64: .4byte gTrainerBackPicCoords +_08031B68: .4byte gUnknown_081FAF4C +_08031B6C: .4byte gTrainerBackPicPaletteTable + thumb_func_end sub_8031AF4 + + thumb_func_start nullsub_10 +nullsub_10: @ 8031B70 + bx lr + thumb_func_end nullsub_10 + + thumb_func_start sub_8031B74 +sub_8031B74: @ 8031B74 + push {r4,lr} + adds r4, r0, 0 + lsls r4, 16 + ldr r0, _08031B98 @ =gTrainerFrontPicPaletteTable + lsrs r4, 13 + adds r0, r4, r0 + ldrh r0, [r0, 0x4] + bl FreeSpritePaletteByTag + ldr r0, _08031B9C @ =gTrainerFrontPicTable + adds r4, r0 + ldrh r0, [r4, 0x6] + bl FreeSpriteTilesByTag + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031B98: .4byte gTrainerFrontPicPaletteTable +_08031B9C: .4byte gTrainerFrontPicTable + thumb_func_end sub_8031B74 + + thumb_func_start unref_sub_8031BA0 +unref_sub_8031BA0: @ 8031BA0 + push {r4-r7,lr} + ldr r4, _08031BCC @ =gUnknown_0820A4D4 + adds r0, r4, 0 + bl LoadSpritePalette + adds r4, 0x8 + adds r0, r4, 0 + bl LoadSpritePalette + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08031BD8 + ldr r0, _08031BD0 @ =gUnknown_0820A47C + bl LoadCompressedObjectPic + ldr r0, _08031BD4 @ =gUnknown_0820A484 + bl LoadCompressedObjectPic + movs r5, 0x2 + b _08031BFA + .align 2, 0 +_08031BCC: .4byte gUnknown_0820A4D4 +_08031BD0: .4byte gUnknown_0820A47C +_08031BD4: .4byte gUnknown_0820A484 +_08031BD8: + ldr r4, _08031C20 @ =gUnknown_0820A48C + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r0, r4, 0 + bl LoadCompressedObjectPic + ldr r4, _08031C24 @ =gUnknown_0820A49C + adds r0, r4, 0 + bl LoadCompressedObjectPic + adds r4, 0x8 + adds r0, r4, 0 + bl LoadCompressedObjectPic + movs r5, 0x4 +_08031BFA: + movs r4, 0 + cmp r4, r5 + bcs _08031C1A + ldr r7, _08031C28 @ =gUnknown_02024A72 + ldr r6, _08031C2C @ =gUnknown_0820A4B4 +_08031C04: + adds r0, r4, r7 + ldrb r0, [r0] + lsls r0, 3 + adds r0, r6 + bl LoadCompressedObjectPic + adds r0, r4, 0x1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, r5 + bcc _08031C04 +_08031C1A: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031C20: .4byte gUnknown_0820A48C +_08031C24: .4byte gUnknown_0820A49C +_08031C28: .4byte gUnknown_02024A72 +_08031C2C: .4byte gUnknown_0820A4B4 + thumb_func_end unref_sub_8031BA0 + + thumb_func_start sub_8031C30 +sub_8031C30: @ 8031C30 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + movs r6, 0 + cmp r4, 0 + bne _08031C40 + b _08031D52 +_08031C40: + cmp r4, 0x1 + bne _08031C5C + ldr r4, _08031C58 @ =gUnknown_0820A4D4 + adds r0, r4, 0 + bl LoadSpritePalette + adds r4, 0x8 + adds r0, r4, 0 + bl LoadSpritePalette + b _08031D52 + .align 2, 0 +_08031C58: .4byte gUnknown_0820A4D4 +_08031C5C: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08031CC4 + cmp r4, 0x2 + bne _08031C94 + ldr r0, _08031C80 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08031C88 + ldr r0, _08031C84 @ =gUnknown_0820A4AC + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031C80: .4byte gUnknown_020239F8 +_08031C84: .4byte gUnknown_0820A4AC +_08031C88: + ldr r0, _08031C90 @ =gUnknown_0820A47C + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031C90: .4byte gUnknown_0820A47C +_08031C94: + cmp r4, 0x3 + bne _08031CA4 + ldr r0, _08031CA0 @ =gUnknown_0820A484 + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031CA0: .4byte gUnknown_0820A484 +_08031CA4: + cmp r4, 0x4 + bne _08031CB4 + ldr r0, _08031CB0 @ =gUnknown_02024A72 + ldrb r0, [r0] + b _08031D3C + .align 2, 0 +_08031CB0: .4byte gUnknown_02024A72 +_08031CB4: + cmp r4, 0x5 + bne _08031D50 + ldr r0, _08031CC0 @ =gUnknown_02024A72 + ldrb r0, [r0, 0x1] + b _08031D3C + .align 2, 0 +_08031CC0: .4byte gUnknown_02024A72 +_08031CC4: + cmp r4, 0x2 + bne _08031CD4 + ldr r0, _08031CD0 @ =gUnknown_0820A48C + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031CD0: .4byte gUnknown_0820A48C +_08031CD4: + cmp r4, 0x3 + bne _08031CE4 + ldr r0, _08031CE0 @ =gUnknown_0820A494 + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031CE0: .4byte gUnknown_0820A494 +_08031CE4: + cmp r4, 0x4 + bne _08031CF4 + ldr r0, _08031CF0 @ =gUnknown_0820A49C + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031CF0: .4byte gUnknown_0820A49C +_08031CF4: + cmp r4, 0x5 + bne _08031D04 + ldr r0, _08031D00 @ =gUnknown_0820A4A4 + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031D00: .4byte gUnknown_0820A4A4 +_08031D04: + cmp r4, 0x6 + bne _08031D14 + ldr r0, _08031D10 @ =gUnknown_02024A72 + ldrb r0, [r0] + b _08031D3C + .align 2, 0 +_08031D10: .4byte gUnknown_02024A72 +_08031D14: + cmp r4, 0x7 + bne _08031D24 + ldr r0, _08031D20 @ =gUnknown_02024A72 + ldrb r0, [r0, 0x1] + b _08031D3C + .align 2, 0 +_08031D20: .4byte gUnknown_02024A72 +_08031D24: + cmp r4, 0x8 + bne _08031D34 + ldr r0, _08031D30 @ =gUnknown_02024A72 + ldrb r0, [r0, 0x2] + b _08031D3C + .align 2, 0 +_08031D30: .4byte gUnknown_02024A72 +_08031D34: + cmp r5, 0x9 + bne _08031D50 + ldr r0, _08031D48 @ =gUnknown_02024A72 + ldrb r0, [r0, 0x3] +_08031D3C: + lsls r0, 3 + ldr r1, _08031D4C @ =gUnknown_0820A4B4 + adds r0, r1 + bl LoadCompressedObjectPic + b _08031D52 + .align 2, 0 +_08031D48: .4byte gUnknown_02024A72 +_08031D4C: .4byte gUnknown_0820A4B4 +_08031D50: + movs r6, 0x1 +_08031D52: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8031C30 + + thumb_func_start load_gfxc_health_bar +load_gfxc_health_bar: @ 8031D5C + push {lr} + ldr r0, _08031D6C @ =gUnknown_08D09C48 + movs r1, 0x80 + lsls r1, 18 + bl sub_800D238 + pop {r0} + bx r0 + .align 2, 0 +_08031D6C: .4byte gUnknown_08D09C48 + thumb_func_end load_gfxc_health_bar + + thumb_func_start battle_load_something +battle_load_something: @ 8031D70 + push {r4-r6,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r6, 0 + ldrb r0, [r5] + cmp r0, 0x6 + bls _08031D80 + b _08031EDE +_08031D80: + lsls r0, 2 + ldr r1, _08031D8C @ =_08031D90 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08031D8C: .4byte _08031D90 + .align 2, 0 +_08031D90: + .4byte _08031DAC + .4byte _08031DB2 + .4byte _08031EBC + .4byte _08031DC8 + .4byte _08031DF8 + .4byte _08031E34 + .4byte _08031ED4 +_08031DAC: + bl sub_8031F0C + b _08031EBC +_08031DB2: + ldrb r0, [r4] + bl sub_8031C30 + lsls r0, 24 + cmp r0, 0 + beq _08031DC0 + b _08031EB8 +_08031DC0: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + b _08031EDE +_08031DC8: + ldr r0, _08031DE0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + beq _08031DE4 + ldrb r0, [r4] + cmp r0, 0 + bne _08031DE4 + bl battle_make_oam_safari_battle + b _08031DEA + .align 2, 0 +_08031DE0: .4byte gUnknown_020239F8 +_08031DE4: + ldrb r0, [r4] + bl battle_make_oam_normal_battle +_08031DEA: + ldr r2, _08031DF4 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r1, r2 + strb r0, [r1] + b _08031EA6 + .align 2, 0 +_08031DF4: .4byte gUnknown_03004340 +_08031DF8: + ldrb r0, [r4] + bl sub_8043F44 + ldr r0, _08031E18 @ =gUnknown_02024A72 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + cmp r0, 0x1 + bhi _08031E20 + ldr r0, _08031E1C @ =gUnknown_03004340 + adds r0, r1, r0 + ldrb r0, [r0] + movs r1, 0 + bl nullsub_11 + b _08031EA6 + .align 2, 0 +_08031E18: .4byte gUnknown_02024A72 +_08031E1C: .4byte gUnknown_03004340 +_08031E20: + ldr r0, _08031E30 @ =gUnknown_03004340 + adds r0, r1, r0 + ldrb r0, [r0] + movs r1, 0x1 + bl nullsub_11 + b _08031EA6 + .align 2, 0 +_08031E30: .4byte gUnknown_03004340 +_08031E34: + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08031E7C + ldr r0, _08031E6C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08031E9A + ldr r0, _08031E70 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08031E74 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _08031E78 @ =gPlayerParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + b _08031E9A + .align 2, 0 +_08031E6C: .4byte gUnknown_020239F8 +_08031E70: .4byte gUnknown_03004340 +_08031E74: .4byte gUnknown_02024A6A +_08031E78: .4byte gPlayerParty +_08031E7C: + ldr r0, _08031EC4 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08031EC8 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _08031ECC @ =gEnemyParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C +_08031E9A: + ldr r1, _08031EC4 @ =gUnknown_03004340 + ldrb r0, [r4] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 +_08031EA6: + ldrb r0, [r4] + adds r0, 0x1 + strb r0, [r4] + ldr r1, _08031ED0 @ =gUnknown_02024A68 + lsls r0, 24 + lsrs r0, 24 + ldrb r1, [r1] + cmp r0, r1 + bne _08031EDE +_08031EB8: + movs r0, 0 + strb r0, [r4] +_08031EBC: + ldrb r0, [r5] + adds r0, 0x1 + strb r0, [r5] + b _08031EDE + .align 2, 0 +_08031EC4: .4byte gUnknown_03004340 +_08031EC8: .4byte gUnknown_02024A6A +_08031ECC: .4byte gEnemyParty +_08031ED0: .4byte gUnknown_02024A68 +_08031ED4: + bl sub_80327CC + bl sub_8094958 + movs r6, 0x1 +_08031EDE: + adds r0, r6, 0 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end battle_load_something + + thumb_func_start sub_8031EE8 +sub_8031EE8: @ 8031EE8 + push {r4,lr} + ldr r4, _08031F08 @ =0x02017810 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x30 + bl memset + adds r4, 0x30 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x10 + bl memset + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08031F08: .4byte 0x02017810 + thumb_func_end sub_8031EE8 + + thumb_func_start sub_8031F0C +sub_8031F0C: @ 8031F0C + push {lr} + bl sub_8031EE8 + ldr r0, _08031F20 @ =0x02017800 + movs r1, 0 + movs r2, 0x10 + bl memset + pop {r0} + bx r0 + .align 2, 0 +_08031F20: .4byte 0x02017800 + thumb_func_end sub_8031F0C + + thumb_func_start sub_8031F24 +sub_8031F24: @ 8031F24 + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r4, 0 + ldr r5, _08031F78 @ =gUnknown_02024A68 + ldrb r0, [r5] + cmp r4, r0 + bge _08031F6E + ldr r0, _08031F7C @ =gSprites + mov r8, r0 + movs r7, 0x1 + movs r0, 0x2 + negs r0, r0 + mov r12, r0 + ldr r6, _08031F80 @ =gUnknown_02024BE0 + ldr r3, _08031F84 @ =0x02017800 +_08031F44: + adds r0, r4, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + add r0, r8 + adds r0, 0x3E + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 31 + ands r1, r7 + ldrb r2, [r3] + mov r0, r12 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + adds r3, 0x4 + adds r4, 0x1 + ldrb r0, [r5] + cmp r4, r0 + blt _08031F44 +_08031F6E: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08031F78: .4byte gUnknown_02024A68 +_08031F7C: .4byte gSprites +_08031F80: .4byte gUnknown_02024BE0 +_08031F84: .4byte 0x02017800 + thumb_func_end sub_8031F24 + + thumb_func_start sub_8031F88 +sub_8031F88: @ 8031F88 + lsls r0, 24 + lsrs r0, 24 + lsls r3, r0, 2 + ldr r1, _08031FB8 @ =0x02017800 + adds r3, r1 + ldr r2, _08031FBC @ =gSprites + ldr r1, _08031FC0 @ =gUnknown_02024BE0 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r1, [r0] + lsls r1, 29 + lsrs r1, 31 + ldrb r2, [r3] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bx lr + .align 2, 0 +_08031FB8: .4byte 0x02017800 +_08031FBC: .4byte gSprites +_08031FC0: .4byte gUnknown_02024BE0 + thumb_func_end sub_8031F88 + + thumb_func_start sub_8031FC4 +sub_8031FC4: @ 8031FC4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0xC] + lsls r2, 24 + cmp r2, 0 + beq _08032088 + ldr r0, _08032064 @ =gUnknown_02024BE0 + mov r1, r8 + adds r6, r1, r0 + ldrb r1, [r6] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r7, _08032068 @ =gSprites + adds r0, r7 + ldr r4, _0803206C @ =0x02017840 + ldrb r1, [r4] + bl StartSpriteAnim + mov r2, r8 + lsls r0, r2, 20 + movs r5, 0x80 + lsls r5, 17 + adds r0, r5 + lsrs r5, r0, 16 + ldrh r0, [r4] + lsls r0, 5 + ldr r2, _08032070 @ =0xffffebc0 + adds r1, r4, r2 + adds r0, r1 + adds r1, r5, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08032074 @ =gUnknown_02024E84 + add r0, r8 + ldrh r1, [r4] + strb r1, [r0] + mov r1, r8 + lsls r0, r1, 2 + subs r4, 0x40 + adds r0, r4 + ldrh r0, [r0, 0x2] + cmp r0, 0 + beq _0803204C + ldr r3, _08032078 @ =0x00007fff + adds r0, r5, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r5, 1 + ldr r0, _0803207C @ =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, _08032080 @ =gPlttBufferUnfaded + adds r1, r2 + ldr r2, _08032084 @ =REG_BG0CNT + bl CpuSet +_0803204C: + mov r0, r8 + bl sub_8077F68 + ldrb r2, [r6] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r7 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x22] + b _080322F6 + .align 2, 0 +_08032064: .4byte gUnknown_02024BE0 +_08032068: .4byte gSprites +_0803206C: .4byte 0x02017840 +_08032070: .4byte 0xffffebc0 +_08032074: .4byte gUnknown_02024E84 +_08032078: .4byte 0x00007fff +_0803207C: .4byte gPlttBufferFaded +_08032080: .4byte gPlttBufferUnfaded +_08032084: .4byte REG_BG0CNT +_08032088: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _080320D0 + movs r2, 0 + mov r10, r2 + ldr r5, _080320C0 @ =0x02019348 + ldrh r7, [r5, 0x2] + ldr r4, [r5, 0x8] + mov r9, r4 + ldr r6, [r5, 0xC] + lsls r0, r7, 3 + ldr r1, _080320C4 @ =gMonBackPicTable + adds r0, r1 + ldr r1, _080320C8 @ =gMonBackPicCoords + lsls r2, r7, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _080320CC @ =gUnknown_081FAF4C + ldr r4, [r4] + str r4, [sp] + str r7, [sp, 0x4] + ldr r4, [r5, 0x10] + b _08032184 + .align 2, 0 +_080320C0: .4byte 0x02019348 +_080320C4: .4byte gMonBackPicTable +_080320C8: .4byte gMonBackPicCoords +_080320CC: .4byte gUnknown_081FAF4C +_080320D0: + mov r0, r8 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, [sp, 0xC] + bl battle_side_get_owner + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08032104 + ldr r1, _080320FC @ =gUnknown_02024A6A + ldr r5, [sp, 0xC] + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08032100 @ =gEnemyParty + b _08032114 + .align 2, 0 +_080320FC: .4byte gUnknown_02024A6A +_08032100: .4byte gEnemyParty +_08032104: + ldr r1, _0803218C @ =gUnknown_02024A6A + ldr r2, [sp, 0xC] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08032190 @ =gPlayerParty +_08032114: + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r7, r0, 16 + mov r0, r8 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _080321A4 + ldr r0, _0803218C @ =gUnknown_02024A6A + mov r5, r8 + lsls r4, r5, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, _08032190 @ =gPlayerParty + adds r0, r5 + movs r1, 0 + bl GetMonData + mov r9, r0 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0x1 + bl GetMonData + adds r6, r0, 0 + lsls r0, r7, 3 + ldr r1, _08032194 @ =gMonBackPicTable + adds r0, r1 + ldr r1, _08032198 @ =gMonBackPicCoords + lsls r2, r7, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _0803219C @ =gUnknown_081FAF4C + mov r12, r4 + mov r5, r10 + lsls r4, r5, 2 + add r4, r12 + ldr r4, [r4] + str r4, [sp] + str r7, [sp, 0x4] + ldr r4, _080321A0 @ =gUnknown_02024E70 + mov r12, r4 + mov r5, r8 + lsls r4, r5, 2 + add r4, r12 + ldr r4, [r4] +_08032184: + str r4, [sp, 0x8] + bl sub_800D334 + b _08032202 + .align 2, 0 +_0803218C: .4byte gUnknown_02024A6A +_08032190: .4byte gPlayerParty +_08032194: .4byte gMonBackPicTable +_08032198: .4byte gMonBackPicCoords +_0803219C: .4byte gUnknown_081FAF4C +_080321A0: .4byte gUnknown_02024E70 +_080321A4: + ldr r0, _08032308 @ =gUnknown_02024A6A + mov r1, r8 + lsls r4, r1, 1 + adds r4, r0 + ldrh r0, [r4] + movs r6, 0x64 + muls r0, r6 + ldr r5, _0803230C @ =gEnemyParty + adds r0, r5 + movs r1, 0 + bl GetMonData + mov r9, r0 + ldrh r0, [r4] + muls r0, r6 + adds r0, r5 + movs r1, 0x1 + bl GetMonData + adds r6, r0, 0 + lsls r0, r7, 3 + ldr r1, _08032310 @ =gMonFrontPicTable + adds r0, r1 + ldr r1, _08032314 @ =gMonFrontPicCoords + lsls r2, r7, 2 + adds r2, r1 + ldrb r1, [r2] + ldrb r2, [r2, 0x1] + movs r3, 0x80 + lsls r3, 18 + ldr r4, _08032318 @ =gUnknown_081FAF4C + mov r12, r4 + mov r5, r10 + lsls r4, r5, 2 + add r4, r12 + ldr r4, [r4] + str r4, [sp] + str r7, [sp, 0x4] + ldr r4, _0803231C @ =gUnknown_02024E70 + mov r12, r4 + mov r5, r8 + lsls r4, r5, 2 + add r4, r12 + ldr r4, [r4] + str r4, [sp, 0x8] + bl sub_800D334 +_08032202: + ldr r1, _08032318 @ =gUnknown_081FAF4C + mov r2, r10 + lsls r0, r2, 2 + adds r0, r1 + ldr r2, [r0] + ldr r0, _08032320 @ =gUnknown_02024BE0 + add r0, r8 + mov r10, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08032324 @ =gSprites + adds r0, r4 + ldrh r0, [r0, 0x4] + lsls r0, 22 + lsrs r0, 17 + ldr r1, _08032328 @ =0x06010000 + adds r0, r1 + ldr r1, _0803232C @ =0x040000d4 + str r2, [r1] + str r0, [r1, 0x4] + ldr r0, _08032330 @ =0x84000200 + str r0, [r1, 0x8] + ldr r0, [r1, 0x8] + mov r5, r8 + lsls r0, r5, 20 + movs r1, 0x80 + lsls r1, 17 + adds r0, r1 + lsrs r5, r0, 16 + adds r0, r7, 0 + adds r1, r6, 0 + mov r2, r9 + bl species_and_otid_get_pal + adds r6, r0, 0 + ldr r2, _08032334 @ =0x02000000 + mov r9, r2 + mov r1, r9 + bl sub_800D238 + mov r0, r9 + adds r1, r5, 0 + movs r2, 0x20 + bl LoadPalette + ldr r0, _08032338 @ =SPECIES_CASTFORM + cmp r7, r0 + bne _08032288 + movs r4, 0xB2 + lsls r4, 9 + add r4, r9 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_800D238 + ldr r0, _0803233C @ =gUnknown_02024E84 + ldr r1, [sp, 0xC] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r0, 5 + adds r0, r4 + adds r1, r5, 0 + movs r2, 0x20 + bl LoadPalette +_08032288: + ldr r3, _08032340 @ =0x00007fff + adds r0, r5, 0 + movs r1, 0x10 + movs r2, 0x6 + bl BlendPalette + lsls r1, r5, 1 + ldr r0, _08032344 @ =gPlttBufferFaded + adds r0, r1, r0 + ldr r2, _08032348 @ =gPlttBufferUnfaded + adds r1, r2 + ldr r2, _0803234C @ =REG_BG0CNT + bl CpuSet + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _080322C8 + mov r2, r8 + lsls r0, r2, 2 + movs r1, 0xBC + lsls r1, 9 + add r1, r9 + adds r0, r1 + strh r7, [r0, 0x2] + ldr r0, _0803233C @ =gUnknown_02024E84 + adds r1, r2, r0 + ldr r4, [sp, 0xC] + adds r0, r4, r0 + ldrb r0, [r0] + strb r0, [r1] +_080322C8: + mov r0, r8 + bl sub_8077F68 + mov r5, r10 + ldrb r2, [r5] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + ldr r2, _08032324 @ =gSprites + adds r1, r2 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x22] + ldrb r1, [r5] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r1, _0803233C @ =gUnknown_02024E84 + add r1, r8 + ldrb r1, [r1] + bl StartSpriteAnim +_080322F6: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032308: .4byte gUnknown_02024A6A +_0803230C: .4byte gEnemyParty +_08032310: .4byte gMonFrontPicTable +_08032314: .4byte gMonFrontPicCoords +_08032318: .4byte gUnknown_081FAF4C +_0803231C: .4byte gUnknown_02024E70 +_08032320: .4byte gUnknown_02024BE0 +_08032324: .4byte gSprites +_08032328: .4byte 0x06010000 +_0803232C: .4byte 0x040000d4 +_08032330: .4byte 0x84000200 +_08032334: .4byte 0x02000000 +_08032338: .4byte SPECIES_CASTFORM +_0803233C: .4byte gUnknown_02024E84 +_08032340: .4byte 0x00007fff +_08032344: .4byte gPlttBufferFaded +_08032348: .4byte gPlttBufferUnfaded +_0803234C: .4byte REG_BG0CNT + thumb_func_end sub_8031FC4 + + thumb_func_start sub_8032350 +sub_8032350: @ 8032350 + push {r4-r7,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r5, r4, 0 + lsls r1, 24 + cmp r1, 0 + bne _08032408 + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _0803236C + movs r4, 0 + b _08032376 +_0803236C: + adds r0, r4, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r4, r0, 24 +_08032376: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + beq _08032388 + ldr r0, _08032384 @ =gSubstituteDollTilemap + b _08032396 + .align 2, 0 +_08032384: .4byte gSubstituteDollTilemap +_08032388: + adds r0, r5, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080323AC + ldr r0, _080323A4 @ =gSubstituteDollGfx +_08032396: + ldr r1, _080323A8 @ =gUnknown_081FAF4C + lsls r4, 2 + adds r1, r4, r1 + ldr r1, [r1] + bl LZDecompressVram + b _080323BA + .align 2, 0 +_080323A4: .4byte gSubstituteDollGfx +_080323A8: .4byte gUnknown_081FAF4C +_080323AC: + ldr r0, _080323F4 @ =gSubstituteDollTilemap + ldr r1, _080323F8 @ =gUnknown_081FAF4C + lsls r4, 2 + adds r1, r4, r1 + ldr r1, [r1] + bl LZDecompressVram +_080323BA: + lsls r7, r5, 4 + ldr r0, _080323FC @ =gSubstituteDollPal + mov r12, r0 + ldr r0, _080323F8 @ =gUnknown_081FAF4C + adds r0, r4, r0 + ldr r4, [r0] + ldr r3, _08032400 @ =0x040000d4 + ldr r6, _08032404 @ =0x84000200 + movs r0, 0x80 + lsls r0, 4 + adds r2, r4, r0 + adds r5, r0, 0 + movs r1, 0x2 +_080323D4: + str r4, [r3] + str r2, [r3, 0x4] + str r6, [r3, 0x8] + ldr r0, [r3, 0x8] + adds r2, r5 + subs r1, 0x1 + cmp r1, 0 + bge _080323D4 + movs r0, 0x80 + lsls r0, 1 + adds r1, r7, r0 + mov r0, r12 + movs r2, 0x20 + bl LoadCompressedPalette + b _08032456 + .align 2, 0 +_080323F4: .4byte gSubstituteDollTilemap +_080323F8: .4byte gUnknown_081FAF4C +_080323FC: .4byte gSubstituteDollPal +_08032400: .4byte 0x040000d4 +_08032404: .4byte 0x84000200 +_08032408: + bl sub_8076BE0 + lsls r0, 24 + cmp r0, 0 + bne _08032456 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _08032440 + ldr r1, _08032438 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0803243C @ =gEnemyParty + adds r0, r1 + adds r1, r4, 0 + bl sub_8031794 + b _08032456 + .align 2, 0 +_08032438: .4byte gUnknown_02024A6A +_0803243C: .4byte gEnemyParty +_08032440: + ldr r1, _0803245C @ =gUnknown_02024A6A + lsls r0, r5, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08032460 @ =gPlayerParty + adds r0, r1 + adds r1, r5, 0 + bl sub_80318FC +_08032456: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803245C: .4byte gUnknown_02024A6A +_08032460: .4byte gPlayerParty + thumb_func_end sub_8032350 + + thumb_func_start refresh_graphics_maybe +refresh_graphics_maybe: @ 8032464 + push {r4-r6,lr} + adds r5, r1, 0 + adds r4, r2, 0 + lsls r0, 24 + lsrs r6, r0, 24 + lsls r5, 24 + lsrs r5, 24 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_8032350 + lsls r0, r4, 4 + adds r0, r4 + lsls r0, 2 + ldr r1, _080324A0 @ =gSprites + adds r4, r0, r1 + ldr r0, _080324A4 @ =gUnknown_02024E84 + adds r0, r6, r0 + ldrb r1, [r0] + adds r0, r4, 0 + bl StartSpriteAnim + cmp r5, 0 + bne _080324A8 + adds r0, r6, 0 + bl sub_8077F7C + b _080324AE + .align 2, 0 +_080324A0: .4byte gSprites +_080324A4: .4byte gUnknown_02024E84 +_080324A8: + adds r0, r6, 0 + bl sub_8077F68 +_080324AE: + lsls r0, 24 + lsrs r0, 24 + strh r0, [r4, 0x22] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end refresh_graphics_maybe + + thumb_func_start sub_80324BC +sub_80324BC: @ 80324BC + push {lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 16 + lsrs r1, 16 + cmp r1, 0xA4 + bne _080324D8 + lsls r2, r0, 2 + ldr r0, _080324DC @ =0x02017800 + adds r2, r0 + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_080324D8: + pop {r0} + bx r0 + .align 2, 0 +_080324DC: .4byte 0x02017800 + thumb_func_end sub_80324BC + + thumb_func_start sub_80324E0 +sub_80324E0: @ 80324E0 + lsls r0, 24 + lsrs r0, 22 + ldr r1, _080324F4 @ =0x02017800 + adds r0, r1 + ldrb r2, [r0] + movs r1, 0x5 + negs r1, r1 + ands r1, r2 + strb r1, [r0] + bx lr + .align 2, 0 +_080324F4: .4byte 0x02017800 + thumb_func_end sub_80324E0 + + thumb_func_start sub_80324F8 +sub_80324F8: @ 80324F8 + push {r4-r7,lr} + adds r5, r0, 0 + lsls r1, 24 + lsrs r6, r1, 24 + adds r7, r6, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + lsls r4, 16 + asrs r4, 16 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_8046200 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08032568 + lsls r0, r6, 2 + ldr r3, _08032564 @ =0x02017800 + adds r4, r0, r3 + ldrb r1, [r4] + movs r5, 0x2 + movs r2, 0x2 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _080325B2 + adds r0, r6, 0 + eors r0, r5 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _0803255A + movs r0, 0x5A + bl PlaySE +_0803255A: + ldrb r0, [r4] + orrs r0, r5 + strb r0, [r4] + b _080325B2 + .align 2, 0 +_08032564: .4byte 0x02017800 +_08032568: + lsls r1, r6, 2 + ldr r4, _0803258C @ =0x02017800 + adds r1, r4 + ldrb r2, [r1] + movs r0, 0x3 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + bne _08032590 + movs r0, 0x5A + bl m4aSongNumStop + b _080325B2 + .align 2, 0 +_0803258C: .4byte 0x02017800 +_08032590: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080325B2 + movs r0, 0x2 + eors r7, r0 + lsls r0, r7, 2 + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + bne _080325B2 + movs r0, 0x5A + bl m4aSongNumStop +_080325B2: + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80324F8 + + thumb_func_start sub_80325B8 +sub_80325B8: @ 80325B8 + push {r4-r6,lr} + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, r4, 2 + ldr r6, _08032600 @ =0x02017800 + adds r1, r6 + ldrb r2, [r1] + movs r5, 0x3 + negs r5, r5 + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080325F2 + movs r0, 0x2 + adds r1, r4, 0 + eors r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1] + adds r0, r5, 0 + ands r0, r2 + strb r0, [r1] +_080325F2: + movs r0, 0x5A + bl m4aSongNumStop + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032600: .4byte 0x02017800 + thumb_func_end sub_80325B8 + + thumb_func_start unref_sub_8032604 +unref_sub_8032604: @ 8032604 + push {r4,r5,lr} + adds r5, r0, 0 + movs r1, 0x39 + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + adds r0, r5, 0 + movs r1, 0x3A + bl GetMonData + adds r1, r0, 0 + lsls r4, 16 + asrs r4, 16 + lsls r1, 16 + asrs r1, 16 + adds r0, r4, 0 + bl sub_8046200 + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end unref_sub_8032604 + + thumb_func_start sub_8032638 +sub_8032638: @ 8032638 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _080326DC @ =gMain + ldr r1, _080326E0 @ =0x0000043d + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080326CE + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + ldr r5, _080326E4 @ =gUnknown_02024A6A + mov r1, r8 + lsls r0, r1, 1 + adds r0, r5 + ldrb r0, [r0] + bl pokemon_order_func + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + mov r1, r9 + lsls r0, r1, 1 + adds r0, r5 + ldrb r0, [r0] + bl pokemon_order_func + lsls r0, 24 + lsrs r5, r0, 24 + movs r7, 0x64 + adds r0, r4, 0 + muls r0, r7 + ldr r6, _080326E8 @ =gPlayerParty + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080326AA + adds r0, r4, 0 + mov r1, r8 + bl sub_80324F8 +_080326AA: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080326CE + adds r0, r5, 0 + muls r0, r7 + adds r4, r0, r6 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080326CE + adds r0, r4, 0 + mov r1, r9 + bl sub_80324F8 +_080326CE: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080326DC: .4byte gMain +_080326E0: .4byte 0x0000043d +_080326E4: .4byte gUnknown_02024A6A +_080326E8: .4byte gPlayerParty + thumb_func_end sub_8032638 + + thumb_func_start sub_80326EC +sub_80326EC: @ 80326EC + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r5, 0 + ldr r0, _08032778 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + bge _080327B4 + movs r0, 0x3 + mov r10, r8 + mov r1, r10 + ands r1, r0 + mov r10, r1 + movs r6, 0 + movs r2, 0x3F + negs r2, r2 + mov r9, r2 +_08032718: + lsls r0, r5, 24 + lsrs r0, 24 + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _080327A8 + ldr r4, _0803277C @ =gSprites + ldr r0, _08032780 @ =gUnknown_02024BE0 + adds r3, r5, r0 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x1] + movs r7, 0x4 + negs r7, r7 + adds r2, r7, 0 + ands r1, r2 + mov r2, r10 + orrs r1, r2 + strb r1, [r0, 0x1] + mov r7, r8 + cmp r7, 0 + bne _08032788 + ldr r2, _08032784 @ =0x02017810 + adds r2, r6, r2 + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r0, [r0, 0x3] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r2, 0x6] + ldrb r1, [r3] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0, 0x3] + mov r2, r9 + ands r1, r2 + strb r1, [r0, 0x3] + b _080327A8 + .align 2, 0 +_08032778: .4byte gUnknown_02024A68 +_0803277C: .4byte gSprites +_08032780: .4byte gUnknown_02024BE0 +_08032784: .4byte 0x02017810 +_08032788: + ldrb r0, [r3] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r4 + ldr r0, _080327C4 @ =0x02017810 + adds r0, r6, r0 + ldrb r1, [r0, 0x6] + movs r0, 0x1F + ands r1, r0 + lsls r1, 1 + ldrb r0, [r2, 0x3] + mov r3, r9 + ands r0, r3 + orrs r0, r1 + strb r0, [r2, 0x3] +_080327A8: + adds r6, 0xC + adds r5, 0x1 + ldr r0, _080327C8 @ =gUnknown_02024A68 + ldrb r0, [r0] + cmp r5, r0 + blt _08032718 +_080327B4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080327C4: .4byte 0x02017810 +_080327C8: .4byte gUnknown_02024A68 + thumb_func_end sub_80326EC + + thumb_func_start sub_80327CC +sub_80327CC: @ 80327CC + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _08032894 @ =gUnknown_081FAF24 + bl LoadCompressedObjectPic + movs r0, 0x1 + bl battle_get_side_with_given_state + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldr r0, _08032898 @ =gSpriteTemplate_81FAF34 + mov r8, r0 + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 8 + movs r0, 0x80 + lsls r0, 14 + adds r2, r0 + asrs r2, 16 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0xC8 + bl CreateSprite + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + ldr r6, _0803289C @ =0x02017810 + adds r1, r6 + strb r0, [r1, 0x7] + ldr r7, _080328A0 @ =gSprites + ldrb r1, [r1, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r5, [r0, 0x2E] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0803288A + movs r0, 0x3 + bl battle_get_side_with_given_state + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r5, 0 + movs r1, 0 + bl sub_8077ABC + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + bl sub_8077ABC + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 8 + movs r0, 0x80 + lsls r0, 14 + adds r2, r0 + asrs r2, 16 + mov r0, r8 + adds r1, r4, 0 + movs r3, 0xC8 + bl CreateSprite + lsls r1, r5, 1 + adds r1, r5 + lsls r1, 2 + adds r1, r6 + strb r0, [r1, 0x7] + ldrb r1, [r1, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r7 + strh r5, [r0, 0x2E] +_0803288A: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032894: .4byte gUnknown_081FAF24 +_08032898: .4byte gSpriteTemplate_81FAF34 +_0803289C: .4byte 0x02017810 +_080328A0: .4byte gSprites + thumb_func_end sub_80327CC + + thumb_func_start sub_80328A4 +sub_80328A4: @ 80328A4 + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r5, r0, 0 + movs r0, 0 + mov r8, r0 + ldrh r0, [r5, 0x2E] + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, _080328E8 @ =gUnknown_02024BE0 + adds r0, r4, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080328EC @ =gSprites + adds r7, r0, r1 + adds r6, r7, 0 + adds r6, 0x3E + ldrb r1, [r6] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080328E0 + adds r0, r4, 0 + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + bne _080328F4 +_080328E0: + ldr r0, _080328F0 @ =sub_8032978 + str r0, [r5, 0x1C] + b _08032964 + .align 2, 0 +_080328E8: .4byte gUnknown_02024BE0 +_080328EC: .4byte gSprites +_080328F0: .4byte sub_8032978 +_080328F4: + ldr r0, _08032910 @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _08032906 + ldrb r1, [r6] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08032918 +_08032906: + movs r0, 0x1 + mov r8, r0 + lsls r4, 2 + ldr r6, _08032914 @ =0x02017800 + b _08032938 + .align 2, 0 +_08032910: .4byte gUnknown_0202F7B1 +_08032914: .4byte 0x02017800 +_08032918: + lsls r0, r4, 2 + ldr r1, _08032970 @ =0x02017800 + adds r3, r0, r1 + ldrh r2, [r3, 0x2] + adds r4, r0, 0 + adds r6, r1, 0 + cmp r2, 0 + beq _08032938 + ldr r0, _08032974 @ =gEnemyMonElevation + adds r1, r2, 0 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0 + bne _08032938 + movs r0, 0x1 + mov r8, r0 +_08032938: + adds r0, r4, r6 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08032948 + movs r0, 0x1 + mov r8, r0 +_08032948: + ldrh r0, [r7, 0x20] + strh r0, [r5, 0x20] + ldrh r0, [r7, 0x24] + strh r0, [r5, 0x24] + adds r2, r5, 0 + adds r2, 0x3E + mov r0, r8 + lsls r3, r0, 2 + ldrb r1, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + orrs r0, r3 + strb r0, [r2] +_08032964: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032970: .4byte 0x02017800 +_08032974: .4byte gEnemyMonElevation + thumb_func_end sub_80328A4 + + thumb_func_start sub_8032978 +sub_8032978: @ 8032978 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + bx lr + thumb_func_end sub_8032978 + + thumb_func_start sub_8032984 +sub_8032984: @ 8032984 + push {r4-r6,lr} + lsls r0, 24 + lsrs r4, r0, 24 + adds r6, r4, 0 + lsls r1, 16 + lsrs r5, r1, 16 + adds r0, r4, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + beq _080329FA + lsls r0, r4, 2 + ldr r3, _080329D0 @ =0x02017800 + adds r1, r0, r3 + ldrh r0, [r1, 0x2] + cmp r0, 0 + beq _080329AA + adds r5, r0, 0 +_080329AA: + ldr r0, _080329D4 @ =gEnemyMonElevation + adds r0, r5, r0 + ldrb r0, [r0] + cmp r0, 0 + beq _080329E0 + ldr r2, _080329D8 @ =gSprites + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r0, r3, r0 + ldrb r1, [r0, 0x17] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080329DC @ =sub_80328A4 + b _080329F8 + .align 2, 0 +_080329D0: .4byte 0x02017800 +_080329D4: .4byte gEnemyMonElevation +_080329D8: .4byte gSprites +_080329DC: .4byte sub_80328A4 +_080329E0: + ldr r2, _08032A00 @ =gSprites + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r3, r0 + ldrb r1, [r0, 0x17] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _08032A04 @ =sub_8032978 +_080329F8: + str r1, [r0] +_080329FA: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032A00: .4byte gSprites +_08032A04: .4byte sub_8032978 + thumb_func_end sub_8032984 + + thumb_func_start sub_8032A08 +sub_8032A08: @ 8032A08 + lsls r0, 24 + lsrs r0, 24 + ldr r2, _08032A2C @ =gSprites + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _08032A30 @ =0x02017810 + adds r1, r0 + ldrb r1, [r1, 0x7] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _08032A34 @ =sub_8032978 + str r1, [r0] + bx lr + .align 2, 0 +_08032A2C: .4byte gSprites +_08032A30: .4byte 0x02017810 +_08032A34: .4byte sub_8032978 + thumb_func_end sub_8032A08 + + thumb_func_start sub_8032A38 +sub_8032A38: @ 8032A38 + push {r4-r6,lr} + ldr r3, _08032AA4 @ =0x06000240 + movs r0, 0 + movs r6, 0xF0 + lsls r6, 8 +_08032A42: + adds r5, r0, 0x1 + movs r4, 0xF +_08032A46: + ldrh r1, [r3] + adds r0, r6, 0 + ands r0, r1 + cmp r0, 0 + bne _08032A56 + adds r0, r6, 0 + orrs r0, r1 + strh r0, [r3] +_08032A56: + ldrh r1, [r3] + movs r2, 0xF0 + lsls r2, 4 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08032A6A + adds r0, r2, 0 + orrs r0, r1 + strh r0, [r3] +_08032A6A: + ldrh r1, [r3] + movs r2, 0xF0 + movs r0, 0xF0 + ands r0, r1 + cmp r0, 0 + bne _08032A7C + adds r0, r1, 0 + orrs r0, r2 + strh r0, [r3] +_08032A7C: + ldrh r1, [r3] + movs r2, 0xF + movs r0, 0xF + ands r0, r1 + cmp r0, 0 + bne _08032A8E + adds r0, r1, 0 + orrs r0, r2 + strh r0, [r3] +_08032A8E: + adds r3, 0x2 + subs r4, 0x1 + cmp r4, 0 + bge _08032A46 + adds r0, r5, 0 + cmp r0, 0x8 + ble _08032A42 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032AA4: .4byte 0x06000240 + thumb_func_end sub_8032A38 + + thumb_func_start sub_8032AA8 +sub_8032AA8: @ 8032AA8 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 24 + lsls r2, r4, 2 + ldr r0, _08032AD4 @ =0x02017800 + adds r2, r0 + movs r3, 0 + movs r0, 0 + strh r0, [r2, 0x2] + ldr r0, _08032AD8 @ =gUnknown_02024E84 + adds r0, r4, r0 + strb r3, [r0] + cmp r1, 0 + bne _08032ACC + adds r0, r4, 0 + bl sub_80324E0 +_08032ACC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08032AD4: .4byte 0x02017800 +_08032AD8: .4byte gUnknown_02024E84 + thumb_func_end sub_8032AA8 + + thumb_func_start nullsub_45 +nullsub_45: @ 8032ADC + bx lr + thumb_func_end nullsub_45 + + thumb_func_start sub_8032AE0 +sub_8032AE0: @ 8032AE0 + ldr r1, _08032AF0 @ =gUnknown_03004330 + ldr r0, _08032AF4 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032AF8 @ =sub_8032AFC + str r1, [r0] + bx lr + .align 2, 0 +_08032AF0: .4byte gUnknown_03004330 +_08032AF4: .4byte gUnknown_02024A60 +_08032AF8: .4byte sub_8032AFC + thumb_func_end sub_8032AE0 + + thumb_func_start sub_8032AFC +sub_8032AFC: @ 8032AFC + push {lr} + ldr r2, _08032B30 @ =gUnknown_02024A64 + ldr r1, _08032B34 @ =gBitTable + ldr r0, _08032B38 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08032B48 + ldr r0, _08032B3C @ =gUnknown_02023A60 + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _08032B44 + ldr r0, _08032B40 @ =gUnknown_081FAF5C + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08032B48 + .align 2, 0 +_08032B30: .4byte gUnknown_02024A64 +_08032B34: .4byte gBitTable +_08032B38: .4byte gUnknown_02024A60 +_08032B3C: .4byte gUnknown_02023A60 +_08032B40: .4byte gUnknown_081FAF5C +_08032B44: + bl sub_80334EC +_08032B48: + pop {r0} + bx r0 + thumb_func_end sub_8032AFC + + thumb_func_start sub_8032B4C +sub_8032B4C: @ 8032B4C + push {lr} + ldr r2, _08032B74 @ =gSprites + ldr r1, _08032B78 @ =gUnknown_02024BE0 + ldr r0, _08032B7C @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08032B80 @ =SpriteCallbackDummy + cmp r1, r0 + bne _08032B70 + bl sub_80334EC +_08032B70: + pop {r0} + bx r0 + .align 2, 0 +_08032B74: .4byte gSprites +_08032B78: .4byte gUnknown_02024BE0 +_08032B7C: .4byte gUnknown_02024A60 +_08032B80: .4byte SpriteCallbackDummy + thumb_func_end sub_8032B4C + + thumb_func_start sub_8032B84 +sub_8032B84: @ 8032B84 + push {lr} + ldr r2, _08032BAC @ =gSprites + ldr r1, _08032BB0 @ =gUnknown_02024BE0 + ldr r0, _08032BB4 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08032BB8 @ =SpriteCallbackDummy + cmp r1, r0 + bne _08032BA8 + bl sub_80334EC +_08032BA8: + pop {r0} + bx r0 + .align 2, 0 +_08032BAC: .4byte gSprites +_08032BB0: .4byte gUnknown_02024BE0 +_08032BB4: .4byte gUnknown_02024A60 +_08032BB8: .4byte SpriteCallbackDummy + thumb_func_end sub_8032B84 + + thumb_func_start sub_8032BBC +sub_8032BBC: @ 8032BBC + push {r4-r6,lr} + ldr r4, _08032C34 @ =gSprites + ldr r6, _08032C38 @ =gUnknown_02024BE0 + ldr r5, _08032C3C @ =gUnknown_02024A60 + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _08032C40 @ =SpriteCallbackDummy + cmp r1, r0 + bne _08032C2C + adds r0, r2, r4 + ldrh r0, [r0, 0x6] + bl sub_8031B74 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x38] + ldr r2, _08032C44 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08032C48 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + bl sub_80334EC +_08032C2C: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08032C34: .4byte gSprites +_08032C38: .4byte gUnknown_02024BE0 +_08032C3C: .4byte gUnknown_02024A60 +_08032C40: .4byte SpriteCallbackDummy +_08032C44: .4byte 0x000003ff +_08032C48: .4byte 0xfffffc00 + thumb_func_end sub_8032BBC + + thumb_func_start sub_8032C4C +sub_8032C4C: @ 8032C4C + push {lr} + ldr r3, _08032C80 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r2, _08032C84 @ =0x02017810 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08032C7C + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strb r0, [r1, 0x9] + bl sub_80334EC +_08032C7C: + pop {r0} + bx r0 + .align 2, 0 +_08032C80: .4byte gUnknown_02024A60 +_08032C84: .4byte 0x02017810 + thumb_func_end sub_8032C4C + + thumb_func_start sub_8032C88 +sub_8032C88: @ 8032C88 + push {r4-r7,lr} + movs r6, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08032CAC + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08032CE0 + ldr r0, _08032CCC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08032CE0 +_08032CAC: + ldr r2, _08032CD0 @ =gSprites + ldr r1, _08032CD4 @ =gUnknown_03004340 + ldr r0, _08032CD8 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08032CDC @ =SpriteCallbackDummy + cmp r1, r0 + bne _08032D16 + b _08032D14 + .align 2, 0 +_08032CCC: .4byte gUnknown_020239F8 +_08032CD0: .4byte gSprites +_08032CD4: .4byte gUnknown_03004340 +_08032CD8: .4byte gUnknown_02024A60 +_08032CDC: .4byte SpriteCallbackDummy +_08032CE0: + ldr r2, _08032DC4 @ =gSprites + ldr r5, _08032DC8 @ =gUnknown_03004340 + ldr r0, _08032DCC @ =gUnknown_02024A60 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, _08032DD0 @ =SpriteCallbackDummy + cmp r4, r0 + bne _08032D16 + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _08032D16 +_08032D14: + movs r6, 0x1 +_08032D16: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _08032D22 + movs r6, 0 +_08032D22: + cmp r6, 0 + beq _08032E0E + ldr r7, _08032DCC @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r5, _08032DD4 @ =0x02017810 + adds r4, r0, r5 + ldrb r1, [r4, 0x1] + movs r3, 0x1 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08032E0E + movs r6, 0x2 + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08032E0E + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, _08032DD8 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r0, _08032DDC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08032DE4 + ldr r0, _08032DE0 @ =gMPlay_BGM + bl m4aMPlayContinue + b _08032DF0 + .align 2, 0 +_08032DC4: .4byte gSprites +_08032DC8: .4byte gUnknown_03004340 +_08032DCC: .4byte gUnknown_02024A60 +_08032DD0: .4byte SpriteCallbackDummy +_08032DD4: .4byte 0x02017810 +_08032DD8: .4byte 0x000027f9 +_08032DDC: .4byte gUnknown_020239F8 +_08032DE0: .4byte gMPlay_BGM +_08032DE4: + ldr r0, _08032E14 @ =gMPlay_BGM + ldr r1, _08032E18 @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08032DF0: + ldr r2, _08032E1C @ =gUnknown_02024A60 + ldrb r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08032E20 @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, _08032E24 @ =gUnknown_03004330 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08032E28 @ =sub_8032C4C + str r1, [r0] +_08032E0E: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032E14: .4byte gMPlay_BGM +_08032E18: .4byte 0x0000ffff +_08032E1C: .4byte gUnknown_02024A60 +_08032E20: .4byte 0x02017810 +_08032E24: .4byte gUnknown_03004330 +_08032E28: .4byte sub_8032C4C + thumb_func_end sub_8032C88 + + thumb_func_start sub_8032E2C +sub_8032E2C: @ 8032E2C + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _08032FEC @ =gUnknown_02024A60 + mov r9, r0 + ldrb r2, [r0] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + ldr r4, _08032FF0 @ =0x02017810 + adds r0, r4 + ldrb r1, [r0] + movs r5, 0x88 + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08032E64 + ldr r0, _08032FF4 @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08032FF8 @ =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_08032E64: + mov r1, r9 + ldrb r0, [r1] + movs r7, 0x2 + adds r2, r7, 0 + eors r2, r0 + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + adds r0, r5, 0 + ands r0, r1 + cmp r0, 0 + bne _08032E94 + ldr r0, _08032FF4 @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08032FF8 @ =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_08032E94: + mov r0, r9 + ldrb r2, [r0] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + movs r3, 0x8 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08032EAE + b _08032FE0 +_08032EAE: + adds r1, r7, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08032EC6 + b _08032FE0 +_08032EC6: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08032F58 + ldr r0, _08032FFC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08032F58 + ldr r1, _08033000 @ =gUnknown_0300434C + mov r2, r9 + ldrb r0, [r2] + eors r0, r7 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08033004 @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r4, _08033008 @ =gUnknown_03004340 + mov r1, r9 + ldrb r0, [r1] + adds r1, r7, 0 + eors r1, r0 + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08032FF4 @ =gUnknown_02024A6A + mov r8, r2 + lsls r1, 1 + add r1, r8 + ldrh r1, [r1] + movs r6, 0x64 + muls r1, r6 + ldr r5, _08032FF8 @ =gEnemyParty + adds r1, r5 + movs r2, 0 + bl sub_8045A5C + mov r1, r9 + ldrb r0, [r1] + eors r0, r7 + bl sub_804777C + mov r2, r9 + ldrb r0, [r2] + eors r0, r7 + adds r0, r4 + ldrb r0, [r0] + bl sub_8043DFC + mov r1, r9 + ldrb r0, [r1] + adds r4, r7, 0 + eors r4, r0 + lsls r0, r4, 1 + add r0, r8 + ldrh r0, [r0] + muls r0, r6 + adds r0, r5 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8032984 +_08032F58: + ldr r1, _08033000 @ =gUnknown_0300434C + ldr r4, _08032FEC @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08033004 @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r5, _08033008 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08032FF4 @ =gUnknown_02024A6A + mov r9, r2 + lsls r1, 1 + add r1, r9 + ldrh r1, [r1] + movs r2, 0x64 + mov r8, r2 + mov r2, r8 + muls r2, r1 + adds r1, r2, 0 + ldr r6, _08032FF8 @ =gEnemyParty + adds r1, r6 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r4] + bl sub_804777C + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8043DFC + ldrb r5, [r4] + lsls r0, r5, 1 + add r0, r9 + ldrh r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_8032984 + ldr r2, _0803300C @ =0x02017840 + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, _08033010 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08033014 @ =sub_8032C88 + str r1, [r0] +_08032FE0: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08032FEC: .4byte gUnknown_02024A60 +_08032FF0: .4byte 0x02017810 +_08032FF4: .4byte gUnknown_02024A6A +_08032FF8: .4byte gEnemyParty +_08032FFC: .4byte gUnknown_020239F8 +_08033000: .4byte gUnknown_0300434C +_08033004: .4byte gSprites +_08033008: .4byte gUnknown_03004340 +_0803300C: .4byte 0x02017840 +_08033010: .4byte gUnknown_03004330 +_08033014: .4byte sub_8032C88 + thumb_func_end sub_8032E2C + + thumb_func_start sub_8033018 +sub_8033018: @ 8033018 + push {r4-r7,lr} + ldr r2, _08033070 @ =gSprites + ldr r0, _08033074 @ =gUnknown_02024BE0 + ldr r7, _08033078 @ =gUnknown_02024A60 + ldrb r3, [r7] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + lsrs r2, r0, 31 + cmp r2, 0x1 + bne _080330BC + movs r4, 0x24 + ldrsh r0, [r1, r4] + cmp r0, 0 + bne _080330BC + lsls r4, r3, 1 + adds r0, r4, r3 + lsls r0, 2 + ldr r6, _0803307C @ =0x02017810 + adds r1, r0, r6 + ldrb r5, [r1] + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + bne _08033088 + ldr r0, _08033080 @ =gUnknown_02024A6A + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08033084 @ =gEnemyParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8141828 + b _080330BC + .align 2, 0 +_08033070: .4byte gSprites +_08033074: .4byte gUnknown_02024BE0 +_08033078: .4byte gUnknown_02024A60 +_0803307C: .4byte 0x02017810 +_08033080: .4byte gUnknown_02024A6A +_08033084: .4byte gEnemyParty +_08033088: + ldrb r0, [r1, 0x1] + ands r2, r0 + cmp r2, 0 + beq _080330BC + movs r0, 0x7F + ands r0, r5 + strb r0, [r1] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _080330C4 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + bl sub_80334EC +_080330BC: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080330C4: .4byte 0x000027f9 + thumb_func_end sub_8033018 + + thumb_func_start sub_80330C8 +sub_80330C8: @ 80330C8 + push {r4-r6,lr} + ldr r6, _08033108 @ =gUnknown_02024A60 + ldrb r0, [r6] + ldr r5, _0803310C @ =gUnknown_03004340 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8045C78 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + bl sub_8043DFC + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08033110 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + movs r2, 0 + bl sub_80440EC + b _08033114 + .align 2, 0 +_08033108: .4byte gUnknown_02024A60 +_0803310C: .4byte gUnknown_03004340 +_08033110: + bl sub_80334EC +_08033114: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80330C8 + + thumb_func_start sub_803311C +sub_803311C: @ 803311C + push {lr} + ldr r2, _08033150 @ =gSprites + ldr r0, _08033154 @ =gUnknown_02024BE0 + ldr r1, _08033158 @ =gUnknown_02024A60 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _0803314A + ldr r0, _0803315C @ =gUnknown_03004340 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_8043DB0 + bl sub_80334EC +_0803314A: + pop {r0} + bx r0 + .align 2, 0 +_08033150: .4byte gSprites +_08033154: .4byte gUnknown_02024BE0 +_08033158: .4byte gUnknown_02024A60 +_0803315C: .4byte gUnknown_03004340 + thumb_func_end sub_803311C + + thumb_func_start sub_8033160 +sub_8033160: @ 8033160 + push {r4-r6,lr} + ldr r6, _080331BC @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _080331C0 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080331B6 + ldr r5, _080331C4 @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _080331C8 @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_8032A08 + ldr r1, _080331CC @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl sub_80334EC +_080331B6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080331BC: .4byte gUnknown_02024A60 +_080331C0: .4byte 0x02017810 +_080331C4: .4byte gUnknown_02024BE0 +_080331C8: .4byte gSprites +_080331CC: .4byte gUnknown_03004340 + thumb_func_end sub_8033160 + + thumb_func_start sub_80331D0 +sub_80331D0: @ 80331D0 + push {lr} + ldr r0, _080331E4 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + bne _080331DE + bl sub_80334EC +_080331DE: + pop {r0} + bx r0 + .align 2, 0 +_080331E4: .4byte gUnknown_03004210 + thumb_func_end sub_80331D0 + + thumb_func_start bx_blink_t7 +bx_blink_t7: @ 80331E8 + push {r4,lr} + ldr r1, _08033224 @ =gUnknown_02024BE0 + ldr r0, _08033228 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _0803322C @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _08033234 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, _08033230 @ =gUnknown_02024E6D + strb r3, [r0] + bl sub_80334EC + b _0803325E + .align 2, 0 +_08033224: .4byte gUnknown_02024BE0 +_08033228: .4byte gUnknown_02024A60 +_0803322C: .4byte gSprites +_08033230: .4byte gUnknown_02024E6D +_08033234: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08033258 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08033258: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_0803325E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end bx_blink_t7 + + thumb_func_start sub_8033264 +sub_8033264: @ 8033264 + push {r4,lr} + ldr r2, _080332B4 @ =gSprites + ldr r0, _080332B8 @ =gUnknown_03004340 + ldr r4, _080332BC @ =gUnknown_02024A60 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _080332C0 @ =SpriteCallbackDummy + cmp r1, r0 + bne _080332AC + lsls r0, r3, 2 + ldr r1, _080332C4 @ =0x02017800 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080332A0 + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_080332A0: + ldr r0, _080332C8 @ =gUnknown_03004330 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, _080332CC @ =sub_80332D0 + str r0, [r1] +_080332AC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080332B4: .4byte gSprites +_080332B8: .4byte gUnknown_03004340 +_080332BC: .4byte gUnknown_02024A60 +_080332C0: .4byte SpriteCallbackDummy +_080332C4: .4byte 0x02017800 +_080332C8: .4byte gUnknown_03004330 +_080332CC: .4byte sub_80332D0 + thumb_func_end sub_8033264 + + thumb_func_start sub_80332D0 +sub_80332D0: @ 80332D0 + push {lr} + ldr r0, _080332FC @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08033300 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080332F6 + ldr r0, _08033304 @ =c3_0802FDF4 + movs r1, 0xA + bl CreateTask + bl sub_80334EC +_080332F6: + pop {r0} + bx r0 + .align 2, 0 +_080332FC: .4byte gUnknown_02024A60 +_08033300: .4byte 0x02017810 +_08033304: .4byte c3_0802FDF4 + thumb_func_end sub_80332D0 + + thumb_func_start sub_8033308 +sub_8033308: @ 8033308 + push {r4,r5,lr} + ldr r5, _080333AC @ =gUnknown_02024A60 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _080333B0 @ =0x02017810 + adds r2, r0, r3 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080333A4 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _080333B4 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r1, _080333B8 @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _080333BC @ =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + ldr r4, _080333C0 @ =gUnknown_03004340 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _080333C4 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _080333C8 @ =gEnemyParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r5] + bl sub_804777C + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_8043DFC + ldrb r0, [r5] + bl sub_8031F88 + ldr r1, _080333CC @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080333D0 @ =sub_8033264 + str r1, [r0] +_080333A4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080333AC: .4byte gUnknown_02024A60 +_080333B0: .4byte 0x02017810 +_080333B4: .4byte 0x000027f9 +_080333B8: .4byte gUnknown_02024BE0 +_080333BC: .4byte gSprites +_080333C0: .4byte gUnknown_03004340 +_080333C4: .4byte gUnknown_02024A6A +_080333C8: .4byte gEnemyParty +_080333CC: .4byte gUnknown_03004330 +_080333D0: .4byte sub_8033264 + thumb_func_end sub_8033308 + + thumb_func_start sub_80333D4 +sub_80333D4: @ 80333D4 + push {r4-r6,lr} + ldr r5, _08033470 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + ldr r6, _08033474 @ =0x02017810 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _08033402 + ldr r0, _08033478 @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _0803347C @ =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_08033402: + ldr r4, _08033480 @ =gSprites + ldr r0, _08033484 @ =gUnknown_0300434C + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _08033488 @ =SpriteCallbackDummy + cmp r1, r0 + bne _08033468 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08033468 + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, _08033478 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0803347C @ =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8032984 + ldr r1, _0803348C @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08033490 @ =sub_8033308 + str r1, [r0] +_08033468: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08033470: .4byte gUnknown_02024A60 +_08033474: .4byte 0x02017810 +_08033478: .4byte gUnknown_02024A6A +_0803347C: .4byte gEnemyParty +_08033480: .4byte gSprites +_08033484: .4byte gUnknown_0300434C +_08033488: .4byte SpriteCallbackDummy +_0803348C: .4byte gUnknown_03004330 +_08033490: .4byte sub_8033308 + thumb_func_end sub_80333D4 + + thumb_func_start sub_8033494 +sub_8033494: @ 8033494 + push {lr} + ldr r0, _080334B8 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080334BC @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _080334B2 + bl sub_80334EC +_080334B2: + pop {r0} + bx r0 + .align 2, 0 +_080334B8: .4byte gUnknown_02024A60 +_080334BC: .4byte 0x02017810 + thumb_func_end sub_8033494 + + thumb_func_start sub_80334C0 +sub_80334C0: @ 80334C0 + push {lr} + ldr r0, _080334E4 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _080334E8 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _080334DE + bl sub_80334EC +_080334DE: + pop {r0} + bx r0 + .align 2, 0 +_080334E4: .4byte gUnknown_02024A60 +_080334E8: .4byte 0x02017810 + thumb_func_end sub_80334C0 + + thumb_func_start sub_80334EC +sub_80334EC: @ 80334EC + ldr r1, _08033510 @ =gUnknown_03004330 + ldr r2, _08033514 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08033518 @ =sub_8032AFC + str r1, [r0] + ldr r3, _0803351C @ =gUnknown_02024A64 + ldr r1, _08033520 @ =gBitTable + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r3] + bics r0, r1 + str r0, [r3] + bx lr + .align 2, 0 +_08033510: .4byte gUnknown_03004330 +_08033514: .4byte gUnknown_02024A60 +_08033518: .4byte sub_8032AFC +_0803351C: .4byte gUnknown_02024A64 +_08033520: .4byte gBitTable + thumb_func_end sub_80334EC + + thumb_func_start dp01t_00_7_getattr +dp01t_00_7_getattr: @ 8033524 + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, _08033550 @ =gUnknown_02023A60 + ldr r0, _08033554 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _0803355C + ldr r0, _08033558 @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl sub_8033598 + adds r6, r0, 0 + b _0803357E + .align 2, 0 +_08033550: .4byte gUnknown_02023A60 +_08033554: .4byte gUnknown_02024A60 +_08033558: .4byte gUnknown_02024A6A +_0803355C: + ldrb r4, [r1] + movs r5, 0 +_08033560: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08033576 + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl sub_8033598 + adds r6, r0 +_08033576: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _08033560 +_0803357E: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl sub_80334EC + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_7_getattr + + thumb_func_start sub_8033598 +sub_8033598: @ 8033598 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, _080335CC @ =gUnknown_02023A60 + ldr r3, _080335D0 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _080335C2 + bl _08033D2E +_080335C2: + lsls r0, 2 + ldr r1, _080335D4 @ =_080335D8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080335CC: .4byte gUnknown_02023A60 +_080335D0: .4byte gUnknown_02024A60 +_080335D4: .4byte _080335D8 + .align 2, 0 +_080335D8: + .4byte _080336C8 + .4byte _080338EC + .4byte _080338FC + .4byte _0803390C + .4byte _08033974 + .4byte _08033974 + .4byte _08033974 + .4byte _08033974 + .4byte _08033990 + .4byte _080339CC + .4byte _080339CC + .4byte _080339CC + .4byte _080339CC + .4byte _08033D2E + .4byte _08033D2E + .4byte _08033D2E + .4byte _08033D2E + .4byte _080339E8 + .4byte _080339F8 + .4byte _08033A28 + .4byte _08033A38 + .4byte _08033A48 + .4byte _08033A58 + .4byte _08033A68 + .4byte _08033A78 + .4byte _08033A88 + .4byte _08033A98 + .4byte _08033AA8 + .4byte _08033AB8 + .4byte _08033AC8 + .4byte _08033AD8 + .4byte _08033AE8 + .4byte _08033B38 + .4byte _08033B48 + .4byte _08033B58 + .4byte _08033B68 + .4byte _08033B78 + .4byte _08033B88 + .4byte _08033B98 + .4byte _08033BA8 + .4byte _08033BB8 + .4byte _08033BEC + .4byte _08033BFC + .4byte _08033C0C + .4byte _08033C1C + .4byte _08033C2C + .4byte _08033C3C + .4byte _08033C4C + .4byte _08033C5C + .4byte _08033C7C + .4byte _08033C8C + .4byte _08033C9C + .4byte _08033CAC + .4byte _08033CBC + .4byte _08033CCC + .4byte _08033CDC + .4byte _08033CEC + .4byte _08033CFC + .4byte _08033D0C + .4byte _08033D1C +_080336C8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _080338DC @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_08033714: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _08033714 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _080338DC @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, _080338E0 @ =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, _080338E4 @ =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, _080338E8 @ =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_080338CC: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _080338CC + b _08033D2E + .align 2, 0 +_080338DC: .4byte gEnemyParty +_080338E0: .4byte 0xfffffc1f +_080338E4: .4byte 0xfff07fff +_080338E8: .4byte 0xfffffe0f +_080338EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080338F8 @ =gEnemyParty + adds r0, r1 + movs r1, 0xB + b _08033C66 + .align 2, 0 +_080338F8: .4byte gEnemyParty +_080338FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033908 @ =gEnemyParty + adds r0, r1 + movs r1, 0xC + b _08033C66 + .align 2, 0 +_08033908: .4byte gEnemyParty +_0803390C: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08033970 @ =gEnemyParty + adds r4, r1, r0 + mov r8, r9 +_08033922: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _08033922 + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033970 @ =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_08033960: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _08033960 + b _08033D2E + .align 2, 0 +_08033970: .4byte gEnemyParty +_08033974: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803398C @ =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _08033C66 + .align 2, 0 +_0803398C: .4byte gEnemyParty +_08033990: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, _080339C8 @ =gEnemyParty + mov r8, r2 +_0803399C: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _0803399C + movs r0, 0x64 + muls r0, r5 + ldr r1, _080339C8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _08033D2E + .align 2, 0 +_080339C8: .4byte gEnemyParty +_080339CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080339E4 @ =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _08033D26 + .align 2, 0 +_080339E4: .4byte gEnemyParty +_080339E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080339F4 @ =gEnemyParty + adds r0, r1 + movs r1, 0x1 + b _08033A02 + .align 2, 0 +_080339F4: .4byte gEnemyParty +_080339F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A24 @ =gEnemyParty + adds r0, r1 + movs r1, 0x19 +_08033A02: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _08033D2E + .align 2, 0 +_08033A24: .4byte gEnemyParty +_08033A28: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A34 @ =gEnemyParty + adds r0, r1 + movs r1, 0x1A + b _08033D26 + .align 2, 0 +_08033A34: .4byte gEnemyParty +_08033A38: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A44 @ =gEnemyParty + adds r0, r1 + movs r1, 0x1B + b _08033D26 + .align 2, 0 +_08033A44: .4byte gEnemyParty +_08033A48: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A54 @ =gEnemyParty + adds r0, r1 + movs r1, 0x1C + b _08033D26 + .align 2, 0 +_08033A54: .4byte gEnemyParty +_08033A58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A64 @ =gEnemyParty + adds r0, r1 + movs r1, 0x1D + b _08033D26 + .align 2, 0 +_08033A64: .4byte gEnemyParty +_08033A68: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A74 @ =gEnemyParty + adds r0, r1 + movs r1, 0x1E + b _08033D26 + .align 2, 0 +_08033A74: .4byte gEnemyParty +_08033A78: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A84 @ =gEnemyParty + adds r0, r1 + movs r1, 0x1F + b _08033D26 + .align 2, 0 +_08033A84: .4byte gEnemyParty +_08033A88: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033A94 @ =gEnemyParty + adds r0, r1 + movs r1, 0x20 + b _08033D26 + .align 2, 0 +_08033A94: .4byte gEnemyParty +_08033A98: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033AA4 @ =gEnemyParty + adds r0, r1 + movs r1, 0x22 + b _08033D26 + .align 2, 0 +_08033AA4: .4byte gEnemyParty +_08033AA8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033AB4 @ =gEnemyParty + adds r0, r1 + movs r1, 0x23 + b _08033D26 + .align 2, 0 +_08033AB4: .4byte gEnemyParty +_08033AB8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033AC4 @ =gEnemyParty + adds r0, r1 + movs r1, 0x24 + b _08033D26 + .align 2, 0 +_08033AC4: .4byte gEnemyParty +_08033AC8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033AD4 @ =gEnemyParty + adds r0, r1 + movs r1, 0x25 + b _08033D26 + .align 2, 0 +_08033AD4: .4byte gEnemyParty +_08033AD8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033AE4 @ =gEnemyParty + adds r0, r1 + movs r1, 0x26 + b _08033D26 + .align 2, 0 +_08033AE4: .4byte gEnemyParty +_08033AE8: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08033B34 @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _08033D2E + .align 2, 0 +_08033B34: .4byte gEnemyParty +_08033B38: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033B44 @ =gEnemyParty + adds r0, r1 + movs r1, 0x27 + b _08033D26 + .align 2, 0 +_08033B44: .4byte gEnemyParty +_08033B48: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033B54 @ =gEnemyParty + adds r0, r1 + movs r1, 0x28 + b _08033D26 + .align 2, 0 +_08033B54: .4byte gEnemyParty +_08033B58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033B64 @ =gEnemyParty + adds r0, r1 + movs r1, 0x29 + b _08033D26 + .align 2, 0 +_08033B64: .4byte gEnemyParty +_08033B68: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033B74 @ =gEnemyParty + adds r0, r1 + movs r1, 0x2A + b _08033D26 + .align 2, 0 +_08033B74: .4byte gEnemyParty +_08033B78: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033B84 @ =gEnemyParty + adds r0, r1 + movs r1, 0x2B + b _08033D26 + .align 2, 0 +_08033B84: .4byte gEnemyParty +_08033B88: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033B94 @ =gEnemyParty + adds r0, r1 + movs r1, 0x2C + b _08033D26 + .align 2, 0 +_08033B94: .4byte gEnemyParty +_08033B98: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033BA4 @ =gEnemyParty + adds r0, r1 + movs r1, 0 + b _08033BC2 + .align 2, 0 +_08033BA4: .4byte gEnemyParty +_08033BA8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033BB4 @ =gEnemyParty + adds r0, r1 + movs r1, 0x9 + b _08033C66 + .align 2, 0 +_08033BB4: .4byte gEnemyParty +_08033BB8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033BE8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x37 +_08033BC2: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _08033D2E + .align 2, 0 +_08033BE8: .4byte gEnemyParty +_08033BEC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033BF8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x38 + b _08033D26 + .align 2, 0 +_08033BF8: .4byte gEnemyParty +_08033BFC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C08 @ =gEnemyParty + adds r0, r1 + movs r1, 0x39 + b _08033C66 + .align 2, 0 +_08033C08: .4byte gEnemyParty +_08033C0C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C18 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3A + b _08033C66 + .align 2, 0 +_08033C18: .4byte gEnemyParty +_08033C1C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C28 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3B + b _08033C66 + .align 2, 0 +_08033C28: .4byte gEnemyParty +_08033C2C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C38 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3C + b _08033C66 + .align 2, 0 +_08033C38: .4byte gEnemyParty +_08033C3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C48 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3D + b _08033C66 + .align 2, 0 +_08033C48: .4byte gEnemyParty +_08033C4C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C58 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3E + b _08033C66 + .align 2, 0 +_08033C58: .4byte gEnemyParty +_08033C5C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C78 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3F +_08033C66: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _08033D2E + .align 2, 0 +_08033C78: .4byte gEnemyParty +_08033C7C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C88 @ =gEnemyParty + adds r0, r1 + movs r1, 0x16 + b _08033D26 + .align 2, 0 +_08033C88: .4byte gEnemyParty +_08033C8C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033C98 @ =gEnemyParty + adds r0, r1 + movs r1, 0x17 + b _08033D26 + .align 2, 0 +_08033C98: .4byte gEnemyParty +_08033C9C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033CA8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x18 + b _08033D26 + .align 2, 0 +_08033CA8: .4byte gEnemyParty +_08033CAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033CB8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x21 + b _08033D26 + .align 2, 0 +_08033CB8: .4byte gEnemyParty +_08033CBC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033CC8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x2F + b _08033D26 + .align 2, 0 +_08033CC8: .4byte gEnemyParty +_08033CCC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033CD8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x30 + b _08033D26 + .align 2, 0 +_08033CD8: .4byte gEnemyParty +_08033CDC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033CE8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x32 + b _08033D26 + .align 2, 0 +_08033CE8: .4byte gEnemyParty +_08033CEC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033CF8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x33 + b _08033D26 + .align 2, 0 +_08033CF8: .4byte gEnemyParty +_08033CFC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033D08 @ =gEnemyParty + adds r0, r1 + movs r1, 0x34 + b _08033D26 + .align 2, 0 +_08033D08: .4byte gEnemyParty +_08033D0C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033D18 @ =gEnemyParty + adds r0, r1 + movs r1, 0x35 + b _08033D26 + .align 2, 0 +_08033D18: .4byte gEnemyParty +_08033D1C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08033D40 @ =gEnemyParty + adds r0, r1 + movs r1, 0x36 +_08033D26: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_08033D2E: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08033D40: .4byte gEnemyParty + thumb_func_end sub_8033598 + + thumb_func_start dp01t_01_2_read_pokmon_data_slice +dp01t_01_2_read_pokmon_data_slice: @ 8033D44 + push {r4-r7,lr} + sub sp, 0x58 + ldr r2, _08033DBC @ =gUnknown_02024A6A + ldr r5, _08033DC0 @ =gUnknown_02024A60 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r2 + ldrh r2, [r0] + movs r0, 0x64 + adds r4, r2, 0 + muls r4, r0 + ldr r3, _08033DC4 @ =gUnknown_02023A60 + lsls r1, 9 + adds r0, r3, 0x1 + adds r0, r1, r0 + ldrb r2, [r0] + ldr r0, _08033DC8 @ =gEnemyParty + adds r0, r2, r0 + adds r6, r4, r0 + mov r0, sp + adds r4, r0, r2 + movs r2, 0 + adds r0, r3, 0x2 + adds r1, r0 + adds r7, r5, 0 + mov r12, r3 + ldrb r1, [r1] + cmp r2, r1 + bcs _08033D9A + adds r3, r0, 0 +_08033D80: + adds r1, r4, r2 + adds r0, r6, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r2, 0x1 + lsls r0, 24 + lsrs r2, r0, 24 + ldrb r0, [r5] + lsls r0, 9 + adds r0, r3 + ldrb r0, [r0] + cmp r2, r0 + bcc _08033D80 +_08033D9A: + ldrb r0, [r7] + lsls r0, 9 + mov r1, r12 + adds r1, 0x2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + adds r2, r4, 0 + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl sub_80334EC + add sp, 0x58 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08033DBC: .4byte gUnknown_02024A6A +_08033DC0: .4byte gUnknown_02024A60 +_08033DC4: .4byte gUnknown_02023A60 +_08033DC8: .4byte gEnemyParty + thumb_func_end dp01t_01_2_read_pokmon_data_slice + + thumb_func_start dp01t_02_7_setattr +dp01t_02_7_setattr: @ 8033DCC + push {r4,r5,lr} + ldr r1, _08033DF0 @ =gUnknown_02023A60 + ldr r0, _08033DF4 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _08033DFC + ldr r0, _08033DF8 @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_8033E24 + b _08033E1A + .align 2, 0 +_08033DF0: .4byte gUnknown_02023A60 +_08033DF4: .4byte gUnknown_02024A60 +_08033DF8: .4byte gUnknown_02024A6A +_08033DFC: + ldrb r4, [r1] + movs r5, 0 +_08033E00: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08033E0E + adds r0, r5, 0 + bl sub_8033E24 +_08033E0E: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _08033E00 +_08033E1A: + bl sub_80334EC + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end dp01t_02_7_setattr + + thumb_func_start sub_8033E24 +sub_8033E24: @ 8033E24 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r3, _08033E5C @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r0, 9 + ldr r2, _08033E60 @ =gUnknown_02023A63 + adds r4, r0, r2 + adds r7, r4, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0x3B + bls _08033E52 + bl _08034730 +_08033E52: + lsls r0, 2 + ldr r1, _08033E64 @ =_08033E68 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08033E5C: .4byte gUnknown_02024A60 +_08033E60: .4byte gUnknown_02023A63 +_08033E64: .4byte _08033E68 + .align 2, 0 +_08033E68: + .4byte _08033F58 + .4byte _080340F0 + .4byte _0803410C + .4byte _08034128 + .4byte _0803417C + .4byte _0803417C + .4byte _0803417C + .4byte _0803417C + .4byte _0803419C + .4byte _08034204 + .4byte _08034204 + .4byte _08034204 + .4byte _08034204 + .4byte _08034730 + .4byte _08034730 + .4byte _08034730 + .4byte _08034730 + .4byte _0803422C + .4byte _08034248 + .4byte _08034264 + .4byte _08034280 + .4byte _0803429C + .4byte _080342B8 + .4byte _080342D4 + .4byte _080342F0 + .4byte _0803430C + .4byte _08034328 + .4byte _08034344 + .4byte _08034360 + .4byte _0803437C + .4byte _08034398 + .4byte _080343B4 + .4byte _08034428 + .4byte _08034444 + .4byte _08034460 + .4byte _0803447C + .4byte _08034498 + .4byte _080344B4 + .4byte _080344D0 + .4byte _080344EC + .4byte _08034508 + .4byte _08034524 + .4byte _08034540 + .4byte _0803455C + .4byte _08034578 + .4byte _08034594 + .4byte _080345B0 + .4byte _080345CC + .4byte _080345E8 + .4byte _08034604 + .4byte _08034620 + .4byte _0803463C + .4byte _08034658 + .4byte _08034674 + .4byte _08034690 + .4byte _080346AC + .4byte _080346C8 + .4byte _080346E4 + .4byte _08034700 + .4byte _0803471C +_08033F58: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _080340EC @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r7, 0 + bl SetMonData + adds r2, r7, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r7 + mov r10, r0 + adds r0, r7, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r7, 0x2 + str r0, [sp, 0x4] + adds r0, r7, 0x4 + str r0, [sp, 0x8] + adds r0, r7, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r6, r7, 0 + adds r6, 0x24 + adds r4, r7, 0 + adds r4, 0xC +_08033FBE: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08033FBE + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _080340EC @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r7, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _08034730 + .align 2, 0 +_080340EC: .4byte gEnemyParty +_080340F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034108 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xB + bl SetMonData + b _08034730 + .align 2, 0 +_08034108: .4byte gEnemyParty +_0803410C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034124 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xC + bl SetMonData + b _08034730 + .align 2, 0 +_08034124: .4byte gEnemyParty +_08034128: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r4 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08034178 @ =gEnemyParty + adds r7, r1, r0 + adds r6, r4, 0 + adds r6, 0x8 +_08034140: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08034140 + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034178 @ =gEnemyParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _08034730 + .align 2, 0 +_08034178: .4byte gEnemyParty +_0803417C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034194 @ =gEnemyParty + adds r0, r1 + ldr r3, _08034198 @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _0803421A + .align 2, 0 +_08034194: .4byte gEnemyParty +_08034198: .4byte gUnknown_02023A60 +_0803419C: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08034200 @ =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x11 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _08034730 + .align 2, 0 +_08034200: .4byte gEnemyParty +_08034204: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034224 @ =gEnemyParty + adds r0, r1 + ldr r3, _08034228 @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_0803421A: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _08034730 + .align 2, 0 +_08034224: .4byte gEnemyParty +_08034228: .4byte gUnknown_02023A60 +_0803422C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034244 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1 + bl SetMonData + b _08034730 + .align 2, 0 +_08034244: .4byte gEnemyParty +_08034248: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034260 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x19 + bl SetMonData + b _08034730 + .align 2, 0 +_08034260: .4byte gEnemyParty +_08034264: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803427C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1A + bl SetMonData + b _08034730 + .align 2, 0 +_0803427C: .4byte gEnemyParty +_08034280: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034298 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1B + bl SetMonData + b _08034730 + .align 2, 0 +_08034298: .4byte gEnemyParty +_0803429C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080342B4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1C + bl SetMonData + b _08034730 + .align 2, 0 +_080342B4: .4byte gEnemyParty +_080342B8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080342D0 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1D + bl SetMonData + b _08034730 + .align 2, 0 +_080342D0: .4byte gEnemyParty +_080342D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080342EC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1E + bl SetMonData + b _08034730 + .align 2, 0 +_080342EC: .4byte gEnemyParty +_080342F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034308 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1F + bl SetMonData + b _08034730 + .align 2, 0 +_08034308: .4byte gEnemyParty +_0803430C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034324 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x20 + bl SetMonData + b _08034730 + .align 2, 0 +_08034324: .4byte gEnemyParty +_08034328: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034340 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x22 + bl SetMonData + b _08034730 + .align 2, 0 +_08034340: .4byte gEnemyParty +_08034344: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803435C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x23 + bl SetMonData + b _08034730 + .align 2, 0 +_0803435C: .4byte gEnemyParty +_08034360: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034378 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x24 + bl SetMonData + b _08034730 + .align 2, 0 +_08034378: .4byte gEnemyParty +_0803437C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034394 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x25 + bl SetMonData + b _08034730 + .align 2, 0 +_08034394: .4byte gEnemyParty +_08034398: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080343B0 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x26 + bl SetMonData + b _08034730 + .align 2, 0 +_080343B0: .4byte gEnemyParty +_080343B4: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08034424 @ =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x27 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _080344C2 + .align 2, 0 +_08034424: .4byte gEnemyParty +_08034428: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034440 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x27 + bl SetMonData + b _08034730 + .align 2, 0 +_08034440: .4byte gEnemyParty +_08034444: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803445C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x28 + bl SetMonData + b _08034730 + .align 2, 0 +_0803445C: .4byte gEnemyParty +_08034460: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034478 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x29 + bl SetMonData + b _08034730 + .align 2, 0 +_08034478: .4byte gEnemyParty +_0803447C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034494 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2A + bl SetMonData + b _08034730 + .align 2, 0 +_08034494: .4byte gEnemyParty +_08034498: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080344B0 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2B + bl SetMonData + b _08034730 + .align 2, 0 +_080344B0: .4byte gEnemyParty +_080344B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080344CC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 +_080344C2: + movs r1, 0x2C + bl SetMonData + b _08034730 + .align 2, 0 +_080344CC: .4byte gEnemyParty +_080344D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080344E8 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0 + bl SetMonData + b _08034730 + .align 2, 0 +_080344E8: .4byte gEnemyParty +_080344EC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034504 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x9 + bl SetMonData + b _08034730 + .align 2, 0 +_08034504: .4byte gEnemyParty +_08034508: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034520 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x37 + bl SetMonData + b _08034730 + .align 2, 0 +_08034520: .4byte gEnemyParty +_08034524: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803453C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x38 + bl SetMonData + b _08034730 + .align 2, 0 +_0803453C: .4byte gEnemyParty +_08034540: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034558 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x39 + bl SetMonData + b _08034730 + .align 2, 0 +_08034558: .4byte gEnemyParty +_0803455C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034574 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3A + bl SetMonData + b _08034730 + .align 2, 0 +_08034574: .4byte gEnemyParty +_08034578: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034590 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3B + bl SetMonData + b _08034730 + .align 2, 0 +_08034590: .4byte gEnemyParty +_08034594: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080345AC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3C + bl SetMonData + b _08034730 + .align 2, 0 +_080345AC: .4byte gEnemyParty +_080345B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080345C8 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3D + bl SetMonData + b _08034730 + .align 2, 0 +_080345C8: .4byte gEnemyParty +_080345CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080345E4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3E + bl SetMonData + b _08034730 + .align 2, 0 +_080345E4: .4byte gEnemyParty +_080345E8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034600 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3F + bl SetMonData + b _08034730 + .align 2, 0 +_08034600: .4byte gEnemyParty +_08034604: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803461C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x16 + bl SetMonData + b _08034730 + .align 2, 0 +_0803461C: .4byte gEnemyParty +_08034620: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034638 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x17 + bl SetMonData + b _08034730 + .align 2, 0 +_08034638: .4byte gEnemyParty +_0803463C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034654 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x18 + bl SetMonData + b _08034730 + .align 2, 0 +_08034654: .4byte gEnemyParty +_08034658: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034670 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x21 + bl SetMonData + b _08034730 + .align 2, 0 +_08034670: .4byte gEnemyParty +_08034674: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803468C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2F + bl SetMonData + b _08034730 + .align 2, 0 +_0803468C: .4byte gEnemyParty +_08034690: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080346A8 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x30 + bl SetMonData + b _08034730 + .align 2, 0 +_080346A8: .4byte gEnemyParty +_080346AC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080346C4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x32 + bl SetMonData + b _08034730 + .align 2, 0 +_080346C4: .4byte gEnemyParty +_080346C8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080346E0 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x33 + bl SetMonData + b _08034730 + .align 2, 0 +_080346E0: .4byte gEnemyParty +_080346E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080346FC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x34 + bl SetMonData + b _08034730 + .align 2, 0 +_080346FC: .4byte gEnemyParty +_08034700: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034718 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x35 + bl SetMonData + b _08034730 + .align 2, 0 +_08034718: .4byte gEnemyParty +_0803471C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08034740 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x36 + bl SetMonData +_08034730: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08034740: .4byte gEnemyParty + thumb_func_end sub_8033E24 + + thumb_func_start sub_8034744 +sub_8034744: @ 8034744 + push {r4-r7,lr} + ldr r1, _080347A8 @ =gUnknown_02024A6A + ldr r7, _080347AC @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, _080347B0 @ =gUnknown_02023A60 + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _080347B4 @ =gEnemyParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _0803479C + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_0803477A: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _0803477A +_0803479C: + bl sub_80334EC + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080347A8: .4byte gUnknown_02024A6A +_080347AC: .4byte gUnknown_02024A60 +_080347B0: .4byte gUnknown_02023A60 +_080347B4: .4byte gEnemyParty + thumb_func_end sub_8034744 + + thumb_func_start sub_80347B8 +sub_80347B8: @ 80347B8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r6, _080348E8 @ =gUnknown_02024A60 + ldrb r0, [r6] + lsls r0, 1 + ldr r1, _080348EC @ =gUnknown_02024A6A + adds r0, r1 + ldrh r0, [r0] + movs r7, 0x64 + muls r0, r7 + ldr r2, _080348F0 @ =gEnemyParty + mov r10, r2 + add r0, r10 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldrb r1, [r6] + lsls r0, r1, 1 + ldr r2, _080348EC @ =gUnknown_02024A6A + adds r0, r2 + ldrh r0, [r0] + muls r0, r7 + add r0, r10 + bl sub_8031794 + ldrb r0, [r6] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080348F4 @ =gUnknown_02024E8C + mov r9, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_8077F68 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, _080348F8 @ =gUnknown_02024BE0 + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, _080348FC @ =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08034900 @ =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08034904 @ =gUnknown_02024E84 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, 1 + ldr r2, _080348EC @ =gUnknown_02024A6A + adds r0, r2 + ldrh r0, [r0] + muls r0, r7 + add r0, r10 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8032984 + ldr r1, _08034908 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803490C @ =sub_8033018 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080348E8: .4byte gUnknown_02024A60 +_080348EC: .4byte gUnknown_02024A6A +_080348F0: .4byte gEnemyParty +_080348F4: .4byte gUnknown_02024E8C +_080348F8: .4byte gUnknown_02024BE0 +_080348FC: .4byte gSprites +_08034900: .4byte 0x0000ff10 +_08034904: .4byte gUnknown_02024E84 +_08034908: .4byte gUnknown_03004330 +_0803490C: .4byte sub_8033018 + thumb_func_end sub_80347B8 + + thumb_func_start sub_8034910 +sub_8034910: @ 8034910 + push {r4,lr} + ldr r1, _08034948 @ =gUnknown_02024A6A + ldr r4, _0803494C @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r1 + ldr r3, _08034950 @ =gUnknown_02023A60 + lsls r0, 9 + adds r1, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, 9 + adds r3, 0x2 + adds r1, r3 + ldrb r1, [r1] + bl sub_803495C + ldr r1, _08034954 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08034958 @ =sub_80333D4 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08034948: .4byte gUnknown_02024A6A +_0803494C: .4byte gUnknown_02024A60 +_08034950: .4byte gUnknown_02023A60 +_08034954: .4byte gUnknown_03004330 +_08034958: .4byte sub_80333D4 + thumb_func_end sub_8034910 + + thumb_func_start sub_803495C +sub_803495C: @ 803495C + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8032AA8 + ldr r0, _08034AB8 @ =gUnknown_02024A6A + lsls r4, r6, 1 + adds r4, r0 + ldr r0, _08034ABC @ =gUnknown_02023A60 + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0x64 + mov r9, r1 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + ldr r5, _08034AC0 @ =gEnemyParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _08034AC4 @ =sub_80312F0 + bl object_new_hidden_with_callback + ldr r1, _08034AC8 @ =gUnknown_0300434C + mov r10, r1 + add r10, r6 + mov r1, r10 + strb r0, [r1] + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r5 + adds r1, r6, 0 + bl sub_8031794 + adds r0, r6, 0 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl GetMonSpriteTemplate_803C56C + ldr r0, _08034ACC @ =gUnknown_02024E8C + mov r9, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_8077F68 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, _08034AD0 @ =gUnknown_02024BE0 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _08034AD4 @ =gSprites + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08034AD8 @ =gUnknown_02024E84 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08034ADC @ =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFE + bl sub_8046400 + mov r1, r10 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08034AB8: .4byte gUnknown_02024A6A +_08034ABC: .4byte gUnknown_02023A60 +_08034AC0: .4byte gEnemyParty +_08034AC4: .4byte sub_80312F0 +_08034AC8: .4byte gUnknown_0300434C +_08034ACC: .4byte gUnknown_02024E8C +_08034AD0: .4byte gUnknown_02024BE0 +_08034AD4: .4byte gSprites +_08034AD8: .4byte gUnknown_02024E84 +_08034ADC: .4byte SpriteCallbackDummy + thumb_func_end sub_803495C + + thumb_func_start sub_8034AE0 +sub_8034AE0: @ 8034AE0 + push {r4-r6,lr} + ldr r1, _08034B10 @ =gUnknown_02023A60 + ldr r6, _08034B14 @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _08034B24 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _08034B18 @ =0x02017810 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, _08034B1C @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08034B20 @ =sub_8034B74 + str r1, [r0] + b _08034B60 + .align 2, 0 +_08034B10: .4byte gUnknown_02023A60 +_08034B14: .4byte gUnknown_02024A60 +_08034B18: .4byte 0x02017810 +_08034B1C: .4byte gUnknown_03004330 +_08034B20: .4byte sub_8034B74 +_08034B24: + ldr r5, _08034B68 @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08034B6C @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_8032A08 + ldr r1, _08034B70 @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl sub_80334EC +_08034B60: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08034B68: .4byte gUnknown_02024BE0 +_08034B6C: .4byte gSprites +_08034B70: .4byte gUnknown_03004340 + thumb_func_end sub_8034AE0 + + thumb_func_start sub_8034B74 +sub_8034B74: @ 8034B74 + push {r4,r5,lr} + ldr r5, _08034B90 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _08034B94 @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _08034B98 + cmp r0, 0x1 + beq _08034BC4 + b _08034BEC + .align 2, 0 +_08034B90: .4byte gUnknown_02024A60 +_08034B94: .4byte 0x02017810 +_08034B98: + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08034BB4 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08034BB4: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08034BEC +_08034BC4: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _08034BEC + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x2 + bl move_anim_start_t4 + ldr r1, _08034BF4 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08034BF8 @ =sub_8033160 + str r1, [r0] +_08034BEC: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08034BF4: .4byte gUnknown_03004330 +_08034BF8: .4byte sub_8033160 + thumb_func_end sub_8034B74 + + thumb_func_start sub_8034BFC +sub_8034BFC: @ 8034BFC + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r3, _08034C18 @ =gTrainerBattleOpponent + ldrh r1, [r3] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _08034C1C + bl GetSecretBaseTrainerPicIndex + b _08034C42 + .align 2, 0 +_08034C18: .4byte gTrainerBattleOpponent +_08034C1C: + ldr r0, _08034C30 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08034C34 + bl get_trainer_class_pic_index + b _08034C42 + .align 2, 0 +_08034C30: .4byte gUnknown_020239F8 +_08034C34: + movs r0, 0x80 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _08034C48 + bl sub_8135FBC +_08034C42: + lsls r0, 24 + lsrs r0, 24 + b _08034C56 +_08034C48: + ldr r2, _08034D88 @ =gTrainers + ldrh r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x3] +_08034C56: + mov r9, r0 + ldr r0, _08034D8C @ =gUnknown_02024A60 + mov r8, r0 + ldrb r1, [r0] + mov r0, r9 + bl sub_8031A6C + mov r1, r8 + ldrb r0, [r1] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r9 + bl GetMonSpriteTemplate_803C5A0 + ldr r5, _08034D90 @ =gUnknown_02024E8C + ldr r1, _08034D94 @ =gTrainerFrontPicCoords + mov r2, r9 + lsls r0, r2, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 14 + adds r4, r0 + asrs r4, 16 + mov r1, r8 + ldrb r0, [r1] + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r5, 0 + movs r1, 0xB0 + adds r2, r4, 0 + bl CreateSprite + ldr r5, _08034D98 @ =gUnknown_02024BE0 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + strb r0, [r1] + ldr r4, _08034D9C @ =gSprites + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08034DA0 @ =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldr r0, _08034DA4 @ =gTrainerFrontPicPaletteTable + mov r1, r9 + lsls r6, r1, 3 + adds r0, r6, r0 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1, 0x38] + ldr r0, _08034DA8 @ =gTrainerFrontPicTable + adds r6, r0 + ldrh r0, [r6, 0x6] + bl GetSpriteTileStartByTag + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldr r2, _08034DAC @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08034DB0 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r2, r9 + strh r2, [r0, 0x6] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _08034DB4 @ =sub_80313A0 + str r1, [r0] + ldr r1, _08034DB8 @ =gUnknown_03004330 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08034DBC @ =sub_8032B4C + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08034D88: .4byte gTrainers +_08034D8C: .4byte gUnknown_02024A60 +_08034D90: .4byte gUnknown_02024E8C +_08034D94: .4byte gTrainerFrontPicCoords +_08034D98: .4byte gUnknown_02024BE0 +_08034D9C: .4byte gSprites +_08034DA0: .4byte 0x0000ff10 +_08034DA4: .4byte gTrainerFrontPicPaletteTable +_08034DA8: .4byte gTrainerFrontPicTable +_08034DAC: .4byte 0x000003ff +_08034DB0: .4byte 0xfffffc00 +_08034DB4: .4byte sub_80313A0 +_08034DB8: .4byte gUnknown_03004330 +_08034DBC: .4byte sub_8032B4C + thumb_func_end sub_8034BFC + + thumb_func_start sub_8034DC0 +sub_8034DC0: @ 8034DC0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r3, _08034DDC @ =gTrainerBattleOpponent + ldrh r1, [r3] + movs r0, 0x80 + lsls r0, 3 + cmp r1, r0 + bne _08034DE0 + bl GetSecretBaseTrainerPicIndex + b _08034E06 + .align 2, 0 +_08034DDC: .4byte gTrainerBattleOpponent +_08034DE0: + ldr r0, _08034DF4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x80 + lsls r0, 1 + ands r0, r1 + cmp r0, 0 + beq _08034DF8 + bl get_trainer_class_pic_index + b _08034E06 + .align 2, 0 +_08034DF4: .4byte gUnknown_020239F8 +_08034DF8: + movs r0, 0x80 + lsls r0, 4 + ands r0, r1 + cmp r0, 0 + beq _08034E0C + bl sub_8135FBC +_08034E06: + lsls r0, 24 + lsrs r0, 24 + b _08034E1A +_08034E0C: + ldr r2, _08034F4C @ =gTrainers + ldrh r1, [r3] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldrb r0, [r0, 0x3] +_08034E1A: + mov r9, r0 + ldr r0, _08034F50 @ =gUnknown_02024A60 + mov r8, r0 + ldrb r1, [r0] + mov r0, r9 + bl sub_8031A6C + mov r1, r8 + ldrb r0, [r1] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r9 + bl GetMonSpriteTemplate_803C5A0 + ldr r0, _08034F54 @ =gUnknown_02024E8C + ldr r2, _08034F58 @ =gTrainerFrontPicCoords + mov r3, r9 + lsls r1, r3, 2 + adds r1, r2 + ldrb r1, [r1] + movs r2, 0x8 + subs r2, r1 + lsls r2, 18 + movs r1, 0xA0 + lsls r1, 14 + adds r2, r1 + asrs r2, 16 + movs r1, 0xB0 + movs r3, 0x1E + bl CreateSprite + ldr r5, _08034F5C @ =gUnknown_02024BE0 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + strb r0, [r1] + ldr r4, _08034F60 @ =gSprites + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x60 + strh r1, [r0, 0x24] + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x20] + adds r1, 0x20 + strh r1, [r0, 0x20] + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08034F64 @ =0x0000fffe + strh r1, [r0, 0x2E] + ldr r0, _08034F68 @ =gTrainerFrontPicPaletteTable + mov r3, r9 + lsls r6, r3, 3 + adds r0, r6, r0 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + mov r3, r8 + ldrb r0, [r3] + adds r0, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1, 0x38] + ldr r0, _08034F6C @ =gTrainerFrontPicTable + adds r6, r0 + ldrh r0, [r6, 0x6] + bl GetSpriteTileStartByTag + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldr r2, _08034F70 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08034F74 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + mov r3, r8 + ldrb r0, [r3] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r1, r9 + strh r1, [r0, 0x6] + ldrb r0, [r3] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _08034F78 @ =sub_80313A0 + str r1, [r0] + ldr r1, _08034F7C @ =gUnknown_03004330 + ldrb r0, [r3] + lsls r0, 2 + adds r0, r1 + ldr r1, _08034F80 @ =sub_8032B84 + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08034F4C: .4byte gTrainers +_08034F50: .4byte gUnknown_02024A60 +_08034F54: .4byte gUnknown_02024E8C +_08034F58: .4byte gTrainerFrontPicCoords +_08034F5C: .4byte gUnknown_02024BE0 +_08034F60: .4byte gSprites +_08034F64: .4byte 0x0000fffe +_08034F68: .4byte gTrainerFrontPicPaletteTable +_08034F6C: .4byte gTrainerFrontPicTable +_08034F70: .4byte 0x000003ff +_08034F74: .4byte 0xfffffc00 +_08034F78: .4byte sub_80313A0 +_08034F7C: .4byte gUnknown_03004330 +_08034F80: .4byte sub_8032B84 + thumb_func_end sub_8034DC0 + + thumb_func_start sub_8034F84 +sub_8034F84: @ 8034F84 + push {r4-r6,lr} + ldr r6, _08035014 @ =gUnknown_02024BE0 + ldr r4, _08035018 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _0803501C @ =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08035020 @ =sub_8078B34 + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08035024 @ =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, _08035028 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803502C @ =sub_8032BBC + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08035014: .4byte gUnknown_02024BE0 +_08035018: .4byte gUnknown_02024A60 +_0803501C: .4byte gSprites +_08035020: .4byte sub_8078B34 +_08035024: .4byte SpriteCallbackDummy +_08035028: .4byte gUnknown_03004330 +_0803502C: .4byte sub_8032BBC + thumb_func_end sub_8034F84 + + thumb_func_start sub_8035030 +sub_8035030: @ 8035030 + push {r4,r5,lr} + ldr r5, _08035074 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _08035078 @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _0803507C + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08035062 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08035062: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _080350B8 + .align 2, 0 +_08035074: .4byte gUnknown_02024A60 +_08035078: .4byte 0x02017810 +_0803507C: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080350B8 + strb r0, [r3, 0x4] + movs r0, 0x10 + movs r1, 0x3F + bl PlaySE12WithPanning + ldr r2, _080350C0 @ =gSprites + ldr r1, _080350C4 @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080350C8 @ =sub_8010384 + str r1, [r0] + ldr r1, _080350CC @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080350D0 @ =sub_803311C + str r1, [r0] +_080350B8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080350C0: .4byte gSprites +_080350C4: .4byte gUnknown_02024BE0 +_080350C8: .4byte sub_8010384 +_080350CC: .4byte gUnknown_03004330 +_080350D0: .4byte sub_803311C + thumb_func_end sub_8035030 + + thumb_func_start sub_80350D4 +sub_80350D4: @ 80350D4 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80350D4 + + thumb_func_start sub_80350E0 +sub_80350E0: @ 80350E0 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80350E0 + + thumb_func_start sub_80350EC +sub_80350EC: @ 80350EC + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80350EC + + thumb_func_start sub_80350F8 +sub_80350F8: @ 80350F8 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80350F8 + + thumb_func_start sub_8035104 +sub_8035104: @ 8035104 + push {r4-r6,lr} + ldr r6, _080351E8 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _08035116 + b _08035226 +_08035116: + ldr r0, _080351EC @ =gUnknown_02023A60 + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, _080351F0 @ =gUnknown_0202F7C4 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _080351F4 @ =gUnknown_0202F7BC + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _080351F8 @ =gUnknown_0202F7B8 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, _080351FC @ =gUnknown_0202F7BE + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _08035200 @ =gUnknown_0202F7C0 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _08035204 @ =gUnknown_0202F7B4 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, _08035208 @ =gUnknown_02024E70 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_8031720 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _0803520C + bl sub_80334EC + b _08035226 + .align 2, 0 +_080351E8: .4byte gUnknown_02024A60 +_080351EC: .4byte gUnknown_02023A60 +_080351F0: .4byte gUnknown_0202F7C4 +_080351F4: .4byte gUnknown_0202F7BC +_080351F8: .4byte gUnknown_0202F7B8 +_080351FC: .4byte gUnknown_0202F7BE +_08035200: .4byte gUnknown_0202F7C0 +_08035204: .4byte gUnknown_0202F7B4 +_08035208: .4byte gUnknown_02024E70 +_0803520C: + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _0803522C @ =0x02017810 + adds r0, r1 + strb r2, [r0, 0x4] + ldr r1, _08035230 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035234 @ =sub_8035238 + str r1, [r0] +_08035226: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803522C: .4byte 0x02017810 +_08035230: .4byte gUnknown_03004330 +_08035234: .4byte sub_8035238 + thumb_func_end sub_8035104 + + thumb_func_start sub_8035238 +sub_8035238: @ 8035238 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, _0803527C @ =gUnknown_02023A60 + ldr r5, _08035280 @ =gUnknown_02024A60 + ldrb r3, [r5] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r9, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r6, r2, 0x2 + mov r8, r6 + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r7, [r1] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r6, _08035284 @ =0x02017810 + adds r0, r6 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _080352C6 + cmp r2, 0x1 + bgt _08035288 + cmp r2, 0 + beq _08035292 + b _08035390 + .align 2, 0 +_0803527C: .4byte gUnknown_02023A60 +_08035280: .4byte gUnknown_02024A60 +_08035284: .4byte 0x02017810 +_08035288: + cmp r2, 0x2 + beq _080352EC + cmp r2, 0x3 + beq _08035358 + b _08035390 +_08035292: + lsls r1, r3, 2 + adds r0, r6, 0 + subs r0, 0x10 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _080352B6 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_080352B6: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08035390 +_080352C6: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08035390 + movs r0, 0 + bl sub_80326EC + adds r0, r4, 0 + bl move_anim_start_t1 + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08035390 +_080352EC: + ldr r0, _08035348 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _0803534C @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _08035390 + movs r0, 0x1 + bl sub_80326EC + ldrb r2, [r5] + lsls r0, r2, 2 + adds r4, r6, 0 + subs r4, 0x10 + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08035334 + cmp r7, 0x1 + bhi _08035334 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0] + movs r1, 0x9 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_08035334: + ldr r0, _08035350 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08035354 @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _08035390 + .align 2, 0 +_08035348: .4byte gUnknown_0202F7AC +_0803534C: .4byte gUnknown_0202F7B1 +_08035350: .4byte gUnknown_02024A60 +_08035354: .4byte 0x02017810 +_08035358: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08035390 + bl sub_8031F24 + ldrb r0, [r5] + lsls r2, r0, 9 + mov r3, r9 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_80324BC + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strb r4, [r0, 0x4] + bl sub_80334EC +_08035390: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8035238 + + thumb_func_start sub_803539C +sub_803539C: @ 803539C + push {r4,lr} + sub sp, 0x4 + ldr r0, _080353E0 @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _080353E4 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r4, _080353E8 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 9 + ldr r1, _080353EC @ =gUnknown_02023A62 + adds r0, r1 + ldrh r0, [r0] + bl sub_8120AA8 + ldr r0, _080353F0 @ =gUnknown_03004210 + ldr r1, _080353F4 @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _080353F8 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _080353FC @ =sub_80331D0 + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080353E0: .4byte gUnknown_030042A4 +_080353E4: .4byte gUnknown_030042A0 +_080353E8: .4byte gUnknown_02024A60 +_080353EC: .4byte gUnknown_02023A62 +_080353F0: .4byte gUnknown_03004210 +_080353F4: .4byte gUnknown_020238CC +_080353F8: .4byte gUnknown_03004330 +_080353FC: .4byte sub_80331D0 + thumb_func_end sub_803539C + + thumb_func_start sub_8035400 +sub_8035400: @ 8035400 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_8035400 + + thumb_func_start sub_803540C +sub_803540C: @ 803540C + push {lr} + bl sub_8036B0C + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_803540C + + thumb_func_start sub_803541C +sub_803541C: @ 803541C + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_803541C + + thumb_func_start sub_8035428 +sub_8035428: @ 8035428 + push {r4-r6,lr} + ldr r6, _0803545C @ =gUnknown_02024A60 + ldrb r0, [r6] + lsls r0, 9 + ldr r1, _08035460 @ =gUnknown_02023A64 + adds r5, r0, r1 + ldr r0, _08035464 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x93 + lsls r0, 3 + ands r0, r1 + cmp r0, 0 + beq _080354F8 + bl sub_810715C + bl sub_81072A8 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x4 + beq _08035468 + cmp r4, 0x5 + bne _08035474 + movs r0, 0x1 + movs r1, 0x4 + b _0803546C + .align 2, 0 +_0803545C: .4byte gUnknown_02024A60 +_08035460: .4byte gUnknown_02023A64 +_08035464: .4byte gUnknown_020239F8 +_08035468: + movs r0, 0x1 + movs r1, 0x3 +_0803546C: + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + b _080354E0 +_08035474: + ldr r3, _080354E8 @ =gBattleMoves + lsls r0, r4, 1 + adds r2, r5, r0 + ldrh r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x12 + ands r0, r1 + cmp r0, 0 + beq _08035494 + ldr r1, _080354EC @ =gUnknown_02024C08 + ldrb r0, [r6] + strb r0, [r1] +_08035494: + ldrh r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r1, [r0, 0x6] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080354CE + movs r0, 0 + bl battle_get_side_with_given_state + ldr r5, _080354EC @ =gUnknown_02024C08 + strb r0, [r5] + ldr r0, _080354F0 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _080354F4 @ =gBitTable + ldrb r0, [r5] + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080354CE + movs r0, 0x2 + bl battle_get_side_with_given_state + strb r0, [r5] +_080354CE: + ldr r0, _080354EC @ =gUnknown_02024C08 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x1 + movs r1, 0xA + adds r2, r4, 0 + bl dp01_build_cmdbuf_x21_a_bb +_080354E0: + bl sub_80334EC + b _0803558A + .align 2, 0 +_080354E8: .4byte gBattleMoves +_080354EC: .4byte gUnknown_02024C08 +_080354F0: .4byte gUnknown_02024C0C +_080354F4: .4byte gBitTable +_080354F8: + movs r6, 0x3 +_080354FA: + bl Random + adds r4, r0, 0 + ands r4, r6 + lsls r0, r4, 1 + adds r0, r5, r0 + ldrh r2, [r0] + cmp r2, 0 + beq _080354FA + ldr r1, _08035534 @ =gBattleMoves + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r1, [r0, 0x6] + movs r0, 0x12 + ands r0, r1 + cmp r0, 0 + beq _0803553C + ldr r0, _08035538 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + movs r0, 0x1 + movs r1, 0xA + adds r2, r4, 0 + bl dp01_build_cmdbuf_x21_a_bb + b _08035586 + .align 2, 0 +_08035534: .4byte gBattleMoves +_08035538: .4byte gUnknown_02024A60 +_0803553C: + ldr r0, _0803556C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08035570 + bl Random + movs r1, 0x2 + ands r1, r0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r1, 0 + bl battle_get_side_with_given_state + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb + b _08035586 + .align 2, 0 +_0803556C: .4byte gUnknown_020239F8 +_08035570: + movs r0, 0 + bl battle_get_side_with_given_state + adds r2, r0, 0 + lsls r2, 24 + lsrs r2, 16 + orrs r2, r4 + movs r0, 0x1 + movs r1, 0xA + bl dp01_build_cmdbuf_x21_a_bb +_08035586: + bl sub_80334EC +_0803558A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8035428 + + thumb_func_start sub_8035590 +sub_8035590: @ 8035590 + push {lr} + ldr r1, _080355B4 @ =0x02000000 + ldr r0, _080355B8 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsrs r0, 1 + lsls r0, 1 + ldr r2, _080355BC @ =0x000160d4 + adds r0, r2 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + bl dp01_build_cmdbuf_x23_aa_0 + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_080355B4: .4byte 0x02000000 +_080355B8: .4byte gUnknown_02024A60 +_080355BC: .4byte 0x000160d4 + thumb_func_end sub_8035590 + + thumb_func_start sub_80355C0 +sub_80355C0: @ 80355C0 + push {r4-r6,lr} + ldr r6, _08035604 @ =0x02000000 + ldr r5, _08035608 @ =gUnknown_02024A60 + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 25 + ldr r1, _0803560C @ =0x000160c8 + adds r0, r1 + adds r0, r6 + ldrb r0, [r0] + cmp r0, 0x6 + bne _08035664 + bl sub_8036CD4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bne _0803568A + ldr r0, _08035610 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08035614 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + b _08035628 + .align 2, 0 +_08035604: .4byte 0x02000000 +_08035608: .4byte gUnknown_02024A60 +_0803560C: .4byte 0x000160c8 +_08035610: .4byte gUnknown_020239F8 +_08035614: + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 +_08035628: + movs r4, 0 + b _0803562E +_0803562C: + adds r4, 0x1 +_0803562E: + cmp r4, 0x5 + bgt _0803568A + movs r0, 0x64 + muls r0, r4 + ldr r1, _0803565C @ =gEnemyParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _0803562C + ldr r1, _08035660 @ =gUnknown_02024A6A + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _0803562C + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _0803562C + b _0803568A + .align 2, 0 +_0803565C: .4byte gEnemyParty +_08035660: .4byte gUnknown_02024A6A +_08035664: + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 25 + ldr r2, _080356B0 @ =0x000160c8 + adds r0, r2 + adds r0, r6 + ldrb r4, [r0] + ldrb r0, [r5] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 25 + ldr r1, _080356B0 @ =0x000160c8 + adds r0, r1 + adds r0, r6 + movs r1, 0x6 + strb r1, [r0] +_0803568A: + ldr r1, _080356B4 @ =0x02000000 + ldr r0, _080356B8 @ =gUnknown_02024A60 + ldrb r0, [r0] + ldr r2, _080356BC @ =0x00016068 + adds r0, r2 + adds r0, r1 + strb r4, [r0] + lsls r1, r4, 24 + lsrs r1, 24 + movs r0, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x22_a_three_bytes + bl sub_80334EC + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080356B0: .4byte 0x000160c8 +_080356B4: .4byte 0x02000000 +_080356B8: .4byte gUnknown_02024A60 +_080356BC: .4byte 0x00016068 + thumb_func_end sub_80355C0 + + thumb_func_start sub_80356C0 +sub_80356C0: @ 80356C0 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80356C0 + + thumb_func_start sub_80356CC +sub_80356CC: @ 80356CC + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, _08035744 @ =gUnknown_02023A60 + ldr r0, _08035748 @ =gUnknown_02024A60 + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x3 + adds r0, r2, r0 + ldrb r1, [r0] + lsls r1, 8 + adds r3, 0x2 + adds r2, r3 + ldrb r0, [r2] + orrs r0, r1 + lsls r0, 16 + asrs r7, r0, 16 + ldr r0, _0803574C @ =0x00007fff + cmp r7, r0 + beq _0803575C + ldr r6, _08035750 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, _08035754 @ =gEnemyParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _08035758 @ =gUnknown_03004340 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_8043D84 + b _08035786 + .align 2, 0 +_08035744: .4byte gUnknown_02023A60 +_08035748: .4byte gUnknown_02024A60 +_0803574C: .4byte 0x00007fff +_08035750: .4byte gUnknown_02024A6A +_08035754: .4byte gEnemyParty +_08035758: .4byte gUnknown_03004340 +_0803575C: + ldr r1, _080357A4 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _080357A8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _080357AC @ =gUnknown_03004340 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_8043D84 +_08035786: + ldr r1, _080357B0 @ =gUnknown_03004330 + ldr r0, _080357B4 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _080357B8 @ =sub_80330C8 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080357A4: .4byte gUnknown_02024A6A +_080357A8: .4byte gEnemyParty +_080357AC: .4byte gUnknown_03004340 +_080357B0: .4byte gUnknown_03004330 +_080357B4: .4byte gUnknown_02024A60 +_080357B8: .4byte sub_80330C8 + thumb_func_end sub_80356CC + + thumb_func_start sub_80357BC +sub_80357BC: @ 80357BC + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80357BC + + thumb_func_start sub_80357C8 +sub_80357C8: @ 80357C8 + push {r4,lr} + ldr r4, _08035820 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08035818 + ldr r0, _08035824 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08035828 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _0803582C @ =gEnemyParty + adds r1, r2 + movs r2, 0x9 + bl sub_8045A5C + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _08035830 @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, _08035834 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035838 @ =sub_8033494 + str r1, [r0] +_08035818: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035820: .4byte gUnknown_02024A60 +_08035824: .4byte gUnknown_03004340 +_08035828: .4byte gUnknown_02024A6A +_0803582C: .4byte gEnemyParty +_08035830: .4byte 0x02017810 +_08035834: .4byte gUnknown_03004330 +_08035838: .4byte sub_8033494 + thumb_func_end sub_80357C8 + + thumb_func_start sub_803583C +sub_803583C: @ 803583C + push {r4,r5,lr} + ldr r5, _08035894 @ =gUnknown_02024A60 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0803588C + ldr r4, _08035898 @ =gUnknown_02023A60 + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, _0803589C @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080358A0 @ =sub_8033494 + str r1, [r0] +_0803588C: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08035894: .4byte gUnknown_02024A60 +_08035898: .4byte gUnknown_02023A60 +_0803589C: .4byte gUnknown_03004330 +_080358A0: .4byte sub_8033494 + thumb_func_end sub_803583C + + thumb_func_start sub_80358A4 +sub_80358A4: @ 80358A4 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358A4 + + thumb_func_start sub_80358B0 +sub_80358B0: @ 80358B0 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358B0 + + thumb_func_start sub_80358BC +sub_80358BC: @ 80358BC + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358BC + + thumb_func_start sub_80358C8 +sub_80358C8: @ 80358C8 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358C8 + + thumb_func_start sub_80358D4 +sub_80358D4: @ 80358D4 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358D4 + + thumb_func_start sub_80358E0 +sub_80358E0: @ 80358E0 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358E0 + + thumb_func_start sub_80358EC +sub_80358EC: @ 80358EC + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358EC + + thumb_func_start sub_80358F8 +sub_80358F8: @ 80358F8 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_80358F8 + + thumb_func_start sub_8035904 +sub_8035904: @ 8035904 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_8035904 + + thumb_func_start sub_8035910 +sub_8035910: @ 8035910 + push {lr} + ldr r2, _08035928 @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035928: .4byte gUnknown_020238C8 + thumb_func_end sub_8035910 + + thumb_func_start sub_803592C +sub_803592C: @ 803592C + push {lr} + ldr r3, _08035958 @ =gUnknown_020238C8 + ldr r1, _0803595C @ =gUnknown_02023A60 + ldr r0, _08035960 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035958: .4byte gUnknown_020238C8 +_0803595C: .4byte gUnknown_02023A60 +_08035960: .4byte gUnknown_02024A60 + thumb_func_end sub_803592C + + thumb_func_start sub_8035964 +sub_8035964: @ 8035964 + push {lr} + ldr r2, _08035978 @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035978: .4byte gUnknown_020238C8 + thumb_func_end sub_8035964 + + thumb_func_start sub_803597C +sub_803597C: @ 803597C + push {lr} + ldr r3, _080359A0 @ =gUnknown_020238C8 + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_080359A0: .4byte gUnknown_020238C8 + thumb_func_end sub_803597C + + thumb_func_start dp01t_29_7_blink +dp01t_29_7_blink: @ 80359A4 + push {r4,lr} + ldr r3, _080359CC @ =gSprites + ldr r2, _080359D0 @ =gUnknown_02024BE0 + ldr r4, _080359D4 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _080359D8 + bl sub_80334EC + b _08035A02 + .align 2, 0 +_080359CC: .4byte gSprites +_080359D0: .4byte gUnknown_02024BE0 +_080359D4: .4byte gUnknown_02024A60 +_080359D8: + ldr r1, _08035A08 @ =gUnknown_02024E6D + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_8047858 + ldr r1, _08035A0C @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035A10 @ =bx_blink_t7 + str r1, [r0] +_08035A02: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035A08: .4byte gUnknown_02024E6D +_08035A0C: .4byte gUnknown_03004330 +_08035A10: .4byte bx_blink_t7 + thumb_func_end dp01t_29_7_blink + + thumb_func_start sub_8035A14 +sub_8035A14: @ 8035A14 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_8035A14 + + thumb_func_start sub_8035A20 +sub_8035A20: @ 8035A20 + push {r4,lr} + ldr r4, _08035A5C @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _08035A34 + movs r3, 0xC0 +_08035A34: + ldr r2, _08035A60 @ =gUnknown_02023A60 + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl sub_80334EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035A5C: .4byte gUnknown_02024A60 +_08035A60: .4byte gUnknown_02023A60 + thumb_func_end sub_8035A20 + + thumb_func_start sub_8035A64 +sub_8035A64: @ 8035A64 + push {lr} + ldr r2, _08035A8C @ =gUnknown_02023A60 + ldr r0, _08035A90 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035A8C: .4byte gUnknown_02023A60 +_08035A90: .4byte gUnknown_02024A60 + thumb_func_end sub_8035A64 + + thumb_func_start sub_8035A94 +sub_8035A94: @ 8035A94 + push {lr} + ldr r1, _08035AC4 @ =gUnknown_02024A6A + ldr r0, _08035AC8 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08035ACC @ =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + movs r2, 0x5 + bl PlayCry3 + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035AC4: .4byte gUnknown_02024A6A +_08035AC8: .4byte gUnknown_02024A60 +_08035ACC: .4byte gEnemyParty + thumb_func_end sub_8035A94 + + thumb_func_start dp01t_2E_7_battle_intro +dp01t_2E_7_battle_intro: @ 8035AD0 + push {lr} + ldr r1, _08035AF8 @ =gUnknown_02023A60 + ldr r0, _08035AFC @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80E43C0 + ldr r2, _08035B00 @ =gUnknown_02024DE8 + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035AF8: .4byte gUnknown_02023A60 +_08035AFC: .4byte gUnknown_02024A60 +_08035B00: .4byte gUnknown_02024DE8 + thumb_func_end dp01t_2E_7_battle_intro + + thumb_func_start sub_8035B04 +sub_8035B04: @ 8035B04 + push {r4-r6,lr} + ldr r5, _08035BE0 @ =gUnknown_02024BE0 + ldr r6, _08035BE4 @ =gUnknown_02024A60 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08035BE8 @ =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _08035BEC @ =sub_8078B34 + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08035BF0 @ =sub_8035C10 + bl oamt_set_x3A_32 + ldr r0, _08035BF4 @ =sub_8035C44 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, _08035BF8 @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r6] + strh r0, [r1, 0x8] + ldrb r3, [r6] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r2, _08035BFC @ =0x02017810 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08035BC2 + ldr r0, _08035C00 @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, _08035C04 @ =sub_8044CA0 + str r1, [r0] +_08035BC2: + adds r2, 0x30 + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, _08035C08 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035C0C @ =nullsub_45 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08035BE0: .4byte gUnknown_02024BE0 +_08035BE4: .4byte gUnknown_02024A60 +_08035BE8: .4byte gSprites +_08035BEC: .4byte sub_8078B34 +_08035BF0: .4byte sub_8035C10 +_08035BF4: .4byte sub_8035C44 +_08035BF8: .4byte gTasks +_08035BFC: .4byte 0x02017810 +_08035C00: .4byte gUnknown_02024E68 +_08035C04: .4byte sub_8044CA0 +_08035C08: .4byte gUnknown_03004330 +_08035C0C: .4byte nullsub_45 + thumb_func_end sub_8035B04 + + thumb_func_start sub_8035C10 +sub_8035C10: @ 8035C10 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x6] + bl sub_8031B74 + ldrh r0, [r4, 0x38] + ldr r1, _08035C3C @ =0x000003ff + ands r1, r0 + ldrh r2, [r4, 0x4] + ldr r0, _08035C40 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035C3C: .4byte 0x000003ff +_08035C40: .4byte 0xfffffc00 + thumb_func_end sub_8035C10 + + thumb_func_start sub_8035C44 +sub_8035C44: @ 8035C44 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r7, _08035C9C @ =gUnknown_02024A60 + ldrb r0, [r7] + mov r9, r0 + ldr r1, _08035CA0 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _08035C7E + ldr r0, _08035CA4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08035CB0 +_08035C7E: + ldr r0, _08035CA8 @ =gUnknown_02023A60 + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, _08035CAC @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_803495C + b _08035CF0 + .align 2, 0 +_08035C9C: .4byte gUnknown_02024A60 +_08035CA0: .4byte gTasks +_08035CA4: .4byte gUnknown_020239F8 +_08035CA8: .4byte gUnknown_02023A60 +_08035CAC: .4byte gUnknown_02024A6A +_08035CB0: + ldr r4, _08035D14 @ =gUnknown_02023A60 + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r6, _08035D18 @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_803495C + ldrb r0, [r7] + movs r5, 0x2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_803495C + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_08035CF0: + ldr r1, _08035D1C @ =gUnknown_03004330 + ldr r2, _08035D20 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _08035D24 @ =sub_8032E2C + str r1, [r0] + mov r0, r9 + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08035D14: .4byte gUnknown_02023A60 +_08035D18: .4byte gUnknown_02024A6A +_08035D1C: .4byte gUnknown_03004330 +_08035D20: .4byte gUnknown_02024A60 +_08035D24: .4byte sub_8032E2C + thumb_func_end sub_8035C44 + + thumb_func_start dp01t_30_7_0803D67C +dp01t_30_7_0803D67C: @ 8035D28 + push {r4-r6,lr} + ldr r1, _08035D50 @ =gUnknown_02023A60 + ldr r0, _08035D54 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _08035D58 + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _08035D58 + bl sub_80334EC + b _08035E12 + .align 2, 0 +_08035D50: .4byte gUnknown_02023A60 +_08035D54: .4byte gUnknown_02024A60 +_08035D58: + ldr r3, _08035DA8 @ =gUnknown_02024A60 + ldrb r1, [r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r4, _08035DAC @ =0x02017810 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldr r1, _08035DB0 @ =gUnknown_02023A60 + ldrb r2, [r3] + lsls r0, r2, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + cmp r0, 0 + beq _08035DBC + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r4 + ldrb r2, [r3, 0x1] + lsls r1, r2, 26 + lsrs r0, r1, 27 + cmp r0, 0x1 + bhi _08035DB4 + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + b _08035E12 + .align 2, 0 +_08035DA8: .4byte gUnknown_02024A60 +_08035DAC: .4byte 0x02017810 +_08035DB0: .4byte gUnknown_02023A60 +_08035DB4: + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + strb r0, [r3, 0x1] +_08035DBC: + adds r5, r6, 0 + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, _08035E18 @ =gUnknown_02023A64 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_8044804 + ldr r2, _08035E1C @ =gUnknown_02024E68 + ldrb r1, [r5] + adds r1, r2 + movs r2, 0 + strb r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _08035E20 @ =0x02017810 + adds r0, r3 + strb r2, [r0, 0x5] + ldrb r1, [r5] + lsls r0, r1, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _08035E06 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x5D + strb r1, [r0, 0x5] +_08035E06: + ldr r0, _08035E24 @ =gUnknown_03004330 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _08035E28 @ =sub_8035E2C + str r0, [r1] +_08035E12: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08035E18: .4byte gUnknown_02023A64 +_08035E1C: .4byte gUnknown_02024E68 +_08035E20: .4byte 0x02017810 +_08035E24: .4byte gUnknown_03004330 +_08035E28: .4byte sub_8035E2C + thumb_func_end dp01t_30_7_0803D67C + + thumb_func_start sub_8035E2C +sub_8035E2C: @ 8035E2C + push {r4,lr} + ldr r4, _08035E64 @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _08035E68 @ =0x02017810 + adds r0, r3 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _08035E5C + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 + strb r0, [r1, 0x5] + bl sub_80334EC +_08035E5C: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035E64: .4byte gUnknown_02024A60 +_08035E68: .4byte 0x02017810 + thumb_func_end sub_8035E2C + + thumb_func_start sub_8035E6C +sub_8035E6C: @ 8035E6C + push {lr} + ldr r0, _08035EA4 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r1, _08035EA8 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08035E9A + ldr r2, _08035EAC @ =gTasks + ldr r0, _08035EB0 @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _08035EB4 @ =sub_8044CA0 + str r1, [r0] +_08035E9A: + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035EA4: .4byte gUnknown_02024A60 +_08035EA8: .4byte 0x02017810 +_08035EAC: .4byte gTasks +_08035EB0: .4byte gUnknown_02024E68 +_08035EB4: .4byte sub_8044CA0 + thumb_func_end sub_8035E6C + + thumb_func_start sub_8035EB8 +sub_8035EB8: @ 8035EB8 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_8035EB8 + + thumb_func_start sub_8035EC4 +sub_8035EC4: @ 8035EC4 + push {r4,lr} + ldr r4, _08035F14 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _08035F0A + ldr r3, _08035F18 @ =gSprites + ldr r0, _08035F1C @ =gUnknown_02024BE0 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, _08035F20 @ =gUnknown_02023A60 + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_8031F88 +_08035F0A: + bl sub_80334EC + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08035F14: .4byte gUnknown_02024A60 +_08035F18: .4byte gSprites +_08035F1C: .4byte gUnknown_02024BE0 +_08035F20: .4byte gUnknown_02023A60 + thumb_func_end sub_8035EC4 + + thumb_func_start dp01t_34_7_move_anim_start_t3 +dp01t_34_7_move_anim_start_t3: @ 8035F24 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _08035F68 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08035F7C + ldr r5, _08035F6C @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _08035F70 + bl sub_80334EC + b _08035F7C + .align 2, 0 +_08035F68: .4byte gUnknown_02024A60 +_08035F6C: .4byte gUnknown_02023A60 +_08035F70: + ldr r0, _08035F84 @ =gUnknown_03004330 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _08035F88 @ =sub_80334C0 + str r0, [r1] +_08035F7C: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08035F84: .4byte gUnknown_03004330 +_08035F88: .4byte sub_80334C0 + thumb_func_end dp01t_34_7_move_anim_start_t3 + + thumb_func_start sub_8035F8C +sub_8035F8C: @ 8035F8C + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_8035F8C + + thumb_func_start sub_8035F98 +sub_8035F98: @ 8035F98 + push {lr} + bl sub_80334EC + pop {r0} + bx r0 + thumb_func_end sub_8035F98 + + thumb_func_start sub_8035FA4 +sub_8035FA4: @ 8035FA4 + push {lr} + ldr r0, _08035FD8 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x6 + ands r0, r1 + cmp r0, 0x2 + bne _08035FCE + ldr r2, _08035FDC @ =gMain + ldr r0, _08035FE0 @ =0x0000043d + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, _08035FE4 @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl SetMainCallback2 +_08035FCE: + bl sub_80334EC + pop {r0} + bx r0 + .align 2, 0 +_08035FD8: .4byte gUnknown_020239F8 +_08035FDC: .4byte gMain +_08035FE0: .4byte 0x0000043d +_08035FE4: .4byte gUnknown_030042D0 + thumb_func_end sub_8035FA4 + + thumb_func_start nullsub_46 +nullsub_46: @ 8035FE8 + bx lr + thumb_func_end nullsub_46 + + thumb_func_start ai_switch_perish_song +ai_switch_perish_song: @ 8035FEC + push {lr} + ldr r1, _08036038 @ =gUnknown_02024C98 + ldr r0, _0803603C @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 2 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _0803604C + ldr r0, _08036040 @ =gUnknown_02024CA8 + lsls r1, r2, 3 + subs r1, r2 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0xF] + lsls r0, 28 + cmp r0, 0 + bne _0803604C + adds r0, r2, 0 + bl battle_get_per_side_status + ldr r1, _08036044 @ =0x02000000 + lsls r0, 24 + lsrs r0, 25 + ldr r2, _08036048 @ =0x000160c8 + adds r0, r2 + adds r0, r1 + movs r1, 0x6 + strb r1, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _0803604E + .align 2, 0 +_08036038: .4byte gUnknown_02024C98 +_0803603C: .4byte gUnknown_02024A60 +_08036040: .4byte gUnknown_02024CA8 +_08036044: .4byte 0x02000000 +_08036048: .4byte 0x000160c8 +_0803604C: + movs r0, 0 +_0803604E: + pop {r1} + bx r1 + thumb_func_end ai_switch_perish_song + + thumb_func_start sub_8036054 +sub_8036054: @ 8036054 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r0, _0803606C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080360A0 + b _080361C8 + .align 2, 0 +_0803606C: .4byte gUnknown_020239F8 +_08036070: + ldr r0, _08036094 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_get_per_side_status + ldr r1, _08036098 @ =0x02000000 + lsls r0, 24 + lsrs r0, 25 + ldr r2, _0803609C @ =0x000160c8 + adds r0, r2 + adds r0, r1 + strb r6, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _080361CA + .align 2, 0 +_08036094: .4byte gUnknown_02024A60 +_08036098: .4byte 0x02000000 +_0803609C: .4byte 0x000160c8 +_080360A0: + ldr r4, _080361D8 @ =gBattleMons + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + movs r1, 0x58 + muls r0, r1 + adds r0, r4 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x19 + beq _080360BC + b _080361C8 +_080360BC: + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r2, r0, 24 + movs r6, 0 + adds r7, r4, 0 + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r4, r0, r7 + movs r3, 0x20 + adds r3, r4 + mov r8, r3 +_080360D8: + lsls r1, r6, 1 + ldr r0, _080361DC @ =gUnknown_02024A60 + ldrb r0, [r0] + muls r0, r5 + adds r1, r0 + adds r0, r7, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _08036104 + ldrh r1, [r4] + mov r3, r8 + ldrb r2, [r3] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + bne _080361C8 +_08036104: + adds r6, 0x1 + cmp r6, 0x3 + ble _080360D8 + movs r6, 0 + ldr r0, _080361E0 @ =gEnemyParty + mov r9, r0 +_08036110: + movs r0, 0x64 + adds r5, r6, 0 + muls r5, r0 + mov r2, r9 + adds r4, r5, r2 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080361C2 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080361C2 + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080361C2 + ldr r1, _080361E4 @ =gUnknown_02024A6A + ldr r0, _080361DC @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080361C2 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r2, r0, 24 + movs r4, 0 + mov r8, r5 + ldr r1, _080361D8 @ =gBattleMons + movs r0, 0x58 + muls r0, r2 + adds r5, r0, r1 + adds r7, r5, 0 + adds r7, 0x20 +_0803617C: + adds r1, r4, 0 + adds r1, 0xD + mov r0, r8 + add r0, r9 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _080361BC + ldrh r1, [r5] + ldrb r2, [r7] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _080361BC + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bhi _080361BC + b _08036070 +_080361BC: + adds r4, 0x1 + cmp r4, 0x3 + ble _0803617C +_080361C2: + adds r6, 0x1 + cmp r6, 0x5 + ble _08036110 +_080361C8: + movs r0, 0 +_080361CA: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080361D8: .4byte gBattleMons +_080361DC: .4byte gUnknown_02024A60 +_080361E0: .4byte gEnemyParty +_080361E4: .4byte gUnknown_02024A6A + thumb_func_end sub_8036054 + + thumb_func_start sub_80361E8 +sub_80361E8: @ 80361E8 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + movs r0, 0x1 + bl ai_has_super_effective_move_on_field + lsls r0, 24 + cmp r0, 0 + beq _08036214 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x3 + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + beq _08036214 + b _08036400 +_08036214: + ldr r1, _0803627C @ =gUnknown_02024C3C + ldr r5, _08036280 @ =gUnknown_02024A60 + ldrb r3, [r5] + lsls r0, r3, 1 + adds r4, r0, r1 + ldrh r1, [r4] + cmp r1, 0 + bne _08036226 + b _08036400 +_08036226: + ldr r0, _08036284 @ =0x0000ffff + cmp r1, r0 + bne _0803622E + b _08036400 +_0803622E: + ldr r2, _08036288 @ =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _08036242 + b _08036400 +_08036242: + ldr r0, _0803628C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080362AE + mov r8, r3 + mov r0, r8 + bl battle_get_per_side_status + movs r4, 0x2 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r1, _08036290 @ =gUnknown_02024C0C + ldrb r1, [r1] + ldr r2, _08036294 @ =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08036298 + ldrb r7, [r5] + b _080362B2 + .align 2, 0 +_0803627C: .4byte gUnknown_02024C3C +_08036280: .4byte gUnknown_02024A60 +_08036284: .4byte 0x0000ffff +_08036288: .4byte gBattleMoves +_0803628C: .4byte gUnknown_020239F8 +_08036290: .4byte gUnknown_02024C0C +_08036294: .4byte gBitTable +_08036298: + ldrb r0, [r5] + bl battle_get_per_side_status + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r7, r0, 24 + b _080362B2 +_080362AE: + adds r7, r3, 0 + mov r8, r7 +_080362B2: + ldr r3, _080362D4 @ =gBattleMoves + ldr r1, _080362D8 @ =gUnknown_02024C3C + ldr r2, _080362DC @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + ldrb r0, [r0, 0x2] + adds r1, r2, 0 + cmp r0, 0xA + bne _080362E0 + movs r0, 0x12 + b _080362F2 + .align 2, 0 +_080362D4: .4byte gBattleMoves +_080362D8: .4byte gUnknown_02024C3C +_080362DC: .4byte gUnknown_02024A60 +_080362E0: + cmp r0, 0xB + bne _080362EA + movs r2, 0xB + mov r10, r2 + b _080362F4 +_080362EA: + cmp r0, 0xD + beq _080362F0 + b _08036400 +_080362F0: + movs r0, 0xA +_080362F2: + mov r10, r0 +_080362F4: + ldr r2, _08036308 @ =gBattleMons + ldrb r1, [r1] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, r10 + bne _0803633C + b _08036400 + .align 2, 0 +_08036308: .4byte gBattleMons +_0803630C: + ldr r0, _08036330 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_get_per_side_status + ldr r1, _08036334 @ =0x02000000 + lsls r0, 24 + lsrs r0, 25 + ldr r2, _08036338 @ =0x000160c8 + adds r0, r2 + adds r0, r1 + strb r6, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _08036402 + .align 2, 0 +_08036330: .4byte gUnknown_02024A60 +_08036334: .4byte 0x02000000 +_08036338: .4byte 0x000160c8 +_0803633C: + movs r6, 0 + ldr r0, _080363CC @ =gBaseStats + mov r9, r0 +_08036342: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _080363D0 @ =gEnemyParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080363FA + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080363FA + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080363FA + ldr r1, _080363D4 @ =gUnknown_02024A6A + mov r2, r8 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080363FA + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080363FA + ldr r1, _080363D8 @ =0x02000000 + ldr r0, _080363DC @ =0x00016068 + add r0, r8 + adds r0, r1 + ldrb r0, [r0] + cmp r6, r0 + beq _080363FA + ldr r2, _080363DC @ =0x00016068 + adds r0, r7, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r6, r0 + beq _080363FA + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + movs r1, 0x2E + bl GetMonData + cmp r0, 0 + beq _080363E0 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x17] + b _080363EA + .align 2, 0 +_080363CC: .4byte gBaseStats +_080363D0: .4byte gEnemyParty +_080363D4: .4byte gUnknown_02024A6A +_080363D8: .4byte 0x02000000 +_080363DC: .4byte 0x00016068 +_080363E0: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + add r0, r9 + ldrb r0, [r0, 0x16] +_080363EA: + cmp r10, r0 + bne _080363FA + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _0803630C +_080363FA: + adds r6, 0x1 + cmp r6, 0x5 + ble _08036342 +_08036400: + movs r0, 0 +_08036402: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80361E8 + + thumb_func_start ai_switchout_natural_cure +ai_switchout_natural_cure: @ 8036410 + push {r4,r5,lr} + ldr r3, _08036468 @ =gBattleMons + ldr r5, _0803646C @ =gUnknown_02024A60 + ldrb r4, [r5] + movs r0, 0x58 + adds r2, r4, 0 + muls r2, r0 + adds r0, r3, 0 + adds r0, 0x4C + adds r0, r2, r0 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _080364D8 + adds r1, r2, r3 + adds r0, r1, 0 + adds r0, 0x20 + ldrb r0, [r0] + cmp r0, 0x1E + bne _080364D8 + ldrh r0, [r1, 0x2C] + ldrh r1, [r1, 0x28] + lsrs r0, 1 + cmp r1, r0 + bcc _080364D8 + ldr r1, _08036470 @ =gUnknown_02024C3C + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + cmp r1, 0 + beq _08036456 + ldr r0, _08036474 @ =0x0000ffff + cmp r1, r0 + bne _08036478 +_08036456: + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _08036478 + ldrb r0, [r5] + b _080364E0 + .align 2, 0 +_08036468: .4byte gBattleMons +_0803646C: .4byte gUnknown_02024A60 +_08036470: .4byte gUnknown_02024C3C +_08036474: .4byte 0x0000ffff +_08036478: + ldr r2, _080364A4 @ =gBattleMoves + ldr r1, _080364A8 @ =gUnknown_02024C3C + ldr r4, _080364AC @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080364B0 + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _080364B0 + ldrb r0, [r4] + b _080364E0 + .align 2, 0 +_080364A4: .4byte gBattleMoves +_080364A8: .4byte gUnknown_02024C3C +_080364AC: .4byte gUnknown_02024A60 +_080364B0: + movs r0, 0x8 + movs r1, 0x1 + bl sub_80366A4 + lsls r0, 24 + cmp r0, 0 + bne _080364FE + movs r0, 0x4 + movs r1, 0x1 + bl sub_80366A4 + lsls r0, 24 + cmp r0, 0 + bne _080364FE + bl Random + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + bne _080364DC +_080364D8: + movs r0, 0 + b _08036500 +_080364DC: + ldr r0, _08036508 @ =gUnknown_02024A60 + ldrb r0, [r0] +_080364E0: + bl battle_get_per_side_status + ldr r1, _0803650C @ =0x02000000 + lsls r0, 24 + lsrs r0, 25 + ldr r2, _08036510 @ =0x000160c8 + adds r0, r2 + adds r0, r1 + movs r1, 0x6 + strb r1, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb +_080364FE: + movs r0, 0x1 +_08036500: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_08036508: .4byte gUnknown_02024A60 +_0803650C: .4byte 0x02000000 +_08036510: .4byte 0x000160c8 + thumb_func_end ai_switchout_natural_cure + + thumb_func_start ai_has_super_effective_move_on_field +ai_has_super_effective_move_on_field: @ 8036514 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _080365AC @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _080365B0 @ =gBitTable + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0803659C + movs r4, 0 + ldr r6, _080365B4 @ =gBattleMons + movs r7, 0x58 + adds r0, r3, 0 + muls r0, r7 + adds r5, r0, r6 + movs r0, 0x20 + adds r0, r5 + mov r9, r0 +_08036550: + lsls r1, r4, 1 + ldr r0, _080365B8 @ =gUnknown_02024A60 + ldrb r0, [r0] + muls r0, r7 + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _08036596 + ldrh r1, [r5] + mov r3, r9 + ldrb r2, [r3] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _08036596 + mov r0, r8 + cmp r0, 0 + bne _080365C0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _080365C0 +_08036596: + adds r4, 0x1 + cmp r4, 0x3 + ble _08036550 +_0803659C: + ldr r0, _080365BC @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _080365C4 + b _0803663E + .align 2, 0 +_080365AC: .4byte gUnknown_02024C0C +_080365B0: .4byte gBitTable +_080365B4: .4byte gBattleMons +_080365B8: .4byte gUnknown_02024A60 +_080365BC: .4byte gUnknown_020239F8 +_080365C0: + movs r0, 0x1 + b _08036640 +_080365C4: + movs r0, 0x2 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r3, r0, 24 + ldr r0, _0803664C @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08036650 @ =gBitTable + lsls r0, r3, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + bne _0803663E + movs r4, 0 + ldr r6, _08036654 @ =gBattleMons + movs r7, 0x58 + adds r0, r3, 0 + muls r0, r7 + adds r5, r0, r6 + movs r3, 0x20 + adds r3, r5 + mov r9, r3 +_080365F2: + lsls r1, r4, 1 + ldr r0, _08036658 @ =gUnknown_02024A60 + ldrb r0, [r0] + muls r0, r7 + adds r1, r0 + adds r0, r6, 0 + adds r0, 0xC + adds r1, r0 + ldrh r0, [r1] + cmp r0, 0 + beq _08036638 + ldrh r1, [r5] + mov r3, r9 + ldrb r2, [r3] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _08036638 + mov r0, r8 + cmp r0, 0 + bne _080365C0 + bl Random + lsls r0, 16 + lsrs r0, 16 + movs r1, 0xA + bl __umodsi3 + lsls r0, 16 + cmp r0, 0 + bne _080365C0 +_08036638: + adds r4, 0x1 + cmp r4, 0x3 + ble _080365F2 +_0803663E: + movs r0, 0 +_08036640: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803664C: .4byte gUnknown_02024C0C +_08036650: .4byte gBitTable +_08036654: .4byte gBattleMons +_08036658: .4byte gUnknown_02024A60 + thumb_func_end ai_has_super_effective_move_on_field + + thumb_func_start ai_is_too_invested_in_stat_buffs +ai_is_too_invested_in_stat_buffs: @ 803665C + push {r4,lr} + movs r4, 0 + ldr r1, _0803669C @ =gBattleMons + ldr r0, _080366A0 @ =gUnknown_02024A60 + ldrb r2, [r0] + movs r0, 0x58 + muls r0, r2 + adds r1, 0x18 + adds r2, r0, r1 + movs r3, 0x7 +_08036670: + ldrb r1, [r2] + movs r0, 0 + ldrsb r0, [r2, r0] + cmp r0, 0x6 + ble _08036686 + subs r1, 0x6 + lsls r0, r4, 24 + asrs r0, 24 + adds r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 +_08036686: + adds r2, 0x1 + subs r3, 0x1 + cmp r3, 0 + bge _08036670 + movs r0, 0 + cmp r4, 0x3 + bls _08036696 + movs r0, 0x1 +_08036696: + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0803669C: .4byte gBattleMons +_080366A0: .4byte gUnknown_02024A60 + thumb_func_end ai_is_too_invested_in_stat_buffs + + thumb_func_start sub_80366A4 +sub_80366A4: @ 80366A4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x4] + ldr r1, _08036730 @ =gUnknown_02024C3C + ldr r5, _08036734 @ =gUnknown_02024A60 + ldrb r3, [r5] + lsls r0, r3, 1 + adds r4, r0, r1 + ldrh r1, [r4] + cmp r1, 0 + bne _080366CE + b _080368D8 +_080366CE: + ldr r0, _08036738 @ =0x0000ffff + cmp r1, r0 + bne _080366D6 + b _080368D8 +_080366D6: + ldr r0, _0803673C @ =gUnknown_02024C5C + adds r0, r3, r0 + ldrb r0, [r0] + cmp r0, 0xFF + bne _080366E2 + b _080368D8 +_080366E2: + ldr r2, _08036740 @ =gBattleMoves + ldrh r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x1] + cmp r0, 0 + bne _080366F6 + b _080368D8 +_080366F6: + ldr r0, _08036744 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08036798 + mov r9, r3 + mov r0, r9 + bl battle_get_per_side_status + movs r4, 0x2 + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r1, _08036748 @ =gUnknown_02024C0C + ldrb r1, [r1] + ldr r2, _0803674C @ =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08036750 + ldrb r5, [r5] + mov r10, r5 + b _0803679C + .align 2, 0 +_08036730: .4byte gUnknown_02024C3C +_08036734: .4byte gUnknown_02024A60 +_08036738: .4byte 0x0000ffff +_0803673C: .4byte gUnknown_02024C5C +_08036740: .4byte gBattleMoves +_08036744: .4byte gUnknown_020239F8 +_08036748: .4byte gUnknown_02024C0C +_0803674C: .4byte gBitTable +_08036750: + ldrb r0, [r5] + bl battle_get_per_side_status + eors r0, r4 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + b _0803679C +_08036768: + ldr r0, _0803678C @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_get_per_side_status + ldr r1, _08036790 @ =0x02000000 + lsls r0, 24 + lsrs r0, 25 + ldr r2, _08036794 @ =0x000160c8 + adds r0, r2 + adds r0, r1 + strb r6, [r0] + movs r0, 0x1 + movs r1, 0x2 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + movs r0, 0x1 + b _080368DA + .align 2, 0 +_0803678C: .4byte gUnknown_02024A60 +_08036790: .4byte 0x02000000 +_08036794: .4byte 0x000160c8 +_08036798: + mov r9, r3 + mov r10, r9 +_0803679C: + movs r6, 0 +_0803679E: + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + ldr r0, _08036830 @ =gEnemyParty + adds r5, r1, r0 + adds r0, r5, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + bne _080367B6 + b _080368D0 +_080367B6: + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + bne _080367C4 + b _080368D0 +_080367C4: + adds r0, r5, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080368D0 + ldr r1, _08036834 @ =gUnknown_02024A6A + mov r2, r9 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080368D0 + mov r2, r10 + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r6, r0 + beq _080368D0 + ldr r1, _08036838 @ =0x02000000 + ldr r0, _0803683C @ =0x00016068 + add r0, r9 + adds r0, r1 + ldrb r0, [r0] + cmp r6, r0 + beq _080368D0 + ldr r0, _0803683C @ =0x00016068 + add r0, r10 + adds r0, r1 + ldrb r0, [r0] + cmp r6, r0 + beq _080368D0 + adds r0, r5, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + adds r0, r5, 0 + movs r1, 0x2E + bl GetMonData + cmp r0, 0 + beq _08036844 + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r1, _08036840 @ =gBaseStats + adds r0, r1 + ldrb r2, [r0, 0x17] + b _08036850 + .align 2, 0 +_08036830: .4byte gEnemyParty +_08036834: .4byte gUnknown_02024A6A +_08036838: .4byte 0x02000000 +_0803683C: .4byte 0x00016068 +_08036840: .4byte gBaseStats +_08036844: + lsls r0, r4, 3 + subs r0, r4 + lsls r0, 2 + ldr r2, _080368EC @ =gBaseStats + adds r0, r2 + ldrb r2, [r0, 0x16] +_08036850: + ldr r1, _080368F0 @ =gUnknown_02024C3C + ldr r5, _080368F4 @ =gUnknown_02024A60 + ldrb r0, [r5] + lsls r0, 1 + adds r0, r1 + ldrh r0, [r0] + adds r1, r4, 0 + bl ai_rate_move + ldr r1, [sp] + ands r1, r0 + cmp r1, 0 + beq _080368D0 + ldr r1, _080368F8 @ =gUnknown_02024C5C + ldrb r0, [r5] + adds r0, r1 + ldrb r0, [r0] + mov r9, r0 + movs r4, 0 + movs r0, 0x64 + adds r1, r6, 0 + muls r1, r0 + mov r8, r1 + ldr r1, _080368FC @ =gBattleMons + movs r0, 0x58 + mov r2, r9 + muls r2, r0 + adds r0, r2, 0 + adds r5, r0, r1 + adds r7, r5, 0 + adds r7, 0x20 +_0803688E: + ldr r0, _08036900 @ =gEnemyParty + adds r1, r4, 0 + adds r1, 0xD + add r0, r8 + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0 + beq _080368CA + ldrh r1, [r5] + ldrb r2, [r7] + bl ai_rate_move + lsls r0, 24 + lsrs r1, r0, 24 + movs r0, 0x2 + ands r1, r0 + cmp r1, 0 + beq _080368CA + bl Random + lsls r0, 16 + lsrs r0, 16 + ldr r1, [sp, 0x4] + bl __modsi3 + cmp r0, 0 + bne _080368CA + b _08036768 +_080368CA: + adds r4, 0x1 + cmp r4, 0x3 + ble _0803688E +_080368D0: + adds r6, 0x1 + cmp r6, 0x5 + bgt _080368D8 + b _0803679E +_080368D8: + movs r0, 0 +_080368DA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080368EC: .4byte gBaseStats +_080368F0: .4byte gUnknown_02024C3C +_080368F4: .4byte gUnknown_02024A60 +_080368F8: .4byte gUnknown_02024C5C +_080368FC: .4byte gBattleMons +_08036900: .4byte gEnemyParty + thumb_func_end sub_80366A4 + + thumb_func_start sub_8036904 +sub_8036904: @ 8036904 + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x4 + ldr r6, _080369E0 @ =gBattleMons + ldr r4, _080369E4 @ =gUnknown_02024A60 + ldrb r2, [r4] + movs r5, 0x58 + adds r0, r2, 0 + muls r0, r5 + adds r1, r6, 0 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + ldr r1, _080369E8 @ =0x0400e000 + ands r0, r1 + cmp r0, 0 + beq _0803692A + b _08036AFC +_0803692A: + ldr r0, _080369EC @ =gUnknown_02024C98 + lsls r1, r2, 2 + adds r1, r0 + ldr r1, [r1] + movs r0, 0x80 + lsls r0, 3 + ands r1, r0 + cmp r1, 0 + beq _0803693E + b _08036AFC +_0803693E: + str r1, [sp] + movs r0, 0xC + adds r1, r2, 0 + movs r2, 0x17 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08036956 + b _08036AFC +_08036956: + ldrb r1, [r4] + str r0, [sp] + movs r0, 0xC + movs r2, 0x47 + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _0803696E + b _08036AFC +_0803696E: + str r0, [sp] + movs r0, 0xE + movs r1, 0 + movs r2, 0x2A + movs r3, 0 + bl sub_8018324 + lsls r0, 24 + cmp r0, 0 + beq _080369A0 + ldrb r0, [r4] + muls r0, r5 + adds r1, r0, r6 + adds r0, r1, 0 + adds r0, 0x21 + ldrb r0, [r0] + cmp r0, 0x8 + bne _08036994 + b _08036AFC +_08036994: + adds r0, r1, 0 + adds r0, 0x22 + ldrb r0, [r0] + cmp r0, 0x8 + bne _080369A0 + b _08036AFC +_080369A0: + movs r0, 0 + mov r8, r0 + ldr r0, _080369F0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08036A12 + ldr r4, _080369E4 @ =gUnknown_02024A60 + ldrb r7, [r4] + adds r0, r7, 0 + bl battle_get_per_side_status + movs r5, 0x2 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r1, _080369F4 @ =gUnknown_02024C0C + ldrb r1, [r1] + ldr r2, _080369F8 @ =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _080369FC + ldrb r6, [r4] + b _08036A18 + .align 2, 0 +_080369E0: .4byte gBattleMons +_080369E4: .4byte gUnknown_02024A60 +_080369E8: .4byte 0x0400e000 +_080369EC: .4byte gUnknown_02024C98 +_080369F0: .4byte gUnknown_020239F8 +_080369F4: .4byte gUnknown_02024C0C +_080369F8: .4byte gBitTable +_080369FC: + ldrb r0, [r4] + bl battle_get_per_side_status + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + b _08036A18 +_08036A12: + ldr r0, _08036AE8 @ =gUnknown_02024A60 + ldrb r6, [r0] + adds r7, r6, 0 +_08036A18: + movs r5, 0 +_08036A1A: + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08036AEC @ =gEnemyParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08036A7E + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _08036A7E + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _08036A7E + ldr r1, _08036AF0 @ =gUnknown_02024A6A + lsls r0, r7, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _08036A7E + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r5, r0 + beq _08036A7E + ldr r1, _08036AF4 @ =0x02000000 + ldr r2, _08036AF8 @ =0x00016068 + adds r0, r7, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r5, r0 + beq _08036A7E + adds r0, r6, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r5, r0 + beq _08036A7E + movs r0, 0x1 + add r8, r0 +_08036A7E: + adds r5, 0x1 + cmp r5, 0x5 + ble _08036A1A + mov r2, r8 + cmp r2, 0 + beq _08036AFC + bl ai_switch_perish_song + lsls r0, 24 + cmp r0, 0 + bne _08036AE4 + bl sub_8036054 + lsls r0, 24 + cmp r0, 0 + bne _08036AE4 + bl sub_80361E8 + lsls r0, 24 + cmp r0, 0 + bne _08036AE4 + bl ai_switchout_natural_cure + lsls r0, 24 + cmp r0, 0 + bne _08036AE4 + movs r0, 0 + bl ai_has_super_effective_move_on_field + lsls r0, 24 + cmp r0, 0 + bne _08036AFC + bl ai_is_too_invested_in_stat_buffs + lsls r0, 24 + cmp r0, 0 + bne _08036AFC + movs r0, 0x8 + movs r1, 0x2 + bl sub_80366A4 + lsls r0, 24 + cmp r0, 0 + bne _08036AE4 + movs r0, 0x4 + movs r1, 0x3 + bl sub_80366A4 + lsls r0, 24 + cmp r0, 0 + beq _08036AFC +_08036AE4: + movs r0, 0x1 + b _08036AFE + .align 2, 0 +_08036AE8: .4byte gUnknown_02024A60 +_08036AEC: .4byte gEnemyParty +_08036AF0: .4byte gUnknown_02024A6A +_08036AF4: .4byte 0x02000000 +_08036AF8: .4byte 0x00016068 +_08036AFC: + movs r0, 0 +_08036AFE: + add sp, 0x4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8036904 + + thumb_func_start sub_8036B0C +sub_8036B0C: @ 8036B0C + push {r4-r6,lr} + ldr r5, _08036B68 @ =gUnknown_020239F8 + ldrh r1, [r5] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08036B1C + b _08036C2E +_08036B1C: + bl sub_8036904 + lsls r0, 24 + cmp r0, 0 + bne _08036B28 + b _08036C24 +_08036B28: + ldr r4, _08036B6C @ =0x02000000 + ldr r0, _08036B70 @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 25 + ldr r1, _08036B74 @ =0x000160c8 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0x6 + bne _08036BEA + bl sub_8036CD4 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x6 + bne _08036BD4 + ldrh r1, [r5] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _08036B78 + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 + adds r6, r5, 0 + b _08036B8C + .align 2, 0 +_08036B68: .4byte gUnknown_020239F8 +_08036B6C: .4byte 0x02000000 +_08036B70: .4byte gUnknown_02024A60 +_08036B74: .4byte 0x000160c8 +_08036B78: + movs r0, 0x1 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r6, r0, 24 + movs r0, 0x3 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r5, r0, 24 +_08036B8C: + movs r4, 0 +_08036B8E: + movs r0, 0x64 + muls r0, r4 + ldr r1, _08036C0C @ =gEnemyParty + adds r0, r1 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08036BCE + ldr r1, _08036C10 @ =gUnknown_02024A6A + lsls r0, r6, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08036BCE + lsls r0, r5, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r4, r0 + beq _08036BCE + ldr r1, _08036C14 @ =0x02000000 + ldr r2, _08036C18 @ =0x00016068 + adds r0, r6, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r4, r0 + beq _08036BCE + adds r0, r5, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r4, r0 + bne _08036BD4 +_08036BCE: + adds r4, 0x1 + cmp r4, 0x5 + ble _08036B8E +_08036BD4: + ldr r0, _08036C1C @ =gUnknown_02024A60 + ldrb r0, [r0] + bl battle_get_per_side_status + ldr r1, _08036C14 @ =0x02000000 + lsls r0, 24 + lsrs r0, 25 + ldr r3, _08036C20 @ =0x000160c8 + adds r0, r3 + adds r0, r1 + strb r4, [r0] +_08036BEA: + ldr r4, _08036C1C @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_get_per_side_status + ldr r2, _08036C14 @ =0x02000000 + ldrb r1, [r4] + ldr r3, _08036C18 @ =0x00016068 + adds r1, r3 + adds r1, r2 + lsls r0, 24 + lsrs r0, 25 + adds r3, 0x60 + adds r0, r3 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + b _08036C40 + .align 2, 0 +_08036C0C: .4byte gEnemyParty +_08036C10: .4byte gUnknown_02024A6A +_08036C14: .4byte 0x02000000 +_08036C18: .4byte 0x00016068 +_08036C1C: .4byte gUnknown_02024A60 +_08036C20: .4byte 0x000160c8 +_08036C24: + bl sub_803708C + lsls r0, 24 + cmp r0, 0 + bne _08036C40 +_08036C2E: + ldr r0, _08036C48 @ =gUnknown_02024A60 + ldrb r0, [r0] + movs r2, 0x1 + eors r2, r0 + lsls r2, 8 + movs r0, 0x1 + movs r1, 0 + bl dp01_build_cmdbuf_x21_a_bb +_08036C40: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08036C48: .4byte gUnknown_02024A60 + thumb_func_end sub_8036B0C + + thumb_func_start sub_8036C4C +sub_8036C4C: @ 8036C4C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + adds r6, r3, 0 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] + lsls r1, 24 + lsrs r1, 24 + mov r9, r1 + lsls r2, 24 + lsrs r2, 24 + mov r8, r2 + movs r7, 0 + ldr r0, _08036CD0 @ =gTypeEffectiveness + mov r10, r0 + ldrb r0, [r0] + cmp r0, 0xFF + beq _08036CBE + mov r5, r10 +_08036C7A: + ldrb r0, [r5] + cmp r0, 0xFE + beq _08036CB0 + ldr r1, [sp] + cmp r0, r1 + bne _08036CB0 + ldrb r4, [r5, 0x1] + cmp r4, r9 + bne _08036C9A + ldrb r1, [r6] + ldrb r0, [r5, 0x2] + muls r0, r1 + movs r1, 0xA + bl __divsi3 + strb r0, [r6] +_08036C9A: + cmp r4, r8 + bne _08036CB0 + cmp r9, r8 + beq _08036CB0 + ldrb r1, [r6] + ldrb r0, [r5, 0x2] + muls r0, r1 + movs r1, 0xA + bl __divsi3 + strb r0, [r6] +_08036CB0: + adds r5, 0x3 + adds r7, 0x3 + mov r1, r10 + adds r0, r7, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _08036C7A +_08036CBE: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08036CD0: .4byte gTypeEffectiveness + thumb_func_end sub_8036C4C + + thumb_func_start sub_8036CD4 +sub_8036CD4: @ 8036CD4 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + ldr r0, _08036D1C @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08036D78 + ldr r4, _08036D20 @ =gUnknown_02024A60 + ldrb r0, [r4] + str r0, [sp, 0xC] + bl battle_get_per_side_status + movs r5, 0x2 + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + ldr r1, _08036D24 @ =gUnknown_02024C0C + ldrb r1, [r1] + ldr r2, _08036D28 @ =gBitTable + lsls r0, 24 + lsrs r0, 22 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08036D2C + ldrb r4, [r4] + str r4, [sp, 0x10] + b _08036D42 + .align 2, 0 +_08036D1C: .4byte gUnknown_020239F8 +_08036D20: .4byte gUnknown_02024A60 +_08036D24: .4byte gUnknown_02024C0C +_08036D28: .4byte gBitTable +_08036D2C: + ldrb r0, [r4] + bl battle_get_per_side_status + eors r0, r5 + lsls r0, 24 + lsrs r0, 24 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x10] +_08036D42: + bl Random + movs r3, 0x2 + ands r0, r3 + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _08036D70 @ =gUnknown_02024C0C + ldrb r1, [r0] + ldr r2, _08036D74 @ =gBitTable + mov r4, r10 + lsls r0, r4, 2 + adds r0, r2 + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08036D8C + eors r4, r3 + lsls r0, r4, 24 + lsrs r0, 24 + mov r10, r0 + b _08036D8C + .align 2, 0 +_08036D70: .4byte gUnknown_02024C0C +_08036D74: .4byte gBitTable +_08036D78: + movs r0, 0 + bl battle_get_side_with_given_state + lsls r0, 24 + lsrs r0, 24 + mov r10, r0 + ldr r0, _08036E5C @ =gUnknown_02024A60 + ldrb r0, [r0] + str r0, [sp, 0x10] + str r0, [sp, 0xC] +_08036D8C: + movs r0, 0 + mov r9, r0 + mov r1, sp + str r1, [sp, 0x14] +_08036D94: + movs r2, 0 + str r2, [sp, 0x4] + movs r3, 0x6 + str r3, [sp, 0x8] + movs r7, 0 + ldr r4, _08036E60 @ =gBitTable + mov r8, r4 +_08036DA2: + movs r0, 0x64 + adds r1, r7, 0 + muls r1, r0 + ldr r0, _08036E64 @ =gEnemyParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r5, r0, 16 + cmp r5, 0 + beq _08036E7C + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08036E7C + mov r1, r8 + ldr r0, [r1] + mov r2, r9 + ands r0, r2 + cmp r0, 0 + bne _08036E7C + ldr r1, _08036E68 @ =gUnknown_02024A6A + ldr r3, [sp, 0xC] + lsls r0, r3, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08036E7C + ldr r4, [sp, 0x10] + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08036E7C + ldr r1, _08036E6C @ =0x02000000 + ldr r2, _08036E70 @ =0x00016068 + adds r0, r3, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r7, r0 + beq _08036E7C + adds r0, r4, r2 + adds r0, r1 + ldrb r0, [r0] + cmp r7, r0 + beq _08036E7C + ldr r1, _08036E74 @ =gBaseStats + lsls r0, r5, 3 + subs r0, r5 + lsls r0, 2 + adds r0, r1 + ldrb r5, [r0, 0x6] + ldrb r6, [r0, 0x7] + movs r0, 0xA + ldr r3, [sp, 0x14] + strb r0, [r3] + movs r0, 0x58 + mov r4, r10 + muls r4, r0 + ldr r0, _08036E78 @ =gBattleMons + adds r4, r0 + adds r0, r4, 0 + adds r0, 0x21 + ldrb r0, [r0] + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, sp + bl sub_8036C4C + adds r4, 0x22 + ldrb r0, [r4] + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, sp + bl sub_8036C4C + ldr r2, [sp, 0x4] + ldr r1, [sp, 0x14] + ldrb r1, [r1] + cmp r2, r1 + bcs _08036E8A + ldr r2, [sp, 0x14] + ldrb r2, [r2] + str r2, [sp, 0x4] + lsls r0, r7, 24 + lsrs r0, 24 + str r0, [sp, 0x8] + b _08036E8A + .align 2, 0 +_08036E5C: .4byte gUnknown_02024A60 +_08036E60: .4byte gBitTable +_08036E64: .4byte gEnemyParty +_08036E68: .4byte gUnknown_02024A6A +_08036E6C: .4byte 0x02000000 +_08036E70: .4byte 0x00016068 +_08036E74: .4byte gBaseStats +_08036E78: .4byte gBattleMons +_08036E7C: + mov r3, r8 + ldr r0, [r3] + mov r4, r9 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r0, 24 + mov r9, r0 +_08036E8A: + movs r0, 0x4 + add r8, r0 + adds r7, 0x1 + cmp r7, 0x5 + ble _08036DA2 + ldr r1, [sp, 0x8] + cmp r1, 0x6 + beq _08036EF8 + movs r7, 0 + movs r0, 0x64 + adds r5, r1, 0 + muls r5, r0 + ldr r6, _08036EEC @ =gEnemyParty +_08036EA4: + adds r1, r7, 0 + adds r1, 0xD + adds r0, r5, r6 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + cmp r4, 0 + beq _08036ECA + ldr r0, _08036EF0 @ =gUnknown_02024A60 + ldrb r1, [r0] + adds r0, r4, 0 + mov r2, r10 + bl move_effectiveness_something + movs r1, 0x2 + ands r1, r0 + cmp r1, 0 + bne _08036ED0 +_08036ECA: + adds r7, 0x1 + cmp r7, 0x3 + ble _08036EA4 +_08036ED0: + cmp r7, 0x4 + beq _08036ED6 + b _08036FEE +_08036ED6: + ldr r2, [sp, 0x8] + lsls r0, r2, 2 + ldr r3, _08036EF4 @ =gBitTable + adds r0, r3 + ldr r0, [r0] + mov r4, r9 + orrs r4, r0 + lsls r0, r4, 24 + lsrs r0, 24 + b _08036EFA + .align 2, 0 +_08036EEC: .4byte gEnemyParty +_08036EF0: .4byte gUnknown_02024A60 +_08036EF4: .4byte gBitTable +_08036EF8: + movs r0, 0x3F +_08036EFA: + mov r9, r0 + mov r1, r9 + cmp r1, 0x3F + beq _08036F04 + b _08036D94 +_08036F04: + ldr r0, _08037000 @ =gUnknown_02024DEC + movs r2, 0 + strh r2, [r0] + ldr r0, _08037004 @ =0x02000000 + ldr r3, _08037008 @ =0x0001601c + adds r1, r0, r3 + strb r2, [r1] + ldr r4, _0803700C @ =0x0001601f + adds r0, r4 + movs r1, 0x1 + strb r1, [r0] + ldr r0, _08037010 @ =gUnknown_02024C68 + strb r2, [r0] + ldr r0, _08037014 @ =gCritMultiplier + strb r1, [r0] + movs r0, 0 + str r0, [sp, 0x4] + movs r1, 0x6 + str r1, [sp, 0x8] + movs r7, 0 +_08036F2C: + movs r0, 0x64 + adds r6, r7, 0 + muls r6, r0 + ldr r2, _08037018 @ =gEnemyParty + adds r4, r6, r2 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + adds r3, r7, 0x1 + str r3, [sp, 0x18] + cmp r0, 0 + beq _08036FE8 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _08036FE8 + ldr r1, _0803701C @ =gUnknown_02024A6A + ldr r4, [sp, 0xC] + lsls r0, r4, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08036FE8 + ldr r2, [sp, 0x10] + lsls r0, r2, 1 + adds r0, r1 + ldrh r0, [r0] + cmp r0, r7 + beq _08036FE8 + ldr r1, _08037004 @ =0x02000000 + ldr r3, _08037020 @ =0x00016068 + adds r0, r4, r3 + adds r0, r1 + ldrb r0, [r0] + cmp r7, r0 + beq _08036FE8 + adds r0, r2, r3 + adds r0, r1 + ldrb r0, [r0] + cmp r7, r0 + beq _08036FE8 + movs r5, 0 + mov r9, r6 + ldr r4, _08037024 @ =gUnknown_02024BEC + mov r8, r4 + ldr r6, _08037028 @ =gUnknown_02024A60 +_08036F90: + adds r1, r5, 0 + adds r1, 0xD + ldr r0, _08037018 @ =gEnemyParty + add r0, r9 + bl GetMonData + lsls r0, 16 + lsrs r4, r0, 16 + movs r0, 0 + mov r1, r8 + str r0, [r1] + cmp r4, 0 + beq _08036FCC + ldr r0, _0803702C @ =gBattleMoves + lsls r1, r4, 1 + adds r1, r4 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x1] + cmp r0, 0x1 + beq _08036FCC + ldrb r0, [r6] + mov r1, r10 + bl sub_801CAF8 + ldrb r1, [r6] + adds r0, r4, 0 + mov r2, r10 + bl move_effectiveness_something +_08036FCC: + mov r2, r8 + ldr r0, [r2] + ldr r3, [sp, 0x4] + cmp r3, r0 + bge _08036FE2 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp, 0x4] + lsls r0, r7, 24 + lsrs r0, 24 + str r0, [sp, 0x8] +_08036FE2: + adds r5, 0x1 + cmp r5, 0x3 + ble _08036F90 +_08036FE8: + ldr r7, [sp, 0x18] + cmp r7, 0x5 + ble _08036F2C +_08036FEE: + ldr r0, [sp, 0x8] + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08037000: .4byte gUnknown_02024DEC +_08037004: .4byte 0x02000000 +_08037008: .4byte 0x0001601c +_0803700C: .4byte 0x0001601f +_08037010: .4byte gUnknown_02024C68 +_08037014: .4byte gCritMultiplier +_08037018: .4byte gEnemyParty +_0803701C: .4byte gUnknown_02024A6A +_08037020: .4byte 0x00016068 +_08037024: .4byte gUnknown_02024BEC +_08037028: .4byte gUnknown_02024A60 +_0803702C: .4byte gBattleMoves + thumb_func_end sub_8036CD4 + + thumb_func_start ai_identify_item_effect +ai_identify_item_effect: @ 8037030 + push {r4,lr} + adds r2, r1, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x13 + bne _08037040 + movs r0, 0x1 + b _08037086 +_08037040: + ldrb r1, [r2, 0x4] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0803704E + movs r0, 0x2 + b _08037086 +_0803704E: + ldrb r4, [r2, 0x3] + movs r3, 0x3F + adds r0, r3, 0 + ands r0, r4 + cmp r0, 0 + beq _0803705E + movs r0, 0x3 + b _08037086 +_0803705E: + ldrb r1, [r2] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _08037074 + ldrb r0, [r2, 0x1] + cmp r0, 0 + bne _08037074 + ldrb r0, [r2, 0x2] + cmp r0, 0 + beq _08037078 +_08037074: + movs r0, 0x4 + b _08037086 +_08037078: + movs r0, 0x80 + ands r0, r4 + cmp r0, 0 + bne _08037084 + movs r0, 0x6 + b _08037086 +_08037084: + movs r0, 0x5 +_08037086: + pop {r4} + pop {r1} + bx r1 + thumb_func_end ai_identify_item_effect + + thumb_func_start sub_803708C +sub_803708C: @ 803708C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0 + str r0, [sp] + mov r8, r0 + mov r9, r0 +_080370A0: + movs r0, 0x64 + mov r1, r9 + muls r1, r0 + ldr r0, _08037170 @ =gEnemyParty + adds r4, r1, r0 + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + cmp r0, 0 + beq _080370DC + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + cmp r0, 0 + beq _080370DC + adds r0, r4, 0 + movs r1, 0x41 + bl GetMonData + movs r1, 0xCE + lsls r1, 1 + cmp r0, r1 + beq _080370DC + ldr r0, [sp] + adds r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + str r0, [sp] +_080370DC: + movs r1, 0x1 + add r9, r1 + mov r2, r9 + cmp r2, 0x5 + ble _080370A0 + movs r3, 0 + mov r9, r3 +_080370EA: + ldr r4, _08037174 @ =0x02016a00 + mov r0, r9 + cmp r0, 0 + beq _08037106 + adds r0, r4, 0 + adds r0, 0x2C + ldrb r0, [r0] + mov r1, r9 + subs r0, r1 + adds r0, 0x1 + ldr r2, [sp] + cmp r2, r0 + ble _08037106 + b _080374EC +_08037106: + mov r3, r9 + lsls r1, r3, 1 + adds r0, r4, 0 + adds r0, 0x24 + adds r0, r1, r0 + ldrh r0, [r0] + mov r10, r0 + str r1, [sp, 0x4] + cmp r0, 0 + bne _0803711C + b _080374EC +_0803711C: + ldr r1, _08037178 @ =gItemEffectTable + subs r0, 0xD + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + cmp r1, 0 + bne _0803712C + b _080374EC +_0803712C: + adds r5, r1, 0 + mov r0, r10 + cmp r0, 0xAF + bne _08037136 + ldr r5, _0803717C @ =gSaveBlock1 + 0x3676 +_08037136: + mov r1, r10 + lsls r0, r1, 24 + lsrs r0, 24 + adds r1, r5, 0 + bl ai_identify_item_effect + ldr r2, _08037180 @ =0xfffe9600 + adds r4, r2 + ldr r3, _08037184 @ =gUnknown_02024A60 + ldrb r1, [r3] + lsrs r1, 1 + ldr r2, _08037188 @ =0x000160d8 + adds r1, r2 + adds r1, r4 + strb r0, [r1] + ldrb r0, [r3] + lsrs r0, 1 + adds r0, r2 + adds r0, r4 + ldrb r0, [r0] + subs r0, 0x1 + cmp r0, 0x5 + bls _08037166 + b _080374A8 +_08037166: + lsls r0, 2 + ldr r1, _0803718C @ =_08037190 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08037170: .4byte gEnemyParty +_08037174: .4byte 0x02016a00 +_08037178: .4byte gItemEffectTable +_0803717C: .4byte gSaveBlock1 + 0x3676 +_08037180: .4byte 0xfffe9600 +_08037184: .4byte gUnknown_02024A60 +_08037188: .4byte 0x000160d8 +_0803718C: .4byte _08037190 + .align 2, 0 +_08037190: + .4byte _080371A8 + .4byte _080371D0 + .4byte _0803721C + .4byte _08037388 + .4byte _08037468 + .4byte _080374F8 +_080371A8: + ldr r2, _080371C8 @ =gBattleMons + ldr r0, _080371CC @ =gUnknown_02024A60 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r0, r2 + ldrh r1, [r0, 0x2C] + ldrh r0, [r0, 0x28] + lsrs r1, 2 + cmp r0, r1 + bcc _080371C0 + b _080374A8 +_080371C0: + cmp r0, 0 + bne _080371C6 + b _080374A8 +_080371C6: + b _08037450 + .align 2, 0 +_080371C8: .4byte gBattleMons +_080371CC: .4byte gUnknown_02024A60 +_080371D0: + mov r0, r10 + movs r1, 0x4 + movs r2, 0x4 + bl sub_803F1DC + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _080371E4 + b _080374A8 +_080371E4: + ldr r2, _08037214 @ =gBattleMons + ldr r0, _08037218 @ =gUnknown_02024A60 + ldrb r1, [r0] + movs r0, 0x58 + muls r0, r1 + adds r1, r0, r2 + ldrh r2, [r1, 0x28] + cmp r2, 0 + bne _080371F8 + b _080374A8 +_080371F8: + ldrh r3, [r1, 0x2C] + lsrs r0, r3, 2 + cmp r2, r0 + bcs _08037202 + b _08037496 +_08037202: + adds r0, r2, 0 + subs r0, r3, r0 + adds r1, r5, r4 + ldrb r1, [r1] + cmp r0, r1 + bgt _08037210 + b _080374A8 +_08037210: + b _08037496 + .align 2, 0 +_08037214: .4byte gBattleMons +_08037218: .4byte gUnknown_02024A60 +_0803721C: + ldr r2, _08037378 @ =0x02000000 + ldr r3, _0803737C @ =gUnknown_02024A60 + ldrb r0, [r3] + lsrs r0, 1 + ldr r6, _08037380 @ =0x000160da + adds r0, r6 + adds r0, r2 + movs r1, 0 + mov r12, r1 + movs r1, 0 + strb r1, [r0] + ldrb r1, [r5, 0x3] + movs r7, 0x20 + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08037264 + ldr r1, _08037384 @ =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + beq _08037264 + lsrs r1, r4, 1 + adds r1, r6 + adds r1, r2 + ldrb r0, [r1] + orrs r0, r7 + strb r0, [r1] + movs r0, 0x1 + mov r8, r0 +_08037264: + ldrb r1, [r5, 0x3] + movs r6, 0x10 + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080372A0 + ldr r1, _08037384 @ =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0803728E + movs r0, 0x80 + ands r1, r0 + cmp r1, 0 + beq _080372A0 +_0803728E: + lsrs r1, r4, 1 + ldr r0, _08037380 @ =0x000160da + adds r1, r0 + adds r1, r2 + ldrb r0, [r1] + orrs r0, r6 + strb r0, [r1] + movs r1, 0x1 + mov r8, r1 +_080372A0: + ldrb r1, [r5, 0x3] + movs r6, 0x8 + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _080372D4 + ldr r1, _08037384 @ =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080372D4 + lsrs r0, r4, 1 + ldr r1, _08037380 @ =0x000160da + adds r0, r1 + adds r0, r2 + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + movs r0, 0x1 + mov r8, r0 +_080372D4: + ldrb r1, [r5, 0x3] + movs r6, 0x4 + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08037308 + ldr r1, _08037384 @ =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x20 + ands r0, r1 + cmp r0, 0 + beq _08037308 + lsrs r0, r4, 1 + ldr r1, _08037380 @ =0x000160da + adds r0, r1 + adds r0, r2 + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + movs r0, 0x1 + mov r8, r0 +_08037308: + ldrb r1, [r5, 0x3] + movs r6, 0x2 + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _0803733C + ldr r1, _08037384 @ =gBattleMons + ldrb r4, [r3] + movs r0, 0x58 + muls r0, r4 + adds r1, 0x4C + adds r0, r1 + ldr r0, [r0] + movs r1, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0803733C + lsrs r0, r4, 1 + ldr r1, _08037380 @ =0x000160da + adds r0, r1 + adds r0, r2 + ldrb r1, [r0] + orrs r1, r6 + strb r1, [r0] + movs r0, 0x1 + mov r8, r0 +_0803733C: + ldrb r1, [r5, 0x3] + movs r4, 0x1 + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0803734A + b _080374A8 +_0803734A: + ldr r1, _08037384 @ =gBattleMons + ldrb r3, [r3] + movs r0, 0x58 + muls r0, r3 + adds r1, 0x50 + adds r0, r1 + ldr r0, [r0] + movs r1, 0x7 + ands r0, r1 + cmp r0, 0 + bne _08037362 + b _080374A8 +_08037362: + lsrs r0, r3, 1 + ldr r1, _08037380 @ =0x000160da + adds r0, r1 + adds r0, r2 + ldrb r1, [r0] + orrs r1, r4 + strb r1, [r0] + movs r2, 0x1 + mov r8, r2 + b _080374AE + .align 2, 0 +_08037378: .4byte 0x02000000 +_0803737C: .4byte gUnknown_02024A60 +_08037380: .4byte 0x000160da +_08037384: .4byte gBattleMons +_08037388: + ldr r6, _08037458 @ =0x02000000 + ldr r4, _0803745C @ =gUnknown_02024A60 + ldrb r0, [r4] + lsrs r0, 1 + ldr r3, _08037460 @ =0x000160da + adds r0, r3 + adds r0, r6 + movs r1, 0 + mov r12, r1 + movs r1, 0 + strb r1, [r0] + ldr r1, _08037464 @ =gUnknown_02024CA8 + ldrb r2, [r4] + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _080374A8 + ldrb r1, [r5] + movs r7, 0xF + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080373CA + lsrs r0, r2, 1 + adds r0, r3 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] +_080373CA: + ldrb r1, [r5, 0x1] + movs r2, 0xF0 + mov r8, r2 + mov r0, r8 + ands r0, r1 + cmp r0, 0 + beq _080373E8 + ldrb r0, [r4] + lsrs r0, 1 + adds r0, r3 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x2 + orrs r1, r2 + strb r1, [r0] +_080373E8: + ldrb r1, [r5, 0x1] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _08037402 + ldrb r0, [r4] + lsrs r0, 1 + adds r0, r3 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_08037402: + ldrb r1, [r5, 0x2] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _0803741C + ldrb r0, [r4] + lsrs r0, 1 + adds r0, r3 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x8 + orrs r1, r2 + strb r1, [r0] +_0803741C: + ldrb r1, [r5, 0x2] + mov r0, r8 + ands r0, r1 + cmp r0, 0 + beq _08037436 + ldrb r0, [r4] + lsrs r0, 1 + adds r0, r3 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x20 + orrs r1, r2 + strb r1, [r0] +_08037436: + ldrb r1, [r5] + movs r0, 0x30 + ands r0, r1 + cmp r0, 0 + beq _08037450 + ldrb r0, [r4] + lsrs r0, 1 + adds r0, r3 + adds r0, r6 + ldrb r1, [r0] + movs r2, 0x80 + orrs r1, r2 + strb r1, [r0] +_08037450: + movs r3, 0x1 + mov r8, r3 + b _080374AE + .align 2, 0 +_08037458: .4byte 0x02000000 +_0803745C: .4byte gUnknown_02024A60 +_08037460: .4byte 0x000160da +_08037464: .4byte gUnknown_02024CA8 +_08037468: + ldr r4, _0803749C @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + lsrs r3, r0, 24 + ldr r2, _080374A0 @ =gUnknown_02024CA8 + ldrb r1, [r4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x16] + cmp r0, 0 + beq _080374A8 + ldr r0, _080374A4 @ =gUnknown_02024C80 + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 2 + adds r1, r0 + ldrb r0, [r1, 0x2] + cmp r0, 0 + bne _080374A8 +_08037496: + movs r0, 0x1 + mov r8, r0 + b _080374AE + .align 2, 0 +_0803749C: .4byte gUnknown_02024A60 +_080374A0: .4byte gUnknown_02024CA8 +_080374A4: .4byte gUnknown_02024C80 +_080374A8: + mov r1, r8 + cmp r1, 0 + beq _080374EC +_080374AE: + movs r0, 0x1 + movs r1, 0x1 + movs r2, 0 + bl dp01_build_cmdbuf_x21_a_bb + ldr r1, _080374DC @ =0x02000000 + ldr r0, _080374E0 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsrs r0, 1 + lsls r0, 1 + ldr r2, _080374E4 @ =0x000160d4 + adds r0, r2 + adds r0, r1 + movs r2, 0 + mov r3, r10 + strb r3, [r0] + ldr r0, _080374E8 @ =0x00016a24 + adds r1, r0 + ldr r3, [sp, 0x4] + adds r1, r3, r1 + strh r2, [r1] + mov r0, r8 + b _080374FA + .align 2, 0 +_080374DC: .4byte 0x02000000 +_080374E0: .4byte gUnknown_02024A60 +_080374E4: .4byte 0x000160d4 +_080374E8: .4byte 0x00016a24 +_080374EC: + movs r0, 0x1 + add r9, r0 + mov r1, r9 + cmp r1, 0x3 + bgt _080374F8 + b _080370EA +_080374F8: + movs r0, 0 +_080374FA: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803708C + + thumb_func_start nullsub_47 +nullsub_47: @ 803750C + bx lr + thumb_func_end nullsub_47 + + thumb_func_start sub_8037510 +sub_8037510: @ 8037510 + ldr r1, _08037520 @ =gUnknown_03004330 + ldr r0, _08037524 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037528 @ =sub_803752C + str r1, [r0] + bx lr + .align 2, 0 +_08037520: .4byte gUnknown_03004330 +_08037524: .4byte gUnknown_02024A60 +_08037528: .4byte sub_803752C + thumb_func_end sub_8037510 + + thumb_func_start sub_803752C +sub_803752C: @ 803752C + push {lr} + ldr r2, _08037560 @ =gUnknown_02024A64 + ldr r1, _08037564 @ =gBitTable + ldr r0, _08037568 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 2 + adds r0, r1 + ldr r1, [r2] + ldr r0, [r0] + ands r1, r0 + cmp r1, 0 + beq _08037578 + ldr r0, _0803756C @ =gUnknown_02023A60 + lsls r1, r3, 9 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x38 + bhi _08037574 + ldr r0, _08037570 @ =gUnknown_081FB048 + ldrb r1, [r1] + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + bl _call_via_r0 + b _08037578 + .align 2, 0 +_08037560: .4byte gUnknown_02024A64 +_08037564: .4byte gBitTable +_08037568: .4byte gUnknown_02024A60 +_0803756C: .4byte gUnknown_02023A60 +_08037570: .4byte gUnknown_081FB048 +_08037574: + bl dp01_tbl4_exec_completed +_08037578: + pop {r0} + bx r0 + thumb_func_end sub_803752C + + thumb_func_start sub_803757C +sub_803757C: @ 803757C + push {lr} + ldr r2, _080375A4 @ =gSprites + ldr r1, _080375A8 @ =gUnknown_02024BE0 + ldr r0, _080375AC @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _080375B0 @ =SpriteCallbackDummy + cmp r1, r0 + bne _080375A0 + bl dp01_tbl4_exec_completed +_080375A0: + pop {r0} + bx r0 + .align 2, 0 +_080375A4: .4byte gSprites +_080375A8: .4byte gUnknown_02024BE0 +_080375AC: .4byte gUnknown_02024A60 +_080375B0: .4byte SpriteCallbackDummy + thumb_func_end sub_803757C + + thumb_func_start sub_80375B4 +sub_80375B4: @ 80375B4 + push {r4-r6,lr} + ldr r4, _0803762C @ =gSprites + ldr r6, _08037630 @ =gUnknown_02024BE0 + ldr r5, _08037634 @ =gUnknown_02024A60 + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r2, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r2, r0 + ldr r1, [r0] + ldr r0, _08037638 @ =SpriteCallbackDummy + cmp r1, r0 + bne _08037624 + adds r0, r2, r4 + ldrh r0, [r0, 0x6] + bl sub_8031B74 + ldrb r0, [r5] + adds r0, r6 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x38] + ldr r2, _0803763C @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08037640 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r5] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + bl dp01_tbl4_exec_completed +_08037624: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803762C: .4byte gSprites +_08037630: .4byte gUnknown_02024BE0 +_08037634: .4byte gUnknown_02024A60 +_08037638: .4byte SpriteCallbackDummy +_0803763C: .4byte 0x000003ff +_08037640: .4byte 0xfffffc00 + thumb_func_end sub_80375B4 + + thumb_func_start sub_8037644 +sub_8037644: @ 8037644 + push {lr} + ldr r3, _08037678 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r2, _0803767C @ =0x02017810 + adds r1, r2 + ldrb r0, [r1, 0x9] + subs r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + bne _08037674 + ldrb r0, [r3] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r2 + movs r0, 0 + strb r0, [r1, 0x9] + bl dp01_tbl4_exec_completed +_08037674: + pop {r0} + bx r0 + .align 2, 0 +_08037678: .4byte gUnknown_02024A60 +_0803767C: .4byte 0x02017810 + thumb_func_end sub_8037644 + + thumb_func_start sub_8037680 +sub_8037680: @ 8037680 + push {r4-r7,lr} + movs r6, 0 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080376A4 + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080376D8 + ldr r0, _080376C4 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080376D8 +_080376A4: + ldr r2, _080376C8 @ =gSprites + ldr r1, _080376CC @ =gUnknown_03004340 + ldr r0, _080376D0 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _080376D4 @ =SpriteCallbackDummy + cmp r1, r0 + bne _0803770E + b _0803770C + .align 2, 0 +_080376C4: .4byte gUnknown_020239F8 +_080376C8: .4byte gSprites +_080376CC: .4byte gUnknown_03004340 +_080376D0: .4byte gUnknown_02024A60 +_080376D4: .4byte SpriteCallbackDummy +_080376D8: + ldr r2, _080377D8 @ =gSprites + ldr r5, _080377DC @ =gUnknown_03004340 + ldr r0, _080377E0 @ =gUnknown_02024A60 + ldrb r3, [r0] + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r4, [r0] + ldr r0, _080377E4 @ =SpriteCallbackDummy + cmp r4, r0 + bne _0803770E + movs r0, 0x2 + eors r3, r0 + adds r0, r3, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldr r0, [r0] + cmp r0, r4 + bne _0803770E +_0803770C: + movs r6, 0x1 +_0803770E: + bl IsCryPlayingOrClearCrySongs + lsls r0, 24 + cmp r0, 0 + beq _0803771A + movs r6, 0 +_0803771A: + cmp r6, 0 + bne _08037720 + b _08037822 +_08037720: + ldr r7, _080377E0 @ =gUnknown_02024A60 + ldrb r0, [r7] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r3, r0, 24 + cmp r3, 0x1 + bne _080377B4 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r5, _080377E8 @ =0x02017810 + adds r4, r0, r5 + ldrb r1, [r4, 0x1] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08037822 + movs r6, 0x2 + adds r1, r6, 0 + eors r1, r2 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _08037822 + ldrb r1, [r4] + movs r3, 0x7F + adds r0, r3, 0 + ands r0, r1 + strb r0, [r4] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r2, [r1, 0x1] + movs r4, 0x2 + negs r4, r4 + adds r0, r4, 0 + ands r0, r2 + strb r0, [r1, 0x1] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + ands r3, r1 + strb r3, [r0] + ldrb r0, [r7] + adds r1, r6, 0 + eors r1, r0 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0, 0x1] + ands r4, r1 + strb r4, [r0, 0x1] + ldr r4, _080377EC @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag +_080377B4: + ldr r0, _080377F0 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _080377F8 + ldrb r0, [r7] + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _08037804 + ldr r0, _080377F4 @ =gMPlay_BGM + bl m4aMPlayContinue + b _08037804 + .align 2, 0 +_080377D8: .4byte gSprites +_080377DC: .4byte gUnknown_03004340 +_080377E0: .4byte gUnknown_02024A60 +_080377E4: .4byte SpriteCallbackDummy +_080377E8: .4byte 0x02017810 +_080377EC: .4byte 0x000027f9 +_080377F0: .4byte gUnknown_020239F8 +_080377F4: .4byte gMPlay_BGM +_080377F8: + ldr r0, _08037828 @ =gMPlay_BGM + ldr r1, _0803782C @ =0x0000ffff + movs r2, 0x80 + lsls r2, 1 + bl m4aMPlayVolumeControl +_08037804: + ldr r2, _08037830 @ =gUnknown_02024A60 + ldrb r1, [r2] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08037834 @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x9] + ldr r1, _08037838 @ =gUnknown_03004330 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803783C @ =sub_8037644 + str r1, [r0] +_08037822: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08037828: .4byte gMPlay_BGM +_0803782C: .4byte 0x0000ffff +_08037830: .4byte gUnknown_02024A60 +_08037834: .4byte 0x02017810 +_08037838: .4byte gUnknown_03004330 +_0803783C: .4byte sub_8037644 + thumb_func_end sub_8037680 + + thumb_func_start sub_8037840 +sub_8037840: @ 8037840 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r6, _08037A48 @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + ldr r5, _08037A4C @ =0x02017810 + adds r0, r5 + ldrb r1, [r0] + movs r4, 0x88 + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _08037878 + ldr r0, _08037A50 @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08037A54 @ =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_08037878: + ldrb r0, [r6] + movs r7, 0x2 + adds r2, r7, 0 + eors r2, r0 + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + adds r0, r4, 0 + ands r0, r1 + cmp r0, 0 + bne _080378A6 + ldr r0, _08037A50 @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08037A54 @ =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_080378A6: + ldrb r2, [r6] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + movs r3, 0x8 + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + beq _080378BE + b _08037A3A +_080378BE: + adds r1, r2, 0 + eors r1, r7 + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _080378DA + b _08037A3A +_080378DA: + ldr r0, _08037A58 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0803791A + adds r0, r2, 0 + bl battle_get_per_side_status + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bne _0803791A + ldrb r0, [r6] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + ldrb r0, [r1, 0x9] + adds r0, 0x1 + strb r0, [r1, 0x9] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0803790E + b _08037A3A +_0803790E: + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strb r4, [r0, 0x9] +_0803791A: + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _080379B2 + ldr r0, _08037A58 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _080379B2 + ldr r1, _08037A5C @ =gUnknown_0300434C + ldr r5, _08037A48 @ =gUnknown_02024A60 + ldrb r0, [r5] + movs r4, 0x2 + eors r0, r4 + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08037A60 @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r0, _08037A64 @ =gUnknown_03004340 + mov r8, r0 + ldrb r0, [r5] + adds r1, r4, 0 + eors r1, r0 + mov r2, r8 + adds r0, r1, r2 + ldrb r0, [r0] + ldr r2, _08037A50 @ =gUnknown_02024A6A + mov r10, r2 + lsls r1, 1 + add r1, r10 + ldrh r1, [r1] + movs r2, 0x64 + mov r9, r2 + mov r2, r9 + muls r2, r1 + adds r1, r2, 0 + ldr r6, _08037A54 @ =gEnemyParty + adds r1, r6 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r5] + eors r0, r4 + bl sub_804777C + ldrb r0, [r5] + eors r0, r4 + add r0, r8 + ldrb r0, [r0] + bl sub_8043DFC + ldrb r0, [r5] + eors r4, r0 + lsls r0, r4, 1 + add r0, r10 + ldrh r0, [r0] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8032984 +_080379B2: + ldr r1, _08037A5C @ =gUnknown_0300434C + ldr r4, _08037A48 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08037A60 @ =gSprites + adds r0, r1 + bl DestroySprite + ldr r5, _08037A64 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r5 + ldrb r0, [r0] + ldr r2, _08037A50 @ =gUnknown_02024A6A + mov r9, r2 + lsls r1, 1 + add r1, r9 + ldrh r1, [r1] + movs r2, 0x64 + mov r8, r2 + mov r2, r8 + muls r2, r1 + adds r1, r2, 0 + ldr r6, _08037A54 @ =gEnemyParty + adds r1, r6 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r4] + bl sub_804777C + ldrb r0, [r4] + adds r0, r5 + ldrb r0, [r0] + bl sub_8043DFC + ldrb r5, [r4] + lsls r0, r5, 1 + add r0, r9 + ldrh r0, [r0] + mov r1, r8 + muls r1, r0 + adds r0, r1, 0 + adds r0, r6 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r5, 0 + bl sub_8032984 + ldr r2, _08037A68 @ =0x02017840 + ldrb r1, [r2, 0x9] + movs r0, 0x2 + negs r0, r0 + ands r0, r1 + strb r0, [r2, 0x9] + ldr r1, _08037A6C @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037A70 @ =sub_8037680 + str r1, [r0] +_08037A3A: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08037A48: .4byte gUnknown_02024A60 +_08037A4C: .4byte 0x02017810 +_08037A50: .4byte gUnknown_02024A6A +_08037A54: .4byte gEnemyParty +_08037A58: .4byte gUnknown_020239F8 +_08037A5C: .4byte gUnknown_0300434C +_08037A60: .4byte gSprites +_08037A64: .4byte gUnknown_03004340 +_08037A68: .4byte 0x02017840 +_08037A6C: .4byte gUnknown_03004330 +_08037A70: .4byte sub_8037680 + thumb_func_end sub_8037840 + + thumb_func_start sub_8037A74 +sub_8037A74: @ 8037A74 + push {r4-r7,lr} + ldr r2, _08037ACC @ =gSprites + ldr r0, _08037AD0 @ =gUnknown_02024BE0 + ldr r7, _08037AD4 @ =gUnknown_02024A60 + ldrb r3, [r7] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r0, r2 + adds r0, r1, 0 + adds r0, 0x3F + ldrb r0, [r0] + lsls r0, 27 + lsrs r2, r0, 31 + cmp r2, 0x1 + bne _08037B18 + movs r4, 0x24 + ldrsh r0, [r1, r4] + cmp r0, 0 + bne _08037B18 + lsls r4, r3, 1 + adds r0, r4, r3 + lsls r0, 2 + ldr r6, _08037AD8 @ =0x02017810 + adds r1, r0, r6 + ldrb r5, [r1] + movs r0, 0x80 + ands r0, r5 + cmp r0, 0 + bne _08037AE4 + ldr r0, _08037ADC @ =gUnknown_02024A6A + adds r0, r4, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08037AE0 @ =gEnemyParty + adds r1, r0 + adds r0, r3, 0 + bl sub_8141828 + b _08037B18 + .align 2, 0 +_08037ACC: .4byte gSprites +_08037AD0: .4byte gUnknown_02024BE0 +_08037AD4: .4byte gUnknown_02024A60 +_08037AD8: .4byte 0x02017810 +_08037ADC: .4byte gUnknown_02024A6A +_08037AE0: .4byte gEnemyParty +_08037AE4: + ldrb r0, [r1, 0x1] + ands r2, r0 + cmp r2, 0 + beq _08037B18 + movs r0, 0x7F + ands r0, r5 + strb r0, [r1] + ldrb r0, [r7] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _08037B20 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + bl dp01_tbl4_exec_completed +_08037B18: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08037B20: .4byte 0x000027f9 + thumb_func_end sub_8037A74 + + thumb_func_start sub_8037B24 +sub_8037B24: @ 8037B24 + push {r4-r6,lr} + ldr r6, _08037B64 @ =gUnknown_02024A60 + ldrb r0, [r6] + ldr r5, _08037B68 @ =gUnknown_03004340 + adds r1, r0, r5 + ldrb r1, [r1] + movs r2, 0 + movs r3, 0 + bl sub_8045C78 + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + bl sub_8043DFC + lsls r4, 16 + asrs r1, r4, 16 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08037B6C + ldrb r0, [r6] + adds r0, r5 + ldrb r0, [r0] + movs r2, 0 + bl sub_80440EC + b _08037B70 + .align 2, 0 +_08037B64: .4byte gUnknown_02024A60 +_08037B68: .4byte gUnknown_03004340 +_08037B6C: + bl dp01_tbl4_exec_completed +_08037B70: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8037B24 + + thumb_func_start sub_8037B78 +sub_8037B78: @ 8037B78 + push {lr} + ldr r2, _08037BAC @ =gSprites + ldr r0, _08037BB0 @ =gUnknown_02024BE0 + ldr r1, _08037BB4 @ =gUnknown_02024A60 + ldrb r3, [r1] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 31 + cmp r0, 0 + bne _08037BA6 + ldr r0, _08037BB8 @ =gUnknown_03004340 + adds r0, r3, r0 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl4_exec_completed +_08037BA6: + pop {r0} + bx r0 + .align 2, 0 +_08037BAC: .4byte gSprites +_08037BB0: .4byte gUnknown_02024BE0 +_08037BB4: .4byte gUnknown_02024A60 +_08037BB8: .4byte gUnknown_03004340 + thumb_func_end sub_8037B78 + + thumb_func_start sub_8037BBC +sub_8037BBC: @ 8037BBC + push {r4-r6,lr} + ldr r6, _08037C18 @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _08037C1C @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08037C12 + ldr r5, _08037C20 @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08037C24 @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_8032A08 + ldr r1, _08037C28 @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl4_exec_completed +_08037C12: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037C18: .4byte gUnknown_02024A60 +_08037C1C: .4byte 0x02017810 +_08037C20: .4byte gUnknown_02024BE0 +_08037C24: .4byte gSprites +_08037C28: .4byte gUnknown_03004340 + thumb_func_end sub_8037BBC + + thumb_func_start sub_8037C2C +sub_8037C2C: @ 8037C2C + push {lr} + ldr r0, _08037C40 @ =gUnknown_03004210 + ldrh r0, [r0, 0x16] + cmp r0, 0 + bne _08037C3A + bl dp01_tbl4_exec_completed +_08037C3A: + pop {r0} + bx r0 + .align 2, 0 +_08037C40: .4byte gUnknown_03004210 + thumb_func_end sub_8037C2C + + thumb_func_start dp01t_0F_4_move_anim +dp01t_0F_4_move_anim: @ 8037C44 + push {r4,lr} + ldr r1, _08037C80 @ =gUnknown_02024BE0 + ldr r0, _08037C84 @ =gUnknown_02024A60 + ldrb r0, [r0] + adds r0, r1 + ldrb r1, [r0] + ldr r2, _08037C88 @ =gSprites + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, r0, r2 + movs r1, 0x30 + ldrsh r0, [r4, r1] + cmp r0, 0x20 + bne _08037C90 + movs r3, 0 + movs r0, 0 + strh r0, [r4, 0x30] + adds r2, r4, 0 + adds r2, 0x3E + ldrb r1, [r2] + subs r0, 0x5 + ands r0, r1 + strb r0, [r2] + ldr r0, _08037C8C @ =gUnknown_02024E6D + strb r3, [r0] + bl dp01_tbl4_exec_completed + b _08037CBA + .align 2, 0 +_08037C80: .4byte gUnknown_02024BE0 +_08037C84: .4byte gUnknown_02024A60 +_08037C88: .4byte gSprites +_08037C8C: .4byte gUnknown_02024E6D +_08037C90: + ldrh r0, [r4, 0x30] + movs r1, 0x3 + ands r0, r1 + cmp r0, 0 + bne _08037CB4 + adds r3, r4, 0 + adds r3, 0x3E + ldrb r2, [r3] + lsls r0, r2, 29 + lsrs r0, 31 + movs r1, 0x1 + eors r1, r0 + lsls r1, 2 + movs r0, 0x5 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] +_08037CB4: + ldrh r0, [r4, 0x30] + adds r0, 0x1 + strh r0, [r4, 0x30] +_08037CBA: + pop {r4} + pop {r0} + bx r0 + thumb_func_end dp01t_0F_4_move_anim + + thumb_func_start sub_8037CC0 +sub_8037CC0: @ 8037CC0 + push {r4,lr} + ldr r2, _08037D10 @ =gSprites + ldr r0, _08037D14 @ =gUnknown_03004340 + ldr r4, _08037D18 @ =gUnknown_02024A60 + ldrb r3, [r4] + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, [r0] + ldr r0, _08037D1C @ =SpriteCallbackDummy + cmp r1, r0 + bne _08037D08 + lsls r0, r3, 2 + ldr r1, _08037D20 @ =0x02017800 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08037CFC + adds r0, r3, 0 + adds r1, r3, 0 + adds r2, r3, 0 + movs r3, 0x6 + bl move_anim_start_t4 +_08037CFC: + ldr r0, _08037D24 @ =gUnknown_03004330 + ldrb r1, [r4] + lsls r1, 2 + adds r1, r0 + ldr r0, _08037D28 @ =sub_8037D2C + str r0, [r1] +_08037D08: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08037D10: .4byte gSprites +_08037D14: .4byte gUnknown_03004340 +_08037D18: .4byte gUnknown_02024A60 +_08037D1C: .4byte SpriteCallbackDummy +_08037D20: .4byte 0x02017800 +_08037D24: .4byte gUnknown_03004330 +_08037D28: .4byte sub_8037D2C + thumb_func_end sub_8037CC0 + + thumb_func_start sub_8037D2C +sub_8037D2C: @ 8037D2C + push {lr} + ldr r0, _08037D58 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08037D5C @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08037D52 + ldr r0, _08037D60 @ =c3_0802FDF4 + movs r1, 0xA + bl CreateTask + bl dp01_tbl4_exec_completed +_08037D52: + pop {r0} + bx r0 + .align 2, 0 +_08037D58: .4byte gUnknown_02024A60 +_08037D5C: .4byte 0x02017810 +_08037D60: .4byte c3_0802FDF4 + thumb_func_end sub_8037D2C + + thumb_func_start sub_8037D64 +sub_8037D64: @ 8037D64 + push {r4,r5,lr} + ldr r5, _08037E08 @ =gUnknown_02024A60 + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _08037E0C @ =0x02017810 + adds r2, r0, r3 + ldrb r1, [r2, 0x1] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _08037E00 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + ldrb r2, [r1, 0x1] + movs r0, 0x2 + negs r0, r0 + ands r0, r2 + strb r0, [r1, 0x1] + ldr r4, _08037E10 @ =0x000027f9 + adds r0, r4, 0 + bl FreeSpriteTilesByTag + adds r0, r4, 0 + bl FreeSpritePaletteByTag + ldr r1, _08037E14 @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _08037E18 @ =gSprites + adds r0, r1 + movs r1, 0 + bl StartSpriteAnim + ldr r4, _08037E1C @ =gUnknown_03004340 + ldrb r1, [r5] + adds r0, r1, r4 + ldrb r0, [r0] + ldr r2, _08037E20 @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _08037E24 @ =gEnemyParty + adds r1, r2 + movs r2, 0 + bl sub_8045A5C + ldrb r0, [r5] + bl sub_804777C + ldrb r0, [r5] + adds r0, r4 + ldrb r0, [r0] + bl sub_8043DFC + ldrb r0, [r5] + bl sub_8031F88 + ldr r1, _08037E28 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037E2C @ =sub_8037CC0 + str r1, [r0] +_08037E00: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08037E08: .4byte gUnknown_02024A60 +_08037E0C: .4byte 0x02017810 +_08037E10: .4byte 0x000027f9 +_08037E14: .4byte gUnknown_02024BE0 +_08037E18: .4byte gSprites +_08037E1C: .4byte gUnknown_03004340 +_08037E20: .4byte gUnknown_02024A6A +_08037E24: .4byte gEnemyParty +_08037E28: .4byte gUnknown_03004330 +_08037E2C: .4byte sub_8037CC0 + thumb_func_end sub_8037D64 + + thumb_func_start sub_8037E30 +sub_8037E30: @ 8037E30 + push {r4-r6,lr} + ldr r5, _08037ECC @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r3, r2, 1 + adds r0, r3, r2 + lsls r0, 2 + ldr r6, _08037ED0 @ =0x02017810 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x88 + ands r0, r1 + cmp r0, 0 + bne _08037E5E + ldr r0, _08037ED4 @ =gUnknown_02024A6A + adds r0, r3, r0 + ldrh r1, [r0] + movs r0, 0x64 + muls r1, r0 + ldr r0, _08037ED8 @ =gEnemyParty + adds r1, r0 + adds r0, r2, 0 + bl sub_8141828 +_08037E5E: + ldr r4, _08037EDC @ =gSprites + ldr r0, _08037EE0 @ =gUnknown_0300434C + ldrb r2, [r5] + adds r0, r2, r0 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r3, r0, 2 + adds r0, r4, 0 + adds r0, 0x1C + adds r0, r3, r0 + ldr r1, [r0] + ldr r0, _08037EE4 @ =SpriteCallbackDummy + cmp r1, r0 + bne _08037EC4 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r0, r6 + ldrb r1, [r0] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _08037EC4 + adds r0, r3, r4 + bl DestroySprite + ldrb r4, [r5] + ldr r1, _08037ED4 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08037ED8 @ =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8032984 + ldr r1, _08037EE8 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037EEC @ =sub_8037D64 + str r1, [r0] +_08037EC4: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08037ECC: .4byte gUnknown_02024A60 +_08037ED0: .4byte 0x02017810 +_08037ED4: .4byte gUnknown_02024A6A +_08037ED8: .4byte gEnemyParty +_08037EDC: .4byte gSprites +_08037EE0: .4byte gUnknown_0300434C +_08037EE4: .4byte SpriteCallbackDummy +_08037EE8: .4byte gUnknown_03004330 +_08037EEC: .4byte sub_8037D64 + thumb_func_end sub_8037E30 + + thumb_func_start sub_8037EF0 +sub_8037EF0: @ 8037EF0 + push {lr} + ldr r0, _08037F20 @ =gReceivedRemoteLinkPlayers + ldrb r0, [r0] + cmp r0, 0 + bne _08037F1C + movs r0, 0x5A + bl m4aSongNumStop + ldr r3, _08037F24 @ =gMain + ldr r0, _08037F28 @ =0x0000043d + adds r2, r3, r0 + ldrb r1, [r2] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + ldr r0, _08037F2C @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r3] + ldr r0, _08037F30 @ =c2_8011A1C + bl SetMainCallback2 +_08037F1C: + pop {r0} + bx r0 + .align 2, 0 +_08037F20: .4byte gReceivedRemoteLinkPlayers +_08037F24: .4byte gMain +_08037F28: .4byte 0x0000043d +_08037F2C: .4byte gUnknown_030042D0 +_08037F30: .4byte c2_8011A1C + thumb_func_end sub_8037EF0 + + thumb_func_start sub_8037F34 +sub_8037F34: @ 8037F34 + push {lr} + ldr r0, _08037F64 @ =gPaletteFade + ldrb r1, [r0, 0x7] + movs r0, 0x80 + ands r0, r1 + cmp r0, 0 + bne _08037F9A + ldr r0, _08037F68 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08037F78 + bl sub_800832C + ldr r1, _08037F6C @ =gUnknown_03004330 + ldr r0, _08037F70 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08037F74 @ =sub_8037EF0 + str r1, [r0] + b _08037F9A + .align 2, 0 +_08037F64: .4byte gPaletteFade +_08037F68: .4byte gUnknown_020239F8 +_08037F6C: .4byte gUnknown_03004330 +_08037F70: .4byte gUnknown_02024A60 +_08037F74: .4byte sub_8037EF0 +_08037F78: + movs r0, 0x5A + bl m4aSongNumStop + ldr r2, _08037FA0 @ =gMain + ldr r0, _08037FA4 @ =0x0000043d + adds r3, r2, r0 + ldrb r1, [r3] + movs r0, 0x3 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + ldr r0, _08037FA8 @ =gUnknown_030042D0 + ldr r0, [r0] + str r0, [r2] + ldr r0, [r2, 0x8] + bl SetMainCallback2 +_08037F9A: + pop {r0} + bx r0 + .align 2, 0 +_08037FA0: .4byte gMain +_08037FA4: .4byte 0x0000043d +_08037FA8: .4byte gUnknown_030042D0 + thumb_func_end sub_8037F34 + + thumb_func_start sub_8037FAC +sub_8037FAC: @ 8037FAC + push {lr} + ldr r0, _08037FD0 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08037FD4 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + bne _08037FCA + bl dp01_tbl4_exec_completed +_08037FCA: + pop {r0} + bx r0 + .align 2, 0 +_08037FD0: .4byte gUnknown_02024A60 +_08037FD4: .4byte 0x02017810 + thumb_func_end sub_8037FAC + + thumb_func_start sub_8037FD8 +sub_8037FD8: @ 8037FD8 + push {lr} + ldr r0, _08037FFC @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08038000 @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x20 + ands r0, r1 + cmp r0, 0 + bne _08037FF6 + bl dp01_tbl4_exec_completed +_08037FF6: + pop {r0} + bx r0 + .align 2, 0 +_08037FFC: .4byte gUnknown_02024A60 +_08038000: .4byte 0x02017810 + thumb_func_end sub_8037FD8 + + thumb_func_start dp01_tbl4_exec_completed +dp01_tbl4_exec_completed: @ 8038004 + push {r4,lr} + sub sp, 0x4 + ldr r1, _08038044 @ =gUnknown_03004330 + ldr r4, _08038048 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803804C @ =sub_803752C + str r1, [r0] + ldr r0, _08038050 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _08038058 + bl GetMultiplayerId + mov r1, sp + strb r0, [r1] + movs r0, 0x2 + movs r1, 0x4 + mov r2, sp + bl dp01_prepare_buffer_wireless_probably + ldr r1, _08038054 @ =gUnknown_02023A60 + ldrb r0, [r4] + lsls r0, 9 + adds r0, r1 + movs r1, 0x38 + strb r1, [r0] + b _0803806A + .align 2, 0 +_08038044: .4byte gUnknown_03004330 +_08038048: .4byte gUnknown_02024A60 +_0803804C: .4byte sub_803752C +_08038050: .4byte gUnknown_020239F8 +_08038054: .4byte gUnknown_02023A60 +_08038058: + ldr r2, _08038074 @ =gUnknown_02024A64 + ldr r1, _08038078 @ =gBitTable + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r2] + bics r0, r1 + str r0, [r2] +_0803806A: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08038074: .4byte gUnknown_02024A64 +_08038078: .4byte gBitTable + thumb_func_end dp01_tbl4_exec_completed + + thumb_func_start dp01t_00_4_getattr +dp01t_00_4_getattr: @ 803807C + push {r4-r6,lr} + sub sp, 0x100 + movs r6, 0 + ldr r1, _080380A8 @ =gUnknown_02023A60 + ldr r0, _080380AC @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _080380B4 + ldr r0, _080380B0 @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + mov r1, sp + bl dp01_getattr_by_ch1_for_player_pokemon__ + adds r6, r0, 0 + b _080380D6 + .align 2, 0 +_080380A8: .4byte gUnknown_02023A60 +_080380AC: .4byte gUnknown_02024A60 +_080380B0: .4byte gUnknown_02024A6A +_080380B4: + ldrb r4, [r1] + movs r5, 0 +_080380B8: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080380CE + lsls r0, r5, 24 + lsrs r0, 24 + mov r2, sp + adds r1, r2, r6 + bl dp01_getattr_by_ch1_for_player_pokemon__ + adds r6, r0 +_080380CE: + lsrs r4, 1 + adds r5, 0x1 + cmp r5, 0x5 + ble _080380B8 +_080380D6: + lsls r1, r6, 16 + lsrs r1, 16 + movs r0, 0x1 + mov r2, sp + bl dp01_build_cmdbuf_x1D_1D_numargs_varargs + bl dp01_tbl4_exec_completed + add sp, 0x100 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end dp01t_00_4_getattr + + thumb_func_start dp01_getattr_by_ch1_for_player_pokemon__ +dp01_getattr_by_ch1_for_player_pokemon__: @ 80380F0 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x90 + adds r7, r1, 0 + lsls r0, 24 + lsrs r5, r0, 24 + movs r6, 0 + ldr r2, _08038124 @ =gUnknown_02023A60 + ldr r3, _08038128 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r0, 9 + adds r1, r2, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x3B + bls _0803811A + bl _08038886 +_0803811A: + lsls r0, 2 + ldr r1, _0803812C @ =_08038130 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038124: .4byte gUnknown_02023A60 +_08038128: .4byte gUnknown_02024A60 +_0803812C: .4byte _08038130 + .align 2, 0 +_08038130: + .4byte _08038220 + .4byte _08038444 + .4byte _08038454 + .4byte _08038464 + .4byte _080384CC + .4byte _080384CC + .4byte _080384CC + .4byte _080384CC + .4byte _080384E8 + .4byte _08038524 + .4byte _08038524 + .4byte _08038524 + .4byte _08038524 + .4byte _08038886 + .4byte _08038886 + .4byte _08038886 + .4byte _08038886 + .4byte _08038540 + .4byte _08038550 + .4byte _08038580 + .4byte _08038590 + .4byte _080385A0 + .4byte _080385B0 + .4byte _080385C0 + .4byte _080385D0 + .4byte _080385E0 + .4byte _080385F0 + .4byte _08038600 + .4byte _08038610 + .4byte _08038620 + .4byte _08038630 + .4byte _08038640 + .4byte _08038690 + .4byte _080386A0 + .4byte _080386B0 + .4byte _080386C0 + .4byte _080386D0 + .4byte _080386E0 + .4byte _080386F0 + .4byte _08038700 + .4byte _08038710 + .4byte _08038744 + .4byte _08038754 + .4byte _08038764 + .4byte _08038774 + .4byte _08038784 + .4byte _08038794 + .4byte _080387A4 + .4byte _080387B4 + .4byte _080387D4 + .4byte _080387E4 + .4byte _080387F4 + .4byte _08038804 + .4byte _08038814 + .4byte _08038824 + .4byte _08038834 + .4byte _08038844 + .4byte _08038854 + .4byte _08038864 + .4byte _08038874 +_08038220: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08038434 @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + bl GetMonData + mov r1, sp + strh r0, [r1] + adds r0, r4, 0 + movs r1, 0xC + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2E] + movs r6, 0 + add r0, sp, 0x24 + mov r9, r0 + movs r1, 0x3B + add r1, sp + mov r10, r1 + mov r2, sp + adds r2, 0x2B + str r2, [sp, 0x80] + mov r0, sp + adds r0, 0x2A + str r0, [sp, 0x7C] + mov r1, sp + adds r1, 0x68 + str r1, [sp, 0x8C] + adds r2, 0x5 + str r2, [sp, 0x84] + adds r0, 0x12 + str r0, [sp, 0x88] + mov r8, r4 + add r4, sp, 0xC +_0803826C: + adds r1, r6, 0 + adds r1, 0xD + mov r0, r8 + bl GetMonData + strh r0, [r4] + adds r1, r6, 0 + adds r1, 0x11 + mov r0, r8 + bl GetMonData + mov r2, r9 + adds r1, r2, r6 + strb r0, [r1] + adds r4, 0x2 + adds r6, 0x1 + cmp r6, 0x3 + ble _0803826C + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08038434 @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl GetMonData + mov r1, r10 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x20 + bl GetMonData + ldr r2, [sp, 0x80] + strb r0, [r2] + adds r0, r4, 0 + movs r1, 0x19 + bl GetMonData + str r0, [sp, 0x44] + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + mov r3, sp + movs r5, 0x1F + ands r0, r5 + ldrb r2, [r3, 0x14] + movs r1, 0x20 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + mov r3, sp + movs r6, 0x1F + ands r0, r6 + lsls r0, 5 + ldrh r2, [r3, 0x14] + ldr r1, _08038438 @ =0xfffffc1f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x14] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 2 + ldrb r2, [r3, 0x15] + movs r1, 0x7D + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x15] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + movs r1, 0x1F + ands r1, r0 + lsls r1, 15 + ldr r0, [sp, 0x14] + ldr r2, _0803843C @ =0xfff07fff + ands r0, r2 + orrs r0, r1 + str r0, [sp, 0x14] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + mov r3, sp + ands r0, r6 + lsls r0, 4 + ldrh r2, [r3, 0x16] + ldr r1, _08038440 @ =0xfffffe0f + ands r1, r2 + orrs r1, r0 + strh r1, [r3, 0x16] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + mov r3, sp + ands r0, r5 + lsls r0, 1 + ldrb r2, [r3, 0x17] + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0 + bl GetMonData + str r0, [sp, 0x48] + adds r0, r4, 0 + movs r1, 0x37 + bl GetMonData + str r0, [sp, 0x4C] + adds r0, r4, 0 + movs r1, 0x38 + bl GetMonData + ldr r1, [sp, 0x7C] + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x39 + bl GetMonData + mov r1, sp + strh r0, [r1, 0x28] + adds r0, r4, 0 + movs r1, 0x3A + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2C] + adds r0, r4, 0 + movs r1, 0x3B + bl GetMonData + mov r1, sp + strh r0, [r1, 0x2] + adds r0, r4, 0 + movs r1, 0x3C + bl GetMonData + mov r1, sp + strh r0, [r1, 0x4] + adds r0, r4, 0 + movs r1, 0x3D + bl GetMonData + mov r1, sp + strh r0, [r1, 0x6] + adds r0, r4, 0 + movs r1, 0x3E + bl GetMonData + mov r1, sp + strh r0, [r1, 0x8] + adds r0, r4, 0 + movs r1, 0x3F + bl GetMonData + mov r1, sp + strh r0, [r1, 0xA] + adds r0, r4, 0 + movs r1, 0x2D + bl GetMonData + mov r3, sp + movs r1, 0x1 + ands r0, r1 + lsls r0, 6 + ldrb r2, [r3, 0x17] + movs r1, 0x41 + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x2E + bl GetMonData + mov r3, sp + lsls r0, 7 + ldrb r2, [r3, 0x17] + movs r1, 0x7F + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x17] + adds r0, r4, 0 + movs r1, 0x1 + bl GetMonData + str r0, [sp, 0x54] + adds r0, r4, 0 + movs r1, 0x2 + ldr r2, [sp, 0x8C] + bl GetMonData + ldr r0, [sp, 0x84] + ldr r1, [sp, 0x8C] + bl StringCopy10 + adds r0, r4, 0 + movs r1, 0x7 + ldr r2, [sp, 0x88] + bl GetMonData + mov r2, sp + movs r6, 0 +_08038424: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0x57 + bls _08038424 + b _08038886 + .align 2, 0 +_08038434: .4byte gEnemyParty +_08038438: .4byte 0xfffffc1f +_0803843C: .4byte 0xfff07fff +_08038440: .4byte 0xfffffe0f +_08038444: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038450 @ =gEnemyParty + adds r0, r1 + movs r1, 0xB + b _080387BE + .align 2, 0 +_08038450: .4byte gEnemyParty +_08038454: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038460 @ =gEnemyParty + adds r0, r1 + movs r1, 0xC + b _080387BE + .align 2, 0 +_08038460: .4byte gEnemyParty +_08038464: + movs r6, 0 + add r2, sp, 0x58 + mov r9, r2 + add r0, sp, 0x60 + mov r10, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _080384C8 @ =gEnemyParty + adds r4, r1, r0 + mov r8, r9 +_0803847A: + adds r1, r6, 0 + adds r1, 0xD + adds r0, r4, 0 + bl GetMonData + mov r1, r8 + strh r0, [r1] + adds r1, r6, 0 + adds r1, 0x11 + adds r0, r4, 0 + bl GetMonData + mov r2, r10 + adds r1, r2, r6 + strb r0, [r1] + movs r0, 0x2 + add r8, r0 + adds r6, 0x1 + cmp r6, 0x3 + ble _0803847A + movs r0, 0x64 + muls r0, r5 + ldr r1, _080384C8 @ =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + mov r1, r9 + strb r0, [r1, 0xC] + mov r2, r9 + movs r6, 0 +_080384B8: + adds r0, r7, r6 + adds r1, r2, r6 + ldrb r1, [r1] + strb r1, [r0] + adds r6, 0x1 + cmp r6, 0xF + bls _080384B8 + b _08038886 + .align 2, 0 +_080384C8: .4byte gEnemyParty +_080384CC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080384E4 @ =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x9 + b _080387BE + .align 2, 0 +_080384E4: .4byte gEnemyParty +_080384E8: + movs r6, 0 + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r2, _08038520 @ =gEnemyParty + mov r8, r2 +_080384F4: + adds r1, r6, 0 + adds r1, 0x11 + mov r2, r8 + adds r0, r4, r2 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + cmp r6, 0x3 + ble _080384F4 + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038520 @ =gEnemyParty + adds r0, r1 + movs r1, 0x15 + bl GetMonData + adds r1, r7, r6 + strb r0, [r1] + adds r6, 0x1 + b _08038886 + .align 2, 0 +_08038520: .4byte gEnemyParty +_08038524: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803853C @ =gEnemyParty + adds r0, r1 + ldrb r1, [r3] + lsls r1, 9 + adds r2, 0x1 + adds r1, r2 + ldrb r1, [r1] + adds r1, 0x8 + b _0803887E + .align 2, 0 +_0803853C: .4byte gEnemyParty +_08038540: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803854C @ =gEnemyParty + adds r0, r1 + movs r1, 0x1 + b _0803855A + .align 2, 0 +_0803854C: .4byte gEnemyParty +_08038550: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803857C @ =gEnemyParty + adds r0, r1 + movs r1, 0x19 +_0803855A: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + movs r6, 0x3 + b _08038886 + .align 2, 0 +_0803857C: .4byte gEnemyParty +_08038580: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803858C @ =gEnemyParty + adds r0, r1 + movs r1, 0x1A + b _0803887E + .align 2, 0 +_0803858C: .4byte gEnemyParty +_08038590: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803859C @ =gEnemyParty + adds r0, r1 + movs r1, 0x1B + b _0803887E + .align 2, 0 +_0803859C: .4byte gEnemyParty +_080385A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080385AC @ =gEnemyParty + adds r0, r1 + movs r1, 0x1C + b _0803887E + .align 2, 0 +_080385AC: .4byte gEnemyParty +_080385B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080385BC @ =gEnemyParty + adds r0, r1 + movs r1, 0x1D + b _0803887E + .align 2, 0 +_080385BC: .4byte gEnemyParty +_080385C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080385CC @ =gEnemyParty + adds r0, r1 + movs r1, 0x1E + b _0803887E + .align 2, 0 +_080385CC: .4byte gEnemyParty +_080385D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080385DC @ =gEnemyParty + adds r0, r1 + movs r1, 0x1F + b _0803887E + .align 2, 0 +_080385DC: .4byte gEnemyParty +_080385E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080385EC @ =gEnemyParty + adds r0, r1 + movs r1, 0x20 + b _0803887E + .align 2, 0 +_080385EC: .4byte gEnemyParty +_080385F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080385FC @ =gEnemyParty + adds r0, r1 + movs r1, 0x22 + b _0803887E + .align 2, 0 +_080385FC: .4byte gEnemyParty +_08038600: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803860C @ =gEnemyParty + adds r0, r1 + movs r1, 0x23 + b _0803887E + .align 2, 0 +_0803860C: .4byte gEnemyParty +_08038610: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803861C @ =gEnemyParty + adds r0, r1 + movs r1, 0x24 + b _0803887E + .align 2, 0 +_0803861C: .4byte gEnemyParty +_08038620: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803862C @ =gEnemyParty + adds r0, r1 + movs r1, 0x25 + b _0803887E + .align 2, 0 +_0803862C: .4byte gEnemyParty +_08038630: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803863C @ =gEnemyParty + adds r0, r1 + movs r1, 0x26 + b _0803887E + .align 2, 0 +_0803863C: .4byte gEnemyParty +_08038640: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _0803868C @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x27 + bl GetMonData + strb r0, [r7] + adds r0, r4, 0 + movs r1, 0x28 + bl GetMonData + strb r0, [r7, 0x1] + adds r0, r4, 0 + movs r1, 0x29 + bl GetMonData + strb r0, [r7, 0x2] + adds r0, r4, 0 + movs r1, 0x2A + bl GetMonData + strb r0, [r7, 0x3] + adds r0, r4, 0 + movs r1, 0x2B + bl GetMonData + strb r0, [r7, 0x4] + adds r0, r4, 0 + movs r1, 0x2C + bl GetMonData + strb r0, [r7, 0x5] + movs r6, 0x6 + b _08038886 + .align 2, 0 +_0803868C: .4byte gEnemyParty +_08038690: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803869C @ =gEnemyParty + adds r0, r1 + movs r1, 0x27 + b _0803887E + .align 2, 0 +_0803869C: .4byte gEnemyParty +_080386A0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080386AC @ =gEnemyParty + adds r0, r1 + movs r1, 0x28 + b _0803887E + .align 2, 0 +_080386AC: .4byte gEnemyParty +_080386B0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080386BC @ =gEnemyParty + adds r0, r1 + movs r1, 0x29 + b _0803887E + .align 2, 0 +_080386BC: .4byte gEnemyParty +_080386C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080386CC @ =gEnemyParty + adds r0, r1 + movs r1, 0x2A + b _0803887E + .align 2, 0 +_080386CC: .4byte gEnemyParty +_080386D0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080386DC @ =gEnemyParty + adds r0, r1 + movs r1, 0x2B + b _0803887E + .align 2, 0 +_080386DC: .4byte gEnemyParty +_080386E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080386EC @ =gEnemyParty + adds r0, r1 + movs r1, 0x2C + b _0803887E + .align 2, 0 +_080386EC: .4byte gEnemyParty +_080386F0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080386FC @ =gEnemyParty + adds r0, r1 + movs r1, 0 + b _0803871A + .align 2, 0 +_080386FC: .4byte gEnemyParty +_08038700: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803870C @ =gEnemyParty + adds r0, r1 + movs r1, 0x9 + b _080387BE + .align 2, 0 +_0803870C: .4byte gEnemyParty +_08038710: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038740 @ =gEnemyParty + adds r0, r1 + movs r1, 0x37 +_0803871A: + bl GetMonData + adds r1, r0, 0 + strb r1, [r7] + movs r0, 0xFF + lsls r0, 8 + ands r0, r1 + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + strb r0, [r7, 0x2] + lsrs r0, r1, 24 + strb r0, [r7, 0x3] + movs r6, 0x4 + b _08038886 + .align 2, 0 +_08038740: .4byte gEnemyParty +_08038744: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038750 @ =gEnemyParty + adds r0, r1 + movs r1, 0x38 + b _0803887E + .align 2, 0 +_08038750: .4byte gEnemyParty +_08038754: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038760 @ =gEnemyParty + adds r0, r1 + movs r1, 0x39 + b _080387BE + .align 2, 0 +_08038760: .4byte gEnemyParty +_08038764: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038770 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3A + b _080387BE + .align 2, 0 +_08038770: .4byte gEnemyParty +_08038774: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038780 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3B + b _080387BE + .align 2, 0 +_08038780: .4byte gEnemyParty +_08038784: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038790 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3C + b _080387BE + .align 2, 0 +_08038790: .4byte gEnemyParty +_08038794: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080387A0 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3D + b _080387BE + .align 2, 0 +_080387A0: .4byte gEnemyParty +_080387A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080387B0 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3E + b _080387BE + .align 2, 0 +_080387B0: .4byte gEnemyParty +_080387B4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080387D0 @ =gEnemyParty + adds r0, r1 + movs r1, 0x3F +_080387BE: + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + strb r0, [r7] + lsrs r0, 8 + strb r0, [r7, 0x1] + movs r6, 0x2 + b _08038886 + .align 2, 0 +_080387D0: .4byte gEnemyParty +_080387D4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080387E0 @ =gEnemyParty + adds r0, r1 + movs r1, 0x16 + b _0803887E + .align 2, 0 +_080387E0: .4byte gEnemyParty +_080387E4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080387F0 @ =gEnemyParty + adds r0, r1 + movs r1, 0x17 + b _0803887E + .align 2, 0 +_080387F0: .4byte gEnemyParty +_080387F4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038800 @ =gEnemyParty + adds r0, r1 + movs r1, 0x18 + b _0803887E + .align 2, 0 +_08038800: .4byte gEnemyParty +_08038804: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038810 @ =gEnemyParty + adds r0, r1 + movs r1, 0x21 + b _0803887E + .align 2, 0 +_08038810: .4byte gEnemyParty +_08038814: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038820 @ =gEnemyParty + adds r0, r1 + movs r1, 0x2F + b _0803887E + .align 2, 0 +_08038820: .4byte gEnemyParty +_08038824: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038830 @ =gEnemyParty + adds r0, r1 + movs r1, 0x30 + b _0803887E + .align 2, 0 +_08038830: .4byte gEnemyParty +_08038834: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038840 @ =gEnemyParty + adds r0, r1 + movs r1, 0x32 + b _0803887E + .align 2, 0 +_08038840: .4byte gEnemyParty +_08038844: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038850 @ =gEnemyParty + adds r0, r1 + movs r1, 0x33 + b _0803887E + .align 2, 0 +_08038850: .4byte gEnemyParty +_08038854: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038860 @ =gEnemyParty + adds r0, r1 + movs r1, 0x34 + b _0803887E + .align 2, 0 +_08038860: .4byte gEnemyParty +_08038864: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038870 @ =gEnemyParty + adds r0, r1 + movs r1, 0x35 + b _0803887E + .align 2, 0 +_08038870: .4byte gEnemyParty +_08038874: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038898 @ =gEnemyParty + adds r0, r1 + movs r1, 0x36 +_0803887E: + bl GetMonData + strb r0, [r7] + movs r6, 0x1 +_08038886: + adds r0, r6, 0 + add sp, 0x90 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08038898: .4byte gEnemyParty + thumb_func_end dp01_getattr_by_ch1_for_player_pokemon__ + + thumb_func_start sub_803889C +sub_803889C: @ 803889C + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_803889C + + thumb_func_start sub_80388A8 +sub_80388A8: @ 80388A8 + push {r4,r5,lr} + ldr r1, _080388CC @ =gUnknown_02023A60 + ldr r0, _080388D0 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x2 + adds r1, r0, r1 + ldrb r0, [r1] + cmp r0, 0 + bne _080388D8 + ldr r0, _080388D4 @ =gUnknown_02024A6A + lsls r1, r2, 1 + adds r1, r0 + ldrb r0, [r1] + bl sub_8038900 + b _080388F6 + .align 2, 0 +_080388CC: .4byte gUnknown_02023A60 +_080388D0: .4byte gUnknown_02024A60 +_080388D4: .4byte gUnknown_02024A6A +_080388D8: + ldrb r4, [r1] + movs r5, 0 +_080388DC: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _080388EA + adds r0, r5, 0 + bl sub_8038900 +_080388EA: + lsrs r4, 1 + adds r0, r5, 0x1 + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0x5 + bls _080388DC +_080388F6: + bl dp01_tbl4_exec_completed + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80388A8 + + thumb_func_start sub_8038900 +sub_8038900: @ 8038900 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + lsls r0, 24 + lsrs r5, r0, 24 + ldr r3, _08038938 @ =gUnknown_02024A60 + ldrb r0, [r3] + lsls r0, 9 + ldr r2, _0803893C @ =gUnknown_02023A63 + adds r4, r0, r2 + adds r7, r4, 0 + subs r1, r2, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + adds r3, r2, 0 + cmp r0, 0x3B + bls _0803892E + bl _0803920C +_0803892E: + lsls r0, 2 + ldr r1, _08038940 @ =_08038944 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08038938: .4byte gUnknown_02024A60 +_0803893C: .4byte gUnknown_02023A63 +_08038940: .4byte _08038944 + .align 2, 0 +_08038944: + .4byte _08038A34 + .4byte _08038BCC + .4byte _08038BE8 + .4byte _08038C04 + .4byte _08038C58 + .4byte _08038C58 + .4byte _08038C58 + .4byte _08038C58 + .4byte _08038C78 + .4byte _08038CE0 + .4byte _08038CE0 + .4byte _08038CE0 + .4byte _08038CE0 + .4byte _0803920C + .4byte _0803920C + .4byte _0803920C + .4byte _0803920C + .4byte _08038D08 + .4byte _08038D24 + .4byte _08038D40 + .4byte _08038D5C + .4byte _08038D78 + .4byte _08038D94 + .4byte _08038DB0 + .4byte _08038DCC + .4byte _08038DE8 + .4byte _08038E04 + .4byte _08038E20 + .4byte _08038E3C + .4byte _08038E58 + .4byte _08038E74 + .4byte _08038E90 + .4byte _08038F04 + .4byte _08038F20 + .4byte _08038F3C + .4byte _08038F58 + .4byte _08038F74 + .4byte _08038F90 + .4byte _08038FAC + .4byte _08038FC8 + .4byte _08038FE4 + .4byte _08039000 + .4byte _0803901C + .4byte _08039038 + .4byte _08039054 + .4byte _08039070 + .4byte _0803908C + .4byte _080390A8 + .4byte _080390C4 + .4byte _080390E0 + .4byte _080390FC + .4byte _08039118 + .4byte _08039134 + .4byte _08039150 + .4byte _0803916C + .4byte _08039188 + .4byte _080391A4 + .4byte _080391C0 + .4byte _080391DC + .4byte _080391F8 +_08038A34: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08038BC8 @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0xB + adds r2, r7, 0 + bl SetMonData + adds r2, r7, 0 + adds r2, 0x2E + adds r0, r4, 0 + movs r1, 0xC + bl SetMonData + movs r0, 0 + mov r8, r0 + movs r0, 0x3B + adds r0, r7 + mov r10, r0 + adds r0, r7, 0 + adds r0, 0x2B + str r0, [sp, 0x20] + adds r0, 0x19 + str r0, [sp, 0x28] + adds r0, 0x4 + str r0, [sp, 0x2C] + adds r0, 0x4 + str r0, [sp, 0x30] + subs r0, 0x22 + str r0, [sp, 0x1C] + subs r0, 0x2 + str r0, [sp, 0x18] + adds r0, 0x4 + str r0, [sp, 0x24] + adds r0, r7, 0x2 + str r0, [sp, 0x4] + adds r0, r7, 0x4 + str r0, [sp, 0x8] + adds r0, r7, 0x6 + str r0, [sp, 0xC] + adds r0, 0x2 + str r0, [sp, 0x10] + adds r0, 0x2 + str r0, [sp, 0x14] + mov r9, r4 + adds r6, r7, 0 + adds r6, 0x24 + adds r4, r7, 0 + adds r4, 0xC +_08038A9A: + mov r1, r8 + adds r1, 0xD + mov r0, r9 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + mov r0, r9 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08038A9A + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08038BC8 @ =gEnemyParty + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x15 + mov r2, r10 + bl SetMonData + adds r0, r4, 0 + movs r1, 0x20 + ldr r2, [sp, 0x20] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x19 + ldr r2, [sp, 0x28] + bl SetMonData + ldrb r0, [r7, 0x14] + lsls r0, 27 + lsrs r0, 27 + mov r1, sp + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x27 + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x14] + lsls r0, 22 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x28 + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x15] + lsls r0, 25 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x29 + mov r2, sp + bl SetMonData + mov r1, sp + ldr r0, [r7, 0x14] + lsls r0, 12 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2A + mov r2, sp + bl SetMonData + mov r1, sp + ldrh r0, [r7, 0x16] + lsls r0, 23 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2B + mov r2, sp + bl SetMonData + mov r1, sp + ldrb r0, [r7, 0x17] + lsls r0, 26 + lsrs r0, 27 + strb r0, [r1] + adds r0, r4, 0 + movs r1, 0x2C + mov r2, sp + bl SetMonData + adds r0, r4, 0 + movs r1, 0 + ldr r2, [sp, 0x2C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x37 + ldr r2, [sp, 0x30] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x38 + ldr r2, [sp, 0x1C] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x39 + ldr r2, [sp, 0x18] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3A + ldr r2, [sp, 0x24] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3B + ldr r2, [sp, 0x4] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3C + ldr r2, [sp, 0x8] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3D + ldr r2, [sp, 0xC] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3E + ldr r2, [sp, 0x10] + bl SetMonData + adds r0, r4, 0 + movs r1, 0x3F + ldr r2, [sp, 0x14] + bl SetMonData + b _0803920C + .align 2, 0 +_08038BC8: .4byte gEnemyParty +_08038BCC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038BE4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xB + bl SetMonData + b _0803920C + .align 2, 0 +_08038BE4: .4byte gEnemyParty +_08038BE8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038C00 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0xC + bl SetMonData + b _0803920C + .align 2, 0 +_08038C00: .4byte gEnemyParty +_08038C04: + movs r0, 0 + mov r8, r0 + movs r0, 0xC + adds r0, r4 + mov r9, r0 + movs r0, 0x64 + adds r1, r5, 0 + muls r1, r0 + ldr r0, _08038C54 @ =gEnemyParty + adds r7, r1, r0 + adds r6, r4, 0 + adds r6, 0x8 +_08038C1C: + mov r1, r8 + adds r1, 0xD + adds r0, r7, 0 + adds r2, r4, 0 + bl SetMonData + mov r1, r8 + adds r1, 0x11 + adds r0, r7, 0 + adds r2, r6, 0 + bl SetMonData + adds r6, 0x1 + adds r4, 0x2 + movs r0, 0x1 + add r8, r0 + mov r0, r8 + cmp r0, 0x3 + ble _08038C1C + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038C54 @ =gEnemyParty + adds r0, r1 + movs r1, 0x15 + mov r2, r9 + bl SetMonData + b _0803920C + .align 2, 0 +_08038C54: .4byte gEnemyParty +_08038C58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038C70 @ =gEnemyParty + adds r0, r1 + ldr r3, _08038C74 @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x9 + b _08038CF6 + .align 2, 0 +_08038C70: .4byte gEnemyParty +_08038C74: .4byte gUnknown_02023A60 +_08038C78: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08038CDC @ =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x11 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x12 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x13 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x14 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x15 + bl SetMonData + b _0803920C + .align 2, 0 +_08038CDC: .4byte gEnemyParty +_08038CE0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038D00 @ =gEnemyParty + adds r0, r1 + ldr r3, _08038D04 @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r2, 9 + adds r1, r3, 0x1 + adds r1, r2, r1 + ldrb r1, [r1] + adds r1, 0x8 +_08038CF6: + adds r3, 0x3 + adds r2, r3 + bl SetMonData + b _0803920C + .align 2, 0 +_08038D00: .4byte gEnemyParty +_08038D04: .4byte gUnknown_02023A60 +_08038D08: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038D20 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1 + bl SetMonData + b _0803920C + .align 2, 0 +_08038D20: .4byte gEnemyParty +_08038D24: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038D3C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x19 + bl SetMonData + b _0803920C + .align 2, 0 +_08038D3C: .4byte gEnemyParty +_08038D40: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038D58 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1A + bl SetMonData + b _0803920C + .align 2, 0 +_08038D58: .4byte gEnemyParty +_08038D5C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038D74 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1B + bl SetMonData + b _0803920C + .align 2, 0 +_08038D74: .4byte gEnemyParty +_08038D78: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038D90 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1C + bl SetMonData + b _0803920C + .align 2, 0 +_08038D90: .4byte gEnemyParty +_08038D94: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038DAC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1D + bl SetMonData + b _0803920C + .align 2, 0 +_08038DAC: .4byte gEnemyParty +_08038DB0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038DC8 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1E + bl SetMonData + b _0803920C + .align 2, 0 +_08038DC8: .4byte gEnemyParty +_08038DCC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038DE4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x1F + bl SetMonData + b _0803920C + .align 2, 0 +_08038DE4: .4byte gEnemyParty +_08038DE8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038E00 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x20 + bl SetMonData + b _0803920C + .align 2, 0 +_08038E00: .4byte gEnemyParty +_08038E04: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038E1C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x22 + bl SetMonData + b _0803920C + .align 2, 0 +_08038E1C: .4byte gEnemyParty +_08038E20: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038E38 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x23 + bl SetMonData + b _0803920C + .align 2, 0 +_08038E38: .4byte gEnemyParty +_08038E3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038E54 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x24 + bl SetMonData + b _0803920C + .align 2, 0 +_08038E54: .4byte gEnemyParty +_08038E58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038E70 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x25 + bl SetMonData + b _0803920C + .align 2, 0 +_08038E70: .4byte gEnemyParty +_08038E74: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038E8C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x26 + bl SetMonData + b _0803920C + .align 2, 0 +_08038E8C: .4byte gEnemyParty +_08038E90: + movs r0, 0x64 + adds r4, r5, 0 + muls r4, r0 + ldr r0, _08038F00 @ =gEnemyParty + adds r4, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + adds r0, r4, 0 + movs r1, 0x27 + str r3, [sp, 0x34] + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x1 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x28 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x2 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x29 + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x3 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2A + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x4 + adds r2, r0 + adds r0, r4, 0 + movs r1, 0x2B + bl SetMonData + ldrb r2, [r6] + lsls r2, 9 + ldr r3, [sp, 0x34] + adds r0, r3, 0x5 + adds r2, r0 + adds r0, r4, 0 + b _08038F9E + .align 2, 0 +_08038F00: .4byte gEnemyParty +_08038F04: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038F1C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x27 + bl SetMonData + b _0803920C + .align 2, 0 +_08038F1C: .4byte gEnemyParty +_08038F20: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038F38 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x28 + bl SetMonData + b _0803920C + .align 2, 0 +_08038F38: .4byte gEnemyParty +_08038F3C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038F54 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x29 + bl SetMonData + b _0803920C + .align 2, 0 +_08038F54: .4byte gEnemyParty +_08038F58: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038F70 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2A + bl SetMonData + b _0803920C + .align 2, 0 +_08038F70: .4byte gEnemyParty +_08038F74: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038F8C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2B + bl SetMonData + b _0803920C + .align 2, 0 +_08038F8C: .4byte gEnemyParty +_08038F90: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038FA8 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 +_08038F9E: + movs r1, 0x2C + bl SetMonData + b _0803920C + .align 2, 0 +_08038FA8: .4byte gEnemyParty +_08038FAC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038FC4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0 + bl SetMonData + b _0803920C + .align 2, 0 +_08038FC4: .4byte gEnemyParty +_08038FC8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038FE0 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x9 + bl SetMonData + b _0803920C + .align 2, 0 +_08038FE0: .4byte gEnemyParty +_08038FE4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08038FFC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x37 + bl SetMonData + b _0803920C + .align 2, 0 +_08038FFC: .4byte gEnemyParty +_08039000: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039018 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x38 + bl SetMonData + b _0803920C + .align 2, 0 +_08039018: .4byte gEnemyParty +_0803901C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039034 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x39 + bl SetMonData + b _0803920C + .align 2, 0 +_08039034: .4byte gEnemyParty +_08039038: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039050 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3A + bl SetMonData + b _0803920C + .align 2, 0 +_08039050: .4byte gEnemyParty +_08039054: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803906C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3B + bl SetMonData + b _0803920C + .align 2, 0 +_0803906C: .4byte gEnemyParty +_08039070: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039088 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3C + bl SetMonData + b _0803920C + .align 2, 0 +_08039088: .4byte gEnemyParty +_0803908C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080390A4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3D + bl SetMonData + b _0803920C + .align 2, 0 +_080390A4: .4byte gEnemyParty +_080390A8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080390C0 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3E + bl SetMonData + b _0803920C + .align 2, 0 +_080390C0: .4byte gEnemyParty +_080390C4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080390DC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x3F + bl SetMonData + b _0803920C + .align 2, 0 +_080390DC: .4byte gEnemyParty +_080390E0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080390F8 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x16 + bl SetMonData + b _0803920C + .align 2, 0 +_080390F8: .4byte gEnemyParty +_080390FC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039114 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x17 + bl SetMonData + b _0803920C + .align 2, 0 +_08039114: .4byte gEnemyParty +_08039118: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039130 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x18 + bl SetMonData + b _0803920C + .align 2, 0 +_08039130: .4byte gEnemyParty +_08039134: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803914C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x21 + bl SetMonData + b _0803920C + .align 2, 0 +_0803914C: .4byte gEnemyParty +_08039150: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039168 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x2F + bl SetMonData + b _0803920C + .align 2, 0 +_08039168: .4byte gEnemyParty +_0803916C: + movs r0, 0x64 + muls r0, r5 + ldr r1, _08039184 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x30 + bl SetMonData + b _0803920C + .align 2, 0 +_08039184: .4byte gEnemyParty +_08039188: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080391A0 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x32 + bl SetMonData + b _0803920C + .align 2, 0 +_080391A0: .4byte gEnemyParty +_080391A4: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080391BC @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x33 + bl SetMonData + b _0803920C + .align 2, 0 +_080391BC: .4byte gEnemyParty +_080391C0: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080391D8 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x34 + bl SetMonData + b _0803920C + .align 2, 0 +_080391D8: .4byte gEnemyParty +_080391DC: + movs r0, 0x64 + muls r0, r5 + ldr r1, _080391F4 @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x35 + bl SetMonData + b _0803920C + .align 2, 0 +_080391F4: .4byte gEnemyParty +_080391F8: + movs r0, 0x64 + muls r0, r5 + ldr r1, _0803921C @ =gEnemyParty + adds r0, r1 + ldrb r2, [r6] + lsls r2, 9 + adds r2, r3 + movs r1, 0x36 + bl SetMonData +_0803920C: + add sp, 0x38 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803921C: .4byte gEnemyParty + thumb_func_end sub_8038900 + + thumb_func_start sub_8039220 +sub_8039220: @ 8039220 + push {r4-r7,lr} + ldr r1, _08039284 @ =gUnknown_02024A6A + ldr r7, _08039288 @ =gUnknown_02024A60 + ldrb r2, [r7] + lsls r0, r2, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + adds r3, r1, 0 + muls r3, r0 + ldr r4, _0803928C @ =gUnknown_02023A60 + lsls r2, 9 + adds r0, r4, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + ldr r1, _08039290 @ =gEnemyParty + adds r0, r1 + adds r5, r3, r0 + movs r3, 0 + adds r0, r4, 0x2 + adds r2, r0 + ldrb r2, [r2] + cmp r3, r2 + bcs _08039278 + adds r6, r4, 0 + adds r2, r7, 0 + adds r4, r0, 0 +_08039256: + adds r1, r5, r3 + ldrb r0, [r2] + lsls r0, 9 + adds r0, 0x3 + adds r0, r3, r0 + adds r0, r6 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 + ldrb r0, [r2] + lsls r0, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r3, r0 + bcc _08039256 +_08039278: + bl dp01_tbl4_exec_completed + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08039284: .4byte gUnknown_02024A6A +_08039288: .4byte gUnknown_02024A60 +_0803928C: .4byte gUnknown_02023A60 +_08039290: .4byte gEnemyParty + thumb_func_end sub_8039220 + + thumb_func_start sub_8039294 +sub_8039294: @ 8039294 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r7, _080393BC @ =gUnknown_02024A6A + ldr r6, _080393C0 @ =gUnknown_02024A60 + ldrb r0, [r6] + lsls r0, 1 + adds r0, r7 + ldrh r0, [r0] + movs r1, 0x64 + mov r10, r1 + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + ldr r1, _080393C4 @ =gEnemyParty + mov r9, r1 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r4, r0, 0 + lsls r4, 16 + lsrs r4, 16 + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + mov r2, r10 + muls r2, r0 + adds r0, r2, 0 + add r0, r9 + bl sub_8031794 + ldrb r0, [r6] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080393C8 @ =gUnknown_02024E8C + mov r8, r0 + ldrb r0, [r6] + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + ldrb r0, [r6] + bl sub_8077F68 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldrb r0, [r6] + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r8 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, _080393CC @ =gUnknown_02024BE0 + ldrb r1, [r6] + adds r1, r4 + strb r0, [r1] + ldr r5, _080393D0 @ =gSprites + ldrb r0, [r6] + adds r0, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080393D4 @ =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r2, [r6] + adds r0, r2, r4 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r2, [r0, 0x2E] + ldrb r3, [r6] + adds r0, r3, r4 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r2, [r6] + adds r4, r2, r4 + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080393D8 @ =gUnknown_02024E84 + adds r2, r1 + ldrb r1, [r2] + bl StartSpriteAnim + ldrb r4, [r6] + lsls r0, r4, 1 + adds r0, r7 + ldrh r0, [r0] + mov r1, r10 + muls r1, r0 + adds r0, r1, 0 + add r0, r9 + movs r1, 0xB + bl GetMonData + adds r1, r0, 0 + lsls r1, 16 + lsrs r1, 16 + adds r0, r4, 0 + bl sub_8032984 + ldr r1, _080393DC @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _080393E0 @ =sub_8037A74 + str r1, [r0] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080393BC: .4byte gUnknown_02024A6A +_080393C0: .4byte gUnknown_02024A60 +_080393C4: .4byte gEnemyParty +_080393C8: .4byte gUnknown_02024E8C +_080393CC: .4byte gUnknown_02024BE0 +_080393D0: .4byte gSprites +_080393D4: .4byte 0x0000ff10 +_080393D8: .4byte gUnknown_02024E84 +_080393DC: .4byte gUnknown_03004330 +_080393E0: .4byte sub_8037A74 + thumb_func_end sub_8039294 + + thumb_func_start sub_80393E4 +sub_80393E4: @ 80393E4 + push {r4,lr} + ldr r1, _0803941C @ =gUnknown_02024A6A + ldr r4, _08039420 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r2, r0, 1 + adds r2, r1 + ldr r3, _08039424 @ =gUnknown_02023A60 + lsls r0, 9 + adds r1, r3, 0x1 + adds r0, r1 + ldrb r0, [r0] + strh r0, [r2] + ldrb r0, [r4] + lsls r1, r0, 9 + adds r3, 0x2 + adds r1, r3 + ldrb r1, [r1] + bl sub_8039430 + ldr r1, _08039428 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803942C @ =sub_8037E30 + str r1, [r0] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803941C: .4byte gUnknown_02024A6A +_08039420: .4byte gUnknown_02024A60 +_08039424: .4byte gUnknown_02023A60 +_08039428: .4byte gUnknown_03004330 +_0803942C: .4byte sub_8037E30 + thumb_func_end sub_80393E4 + + thumb_func_start sub_8039430 +sub_8039430: @ 8039430 + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + adds r6, r0, 0 + lsls r6, 24 + lsrs r6, 24 + lsls r1, 24 + lsrs r1, 24 + adds r0, r6, 0 + bl sub_8032AA8 + ldr r0, _0803958C @ =gUnknown_02024A6A + lsls r4, r6, 1 + adds r4, r0 + ldr r0, _08039590 @ =gUnknown_02023A60 + lsls r1, r6, 9 + adds r0, 0x1 + adds r1, r0 + ldrb r0, [r1] + strh r0, [r4] + ldrh r0, [r4] + movs r1, 0x64 + mov r9, r1 + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + ldr r5, _08039594 @ =gEnemyParty + adds r0, r5 + movs r1, 0xB + bl GetMonData + mov r8, r0 + lsls r0, 16 + lsrs r0, 16 + mov r8, r0 + ldr r0, _08039598 @ =sub_80312F0 + bl object_new_hidden_with_callback + ldr r1, _0803959C @ =gUnknown_0300434C + mov r10, r1 + add r10, r6 + mov r1, r10 + strb r0, [r1] + ldrh r0, [r4] + mov r1, r9 + muls r1, r0 + adds r0, r1, 0 + adds r0, r5 + adds r1, r6, 0 + bl sub_8031794 + adds r0, r6, 0 + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r8 + bl GetMonSpriteTemplate_803C56C + ldr r0, _080395A0 @ =gUnknown_02024E8C + mov r9, r0 + adds r0, r6, 0 + movs r1, 0x2 + bl sub_8077ABC + adds r5, r0, 0 + lsls r5, 24 + lsrs r5, 24 + adds r0, r6, 0 + bl sub_8077F68 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r6, 0 + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + mov r0, r9 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r4, _080395A4 @ =gUnknown_02024BE0 + adds r4, r6, r4 + strb r0, [r4] + ldr r5, _080395A8 @ =gSprites + mov r0, r10 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrb r1, [r4] + strh r1, [r0, 0x30] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + strh r6, [r0, 0x2E] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + mov r1, r8 + strh r1, [r0, 0x32] + ldrb r0, [r4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r5 + lsls r3, r6, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _080395AC @ =gUnknown_02024E84 + adds r6, r1 + ldrb r1, [r6] + bl StartSpriteAnim + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _080395B0 @ =SpriteCallbackDummy + str r1, [r0] + movs r0, 0 + movs r1, 0xFE + bl sub_8046400 + mov r1, r10 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r5 + lsls r0, 24 + lsrs r0, 24 + strh r0, [r1, 0x2E] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803958C: .4byte gUnknown_02024A6A +_08039590: .4byte gUnknown_02023A60 +_08039594: .4byte gEnemyParty +_08039598: .4byte sub_80312F0 +_0803959C: .4byte gUnknown_0300434C +_080395A0: .4byte gUnknown_02024E8C +_080395A4: .4byte gUnknown_02024BE0 +_080395A8: .4byte gSprites +_080395AC: .4byte gUnknown_02024E84 +_080395B0: .4byte SpriteCallbackDummy + thumb_func_end sub_8039430 + + thumb_func_start sub_80395B4 +sub_80395B4: @ 80395B4 + push {r4-r6,lr} + ldr r1, _080395E4 @ =gUnknown_02023A60 + ldr r6, _080395E8 @ =gUnknown_02024A60 + ldrb r2, [r6] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r3, [r0] + cmp r3, 0 + bne _080395F8 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r1, _080395EC @ =0x02017810 + adds r0, r1 + strb r3, [r0, 0x4] + ldr r1, _080395F0 @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _080395F4 @ =sub_8039648 + str r1, [r0] + b _08039634 + .align 2, 0 +_080395E4: .4byte gUnknown_02023A60 +_080395E8: .4byte gUnknown_02024A60 +_080395EC: .4byte 0x02017810 +_080395F0: .4byte gUnknown_03004330 +_080395F4: .4byte sub_8039648 +_080395F8: + ldr r5, _0803963C @ =gUnknown_02024BE0 + adds r0, r2, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _08039640 @ =gSprites + adds r0, r4 + bl FreeSpriteOamMatrix + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + bl DestroySprite + ldrb r0, [r6] + bl sub_8032A08 + ldr r1, _08039644 @ =gUnknown_03004340 + ldrb r0, [r6] + adds r0, r1 + ldrb r0, [r0] + bl sub_8043DB0 + bl dp01_tbl4_exec_completed +_08039634: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803963C: .4byte gUnknown_02024BE0 +_08039640: .4byte gSprites +_08039644: .4byte gUnknown_03004340 + thumb_func_end sub_80395B4 + + thumb_func_start sub_8039648 +sub_8039648: @ 8039648 + push {r4,r5,lr} + ldr r5, _08039664 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _08039668 @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + beq _0803966C + cmp r0, 0x1 + beq _08039698 + b _080396C0 + .align 2, 0 +_08039664: .4byte gUnknown_02024A60 +_08039668: .4byte 0x02017810 +_0803966C: + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08039688 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08039688: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _080396C0 +_08039698: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080396C0 + strb r0, [r3, 0x4] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x2 + bl move_anim_start_t4 + ldr r1, _080396C8 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080396CC @ =sub_8037BBC + str r1, [r0] +_080396C0: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080396C8: .4byte gUnknown_03004330 +_080396CC: .4byte sub_8037BBC + thumb_func_end sub_8039648 + + thumb_func_start sub_80396D0 +sub_80396D0: @ 80396D0 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + ldr r0, _08039704 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _08039714 + ldr r6, _08039708 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl battle_get_per_side_status + movs r1, 0x2 + ands r1, r0 + movs r5, 0x10 + cmp r1, 0 + beq _080396F8 + ldr r5, _0803970C @ =0x0000fff0 +_080396F8: + ldr r4, _08039710 @ =gLinkPlayers + ldrb r0, [r6] + bl sub_803FC34 + b _08039724 + .align 2, 0 +_08039704: .4byte gUnknown_020239F8 +_08039708: .4byte gUnknown_02024A60 +_0803970C: .4byte 0x0000fff0 +_08039710: .4byte gLinkPlayers +_08039714: + movs r5, 0 + ldr r4, _0803986C @ =gLinkPlayers + bl GetMultiplayerId + movs r1, 0x1 + eors r0, r1 + lsls r0, 24 + lsrs r0, 24 +_08039724: + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1, 0x13] + mov r9, r0 + ldr r0, _08039870 @ =gUnknown_02024A60 + mov r8, r0 + ldrb r1, [r0] + mov r0, r9 + bl sub_8031A6C + mov r1, r8 + ldrb r0, [r1] + bl battle_get_per_side_status + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + mov r0, r9 + bl GetMonSpriteTemplate_803C5A0 + ldr r6, _08039874 @ =gUnknown_02024E8C + lsls r5, 16 + movs r2, 0xB0 + lsls r2, 16 + adds r5, r2 + asrs r5, 16 + ldr r1, _08039878 @ =gTrainerFrontPicCoords + mov r2, r9 + lsls r0, r2, 2 + adds r0, r1 + ldrb r0, [r0] + movs r4, 0x8 + subs r4, r0 + lsls r4, 18 + movs r0, 0xA0 + lsls r0, 14 + adds r4, r0 + asrs r4, 16 + mov r1, r8 + ldrb r0, [r1] + bl sub_8079E90 + adds r3, r0, 0 + lsls r3, 24 + lsrs r3, 24 + adds r0, r6, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl CreateSprite + ldr r5, _0803987C @ =gUnknown_02024BE0 + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + strb r0, [r1] + ldr r4, _08039880 @ =gSprites + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _08039884 @ =0x0000ff10 + strh r1, [r0, 0x24] + ldrb r0, [r2] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x2 + strh r1, [r0, 0x2E] + ldr r0, _08039888 @ =gTrainerFrontPicPaletteTable + mov r1, r9 + lsls r6, r1, 3 + adds r0, r6, r0 + ldrh r0, [r0, 0x4] + bl IndexOfSpritePaletteTag + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r1, [r1] + lsls r2, r1, 4 + adds r2, r1 + lsls r2, 2 + adds r2, r4 + lsls r0, 4 + ldrb r3, [r2, 0x5] + movs r1, 0xF + ands r1, r3 + orrs r1, r0 + strb r1, [r2, 0x5] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrh r0, [r1, 0x4] + lsls r0, 22 + lsrs r0, 22 + strh r0, [r1, 0x38] + ldr r0, _0803988C @ =gTrainerFrontPicTable + adds r6, r0 + ldrh r0, [r6, 0x6] + bl GetSpriteTileStartByTag + mov r2, r8 + ldrb r1, [r2] + adds r1, r5 + ldrb r2, [r1] + lsls r1, r2, 4 + adds r1, r2 + lsls r1, 2 + adds r1, r4 + ldr r2, _08039890 @ =0x000003ff + ands r2, r0 + ldrh r3, [r1, 0x4] + ldr r0, _08039894 @ =0xfffffc00 + ands r0, r3 + orrs r0, r2 + strh r0, [r1, 0x4] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + mov r2, r9 + strh r2, [r0, 0x6] + mov r1, r8 + ldrb r0, [r1] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r4, 0x1C + adds r0, r4 + ldr r1, _08039898 @ =sub_80313A0 + str r1, [r0] + ldr r1, _0803989C @ =gUnknown_03004330 + mov r2, r8 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _080398A0 @ =sub_803757C + str r1, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803986C: .4byte gLinkPlayers +_08039870: .4byte gUnknown_02024A60 +_08039874: .4byte gUnknown_02024E8C +_08039878: .4byte gTrainerFrontPicCoords +_0803987C: .4byte gUnknown_02024BE0 +_08039880: .4byte gSprites +_08039884: .4byte 0x0000ff10 +_08039888: .4byte gTrainerFrontPicPaletteTable +_0803988C: .4byte gTrainerFrontPicTable +_08039890: .4byte 0x000003ff +_08039894: .4byte 0xfffffc00 +_08039898: .4byte sub_80313A0 +_0803989C: .4byte gUnknown_03004330 +_080398A0: .4byte sub_803757C + thumb_func_end sub_80396D0 + + thumb_func_start sub_80398A4 +sub_80398A4: @ 80398A4 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_80398A4 + + thumb_func_start sub_80398B0 +sub_80398B0: @ 80398B0 + push {r4-r6,lr} + ldr r6, _08039940 @ =gUnknown_02024BE0 + ldr r4, _08039944 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r5, _08039948 @ =gSprites + adds r0, r5 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0803994C @ =sub_8078B34 + str r1, [r0] + ldrb r0, [r4] + adds r0, r6 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r5 + ldr r1, _08039950 @ =SpriteCallbackDummy + bl oamt_set_x3A_32 + ldr r1, _08039954 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08039958 @ =sub_80375B4 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08039940: .4byte gUnknown_02024BE0 +_08039944: .4byte gUnknown_02024A60 +_08039948: .4byte gSprites +_0803994C: .4byte sub_8078B34 +_08039950: .4byte SpriteCallbackDummy +_08039954: .4byte gUnknown_03004330 +_08039958: .4byte sub_80375B4 + thumb_func_end sub_80398B0 + + thumb_func_start sub_803995C +sub_803995C: @ 803995C + push {r4,r5,lr} + ldr r5, _080399A0 @ =gUnknown_02024A60 + ldrb r2, [r5] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + ldr r4, _080399A4 @ =0x02017810 + adds r3, r0, r4 + ldrb r0, [r3, 0x4] + cmp r0, 0 + bne _080399A8 + lsls r0, r2, 2 + adds r1, r4, 0 + subs r1, 0x10 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _0803998E + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_0803998E: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r4 + ldrb r0, [r1, 0x4] + adds r0, 0x1 + strb r0, [r1, 0x4] + b _080399E4 + .align 2, 0 +_080399A0: .4byte gUnknown_02024A60 +_080399A4: .4byte 0x02017810 +_080399A8: + ldrb r1, [r3] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _080399E4 + strb r0, [r3, 0x4] + movs r0, 0x10 + movs r1, 0x3F + bl PlaySE12WithPanning + ldr r2, _080399EC @ =gSprites + ldr r1, _080399F0 @ =gUnknown_02024BE0 + ldrb r0, [r5] + adds r0, r1 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r2, 0x1C + adds r0, r2 + ldr r1, _080399F4 @ =sub_8010384 + str r1, [r0] + ldr r1, _080399F8 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _080399FC @ =sub_8037B78 + str r1, [r0] +_080399E4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080399EC: .4byte gSprites +_080399F0: .4byte gUnknown_02024BE0 +_080399F4: .4byte sub_8010384 +_080399F8: .4byte gUnknown_03004330 +_080399FC: .4byte sub_8037B78 + thumb_func_end sub_803995C + + thumb_func_start sub_8039A00 +sub_8039A00: @ 8039A00 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039A00 + + thumb_func_start sub_8039A0C +sub_8039A0C: @ 8039A0C + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039A0C + + thumb_func_start sub_8039A18 +sub_8039A18: @ 8039A18 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039A18 + + thumb_func_start sub_8039A24 +sub_8039A24: @ 8039A24 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039A24 + + thumb_func_start sub_8039A30 +sub_8039A30: @ 8039A30 + push {r4-r6,lr} + ldr r6, _08039B14 @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + beq _08039A42 + b _08039B52 +_08039A42: + ldr r0, _08039B18 @ =gUnknown_02023A60 + mov r12, r0 + ldrb r2, [r6] + lsls r2, 9 + adds r0, 0x1 + adds r0, r2, r0 + ldrb r0, [r0] + mov r1, r12 + adds r1, 0x2 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + ldr r5, _08039B1C @ =gUnknown_0202F7C4 + mov r1, r12 + adds r1, 0x3 + adds r2, r1 + ldrb r1, [r2] + strb r1, [r5] + ldr r4, _08039B20 @ =gUnknown_0202F7BC + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x4 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x5 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r4, _08039B24 @ =gUnknown_0202F7B8 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x6 + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0x7 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 8 + orrs r3, r1 + mov r1, r12 + adds r1, 0x8 + adds r1, r2, r1 + ldrb r1, [r1] + lsls r1, 16 + orrs r3, r1 + mov r1, r12 + adds r1, 0x9 + adds r2, r1 + ldrb r1, [r2] + lsls r1, 24 + orrs r3, r1 + str r3, [r4] + ldr r3, _08039B28 @ =gUnknown_0202F7BE + ldrb r1, [r6] + lsls r1, 9 + mov r2, r12 + adds r2, 0xA + adds r1, r2 + ldrb r1, [r1] + strb r1, [r3] + ldr r4, _08039B2C @ =gUnknown_0202F7C0 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0xC + adds r1, r2, r1 + ldrb r3, [r1] + mov r1, r12 + adds r1, 0xD + adds r2, r1 + ldrb r1, [r2] + lsls r1, 8 + orrs r3, r1 + strh r3, [r4] + ldr r3, _08039B30 @ =gUnknown_0202F7B4 + ldrb r2, [r6] + lsls r2, 9 + mov r1, r12 + adds r1, 0x10 + adds r2, r1 + str r2, [r3] + ldr r3, _08039B34 @ =gUnknown_02024E70 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r3 + ldr r2, [r2] + str r2, [r1] + ldrb r1, [r5] + bl sub_8031720 + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0 + beq _08039B38 + bl dp01_tbl4_exec_completed + b _08039B52 + .align 2, 0 +_08039B14: .4byte gUnknown_02024A60 +_08039B18: .4byte gUnknown_02023A60 +_08039B1C: .4byte gUnknown_0202F7C4 +_08039B20: .4byte gUnknown_0202F7BC +_08039B24: .4byte gUnknown_0202F7B8 +_08039B28: .4byte gUnknown_0202F7BE +_08039B2C: .4byte gUnknown_0202F7C0 +_08039B30: .4byte gUnknown_0202F7B4 +_08039B34: .4byte gUnknown_02024E70 +_08039B38: + ldrb r1, [r6] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08039B58 @ =0x02017810 + adds r0, r1 + strb r2, [r0, 0x4] + ldr r1, _08039B5C @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _08039B60 @ =sub_8039B64 + str r1, [r0] +_08039B52: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08039B58: .4byte 0x02017810 +_08039B5C: .4byte gUnknown_03004330 +_08039B60: .4byte sub_8039B64 + thumb_func_end sub_8039A30 + + thumb_func_start sub_8039B64 +sub_8039B64: @ 8039B64 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r2, _08039BA8 @ =gUnknown_02023A60 + ldr r5, _08039BAC @ =gUnknown_02024A60 + ldrb r3, [r5] + lsls r1, r3, 9 + adds r0, r2, 0x1 + mov r9, r0 + adds r0, r1, r0 + ldrb r4, [r0] + adds r6, r2, 0x2 + mov r8, r6 + adds r0, r1, r6 + ldrb r0, [r0] + lsls r0, 8 + orrs r4, r0 + adds r2, 0xB + adds r1, r2 + ldrb r7, [r1] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r6, _08039BB0 @ =0x02017810 + adds r0, r6 + ldrb r2, [r0, 0x4] + cmp r2, 0x1 + beq _08039BF2 + cmp r2, 0x1 + bgt _08039BB4 + cmp r2, 0 + beq _08039BBE + b _08039CBC + .align 2, 0 +_08039BA8: .4byte gUnknown_02023A60 +_08039BAC: .4byte gUnknown_02024A60 +_08039BB0: .4byte 0x02017810 +_08039BB4: + cmp r2, 0x2 + beq _08039C18 + cmp r2, 0x3 + beq _08039C84 + b _08039CBC +_08039BBE: + lsls r1, r3, 2 + adds r0, r6, 0 + subs r0, 0x10 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0xC + ands r0, r2 + cmp r0, 0x4 + bne _08039BE2 + movs r0, 0x8 + orrs r0, r2 + strb r0, [r1] + ldrb r2, [r5] + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x5 + bl move_anim_start_t4 +_08039BE2: + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x1 + strb r0, [r1, 0x4] + b _08039CBC +_08039BF2: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + bne _08039CBC + movs r0, 0 + bl sub_80326EC + adds r0, r4, 0 + bl move_anim_start_t1 + ldrb r0, [r5] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r6 + movs r0, 0x2 + strb r0, [r1, 0x4] + b _08039CBC +_08039C18: + ldr r0, _08039C74 @ =gUnknown_0202F7AC + ldr r0, [r0] + bl _call_via_r0 + ldr r0, _08039C78 @ =gUnknown_0202F7B1 + ldrb r0, [r0] + cmp r0, 0 + bne _08039CBC + movs r0, 0x1 + bl sub_80326EC + ldrb r2, [r5] + lsls r0, r2, 2 + adds r4, r6, 0 + subs r4, 0x10 + adds r0, r4 + ldrb r1, [r0] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + beq _08039C60 + cmp r7, 0x1 + bhi _08039C60 + adds r0, r2, 0 + adds r1, r2, 0 + movs r3, 0x6 + bl move_anim_start_t4 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r4 + ldrb r2, [r0] + movs r1, 0x9 + negs r1, r1 + ands r1, r2 + strb r1, [r0] +_08039C60: + ldr r0, _08039C7C @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r1, _08039C80 @ =0x02017810 + adds r0, r1 + movs r1, 0x3 + strb r1, [r0, 0x4] + b _08039CBC + .align 2, 0 +_08039C74: .4byte gUnknown_0202F7AC +_08039C78: .4byte gUnknown_0202F7B1 +_08039C7C: .4byte gUnknown_02024A60 +_08039C80: .4byte 0x02017810 +_08039C84: + ldrb r1, [r0] + movs r0, 0x40 + ands r0, r1 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _08039CBC + bl sub_8031F24 + ldrb r0, [r5] + lsls r2, r0, 9 + mov r3, r9 + adds r1, r2, r3 + ldrb r1, [r1] + add r2, r8 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + bl sub_80324BC + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r6 + strb r4, [r0, 0x4] + bl dp01_tbl4_exec_completed +_08039CBC: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8039B64 + + thumb_func_start sub_8039CC8 +sub_8039CC8: @ 8039CC8 + push {r4,lr} + sub sp, 0x4 + ldr r0, _08039D0C @ =gUnknown_030042A4 + movs r1, 0 + strh r1, [r0] + ldr r0, _08039D10 @ =gUnknown_030042A0 + strh r1, [r0] + ldr r4, _08039D14 @ =gUnknown_02024A60 + ldrb r0, [r4] + lsls r0, 9 + ldr r1, _08039D18 @ =gUnknown_02023A62 + adds r0, r1 + ldrh r0, [r0] + bl sub_8120AA8 + ldr r0, _08039D1C @ =gUnknown_03004210 + ldr r1, _08039D20 @ =gUnknown_020238CC + movs r2, 0xF + str r2, [sp] + movs r2, 0x90 + movs r3, 0x2 + bl sub_8002EB0 + ldr r1, _08039D24 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08039D28 @ =sub_8037C2C + str r1, [r0] + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08039D0C: .4byte gUnknown_030042A4 +_08039D10: .4byte gUnknown_030042A0 +_08039D14: .4byte gUnknown_02024A60 +_08039D18: .4byte gUnknown_02023A62 +_08039D1C: .4byte gUnknown_03004210 +_08039D20: .4byte gUnknown_020238CC +_08039D24: .4byte gUnknown_03004330 +_08039D28: .4byte sub_8037C2C + thumb_func_end sub_8039CC8 + + thumb_func_start sub_8039D2C +sub_8039D2C: @ 8039D2C + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039D2C + + thumb_func_start sub_8039D38 +sub_8039D38: @ 8039D38 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039D38 + + thumb_func_start sub_8039D44 +sub_8039D44: @ 8039D44 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039D44 + + thumb_func_start sub_8039D50 +sub_8039D50: @ 8039D50 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039D50 + + thumb_func_start sub_8039D5C +sub_8039D5C: @ 8039D5C + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039D5C + + thumb_func_start sub_8039D68 +sub_8039D68: @ 8039D68 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039D68 + + thumb_func_start sub_8039D74 +sub_8039D74: @ 8039D74 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039D74 + + thumb_func_start sub_8039D80 +sub_8039D80: @ 8039D80 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + bl load_gfxc_health_bar + ldr r3, _08039DF8 @ =gUnknown_02023A60 + ldr r0, _08039DFC @ =gUnknown_02024A60 + mov r9, r0 + ldrb r4, [r0] + lsls r2, r4, 9 + adds r0, r3, 0x2 + adds r0, r2, r0 + ldrb r1, [r0] + adds r3, 0x3 + adds r2, r3 + ldrb r0, [r2] + lsls r0, 8 + orrs r1, r0 + lsls r1, 16 + asrs r7, r1, 16 + ldr r0, _08039E00 @ =0x00007fff + cmp r7, r0 + beq _08039E10 + ldr r6, _08039E04 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r6 + ldrh r0, [r0] + movs r5, 0x64 + muls r0, r5 + ldr r4, _08039E08 @ =gEnemyParty + adds r0, r4 + movs r1, 0x3A + bl GetMonData + mov r8, r0 + mov r1, r9 + ldrb r0, [r1] + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + muls r0, r5 + adds r0, r4 + movs r1, 0x39 + bl GetMonData + adds r3, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _08039E0C @ =gUnknown_03004340 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + mov r2, r8 + bl sub_8043D84 + b _08039E3A + .align 2, 0 +_08039DF8: .4byte gUnknown_02023A60 +_08039DFC: .4byte gUnknown_02024A60 +_08039E00: .4byte 0x00007fff +_08039E04: .4byte gUnknown_02024A6A +_08039E08: .4byte gEnemyParty +_08039E0C: .4byte gUnknown_03004340 +_08039E10: + ldr r1, _08039E58 @ =gUnknown_02024A6A + lsls r0, r4, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _08039E5C @ =gEnemyParty + adds r0, r1 + movs r1, 0x3A + bl GetMonData + adds r2, r0, 0 + mov r1, r9 + ldrb r0, [r1] + ldr r1, _08039E60 @ =gUnknown_03004340 + adds r1, r0, r1 + ldrb r1, [r1] + str r7, [sp] + movs r3, 0 + bl sub_8043D84 +_08039E3A: + ldr r1, _08039E64 @ =gUnknown_03004330 + ldr r0, _08039E68 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _08039E6C @ =sub_8037B24 + str r1, [r0] + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08039E58: .4byte gUnknown_02024A6A +_08039E5C: .4byte gEnemyParty +_08039E60: .4byte gUnknown_03004340 +_08039E64: .4byte gUnknown_03004330 +_08039E68: .4byte gUnknown_02024A60 +_08039E6C: .4byte sub_8037B24 + thumb_func_end sub_8039D80 + + thumb_func_start sub_8039E70 +sub_8039E70: @ 8039E70 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039E70 + + thumb_func_start sub_8039E7C +sub_8039E7C: @ 8039E7C + push {r4,lr} + ldr r4, _08039ED4 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08039ECC + ldr r0, _08039ED8 @ =gUnknown_03004340 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + ldr r2, _08039EDC @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r2 + ldrh r2, [r1] + movs r1, 0x64 + muls r1, r2 + ldr r2, _08039EE0 @ =gEnemyParty + adds r1, r2 + movs r2, 0x9 + bl sub_8045A5C + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _08039EE4 @ =0x02017810 + adds r1, r0 + ldrb r2, [r1] + movs r0, 0x11 + negs r0, r0 + ands r0, r2 + strb r0, [r1] + ldr r1, _08039EE8 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _08039EEC @ =sub_8037FAC + str r1, [r0] +_08039ECC: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08039ED4: .4byte gUnknown_02024A60 +_08039ED8: .4byte gUnknown_03004340 +_08039EDC: .4byte gUnknown_02024A6A +_08039EE0: .4byte gEnemyParty +_08039EE4: .4byte 0x02017810 +_08039EE8: .4byte gUnknown_03004330 +_08039EEC: .4byte sub_8037FAC + thumb_func_end sub_8039E7C + + thumb_func_start sub_8039EF0 +sub_8039EF0: @ 8039EF0 + push {r4,r5,lr} + ldr r5, _08039F48 @ =gUnknown_02024A60 + ldrb r0, [r5] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _08039F40 + ldr r4, _08039F4C @ =gUnknown_02023A60 + ldrb r3, [r5] + lsls r3, 9 + adds r0, r4, 0x1 + adds r0, r3, r0 + ldrb r0, [r0] + adds r1, r4, 0x2 + adds r1, r3, r1 + ldrb r1, [r1] + adds r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 8 + orrs r1, r2 + adds r2, r4, 0x4 + adds r2, r3, r2 + ldrb r2, [r2] + lsls r2, 16 + orrs r1, r2 + adds r4, 0x5 + adds r3, r4 + ldrb r2, [r3] + lsls r2, 24 + orrs r1, r2 + bl move_anim_start_t2_for_situation + ldr r1, _08039F50 @ =gUnknown_03004330 + ldrb r0, [r5] + lsls r0, 2 + adds r0, r1 + ldr r1, _08039F54 @ =sub_8037FAC + str r1, [r0] +_08039F40: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08039F48: .4byte gUnknown_02024A60 +_08039F4C: .4byte gUnknown_02023A60 +_08039F50: .4byte gUnknown_03004330 +_08039F54: .4byte sub_8037FAC + thumb_func_end sub_8039EF0 + + thumb_func_start sub_8039F58 +sub_8039F58: @ 8039F58 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039F58 + + thumb_func_start sub_8039F64 +sub_8039F64: @ 8039F64 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039F64 + + thumb_func_start sub_8039F70 +sub_8039F70: @ 8039F70 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039F70 + + thumb_func_start sub_8039F7C +sub_8039F7C: @ 8039F7C + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039F7C + + thumb_func_start sub_8039F88 +sub_8039F88: @ 8039F88 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039F88 + + thumb_func_start sub_8039F94 +sub_8039F94: @ 8039F94 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039F94 + + thumb_func_start sub_8039FA0 +sub_8039FA0: @ 8039FA0 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039FA0 + + thumb_func_start sub_8039FAC +sub_8039FAC: @ 8039FAC + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039FAC + + thumb_func_start sub_8039FB8 +sub_8039FB8: @ 8039FB8 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_8039FB8 + + thumb_func_start sub_8039FC4 +sub_8039FC4: @ 8039FC4 + push {lr} + ldr r2, _08039FDC @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x80 + negs r0, r0 + ands r0, r1 + strb r0, [r2] + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_08039FDC: .4byte gUnknown_020238C8 + thumb_func_end sub_8039FC4 + + thumb_func_start sub_8039FE0 +sub_8039FE0: @ 8039FE0 + push {lr} + ldr r3, _0803A00C @ =gUnknown_020238C8 + ldr r1, _0803A010 @ =gUnknown_02023A60 + ldr r0, _0803A014 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + movs r1, 0x7F + ands r1, r0 + ldrb r2, [r3] + movs r0, 0x80 + negs r0, r0 + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0803A00C: .4byte gUnknown_020238C8 +_0803A010: .4byte gUnknown_02023A60 +_0803A014: .4byte gUnknown_02024A60 + thumb_func_end sub_8039FE0 + + thumb_func_start sub_803A018 +sub_803A018: @ 803A018 + push {lr} + ldr r2, _0803A02C @ =gUnknown_020238C8 + ldrb r1, [r2] + movs r0, 0x7F + ands r0, r1 + strb r0, [r2] + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0803A02C: .4byte gUnknown_020238C8 + thumb_func_end sub_803A018 + + thumb_func_start sub_803A030 +sub_803A030: @ 803A030 + push {lr} + ldr r3, _0803A054 @ =gUnknown_020238C8 + ldr r1, [r3] + lsls r1, 24 + lsrs r1, 31 + movs r0, 0x1 + eors r1, r0 + lsls r1, 7 + ldrb r2, [r3] + movs r0, 0x7F + ands r0, r2 + orrs r0, r1 + strb r0, [r3] + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0803A054: .4byte gUnknown_020238C8 + thumb_func_end sub_803A030 + + thumb_func_start dp01t_29_4_blink +dp01t_29_4_blink: @ 803A058 + push {r4,lr} + ldr r3, _0803A080 @ =gSprites + ldr r2, _0803A084 @ =gUnknown_02024BE0 + ldr r4, _0803A088 @ =gUnknown_02024A60 + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + adds r0, 0x3E + ldrb r0, [r0] + lsls r0, 29 + cmp r0, 0 + bge _0803A08C + bl dp01_tbl4_exec_completed + b _0803A0B6 + .align 2, 0 +_0803A080: .4byte gSprites +_0803A084: .4byte gUnknown_02024BE0 +_0803A088: .4byte gUnknown_02024A60 +_0803A08C: + ldr r1, _0803A0BC @ =gUnknown_02024E6D + movs r0, 0x1 + strb r0, [r1] + ldrb r0, [r4] + adds r0, r2 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0 + strh r1, [r0, 0x30] + ldrb r0, [r4] + bl sub_8047858 + ldr r1, _0803A0C0 @ =gUnknown_03004330 + ldrb r0, [r4] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803A0C4 @ =dp01t_0F_4_move_anim + str r1, [r0] +_0803A0B6: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803A0BC: .4byte gUnknown_02024E6D +_0803A0C0: .4byte gUnknown_03004330 +_0803A0C4: .4byte dp01t_0F_4_move_anim + thumb_func_end dp01t_29_4_blink + + thumb_func_start sub_803A0C8 +sub_803A0C8: @ 803A0C8 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_803A0C8 + + thumb_func_start sub_803A0D4 +sub_803A0D4: @ 803A0D4 + push {r4,lr} + ldr r4, _0803A110 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl battle_side_get_owner + lsls r0, 24 + movs r3, 0x3F + cmp r0, 0 + bne _0803A0E8 + movs r3, 0xC0 +_0803A0E8: + ldr r2, _0803A114 @ =gUnknown_02023A60 + ldrb r1, [r4] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + lsls r1, r3, 24 + asrs r1, 24 + bl PlaySE12WithPanning + bl dp01_tbl4_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803A110: .4byte gUnknown_02024A60 +_0803A114: .4byte gUnknown_02023A60 + thumb_func_end sub_803A0D4 + + thumb_func_start sub_803A118 +sub_803A118: @ 803A118 + push {lr} + ldr r2, _0803A140 @ =gUnknown_02023A60 + ldr r0, _0803A144 @ =gUnknown_02024A60 + ldrb r1, [r0] + lsls r1, 9 + adds r0, r2, 0x1 + adds r0, r1, r0 + ldrb r0, [r0] + adds r2, 0x2 + adds r1, r2 + ldrb r1, [r1] + lsls r1, 8 + orrs r0, r1 + bl PlayFanfare + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0803A140: .4byte gUnknown_02023A60 +_0803A144: .4byte gUnknown_02024A60 + thumb_func_end sub_803A118 + + thumb_func_start sub_803A148 +sub_803A148: @ 803A148 + push {lr} + ldr r1, _0803A178 @ =gUnknown_02024A6A + ldr r0, _0803A17C @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + ldrh r1, [r0] + movs r0, 0x64 + muls r0, r1 + ldr r1, _0803A180 @ =gEnemyParty + adds r0, r1 + movs r1, 0xB + bl GetMonData + lsls r0, 16 + lsrs r0, 16 + movs r1, 0x19 + movs r2, 0x5 + bl PlayCry3 + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0803A178: .4byte gUnknown_02024A6A +_0803A17C: .4byte gUnknown_02024A60 +_0803A180: .4byte gEnemyParty + thumb_func_end sub_803A148 + + thumb_func_start dp01t_2E_4_battle_intro +dp01t_2E_4_battle_intro: @ 803A184 + push {lr} + ldr r1, _0803A1AC @ =gUnknown_02023A60 + ldr r0, _0803A1B0 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + bl sub_80E43C0 + ldr r2, _0803A1B4 @ =gUnknown_02024DE8 + ldrh r0, [r2] + movs r1, 0x1 + orrs r0, r1 + strh r0, [r2] + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0803A1AC: .4byte gUnknown_02023A60 +_0803A1B0: .4byte gUnknown_02024A60 +_0803A1B4: .4byte gUnknown_02024DE8 + thumb_func_end dp01t_2E_4_battle_intro + + thumb_func_start sub_803A1B8 +sub_803A1B8: @ 803A1B8 + push {r4-r6,lr} + ldr r5, _0803A294 @ =gUnknown_02024BE0 + ldr r6, _0803A298 @ =gUnknown_02024A60 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r4, _0803A29C @ =gSprites + adds r0, r4 + bl oamt_add_pos2_onto_pos1 + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x23 + strh r1, [r0, 0x2E] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + movs r1, 0x8C + lsls r1, 1 + strh r1, [r0, 0x32] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldrh r1, [r0, 0x22] + strh r1, [r0, 0x36] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r1, r4, 0 + adds r1, 0x1C + adds r0, r1 + ldr r1, _0803A2A0 @ =sub_8078B34 + str r1, [r0] + ldrb r0, [r6] + adds r0, r5 + ldrb r1, [r0] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + adds r0, r4 + ldr r1, _0803A2A4 @ =sub_803A3A8 + bl oamt_set_x3A_32 + ldr r0, _0803A2A8 @ =sub_803A2C4 + movs r1, 0x5 + bl CreateTask + lsls r0, 24 + lsrs r0, 24 + ldr r4, _0803A2AC @ =gTasks + lsls r1, r0, 2 + adds r1, r0 + lsls r1, 3 + adds r1, r4 + ldrb r0, [r6] + strh r0, [r1, 0x8] + ldrb r3, [r6] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r2, _0803A2B0 @ =0x02017810 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0803A276 + ldr r0, _0803A2B4 @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r4 + ldr r1, _0803A2B8 @ =sub_8044CA0 + str r1, [r0] +_0803A276: + adds r2, 0x30 + ldrb r0, [r2, 0x9] + movs r1, 0x1 + orrs r0, r1 + strb r0, [r2, 0x9] + ldr r1, _0803A2BC @ =gUnknown_03004330 + ldrb r0, [r6] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803A2C0 @ =nullsub_47 + str r1, [r0] + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803A294: .4byte gUnknown_02024BE0 +_0803A298: .4byte gUnknown_02024A60 +_0803A29C: .4byte gSprites +_0803A2A0: .4byte sub_8078B34 +_0803A2A4: .4byte sub_803A3A8 +_0803A2A8: .4byte sub_803A2C4 +_0803A2AC: .4byte gTasks +_0803A2B0: .4byte 0x02017810 +_0803A2B4: .4byte gUnknown_02024E68 +_0803A2B8: .4byte sub_8044CA0 +_0803A2BC: .4byte gUnknown_03004330 +_0803A2C0: .4byte nullsub_47 + thumb_func_end sub_803A1B8 + + thumb_func_start sub_803A2C4 +sub_803A2C4: @ 803A2C4 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + ldr r7, _0803A31C @ =gUnknown_02024A60 + ldrb r0, [r7] + mov r9, r0 + ldr r1, _0803A320 @ =gTasks + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 3 + adds r0, r1 + ldrh r0, [r0, 0x8] + strb r0, [r7] + bl battle_type_is_double + lsls r0, 24 + cmp r0, 0 + beq _0803A2FE + ldr r0, _0803A324 @ =gUnknown_020239F8 + ldrh r1, [r0] + movs r0, 0x40 + ands r0, r1 + cmp r0, 0 + beq _0803A330 +_0803A2FE: + ldr r0, _0803A328 @ =gUnknown_02023A60 + ldrb r1, [r7] + lsls r2, r1, 9 + adds r0, 0x1 + adds r2, r0 + ldr r0, _0803A32C @ =gUnknown_02024A6A + lsls r1, 1 + adds r1, r0 + ldrh r0, [r1] + strb r0, [r2] + ldrb r0, [r7] + movs r1, 0 + bl sub_8039430 + b _0803A370 + .align 2, 0 +_0803A31C: .4byte gUnknown_02024A60 +_0803A320: .4byte gTasks +_0803A324: .4byte gUnknown_020239F8 +_0803A328: .4byte gUnknown_02023A60 +_0803A32C: .4byte gUnknown_02024A6A +_0803A330: + ldr r4, _0803A394 @ =gUnknown_02023A60 + ldrb r0, [r7] + lsls r1, r0, 9 + adds r4, 0x1 + adds r1, r4 + ldr r6, _0803A398 @ =gUnknown_02024A6A + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_8039430 + ldrb r0, [r7] + movs r5, 0x2 + eors r0, r5 + strb r0, [r7] + ldrb r0, [r7] + lsls r1, r0, 9 + adds r1, r4 + lsls r0, 1 + adds r0, r6 + ldrh r0, [r0] + strb r0, [r1] + ldrb r0, [r7] + movs r1, 0 + bl sub_8039430 + ldrb r0, [r7] + eors r0, r5 + strb r0, [r7] +_0803A370: + ldr r1, _0803A39C @ =gUnknown_03004330 + ldr r2, _0803A3A0 @ =gUnknown_02024A60 + ldrb r0, [r2] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803A3A4 @ =sub_8037840 + str r1, [r0] + mov r0, r9 + strb r0, [r2] + mov r0, r8 + bl DestroyTask + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803A394: .4byte gUnknown_02023A60 +_0803A398: .4byte gUnknown_02024A6A +_0803A39C: .4byte gUnknown_03004330 +_0803A3A0: .4byte gUnknown_02024A60 +_0803A3A4: .4byte sub_8037840 + thumb_func_end sub_803A2C4 + + thumb_func_start sub_803A3A8 +sub_803A3A8: @ 803A3A8 + push {r4,lr} + adds r4, r0, 0 + ldrh r0, [r4, 0x6] + bl sub_8031B74 + ldrh r0, [r4, 0x38] + ldr r1, _0803A3D4 @ =0x000003ff + ands r1, r0 + ldrh r2, [r4, 0x4] + ldr r0, _0803A3D8 @ =0xfffffc00 + ands r0, r2 + orrs r0, r1 + strh r0, [r4, 0x4] + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803A3D4: .4byte 0x000003ff +_0803A3D8: .4byte 0xfffffc00 + thumb_func_end sub_803A3A8 + + thumb_func_start sub_803A3DC +sub_803A3DC: @ 803A3DC + push {r4-r6,lr} + ldr r1, _0803A404 @ =gUnknown_02023A60 + ldr r0, _0803A408 @ =gUnknown_02024A60 + ldrb r2, [r0] + lsls r0, r2, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0803A40C + adds r0, r2, 0 + bl battle_side_get_owner + lsls r0, 24 + cmp r0, 0 + bne _0803A40C + bl dp01_tbl4_exec_completed + b _0803A4C6 + .align 2, 0 +_0803A404: .4byte gUnknown_02023A60 +_0803A408: .4byte gUnknown_02024A60 +_0803A40C: + ldr r3, _0803A45C @ =gUnknown_02024A60 + ldrb r1, [r3] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r4, _0803A460 @ =0x02017810 + adds r0, r4 + ldrb r1, [r0] + movs r2, 0x1 + orrs r1, r2 + strb r1, [r0] + ldr r1, _0803A464 @ =gUnknown_02023A60 + ldrb r2, [r3] + lsls r0, r2, 9 + adds r1, 0x2 + adds r0, r1 + ldrb r0, [r0] + adds r6, r3, 0 + cmp r0, 0 + beq _0803A470 + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 2 + adds r3, r0, r4 + ldrb r2, [r3, 0x1] + lsls r1, r2, 26 + lsrs r0, r1, 27 + cmp r0, 0x1 + bhi _0803A468 + adds r0, 0x1 + movs r1, 0x1F + ands r0, r1 + lsls r0, 1 + movs r1, 0x3F + negs r1, r1 + ands r1, r2 + orrs r1, r0 + strb r1, [r3, 0x1] + b _0803A4C6 + .align 2, 0 +_0803A45C: .4byte gUnknown_02024A60 +_0803A460: .4byte 0x02017810 +_0803A464: .4byte gUnknown_02023A60 +_0803A468: + movs r0, 0x3F + negs r0, r0 + ands r0, r2 + strb r0, [r3, 0x1] +_0803A470: + adds r5, r6, 0 + ldrb r0, [r5] + lsls r3, r0, 9 + ldr r4, _0803A4CC @ =gUnknown_02023A64 + adds r1, r3, r4 + subs r2, r4, 0x3 + adds r2, r3, r2 + ldrb r2, [r2] + subs r4, 0x2 + adds r3, r4 + ldrb r3, [r3] + bl sub_8044804 + ldr r2, _0803A4D0 @ =gUnknown_02024E68 + ldrb r1, [r5] + adds r1, r2 + movs r2, 0 + strb r0, [r1] + ldrb r1, [r5] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _0803A4D4 @ =0x02017810 + adds r0, r3 + strb r2, [r0, 0x5] + ldrb r1, [r5] + lsls r0, r1, 9 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0803A4BA + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + adds r0, r3 + movs r1, 0x5D + strb r1, [r0, 0x5] +_0803A4BA: + ldr r0, _0803A4D8 @ =gUnknown_03004330 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _0803A4DC @ =sub_803A4E0 + str r0, [r1] +_0803A4C6: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803A4CC: .4byte gUnknown_02023A64 +_0803A4D0: .4byte gUnknown_02024E68 +_0803A4D4: .4byte 0x02017810 +_0803A4D8: .4byte gUnknown_03004330 +_0803A4DC: .4byte sub_803A4E0 + thumb_func_end sub_803A3DC + + thumb_func_start sub_803A4E0 +sub_803A4E0: @ 803A4E0 + push {r4,lr} + ldr r4, _0803A518 @ =gUnknown_02024A60 + ldrb r1, [r4] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 2 + ldr r3, _0803A51C @ =0x02017810 + adds r0, r3 + ldrb r1, [r0, 0x5] + adds r2, r1, 0x1 + strb r2, [r0, 0x5] + lsls r1, 24 + lsrs r1, 24 + cmp r1, 0x5C + bls _0803A510 + ldrb r0, [r4] + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + adds r1, r3 + movs r0, 0 + strb r0, [r1, 0x5] + bl dp01_tbl4_exec_completed +_0803A510: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803A518: .4byte gUnknown_02024A60 +_0803A51C: .4byte 0x02017810 + thumb_func_end sub_803A4E0 + + thumb_func_start sub_803A520 +sub_803A520: @ 803A520 + push {lr} + ldr r0, _0803A558 @ =gUnknown_02024A60 + ldrb r3, [r0] + lsls r0, r3, 1 + adds r0, r3 + lsls r0, 2 + ldr r1, _0803A55C @ =0x02017810 + adds r0, r1 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0803A54E + ldr r2, _0803A560 @ =gTasks + ldr r0, _0803A564 @ =gUnknown_02024E68 + adds r0, r3, r0 + ldrb r1, [r0] + lsls r0, r1, 2 + adds r0, r1 + lsls r0, 3 + adds r0, r2 + ldr r1, _0803A568 @ =sub_8044CA0 + str r1, [r0] +_0803A54E: + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + .align 2, 0 +_0803A558: .4byte gUnknown_02024A60 +_0803A55C: .4byte 0x02017810 +_0803A560: .4byte gTasks +_0803A564: .4byte gUnknown_02024E68 +_0803A568: .4byte sub_8044CA0 + thumb_func_end sub_803A520 + + thumb_func_start sub_803A56C +sub_803A56C: @ 803A56C + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_803A56C + + thumb_func_start sub_803A578 +sub_803A578: @ 803A578 + push {r4,lr} + ldr r4, _0803A5C8 @ =gUnknown_02024A60 + ldrb r0, [r4] + bl sub_8078874 + lsls r0, 24 + cmp r0, 0 + beq _0803A5BE + ldr r3, _0803A5CC @ =gSprites + ldr r0, _0803A5D0 @ =gUnknown_02024BE0 + ldrb r1, [r4] + adds r0, r1, r0 + ldrb r0, [r0] + lsls r2, r0, 4 + adds r2, r0 + lsls r2, 2 + adds r2, r3 + ldr r0, _0803A5D4 @ =gUnknown_02023A60 + lsls r1, 9 + adds r0, 0x1 + adds r1, r0 + adds r2, 0x3E + movs r0, 0x1 + ldrb r1, [r1] + ands r1, r0 + lsls r1, 2 + ldrb r3, [r2] + movs r0, 0x5 + negs r0, r0 + ands r0, r3 + orrs r0, r1 + strb r0, [r2] + ldrb r0, [r4] + bl sub_8031F88 +_0803A5BE: + bl dp01_tbl4_exec_completed + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803A5C8: .4byte gUnknown_02024A60 +_0803A5CC: .4byte gSprites +_0803A5D0: .4byte gUnknown_02024BE0 +_0803A5D4: .4byte gUnknown_02023A60 + thumb_func_end sub_803A578 + + thumb_func_start bx_exec_buffer_A_ch0_tbl4 +bx_exec_buffer_A_ch0_tbl4: @ 803A5D8 + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _0803A61C @ =gUnknown_02024A60 + ldrb r0, [r6] + bl mplay_80342A4 + lsls r0, 24 + cmp r0, 0 + bne _0803A630 + ldr r5, _0803A620 @ =gUnknown_02023A60 + ldrb r2, [r6] + lsls r1, r2, 9 + adds r0, r5, 0x1 + adds r0, r1, r0 + ldrb r3, [r0] + adds r0, r5, 0x2 + adds r0, r1, r0 + ldrb r4, [r0] + adds r5, 0x3 + adds r1, r5 + ldrb r0, [r1] + lsls r0, 8 + orrs r4, r0 + str r4, [sp] + adds r0, r2, 0 + adds r1, r2, 0 + bl move_anim_start_t3 + lsls r0, 24 + cmp r0, 0 + beq _0803A624 + bl dp01_tbl4_exec_completed + b _0803A630 + .align 2, 0 +_0803A61C: .4byte gUnknown_02024A60 +_0803A620: .4byte gUnknown_02023A60 +_0803A624: + ldr r0, _0803A638 @ =gUnknown_03004330 + ldrb r1, [r6] + lsls r1, 2 + adds r1, r0 + ldr r0, _0803A63C @ =sub_8037FD8 + str r0, [r1] +_0803A630: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803A638: .4byte gUnknown_03004330 +_0803A63C: .4byte sub_8037FD8 + thumb_func_end bx_exec_buffer_A_ch0_tbl4 + + thumb_func_start sub_803A640 +sub_803A640: @ 803A640 + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_803A640 + + thumb_func_start sub_803A64C +sub_803A64C: @ 803A64C + push {lr} + bl dp01_tbl4_exec_completed + pop {r0} + bx r0 + thumb_func_end sub_803A64C + + thumb_func_start sub_803A658 +sub_803A658: @ 803A658 + push {lr} + ldr r1, _0803A674 @ =gUnknown_02023A60 + ldr r0, _0803A678 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 9 + adds r1, 0x1 + adds r0, r1 + ldrb r2, [r0] + cmp r2, 0x3 + bne _0803A680 + ldr r0, _0803A67C @ =gUnknown_02024D26 + strb r2, [r0] + b _0803A688 + .align 2, 0 +_0803A674: .4byte gUnknown_02023A60 +_0803A678: .4byte gUnknown_02024A60 +_0803A67C: .4byte gUnknown_02024D26 +_0803A680: + ldr r0, _0803A6AC @ =gUnknown_02024D26 + movs r1, 0x3 + eors r1, r2 + strb r1, [r0] +_0803A688: + movs r0, 0x5 + bl FadeOutMapMusic + movs r0, 0x3 + bl BeginFastPaletteFade + bl dp01_tbl4_exec_completed + ldr r1, _0803A6B0 @ =gUnknown_03004330 + ldr r0, _0803A6B4 @ =gUnknown_02024A60 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r1, _0803A6B8 @ =sub_8037F34 + str r1, [r0] + pop {r0} + bx r0 + .align 2, 0 +_0803A6AC: .4byte gUnknown_02024D26 +_0803A6B0: .4byte gUnknown_03004330 +_0803A6B4: .4byte gUnknown_02024A60 +_0803A6B8: .4byte sub_8037F34 + thumb_func_end sub_803A658 + + thumb_func_start nullsub_48 +nullsub_48: @ 803A6BC + bx lr + thumb_func_end nullsub_48 + + .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index a0d6fd441..180f25724 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -47,6 +47,8 @@ SECTIONS { src/rtc.o(.text); src/main_menu.o(.text); asm/rom3.o(.text); + asm/decompress.o(.text); + asm/rom_800D42C.o(.text); src/pokemon_1.o(.text); asm/calculate_base_damage.o(.text); src/pokemon_2.o(.text); |