diff options
Diffstat (limited to 'asm/pokemon_2.s')
-rw-r--r-- | asm/pokemon_2.s | 3902 |
1 files changed, 0 insertions, 3902 deletions
diff --git a/asm/pokemon_2.s b/asm/pokemon_2.s deleted file mode 100644 index 22246bf87..000000000 --- a/asm/pokemon_2.s +++ /dev/null @@ -1,3902 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_803F5B4 -sub_803F5B4: @ 803F5B4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - movs r6, 0 - cmp r0, 0x1 - beq _0803F608 - cmp r0, 0x1 - bgt _0803F5CC - cmp r0, 0 - beq _0803F5D2 - b _0803F68A -_0803F5CC: - cmp r1, 0x2 - beq _0803F650 - b _0803F68A -_0803F5D2: - movs r5, 0 - ldr r0, _0803F5FC @ =gActiveBattler - ldrb r3, [r0] - ldr r4, _0803F600 @ =gAbsentBattlerFlags - ldr r2, _0803F604 @ =gBitTable -_0803F5DC: - cmp r5, r3 - beq _0803F5F0 - ldrb r0, [r4] - ldr r1, [r2] - ands r0, r1 - cmp r0, 0 - bne _0803F5F0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803F5F0: - adds r2, 0x4 - adds r5, 0x1 - cmp r5, 0x3 - ble _0803F5DC - b _0803F68A - .align 2, 0 -_0803F5FC: .4byte gActiveBattler -_0803F600: .4byte gAbsentBattlerFlags -_0803F604: .4byte gBitTable -_0803F608: - movs r5, 0 -_0803F60A: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBankSide - adds r4, r0, 0 - ldr r0, _0803F644 @ =sBattler_AI - ldrb r0, [r0] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _0803F63C - ldr r0, _0803F648 @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldr r2, _0803F64C @ =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803F63C - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803F63C: - adds r5, 0x1 - cmp r5, 0x3 - ble _0803F60A - b _0803F68A - .align 2, 0 -_0803F644: .4byte sBattler_AI -_0803F648: .4byte gAbsentBattlerFlags -_0803F64C: .4byte gBitTable -_0803F650: - movs r5, 0 -_0803F652: - lsls r0, r5, 24 - lsrs r0, 24 - bl GetBankSide - adds r4, r0, 0 - ldr r0, _0803F694 @ =gBattlerTarget - ldrb r0, [r0] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _0803F684 - ldr r0, _0803F698 @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldr r2, _0803F69C @ =gBitTable - lsls r0, r5, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803F684 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0803F684: - adds r5, 0x1 - cmp r5, 0x3 - ble _0803F652 -_0803F68A: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0803F694: .4byte gBattlerTarget -_0803F698: .4byte gAbsentBattlerFlags -_0803F69C: .4byte gBitTable - thumb_func_end sub_803F5B4 - - thumb_func_start GetDefaultMoveTarget -GetDefaultMoveTarget: @ 803F6A0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - bl GetBankIdentity - movs r1, 0x1 - movs r6, 0x1 - adds r4, r6, 0 - ands r4, r0 - eors r4, r1 - adds r5, r4, 0 - ldr r0, _0803F6C4 @ =gBattleTypeFlags - ldr r0, [r0] - ands r0, r6 - cmp r0, 0 - bne _0803F6C8 - adds r0, r4, 0 - b _0803F712 - .align 2, 0 -_0803F6C4: .4byte gBattleTypeFlags -_0803F6C8: - movs r0, 0 - bl sub_803F5B4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _0803F6EC - bl Random - adds r1, r6, 0 - ands r1, r0 - cmp r1, 0 - bne _0803F6E8 - movs r0, 0x2 - eors r0, r4 - b _0803F712 -_0803F6E8: - adds r0, r4, 0 - b _0803F712 -_0803F6EC: - ldr r0, _0803F704 @ =gAbsentBattlerFlags - ldrb r1, [r0] - ldr r2, _0803F708 @ =gBitTable - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _0803F70C - adds r0, r4, 0 - b _0803F712 - .align 2, 0 -_0803F704: .4byte gAbsentBattlerFlags -_0803F708: .4byte gBitTable -_0803F70C: - movs r0, 0x2 - eors r5, r0 - adds r0, r5, 0 -_0803F712: - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetDefaultMoveTarget - - thumb_func_start GetMonGender -GetMonGender: @ 803F720 - push {lr} - bl GetBoxMonGender - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetMonGender - - thumb_func_start GetBoxMonGender -GetBoxMonGender: @ 803F730 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0xB - movs r2, 0 - bl GetBoxMonData - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetBoxMonData - adds r2, r0, 0 - ldr r1, _0803F780 @ =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _0803F786 - cmp r0, 0 - blt _0803F768 - cmp r0, 0xFF - bgt _0803F768 - cmp r0, 0xFE - bge _0803F786 -_0803F768: - ldr r1, _0803F780 @ =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r0, 0xFF - ands r0, r2 - cmp r1, r0 - bhi _0803F784 - movs r0, 0 - b _0803F786 - .align 2, 0 -_0803F780: .4byte gBaseStats -_0803F784: - movs r0, 0xFE -_0803F786: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetBoxMonGender - - thumb_func_start GetGenderFromSpeciesAndPersonality -GetGenderFromSpeciesAndPersonality: @ 803F78C - push {lr} - adds r3, r1, 0 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r1, _0803F7C8 @ =gBaseStats - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x10] - cmp r0, 0 - beq _0803F7CE - cmp r0, 0 - blt _0803F7B0 - cmp r0, 0xFF - bgt _0803F7B0 - cmp r0, 0xFE - bge _0803F7CE -_0803F7B0: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x10] - movs r0, 0xFF - ands r0, r3 - cmp r1, r0 - bhi _0803F7CC - movs r0, 0 - b _0803F7CE - .align 2, 0 -_0803F7C8: .4byte gBaseStats -_0803F7CC: - movs r0, 0xFE -_0803F7CE: - pop {r1} - bx r1 - thumb_func_end GetGenderFromSpeciesAndPersonality - - thumb_func_start sub_803F7D4 -sub_803F7D4: @ 803F7D4 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, _0803F808 @ =gUnknown_202401C - ldr r2, [r0] - cmp r2, 0 - beq _0803F810 - cmp r4, 0x3 - bls _0803F7EC - movs r4, 0 -_0803F7EC: - ldr r0, _0803F80C @ =gUnknown_20244DC - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 3 - adds r1, r2, r1 - adds r2, r0, 0 - adds r1, 0x14 - ldm r1!, {r3,r4,r6} - stm r2!, {r3,r4,r6} - ldm r1!, {r3,r4,r6} - stm r2!, {r3,r4,r6} - adds r3, r0, 0 - b _0803F84C - .align 2, 0 -_0803F808: .4byte gUnknown_202401C -_0803F80C: .4byte gUnknown_20244DC -_0803F810: - ldr r0, _0803F828 @ =gUnknown_20244F4 - ldr r1, [r0] - cmp r1, 0 - beq _0803F830 - ldrb r0, [r1] - lsrs r0, 4 - cmp r4, r0 - blt _0803F822 - movs r4, 0 -_0803F822: - ldr r3, _0803F82C @ =gUnknown_20244DC - ldr r2, [r1, 0x10] - b _0803F83A - .align 2, 0 -_0803F828: .4byte gUnknown_20244F4 -_0803F82C: .4byte gUnknown_20244DC -_0803F830: - cmp r4, 0x3 - bls _0803F836 - movs r4, 0 -_0803F836: - ldr r3, _0803F858 @ =gUnknown_20244DC - ldr r2, _0803F85C @ =gUnknown_825DEF0 -_0803F83A: - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - adds r1, r3, 0 - adds r0, r2 - ldm r0!, {r2,r4,r6} - stm r1!, {r2,r4,r6} - ldm r0!, {r2,r4,r6} - stm r1!, {r2,r4,r6} -_0803F84C: - strh r5, [r3, 0x2] - ldr r0, _0803F860 @ =gUnknown_82349BC - str r0, [r3, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803F858: .4byte gUnknown_20244DC -_0803F85C: .4byte gUnknown_825DEF0 -_0803F860: .4byte gUnknown_82349BC - thumb_func_end sub_803F7D4 - - thumb_func_start sub_803F864 -sub_803F864: @ 803F864 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r0, _0803F89C @ =gUnknown_20244DC - strh r4, [r0, 0x2] - adds r5, r0, 0 - cmp r3, 0 - beq _0803F87C - cmp r3, 0x2 - bne _0803F8A8 -_0803F87C: - ldr r2, _0803F8A0 @ =gUnknown_825DF50 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - adds r1, r5, 0 - adds r0, r2 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldr r1, _0803F8A4 @ =gUnknown_8239F74 - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - b _0803F8E8 - .align 2, 0 -_0803F89C: .4byte gUnknown_20244DC -_0803F8A0: .4byte gUnknown_825DF50 -_0803F8A4: .4byte gUnknown_8239F74 -_0803F8A8: - ldr r0, _0803F8C8 @ =gUnknown_202401C - ldr r1, [r0] - cmp r1, 0 - beq _0803F8CC - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 3 - adds r0, r1, r0 - adds r1, r5, 0 - adds r0, 0x14 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - b _0803F8E0 - .align 2, 0 -_0803F8C8: .4byte gUnknown_202401C -_0803F8CC: - ldr r0, _0803F8F0 @ =gUnknown_825DEF0 - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 3 - adds r2, r5, 0 - adds r1, r0 - ldm r1!, {r0,r3,r6} - stm r2!, {r0,r3,r6} - ldm r1!, {r0,r3,r6} - stm r2!, {r0,r3,r6} -_0803F8E0: - ldr r0, _0803F8F4 @ =gUnknown_82390DC - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] -_0803F8E8: - str r0, [r5, 0x8] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0803F8F0: .4byte gUnknown_825DEF0 -_0803F8F4: .4byte gUnknown_82390DC - thumb_func_end sub_803F864 - - thumb_func_start EncryptBoxMon -EncryptBoxMon: @ 803F8F8 - push {r4,lr} - adds r3, r0, 0 - movs r4, 0 - adds r2, r3, 0 - adds r2, 0x20 -_0803F902: - ldr r0, [r2] - ldr r1, [r3] - eors r0, r1 - str r0, [r2] - ldr r1, [r3, 0x4] - eors r0, r1 - stm r2!, {r0} - adds r4, 0x1 - cmp r4, 0xB - bls _0803F902 - pop {r4} - pop {r0} - bx r0 - thumb_func_end EncryptBoxMon - - thumb_func_start DecryptBoxMon -DecryptBoxMon: @ 803F91C - push {r4,lr} - adds r3, r0, 0 - movs r4, 0 - adds r2, r3, 0 - adds r2, 0x20 -_0803F926: - ldr r0, [r2] - ldr r1, [r3, 0x4] - eors r0, r1 - str r0, [r2] - ldr r1, [r3] - eors r0, r1 - stm r2!, {r0} - adds r4, 0x1 - cmp r4, 0xB - bls _0803F926 - pop {r4} - pop {r0} - bx r0 - thumb_func_end DecryptBoxMon - - thumb_func_start GetSubstruct -GetSubstruct: @ 803F940 - push {r4-r6,lr} - adds r5, r0, 0 - adds r0, r1, 0 - lsls r2, 24 - lsrs r4, r2, 24 - movs r6, 0 - movs r1, 0x18 - bl __umodsi3 - cmp r0, 0x17 - bls _0803F958 - b _0803FBE0 -_0803F958: - lsls r0, 2 - ldr r1, _0803F964 @ =_0803F968 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803F964: .4byte _0803F968 - .align 2, 0 -_0803F968: - .4byte _0803F9C8 - .4byte _0803F9EC - .4byte _0803FA08 - .4byte _0803FA1E - .4byte _0803FA34 - .4byte _0803FA50 - .4byte _0803FA66 - .4byte _0803FA7C - .4byte _0803FA8C - .4byte _0803FAAA - .4byte _0803FAC2 - .4byte _0803FAD2 - .4byte _0803FAE6 - .4byte _0803FAF8 - .4byte _0803FB0A - .4byte _0803FB1C - .4byte _0803FB2E - .4byte _0803FB40 - .4byte _0803FB52 - .4byte _0803FB68 - .4byte _0803FB7C - .4byte _0803FB8A - .4byte _0803FB9C - .4byte _0803FBB0 -_0803F9C8: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803F9D2 - b _0803FBD8 -_0803F9D2: - cmp r4, 0x1 - bgt _0803F9DE -_0803F9D6: - cmp r4, 0 - bne _0803F9DC - b _0803FBDE -_0803F9DC: - b _0803FBE0 -_0803F9DE: - cmp r4, 0x2 - bne _0803F9E4 - b _0803FBD2 -_0803F9E4: - cmp r4, 0x3 - beq _0803F9EA - b _0803FBE0 -_0803F9EA: - b _0803FBCC -_0803F9EC: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803F9F6 - b _0803FBD8 -_0803F9F6: - cmp r4, 0x1 - ble _0803F9D6 -_0803F9FA: - cmp r4, 0x2 - bne _0803FA00 - b _0803FBCC -_0803FA00: - cmp r4, 0x3 - beq _0803FA06 - b _0803FBE0 -_0803FA06: - b _0803FBD2 -_0803FA08: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FA12 - b _0803FBD2 -_0803FA12: - cmp r4, 0x1 - ble _0803F9D6 - cmp r4, 0x2 - bne _0803FA1C - b _0803FBD8 -_0803FA1C: - b _0803F9E4 -_0803FA1E: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FA28 - b _0803FBCC -_0803FA28: - cmp r4, 0x1 - ble _0803F9D6 - cmp r4, 0x2 - bne _0803FA32 - b _0803FBD8 -_0803FA32: - b _0803FA00 -_0803FA34: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FA3E - b _0803FBD2 -_0803FA3E: - cmp r4, 0x1 - ble _0803F9D6 -_0803FA42: - cmp r4, 0x2 - bne _0803FA48 - b _0803FBCC -_0803FA48: - cmp r4, 0x3 - beq _0803FA4E - b _0803FBE0 -_0803FA4E: - b _0803FBD8 -_0803FA50: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FA5A - b _0803FBCC -_0803FA5A: - cmp r4, 0x1 - ble _0803F9D6 - cmp r4, 0x2 - bne _0803FA64 - b _0803FBD2 -_0803FA64: - b _0803FA48 -_0803FA66: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FA70 - b _0803FBDE -_0803FA70: - cmp r4, 0x1 - bgt _0803F9DE -_0803FA74: - cmp r4, 0 - bne _0803FA7A - b _0803FBD8 -_0803FA7A: - b _0803FBE0 -_0803FA7C: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FA86 - b _0803FBDE -_0803FA86: - cmp r4, 0x1 - ble _0803FA74 - b _0803F9FA -_0803FA8C: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FA96 - b _0803FBDE -_0803FA96: - cmp r4, 0x1 - bgt _0803FAA2 -_0803FA9A: - cmp r4, 0 - bne _0803FAA0 - b _0803FBD2 -_0803FAA0: - b _0803FBE0 -_0803FAA2: - cmp r4, 0x2 - bne _0803FAA8 - b _0803FBD8 -_0803FAA8: - b _0803F9E4 -_0803FAAA: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FAB4 - b _0803FBDE -_0803FAB4: - cmp r4, 0x1 - bgt _0803FABA - b _0803FBBC -_0803FABA: - cmp r4, 0x2 - bne _0803FAC0 - b _0803FBD8 -_0803FAC0: - b _0803FA00 -_0803FAC2: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FACC - b _0803FBDE -_0803FACC: - cmp r4, 0x1 - ble _0803FA9A - b _0803FA42 -_0803FAD2: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - bne _0803FADC - b _0803FBDE -_0803FADC: - cmp r4, 0x1 - ble _0803FBBC - cmp r4, 0x2 - beq _0803FBD2 - b _0803FA48 -_0803FAE6: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD2 - cmp r4, 0x1 - ble _0803FA74 - cmp r4, 0x2 - beq _0803FBDE - b _0803F9E4 -_0803FAF8: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBCC - cmp r4, 0x1 - ble _0803FA74 - cmp r4, 0x2 - beq _0803FBDE - b _0803FA00 -_0803FB0A: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD8 - cmp r4, 0x1 - ble _0803FA9A - cmp r4, 0x2 - beq _0803FBDE - b _0803F9E4 -_0803FB1C: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD8 - cmp r4, 0x1 - ble _0803FBBC - cmp r4, 0x2 - beq _0803FBDE - b _0803FA00 -_0803FB2E: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBCC - cmp r4, 0x1 - ble _0803FA9A - cmp r4, 0x2 - beq _0803FBDE - b _0803FA48 -_0803FB40: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD2 - cmp r4, 0x1 - ble _0803FBBC - cmp r4, 0x2 - beq _0803FBDE - b _0803FA48 -_0803FB52: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD2 - cmp r4, 0x1 - ble _0803FA74 -_0803FB5E: - cmp r4, 0x2 - beq _0803FBCC -_0803FB62: - cmp r4, 0x3 - bne _0803FBE0 - b _0803FBDE -_0803FB68: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBCC - cmp r4, 0x1 - bgt _0803FB76 - b _0803FA74 -_0803FB76: - cmp r4, 0x2 - beq _0803FBD2 - b _0803FB62 -_0803FB7C: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD8 - cmp r4, 0x1 - ble _0803FA9A - b _0803FB5E -_0803FB8A: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD8 - cmp r4, 0x1 - ble _0803FBBC - cmp r4, 0x2 - beq _0803FBD2 - b _0803FB62 -_0803FB9C: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBCC - cmp r4, 0x1 - bgt _0803FBAA - b _0803FA9A -_0803FBAA: - cmp r4, 0x2 - beq _0803FBD8 - b _0803FB62 -_0803FBB0: - adds r0, r5, 0 - adds r0, 0x20 - cmp r4, 0x1 - beq _0803FBD2 - cmp r4, 0x1 - bgt _0803FBC2 -_0803FBBC: - cmp r4, 0 - beq _0803FBCC - b _0803FBE0 -_0803FBC2: - cmp r4, 0x2 - beq _0803FBD8 - cmp r4, 0x3 - beq _0803FBDE - b _0803FBE0 -_0803FBCC: - adds r6, r5, 0 - adds r6, 0x44 - b _0803FBE0 -_0803FBD2: - adds r6, r5, 0 - adds r6, 0x38 - b _0803FBE0 -_0803FBD8: - adds r6, r5, 0 - adds r6, 0x2C - b _0803FBE0 -_0803FBDE: - adds r6, r0, 0 -_0803FBE0: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetSubstruct - - thumb_func_start GetMonData -GetMonData: @ 803FBE8 - push {r4,lr} - adds r4, r0, 0 - adds r3, r1, 0 - adds r0, r3, 0 - subs r0, 0x37 - cmp r0, 0x21 - bls _0803FBF8 - b _0803FD36 -_0803FBF8: - lsls r0, 2 - ldr r1, _0803FC04 @ =_0803FC08 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803FC04: .4byte _0803FC08 - .align 2, 0 -_0803FC08: - .4byte _0803FC90 - .4byte _0803FC94 - .4byte _0803FC9C - .4byte _0803FCA4 - .4byte _0803FCAC - .4byte _0803FCBE - .4byte _0803FCD0 - .4byte _0803FCE2 - .4byte _0803FCF4 - .4byte _0803FD2E - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD36 - .4byte _0803FD06 - .4byte _0803FD0E - .4byte _0803FD16 - .4byte _0803FD1E - .4byte _0803FD26 -_0803FC90: - ldr r0, [r4, 0x50] - b _0803FD3E -_0803FC94: - adds r0, r4, 0 - adds r0, 0x54 - ldrb r0, [r0] - b _0803FD3E -_0803FC9C: - adds r0, r4, 0 - adds r0, 0x56 - ldrh r0, [r0] - b _0803FD3E -_0803FCA4: - adds r0, r4, 0 - adds r0, 0x58 - ldrh r0, [r0] - b _0803FD3E -_0803FCAC: - adds r0, r4, 0 - movs r1, 0x1 - bl GetDeoxysStat - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0803FD3E - b _0803FD06 -_0803FCBE: - adds r0, r4, 0 - movs r1, 0x2 - bl GetDeoxysStat - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0803FD3E - b _0803FD0E -_0803FCD0: - adds r0, r4, 0 - movs r1, 0x3 - bl GetDeoxysStat - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0803FD3E - b _0803FD16 -_0803FCE2: - adds r0, r4, 0 - movs r1, 0x4 - bl GetDeoxysStat - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0803FD3E - b _0803FD1E -_0803FCF4: - adds r0, r4, 0 - movs r1, 0x5 - bl GetDeoxysStat - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _0803FD3E - b _0803FD26 -_0803FD06: - adds r0, r4, 0 - adds r0, 0x5A - ldrh r0, [r0] - b _0803FD3E -_0803FD0E: - adds r0, r4, 0 - adds r0, 0x5C - ldrh r0, [r0] - b _0803FD3E -_0803FD16: - adds r0, r4, 0 - adds r0, 0x5E - ldrh r0, [r0] - b _0803FD3E -_0803FD1E: - adds r0, r4, 0 - adds r0, 0x60 - ldrh r0, [r0] - b _0803FD3E -_0803FD26: - adds r0, r4, 0 - adds r0, 0x62 - ldrh r0, [r0] - b _0803FD3E -_0803FD2E: - adds r0, r4, 0 - adds r0, 0x55 - ldrb r0, [r0] - b _0803FD3E -_0803FD36: - adds r0, r4, 0 - adds r1, r3, 0 - bl GetBoxMonData -_0803FD3E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetMonData - - thumb_func_start GetBoxMonData -GetBoxMonData: @ 803FD44 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r8, r0 - str r1, [sp] - adds r6, r2, 0 - movs r4, 0 - mov r9, r4 - mov r10, r4 - movs r7, 0 - movs r5, 0 - cmp r1, 0xA - ble _0803FDC2 - ldr r1, [r0] - movs r2, 0 - bl GetSubstruct - mov r9, r0 - mov r0, r8 - ldr r1, [r0] - movs r2, 0x1 - bl GetSubstruct - mov r10, r0 - mov r2, r8 - ldr r1, [r2] - mov r0, r8 - movs r2, 0x2 - bl GetSubstruct - adds r7, r0, 0 - mov r0, r8 - ldr r1, [r0] - movs r2, 0x3 - bl GetSubstruct - adds r5, r0, 0 - mov r0, r8 - bl DecryptBoxMon - mov r0, r8 - bl CalculateBoxMonChecksum - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - ldrh r1, [r1, 0x1C] - cmp r0, r1 - beq _0803FDC2 - mov r2, r8 - ldrb r0, [r2, 0x13] - movs r1, 0x1 - orrs r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x13] - ldrb r0, [r5, 0x7] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r5, 0x7] -_0803FDC2: - ldr r0, [sp] - cmp r0, 0x53 - bls _0803FDCA - b _0804035C -_0803FDCA: - lsls r0, 2 - ldr r1, _0803FDD4 @ =_0803FDD8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0803FDD4: .4byte _0803FDD8 - .align 2, 0 -_0803FDD8: - .4byte _0803FF28 - .4byte _0803FF2E - .4byte _0803FF34 - .4byte _0803FFE8 - .4byte _0803FFEE - .4byte _0803FFF4 - .4byte _0803FFFA - .4byte _08040000 - .4byte _0804001C - .4byte _08040022 - .4byte _08040028 - .4byte _0804002E - .4byte _08040046 - .4byte _0804005E - .4byte _0804005E - .4byte _0804005E - .4byte _0804005E - .4byte _0804006A - .4byte _0804006A - .4byte _0804006A - .4byte _0804006A - .4byte _08040052 - .4byte _0804008C - .4byte _08040090 - .4byte _08040094 - .4byte _0804004C - .4byte _08040074 - .4byte _08040078 - .4byte _0804007C - .4byte _08040080 - .4byte _08040084 - .4byte _08040088 - .4byte _08040058 - .4byte _08040098 - .4byte _080400A4 - .4byte _080400A8 - .4byte _080400AC - .4byte _080400B4 - .4byte _080400BC - .4byte _080400C6 - .4byte _080400CE - .4byte _080400D6 - .4byte _080400DE - .4byte _080400E6 - .4byte _080400EE - .4byte _080400F6 - .4byte _080400FA - .4byte _0804009C - .4byte _080400A0 - .4byte _080400C0 - .4byte _08040100 - .4byte _08040108 - .4byte _08040110 - .4byte _08040118 - .4byte _08040120 - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _0804035C - .4byte _08040186 - .4byte _080401AC - .4byte _08040128 - .4byte _0804012E - .4byte _08040132 - .4byte _08040136 - .4byte _0804013A - .4byte _08040142 - .4byte _0804014A - .4byte _08040152 - .4byte _0804015A - .4byte _08040160 - .4byte _08040168 - .4byte _08040170 - .4byte _08040178 - .4byte _08040180 - .4byte _080401E6 - .4byte _08040240 - .4byte _080402C2 -_0803FF28: - mov r1, r8 - ldr r4, [r1] - b _0804035C -_0803FF2E: - mov r2, r8 - ldr r4, [r2, 0x4] - b _0804035C -_0803FF34: - mov r0, r8 - ldrb r1, [r0, 0x13] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0803FF6C - movs r4, 0 - ldr r0, _0803FF68 @ =gUnknown_83FE868 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0xFF - beq _08040014 - adds r3, r2, 0 -_0803FF4E: - adds r0, r6, r4 - adds r1, r4, r3 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x9 - bhi _08040014 - adds r0, r4, r2 - ldrb r0, [r0] - cmp r0, 0xFF - bne _0803FF4E - b _08040014 - .align 2, 0 -_0803FF68: .4byte gUnknown_83FE868 -_0803FF6C: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0803FF8C - ldr r1, _0803FF88 @ =gUnknown_8415A62 - adds r0, r6, 0 - bl StringCopy - adds r0, r6, 0 - bl StringLength - lsls r0, 16 - lsrs r4, r0, 16 - b _0804035C - .align 2, 0 -_0803FF88: .4byte gUnknown_8415A62 -_0803FF8C: - mov r1, r8 - ldrb r0, [r1, 0x12] - cmp r0, 0x1 - bne _0803FFD2 - movs r0, 0xFC - strb r0, [r6] - movs r0, 0x15 - strb r0, [r6, 0x1] - movs r4, 0x2 - movs r3, 0 - ldrb r0, [r1, 0x8] - cmp r0, 0xFF - beq _0803FFC0 - mov r2, r8 - adds r2, 0x8 -_0803FFAA: - adds r1, r6, r4 - ldrb r0, [r2] - strb r0, [r1] - adds r4, 0x1 - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x5 - bgt _0803FFC0 - ldrb r0, [r2] - cmp r0, 0xFF - bne _0803FFAA -_0803FFC0: - adds r1, r6, r4 - movs r0, 0xFC - strb r0, [r1] - adds r4, 0x1 - adds r1, r6, r4 - movs r0, 0x16 - strb r0, [r1] - adds r4, 0x1 - b _08040014 -_0803FFD2: - movs r4, 0 - mov r2, r8 - adds r2, 0x8 -_0803FFD8: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x9 - bls _0803FFD8 - b _08040014 -_0803FFE8: - mov r2, r8 - ldrb r4, [r2, 0x12] - b _0804035C -_0803FFEE: - mov r6, r8 - ldrb r0, [r6, 0x13] - b _08040162 -_0803FFF4: - mov r1, r8 - ldrb r0, [r1, 0x13] - b _0804016A -_0803FFFA: - mov r2, r8 - ldrb r0, [r2, 0x13] - b _08040172 -_08040000: - movs r4, 0 - mov r2, r8 - adds r2, 0x14 -_08040006: - adds r0, r6, r4 - adds r1, r2, r4 - ldrb r1, [r1] - strb r1, [r0] - adds r4, 0x1 - cmp r4, 0x6 - bls _08040006 -_08040014: - adds r1, r6, r4 - movs r0, 0xFF - strb r0, [r1] - b _0804035C -_0804001C: - mov r6, r8 - ldrb r4, [r6, 0x1B] - b _0804035C -_08040022: - mov r0, r8 - ldrh r4, [r0, 0x1C] - b _0804035C -_08040028: - mov r1, r8 - ldrh r4, [r1, 0x1E] - b _0804035C -_0804002E: - mov r2, r8 - ldrb r1, [r2, 0x13] - movs r0, 0x1 - ands r0, r1 - movs r4, 0xCE - lsls r4, 1 - cmp r0, 0 - beq _08040040 - b _0804035C -_08040040: - mov r6, r9 - ldrh r4, [r6] - b _0804035C -_08040046: - mov r0, r9 - ldrh r4, [r0, 0x2] - b _0804035C -_0804004C: - mov r1, r9 - ldr r4, [r1, 0x4] - b _0804035C -_08040052: - mov r2, r9 - ldrb r4, [r2, 0x8] - b _0804035C -_08040058: - mov r6, r9 - ldrb r4, [r6, 0x9] - b _0804035C -_0804005E: - ldr r0, [sp] - subs r0, 0xD - lsls r0, 1 - add r0, r10 - ldrh r4, [r0] - b _0804035C -_0804006A: - ldr r0, [sp] - add r0, r10 - subs r0, 0x9 - ldrb r4, [r0] - b _0804035C -_08040074: - ldrb r4, [r7] - b _0804035C -_08040078: - ldrb r4, [r7, 0x1] - b _0804035C -_0804007C: - ldrb r4, [r7, 0x2] - b _0804035C -_08040080: - ldrb r4, [r7, 0x3] - b _0804035C -_08040084: - ldrb r4, [r7, 0x4] - b _0804035C -_08040088: - ldrb r4, [r7, 0x5] - b _0804035C -_0804008C: - ldrb r4, [r7, 0x6] - b _0804035C -_08040090: - ldrb r4, [r7, 0x7] - b _0804035C -_08040094: - ldrb r4, [r7, 0x8] - b _0804035C -_08040098: - ldrb r4, [r7, 0x9] - b _0804035C -_0804009C: - ldrb r4, [r7, 0xA] - b _0804035C -_080400A0: - ldrb r4, [r7, 0xB] - b _0804035C -_080400A4: - ldrb r4, [r5] - b _0804035C -_080400A8: - ldrb r4, [r5, 0x1] - b _0804035C -_080400AC: - ldrb r0, [r5, 0x2] - lsls r0, 25 - lsrs r4, r0, 25 - b _0804035C -_080400B4: - ldrh r0, [r5, 0x2] - lsls r0, 21 - lsrs r4, r0, 28 - b _0804035C -_080400BC: - ldrb r0, [r5, 0x3] - b _0804017A -_080400C0: - ldrb r0, [r5, 0x3] - lsrs r4, r0, 7 - b _0804035C -_080400C6: - ldrb r0, [r5, 0x4] - lsls r0, 27 - lsrs r4, r0, 27 - b _0804035C -_080400CE: - ldrh r0, [r5, 0x4] - lsls r0, 22 - lsrs r4, r0, 27 - b _0804035C -_080400D6: - ldrb r0, [r5, 0x5] - lsls r0, 25 - lsrs r4, r0, 27 - b _0804035C -_080400DE: - ldr r0, [r5, 0x4] - lsls r0, 12 - lsrs r4, r0, 27 - b _0804035C -_080400E6: - ldrh r0, [r5, 0x6] - lsls r0, 23 - lsrs r4, r0, 27 - b _0804035C -_080400EE: - ldrb r0, [r5, 0x7] - lsls r0, 26 - lsrs r4, r0, 27 - b _0804035C -_080400F6: - ldrb r0, [r5, 0x7] - b _08040154 -_080400FA: - ldrb r0, [r5, 0x7] - lsrs r4, r0, 7 - b _0804035C -_08040100: - ldrb r0, [r5, 0x8] - lsls r0, 29 - lsrs r4, r0, 29 - b _0804035C -_08040108: - ldrb r0, [r5, 0x8] - lsls r0, 26 - lsrs r4, r0, 29 - b _0804035C -_08040110: - ldrh r0, [r5, 0x8] - lsls r0, 23 - lsrs r4, r0, 29 - b _0804035C -_08040118: - ldrb r0, [r5, 0x9] - lsls r0, 28 - lsrs r4, r0, 29 - b _0804035C -_08040120: - ldrb r0, [r5, 0x9] - lsls r0, 25 - lsrs r4, r0, 29 - b _0804035C -_08040128: - ldrb r0, [r5, 0x9] - lsrs r4, r0, 7 - b _0804035C -_0804012E: - ldrb r0, [r5, 0xA] - b _08040162 -_08040132: - ldrb r0, [r5, 0xA] - b _0804016A -_08040136: - ldrb r0, [r5, 0xA] - b _08040172 -_0804013A: - ldrb r0, [r5, 0xA] - lsls r0, 28 - lsrs r4, r0, 31 - b _0804035C -_08040142: - ldrb r0, [r5, 0xA] - lsls r0, 27 - lsrs r4, r0, 31 - b _0804035C -_0804014A: - ldrb r0, [r5, 0xA] - lsls r0, 26 - lsrs r4, r0, 31 - b _0804035C -_08040152: - ldrb r0, [r5, 0xA] -_08040154: - lsls r0, 25 - lsrs r4, r0, 31 - b _0804035C -_0804015A: - ldrb r0, [r5, 0xA] - lsrs r4, r0, 7 - b _0804035C -_08040160: - ldrb r0, [r5, 0xB] -_08040162: - lsls r0, 31 - lsrs r4, r0, 31 - b _0804035C -_08040168: - ldrb r0, [r5, 0xB] -_0804016A: - lsls r0, 30 - lsrs r4, r0, 31 - b _0804035C -_08040170: - ldrb r0, [r5, 0xB] -_08040172: - lsls r0, 29 - lsrs r4, r0, 31 - b _0804035C -_08040178: - ldrb r0, [r5, 0xB] -_0804017A: - lsls r0, 25 - lsrs r4, r0, 28 - b _0804035C -_08040180: - ldrb r0, [r5, 0xB] - lsrs r4, r0, 7 - b _0804035C -_08040186: - mov r0, r9 - ldrh r4, [r0] - cmp r4, 0 - bne _08040190 - b _0804035C -_08040190: - ldrb r0, [r5, 0x7] - lsls r0, 25 - cmp r0, 0 - blt _080401A6 - mov r2, r8 - ldrb r1, [r2, 0x13] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080401A6 - b _0804035C -_080401A6: - movs r4, 0xCE - lsls r4, 1 - b _0804035C -_080401AC: - ldrb r0, [r5, 0x4] - lsls r0, 27 - lsrs r4, r0, 27 - ldrh r1, [r5, 0x4] - movs r0, 0xF8 - lsls r0, 2 - ands r0, r1 - orrs r4, r0 - ldrb r0, [r5, 0x5] - lsls r0, 25 - lsrs r0, 27 - lsls r0, 10 - orrs r4, r0 - ldr r0, [r5, 0x4] - movs r1, 0xF8 - lsls r1, 12 - ands r0, r1 - orrs r4, r0 - ldrh r0, [r5, 0x6] - lsls r0, 23 - lsrs r0, 27 - lsls r0, 20 - orrs r4, r0 - ldrb r0, [r5, 0x7] - lsls r0, 26 - lsrs r0, 27 - lsls r0, 25 - orrs r4, r0 - b _0804035C -_080401E6: - mov r1, r9 - ldrh r0, [r1] - cmp r0, 0 - bne _080401F0 - b _0804035C -_080401F0: - ldrb r0, [r5, 0x7] - lsls r0, 25 - cmp r0, 0 - bge _080401FA - b _0804035C -_080401FA: - ldrh r0, [r6] - ldr r1, _08040238 @ =0x00000163 - cmp r0, r1 - bne _08040204 - b _0804035C -_08040204: - mov r2, r10 - ldrh r5, [r2] - adds r7, r1, 0 - adds r2, r6, 0 - ldr r1, _0804023C @ =gBitTable -_0804020E: - ldrh r3, [r2] - cmp r5, r3 - beq _08040228 - mov r6, r10 - ldrh r0, [r6, 0x2] - cmp r0, r3 - beq _08040228 - ldrh r0, [r6, 0x4] - cmp r0, r3 - beq _08040228 - ldrh r0, [r6, 0x6] - cmp r0, r3 - bne _0804022C -_08040228: - ldr r0, [r1] - orrs r4, r0 -_0804022C: - adds r2, 0x2 - adds r1, 0x4 - ldrh r0, [r2] - cmp r0, r7 - bne _0804020E - b _0804035C - .align 2, 0 -_08040238: .4byte 0x00000163 -_0804023C: .4byte gBitTable -_08040240: - movs r4, 0 - mov r1, r9 - ldrh r0, [r1] - cmp r0, 0 - bne _0804024C - b _0804035C -_0804024C: - ldrb r0, [r5, 0x7] - lsls r0, 25 - cmp r0, 0 - bge _08040256 - b _0804035C -_08040256: - ldrb r0, [r5, 0x8] - lsls r1, r0, 29 - lsrs r4, r1, 29 - lsls r0, 26 - lsrs r0, 29 - adds r4, r0 - ldrh r0, [r5, 0x8] - lsls r0, 23 - lsrs r0, 29 - adds r4, r0 - ldrb r1, [r5, 0x9] - lsls r0, r1, 28 - lsrs r0, 29 - adds r4, r0 - lsls r0, r1, 25 - lsrs r0, 29 - adds r4, r0 - lsrs r1, 7 - adds r4, r1 - ldrb r1, [r5, 0xA] - lsls r0, r1, 31 - lsrs r0, 31 - adds r4, r0 - lsls r0, r1, 30 - lsrs r0, 31 - adds r4, r0 - lsls r0, r1, 29 - lsrs r0, 31 - adds r4, r0 - lsls r0, r1, 28 - lsrs r0, 31 - adds r4, r0 - lsls r0, r1, 27 - lsrs r0, 31 - adds r4, r0 - lsls r0, r1, 26 - lsrs r0, 31 - adds r4, r0 - lsls r0, r1, 25 - lsrs r0, 31 - adds r4, r0 - lsrs r1, 7 - adds r4, r1 - ldrb r1, [r5, 0xB] - lsls r0, r1, 31 - lsrs r0, 31 - adds r4, r0 - lsls r0, r1, 30 - lsrs r0, 31 - adds r4, r0 - lsls r1, 29 - lsrs r1, 31 - adds r4, r1 - b _0804035C -_080402C2: - movs r4, 0 - mov r2, r9 - ldrh r0, [r2] - cmp r0, 0 - beq _0804035C - ldrb r0, [r5, 0x7] - lsls r0, 25 - cmp r0, 0 - blt _0804035C - ldrb r2, [r5, 0x9] - lsrs r4, r2, 7 - ldrb r1, [r5, 0x8] - lsls r0, r1, 29 - lsrs r0, 28 - orrs r4, r0 - lsls r1, 26 - lsrs r1, 29 - lsls r1, 4 - orrs r4, r1 - ldrh r0, [r5, 0x8] - lsls r0, 23 - lsrs r0, 29 - lsls r0, 7 - orrs r4, r0 - lsls r0, r2, 28 - lsrs r0, 29 - lsls r0, 10 - orrs r4, r0 - lsls r2, 25 - lsrs r2, 29 - lsls r2, 13 - orrs r4, r2 - ldrb r1, [r5, 0xA] - lsls r0, r1, 31 - lsrs r0, 31 - lsls r0, 16 - orrs r4, r0 - lsls r0, r1, 30 - lsrs r0, 31 - lsls r0, 17 - orrs r4, r0 - lsls r0, r1, 29 - lsrs r0, 31 - lsls r0, 18 - orrs r4, r0 - lsls r0, r1, 28 - lsrs r0, 31 - lsls r0, 19 - orrs r4, r0 - lsls r0, r1, 27 - lsrs r0, 31 - lsls r0, 20 - orrs r4, r0 - lsls r0, r1, 26 - lsrs r0, 31 - lsls r0, 21 - orrs r4, r0 - lsls r0, r1, 25 - lsrs r0, 31 - lsls r0, 22 - orrs r4, r0 - lsrs r1, 7 - lsls r1, 23 - orrs r4, r1 - ldrb r1, [r5, 0xB] - lsls r0, r1, 31 - lsrs r0, 31 - lsls r0, 24 - orrs r4, r0 - lsls r0, r1, 30 - lsrs r0, 31 - lsls r0, 25 - orrs r4, r0 - lsls r1, 29 - lsrs r1, 31 - lsls r1, 26 - orrs r4, r1 -_0804035C: - ldr r6, [sp] - cmp r6, 0xA - ble _08040368 - mov r0, r8 - bl EncryptBoxMon -_08040368: - adds r0, r4, 0 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetBoxMonData - - thumb_func_start sub_804037C -sub_804037C: @ 804037C - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - subs r0, 0x37 - cmp r0, 0x21 - bls _0804038C - b _080404C0 -_0804038C: - lsls r0, 2 - ldr r1, _08040398 @ =_0804039C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08040398: .4byte _0804039C - .align 2, 0 -_0804039C: - .4byte _08040424 - .4byte _0804043C - .4byte _08040446 - .4byte _08040456 - .4byte _08040466 - .4byte _08040476 - .4byte _08040486 - .4byte _08040496 - .4byte _080404A6 - .4byte _080404B6 - .4byte _080404C8 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _080404C0 - .4byte _08040466 - .4byte _08040476 - .4byte _08040486 - .4byte _08040496 - .4byte _080404A6 -_08040424: - ldrb r1, [r2] - ldrb r0, [r2, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r2, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r2, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r3, 0x50] - b _080404C8 -_0804043C: - ldrb r1, [r2] - adds r0, r3, 0 - adds r0, 0x54 - strb r1, [r0] - b _080404C8 -_08040446: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x56 - strh r0, [r1] - b _080404C8 -_08040456: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x58 - strh r0, [r1] - b _080404C8 -_08040466: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x5A - strh r0, [r1] - b _080404C8 -_08040476: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x5C - strh r0, [r1] - b _080404C8 -_08040486: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x5E - strh r0, [r1] - b _080404C8 -_08040496: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x60 - strh r0, [r1] - b _080404C8 -_080404A6: - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - adds r1, r3, 0 - adds r1, 0x62 - strh r0, [r1] - b _080404C8 -_080404B6: - ldrb r1, [r2] - adds r0, r3, 0 - adds r0, 0x55 - strb r1, [r0] - b _080404C8 -_080404C0: - adds r0, r3, 0 - adds r1, r4, 0 - bl sub_80404D0 -_080404C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_804037C - - thumb_func_start sub_80404D0 -sub_80404D0: @ 80404D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - mov r10, r1 - adds r4, r2, 0 - movs r0, 0 - mov r8, r0 - mov r9, r0 - movs r6, 0 - movs r5, 0 - cmp r1, 0xA - ble _08040550 - ldr r1, [r7] - adds r0, r7, 0 - movs r2, 0 - bl GetSubstruct - mov r8, r0 - ldr r1, [r7] - adds r0, r7, 0 - movs r2, 0x1 - bl GetSubstruct - mov r9, r0 - ldr r1, [r7] - adds r0, r7, 0 - movs r2, 0x2 - bl GetSubstruct - adds r6, r0, 0 - ldr r1, [r7] - adds r0, r7, 0 - movs r2, 0x3 - bl GetSubstruct - adds r5, r0, 0 - adds r0, r7, 0 - bl DecryptBoxMon - adds r0, r7, 0 - bl CalculateBoxMonChecksum - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r7, 0x1C] - cmp r0, r1 - beq _08040550 - ldrb r0, [r7, 0x13] - movs r1, 0x1 - orrs r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r7, 0x13] - ldrb r0, [r5, 0x7] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r5, 0x7] - adds r0, r7, 0 - bl EncryptBoxMon - b _08040AEE -_08040550: - mov r0, r10 - cmp r0, 0x50 - bls _08040558 - b _08040ADA -_08040558: - lsls r0, 2 - ldr r1, _08040564 @ =_08040568 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08040564: .4byte _08040568 - .align 2, 0 -_08040568: - .4byte _080406AC - .4byte _080406C4 - .4byte _080406DC - .4byte _080406F2 - .4byte _080406F8 - .4byte _08040708 - .4byte _0804071A - .4byte _0804072C - .4byte _08040742 - .4byte _08040748 - .4byte _08040754 - .4byte _08040760 - .4byte _08040780 - .4byte _080407B8 - .4byte _080407B8 - .4byte _080407B8 - .4byte _080407B8 - .4byte _080407CC - .4byte _080407CC - .4byte _080407CC - .4byte _080407CC - .4byte _080407A8 - .4byte _080407FC - .4byte _08040802 - .4byte _08040808 - .4byte _0804078E - .4byte _080407D8 - .4byte _080407DE - .4byte _080407E4 - .4byte _080407EA - .4byte _080407F0 - .4byte _080407F6 - .4byte _080407B0 - .4byte _0804080E - .4byte _08040820 - .4byte _08040826 - .4byte _0804082C - .4byte _08040840 - .4byte _08040858 - .4byte _0804087E - .4byte _08040892 - .4byte _080408AC - .4byte _080408C2 - .4byte _080408DC - .4byte _080408F4 - .4byte _08040908 - .4byte _08040938 - .4byte _08040814 - .4byte _0804081A - .4byte _0804086E - .4byte _08040948 - .4byte _08040956 - .4byte _0804096C - .4byte _08040984 - .4byte _08040994 - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040ADA - .4byte _08040A92 - .4byte _080409AA - .4byte _080409BA - .4byte _080409C8 - .4byte _080409D8 - .4byte _080409E8 - .4byte _080409F8 - .4byte _08040A08 - .4byte _08040A18 - .4byte _08040A2E - .4byte _08040A3E - .4byte _08040A4C - .4byte _08040A5C - .4byte _08040A6C - .4byte _08040A82 -_080406AC: - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r4, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r4, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r7] - b _08040ADA -_080406C4: - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r4, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r4, 0x3] - lsls r0, 24 - adds r1, r0 - str r1, [r7, 0x4] - b _08040ADA -_080406DC: - movs r2, 0 - adds r3, r7, 0 - adds r3, 0x8 -_080406E2: - adds r0, r3, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x9 - ble _080406E2 - b _08040ADA -_080406F2: - ldrb r0, [r4] - strb r0, [r7, 0x12] - b _08040ADA -_080406F8: - ldrb r0, [r4] - movs r1, 0x1 - ands r1, r0 - ldrb r2, [r7, 0x13] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - b _08040926 -_08040708: - ldrb r0, [r4] - movs r1, 0x1 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r7, 0x13] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - b _08040926 -_0804071A: - ldrb r0, [r4] - movs r1, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r7, 0x13] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - b _08040926 -_0804072C: - movs r2, 0 - adds r3, r7, 0 - adds r3, 0x14 -_08040732: - adds r0, r3, r2 - adds r1, r4, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x6 - ble _08040732 - b _08040ADA -_08040742: - ldrb r0, [r4] - strb r0, [r7, 0x1B] - b _08040ADA -_08040748: - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - strh r1, [r7, 0x1C] - b _08040ADA -_08040754: - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - strh r1, [r7, 0x1E] - b _08040ADA -_08040760: - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - mov r0, r8 - strh r1, [r0] - lsls r1, 16 - cmp r1, 0 - beq _08040778 - ldrb r0, [r7, 0x13] - movs r1, 0x2 - b _08040926 -_08040778: - ldrb r1, [r7, 0x13] - movs r0, 0x3 - negs r0, r0 - b _08040932 -_08040780: - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - mov r0, r8 - strh r1, [r0, 0x2] - b _08040ADA -_0804078E: - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - ldrb r0, [r4, 0x2] - lsls r0, 16 - adds r1, r0 - ldrb r0, [r4, 0x3] - lsls r0, 24 - adds r1, r0 - mov r0, r8 - str r1, [r0, 0x4] - b _08040ADA -_080407A8: - ldrb r0, [r4] - mov r1, r8 - strb r0, [r1, 0x8] - b _08040ADA -_080407B0: - ldrb r0, [r4] - mov r1, r8 - strb r0, [r1, 0x9] - b _08040ADA -_080407B8: - mov r2, r10 - subs r2, 0xD - lsls r2, 1 - add r2, r9 - ldrb r1, [r4] - ldrb r0, [r4, 0x1] - lsls r0, 8 - adds r1, r0 - strh r1, [r2] - b _08040ADA -_080407CC: - mov r0, r9 - add r0, r10 - subs r0, 0x9 - ldrb r1, [r4] - strb r1, [r0] - b _08040ADA -_080407D8: - ldrb r0, [r4] - strb r0, [r6] - b _08040ADA -_080407DE: - ldrb r0, [r4] - strb r0, [r6, 0x1] - b _08040ADA -_080407E4: - ldrb r0, [r4] - strb r0, [r6, 0x2] - b _08040ADA -_080407EA: - ldrb r0, [r4] - strb r0, [r6, 0x3] - b _08040ADA -_080407F0: - ldrb r0, [r4] - strb r0, [r6, 0x4] - b _08040ADA -_080407F6: - ldrb r0, [r4] - strb r0, [r6, 0x5] - b _08040ADA -_080407FC: - ldrb r0, [r4] - strb r0, [r6, 0x6] - b _08040ADA -_08040802: - ldrb r0, [r4] - strb r0, [r6, 0x7] - b _08040ADA -_08040808: - ldrb r0, [r4] - strb r0, [r6, 0x8] - b _08040ADA -_0804080E: - ldrb r0, [r4] - strb r0, [r6, 0x9] - b _08040ADA -_08040814: - ldrb r0, [r4] - strb r0, [r6, 0xA] - b _08040ADA -_0804081A: - ldrb r0, [r4] - strb r0, [r6, 0xB] - b _08040ADA -_08040820: - ldrb r0, [r4] - strb r0, [r5] - b _08040ADA -_08040826: - ldrb r0, [r4] - strb r0, [r5, 0x1] - b _08040ADA -_0804082C: - ldrb r1, [r4] - movs r0, 0x7F - ands r1, r0 - ldrb r2, [r5, 0x2] - movs r0, 0x80 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x2] - b _08040ADA -_08040840: - ldrb r1, [r4] - movs r0, 0xF - ands r1, r0 - lsls r1, 7 - ldrh r2, [r5, 0x2] - ldr r0, _08040854 @ =0xfffff87f - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x2] - b _08040ADA - .align 2, 0 -_08040854: .4byte 0xfffff87f -_08040858: - ldrb r1, [r4] - movs r0, 0xF - ands r1, r0 - lsls r1, 3 - ldrb r2, [r5, 0x3] - movs r0, 0x79 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x3] - b _08040ADA -_0804086E: - ldrb r0, [r4] - lsls r0, 7 - ldrb r2, [r5, 0x3] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x3] - b _08040ADA -_0804087E: - ldrb r1, [r4] - movs r0, 0x1F - ands r1, r0 - ldrb r2, [r5, 0x4] - movs r0, 0x20 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x4] - b _08040ADA -_08040892: - ldrb r1, [r4] - movs r0, 0x1F - ands r1, r0 - lsls r1, 5 - ldrh r2, [r5, 0x4] - ldr r0, _080408A8 @ =0xfffffc1f - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - b _08040ADA - .align 2, 0 -_080408A8: .4byte 0xfffffc1f -_080408AC: - ldrb r1, [r4] - movs r0, 0x1F - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0x5] - movs r0, 0x7D - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _08040ADA -_080408C2: - ldrb r2, [r4] - movs r0, 0x1F - ands r2, r0 - lsls r2, 15 - ldr r0, [r5, 0x4] - ldr r1, _080408D8 @ =0xfff07fff - ands r0, r1 - orrs r0, r2 - str r0, [r5, 0x4] - b _08040ADA - .align 2, 0 -_080408D8: .4byte 0xfff07fff -_080408DC: - ldrb r1, [r4] - movs r0, 0x1F - ands r1, r0 - lsls r1, 4 - ldrh r2, [r5, 0x6] - ldr r0, _080408F0 @ =0xfffffe0f - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x6] - b _08040ADA - .align 2, 0 -_080408F0: .4byte 0xfffffe0f -_080408F4: - ldrb r1, [r4] - movs r0, 0x1F - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0x7] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - b _08040AD8 -_08040908: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 6 - ldrb r2, [r5, 0x7] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x7] - lsls r0, 25 - cmp r0, 0 - bge _0804092C - ldrb r0, [r7, 0x13] - movs r1, 0x4 -_08040926: - orrs r0, r1 - strb r0, [r7, 0x13] - b _08040ADA -_0804092C: - ldrb r1, [r7, 0x13] - movs r0, 0x5 - negs r0, r0 -_08040932: - ands r0, r1 - strb r0, [r7, 0x13] - b _08040ADA -_08040938: - ldrb r0, [r4] - lsls r0, 7 - ldrb r2, [r5, 0x7] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x7] - b _08040ADA -_08040948: - ldrb r1, [r4] - movs r0, 0x7 - ands r1, r0 - ldrb r2, [r5, 0x8] - movs r0, 0x8 - negs r0, r0 - b _08040964 -_08040956: - ldrb r1, [r4] - movs r0, 0x7 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r5, 0x8] - movs r0, 0x39 - negs r0, r0 -_08040964: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x8] - b _08040ADA -_0804096C: - ldrb r1, [r4] - movs r0, 0x7 - ands r1, r0 - lsls r1, 6 - ldrh r2, [r5, 0x8] - ldr r0, _08040980 @ =0xfffffe3f - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x8] - b _08040ADA - .align 2, 0 -_08040980: .4byte 0xfffffe3f -_08040984: - ldrb r1, [r4] - movs r0, 0x7 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0x9] - movs r0, 0xF - negs r0, r0 - b _080409A2 -_08040994: - ldrb r1, [r4] - movs r0, 0x7 - ands r1, r0 - lsls r1, 4 - ldrb r2, [r5, 0x9] - movs r0, 0x71 - negs r0, r0 -_080409A2: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x9] - b _08040ADA -_080409AA: - ldrb r0, [r4] - lsls r0, 7 - ldrb r2, [r5, 0x9] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x9] - b _08040ADA -_080409BA: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - ldrb r2, [r5, 0xA] - movs r0, 0x2 - negs r0, r0 - b _08040A26 -_080409C8: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0xA] - movs r0, 0x3 - negs r0, r0 - b _08040A26 -_080409D8: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0xA] - movs r0, 0x5 - negs r0, r0 - b _08040A26 -_080409E8: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 3 - ldrb r2, [r5, 0xA] - movs r0, 0x9 - negs r0, r0 - b _08040A26 -_080409F8: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 4 - ldrb r2, [r5, 0xA] - movs r0, 0x11 - negs r0, r0 - b _08040A26 -_08040A08: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 5 - ldrb r2, [r5, 0xA] - movs r0, 0x21 - negs r0, r0 - b _08040A26 -_08040A18: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 6 - ldrb r2, [r5, 0xA] - movs r0, 0x41 - negs r0, r0 -_08040A26: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0xA] - b _08040ADA -_08040A2E: - ldrb r0, [r4] - lsls r0, 7 - ldrb r2, [r5, 0xA] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0xA] - b _08040ADA -_08040A3E: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - ldrb r2, [r5, 0xB] - movs r0, 0x2 - negs r0, r0 - b _08040A7A -_08040A4C: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r5, 0xB] - movs r0, 0x3 - negs r0, r0 - b _08040A7A -_08040A5C: - ldrb r1, [r4] - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r5, 0xB] - movs r0, 0x5 - negs r0, r0 - b _08040A7A -_08040A6C: - ldrb r1, [r4] - movs r0, 0xF - ands r1, r0 - lsls r1, 3 - ldrb r2, [r5, 0xB] - movs r0, 0x79 - negs r0, r0 -_08040A7A: - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0xB] - b _08040ADA -_08040A82: - ldrb r0, [r4] - lsls r0, 7 - ldrb r2, [r5, 0xB] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0xB] - b _08040ADA -_08040A92: - ldrb r1, [r4] - movs r4, 0x1F - adds r2, r1, 0 - ands r2, r4 - ldrb r3, [r5, 0x4] - movs r0, 0x20 - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, 0x4] - lsrs r1, 5 - ands r1, r4 - lsls r1, 5 - ldrh r2, [r5, 0x4] - ldr r0, _08040AFC @ =0xfffffc1f - ands r0, r2 - orrs r0, r1 - strh r0, [r5, 0x4] - ldrb r1, [r5, 0x5] - movs r0, 0x7D - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x5] - ldr r0, [r5, 0x4] - ldr r1, _08040B00 @ =0xfff07fff - ands r0, r1 - str r0, [r5, 0x4] - ldrh r1, [r5, 0x6] - ldr r0, _08040B04 @ =0xfffffe0f - ands r0, r1 - strh r0, [r5, 0x6] - ldrb r1, [r5, 0x7] - movs r0, 0x3F - negs r0, r0 - ands r0, r1 -_08040AD8: - strb r0, [r5, 0x7] -_08040ADA: - mov r0, r10 - cmp r0, 0xA - ble _08040AEE - adds r0, r7, 0 - bl CalculateBoxMonChecksum - strh r0, [r7, 0x1C] - adds r0, r7, 0 - bl EncryptBoxMon -_08040AEE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08040AFC: .4byte 0xfffffc1f -_08040B00: .4byte 0xfff07fff -_08040B04: .4byte 0xfffffe0f - thumb_func_end sub_80404D0 - - thumb_func_start CopyMon -CopyMon: @ 8040B08 - push {lr} - bl memcpy - pop {r0} - bx r0 - thumb_func_end CopyMon - - thumb_func_start GiveMonToPlayer -GiveMonToPlayer: @ 8040B14 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r4, _08040B40 @ =gSaveBlock2Ptr - ldr r2, [r4] - movs r1, 0x7 - bl sub_804037C - ldr r2, [r4] - adds r2, 0x8 - adds r0, r6, 0 - movs r1, 0x31 - bl sub_804037C - ldr r2, [r4] - adds r2, 0xA - adds r0, r6, 0 - movs r1, 0x1 - bl sub_804037C - movs r5, 0 - b _08040B46 - .align 2, 0 -_08040B40: .4byte gSaveBlock2Ptr -_08040B44: - adds r5, 0x1 -_08040B46: - cmp r5, 0x5 - bgt _08040B80 - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08040B78 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - bne _08040B44 - adds r0, r4, 0 - adds r1, r6, 0 - movs r2, 0x64 - bl CopyMon - ldr r1, _08040B7C @ =gUnknown_2024029 - adds r0, r5, 0x1 - strb r0, [r1] - movs r0, 0 - b _08040B8A - .align 2, 0 -_08040B78: .4byte gPlayerParty -_08040B7C: .4byte gUnknown_2024029 -_08040B80: - adds r0, r6, 0 - bl SendMonToPC - lsls r0, 24 - lsrs r0, 24 -_08040B8A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GiveMonToPlayer - - thumb_func_start SendMonToPC -SendMonToPC: @ 8040B90 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - ldr r0, _08040C04 @ =0x00004037 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl set_unknown_box_id - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r5, r0, 24 -_08040BAE: - movs r6, 0 - lsls r7, r5, 24 -_08040BB2: - lsls r1, r6, 24 - lsrs r1, 24 - lsrs r0, r7, 24 - bl GetBoxedMonPtr - adds r4, r0, 0 - movs r1, 0xB - movs r2, 0 - bl GetBoxMonData - cmp r0, 0 - bne _08040C14 - mov r0, r8 - bl MonRestorePP - adds r0, r4, 0 - mov r1, r8 - movs r2, 0x50 - bl CopyMon - ldr r0, _08040C08 @ =gUnknown_20370D6 - strh r5, [r0] - ldr r0, _08040C0C @ =gUnknown_20370D8 - strh r6, [r0] - bl get_unknown_box_id - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - beq _08040BF4 - ldr r0, _08040C10 @ =0x00000843 - bl FlagClear -_08040BF4: - lsls r1, r5, 16 - ldr r0, _08040C04 @ =0x00004037 - lsrs r1, 16 - bl VarSet - movs r0, 0x1 - b _08040C30 - .align 2, 0 -_08040C04: .4byte 0x00004037 -_08040C08: .4byte gUnknown_20370D6 -_08040C0C: .4byte gUnknown_20370D8 -_08040C10: .4byte 0x00000843 -_08040C14: - adds r6, 0x1 - cmp r6, 0x1D - ble _08040BB2 - adds r5, 0x1 - cmp r5, 0xE - bne _08040C22 - movs r5, 0 -_08040C22: - bl StorageGetCurrentBox - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08040BAE - movs r0, 0x2 -_08040C30: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end SendMonToPC - - thumb_func_start CalculatePlayerPartyCount -CalculatePlayerPartyCount: @ 8040C3C - push {r4,lr} - ldr r0, _08040C48 @ =gUnknown_2024029 - movs r1, 0 - strb r1, [r0] - b _08040C54 - .align 2, 0 -_08040C48: .4byte gUnknown_2024029 -_08040C4C: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r0, r4, 0 -_08040C54: - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0x5 - bhi _08040C72 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _08040C7C @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - bne _08040C4C -_08040C72: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08040C7C: .4byte gPlayerParty - thumb_func_end CalculatePlayerPartyCount - - thumb_func_start CalculateEnemyPartyCount -CalculateEnemyPartyCount: @ 8040C80 - push {r4,lr} - ldr r0, _08040C8C @ =gUnknown_202402A - movs r1, 0 - strb r1, [r0] - b _08040C98 - .align 2, 0 -_08040C8C: .4byte gUnknown_202402A -_08040C90: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r0, r4, 0 -_08040C98: - adds r4, r0, 0 - ldrb r0, [r4] - cmp r0, 0x5 - bhi _08040CB6 - adds r1, r0, 0 - movs r0, 0x64 - muls r0, r1 - ldr r1, _08040CC0 @ =gEnemyParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - bne _08040C90 -_08040CB6: - ldrb r0, [r4] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08040CC0: .4byte gEnemyParty - thumb_func_end CalculateEnemyPartyCount - - thumb_func_start GetMonsStateToDoubles -GetMonsStateToDoubles: @ 8040CC4 - push {r4-r6,lr} - movs r6, 0 - bl CalculatePlayerPartyCount - ldr r1, _08040D30 @ =gUnknown_2024029 - ldrb r0, [r1] - cmp r0, 0x1 - beq _08040D28 - movs r5, 0 - ldrb r1, [r1] - cmp r6, r1 - bge _08040D20 -_08040CDC: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08040D34 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _08040D16 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - cmp r0, 0 - beq _08040D16 - adds r0, r4, 0 - movs r1, 0x41 - movs r2, 0 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08040D16 - adds r6, 0x1 -_08040D16: - adds r5, 0x1 - ldr r0, _08040D30 @ =gUnknown_2024029 - ldrb r0, [r0] - cmp r5, r0 - blt _08040CDC -_08040D20: - movs r0, 0 - cmp r6, 0x1 - bgt _08040D28 - movs r0, 0x2 -_08040D28: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08040D30: .4byte gUnknown_2024029 -_08040D34: .4byte gPlayerParty - thumb_func_end GetMonsStateToDoubles - - thumb_func_start GetAbilityBySpecies -GetAbilityBySpecies: @ 8040D38 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 24 - cmp r1, 0 - beq _08040D5C - ldr r2, _08040D54 @ =gUnknown_2023D6A - ldr r1, _08040D58 @ =gBaseStats - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x17] - b _08040D6A - .align 2, 0 -_08040D54: .4byte gUnknown_2023D6A -_08040D58: .4byte gBaseStats -_08040D5C: - ldr r2, _08040D74 @ =gUnknown_2023D6A - ldr r1, _08040D78 @ =gBaseStats - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x16] -_08040D6A: - strb r0, [r2] - ldrb r0, [r2] - pop {r1} - bx r1 - .align 2, 0 -_08040D74: .4byte gUnknown_2023D6A -_08040D78: .4byte gBaseStats - thumb_func_end GetAbilityBySpecies - - thumb_func_start GetMonAbility -GetMonAbility: @ 8040D7C - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - movs r1, 0x2E - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl GetAbilityBySpecies - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetMonAbility - - thumb_func_start CreateSecretBaseEnemyParty -CreateSecretBaseEnemyParty: @ 8040DB0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r5, r0, 0 - bl ZeroEnemyPartyMons - ldr r4, _08040ED8 @ =gBattleResources - ldr r0, [r4] - ldr r0, [r0] - adds r1, r5, 0 - movs r2, 0xA0 - bl memcpy - movs r0, 0 - mov r9, r0 -_08040DD4: - ldr r1, _08040ED8 @ =gBattleResources - ldr r3, [r1] - ldr r2, [r3] - mov r4, r9 - lsls r7, r4, 1 - adds r0, r2, 0 - adds r0, 0x7C - adds r1, r0, r7 - ldrh r0, [r1] - adds r4, 0x1 - str r4, [sp, 0x10] - cmp r0, 0 - beq _08040EAE - movs r0, 0x64 - mov r6, r9 - muls r6, r0 - ldr r4, _08040EDC @ =gEnemyParty - mov r8, r4 - adds r5, r6, r4 - ldrh r1, [r1] - adds r0, r2, 0 - adds r0, 0x94 - add r0, r9 - ldrb r2, [r0] - movs r0, 0x1 - str r0, [sp] - ldr r0, [r3] - mov r3, r9 - lsls r4, r3, 2 - adds r0, 0x34 - adds r0, r4 - ldr r0, [r0] - str r0, [sp, 0x4] - movs r0, 0x2 - str r0, [sp, 0x8] - movs r0, 0 - str r0, [sp, 0xC] - adds r0, r5, 0 - movs r3, 0xF - bl CreateMon - ldr r1, _08040ED8 @ =gBattleResources - ldr r0, [r1] - adds r1, r7, 0 - adds r1, 0x88 - ldr r2, [r0] - adds r2, r1 - adds r0, r5, 0 - movs r1, 0xC - bl sub_804037C - movs r5, 0 - mov r10, r4 - mov r7, r9 - adds r7, 0x9A - mov r4, r8 -_08040E44: - adds r1, r5, 0 - adds r1, 0x1A - ldr r2, _08040ED8 @ =gBattleResources - ldr r0, [r2] - ldr r2, [r0] - adds r2, r7 - adds r0, r6, r4 - bl sub_804037C - adds r5, 0x1 - cmp r5, 0x5 - ble _08040E44 - movs r5, 0 - movs r3, 0x64 - mov r0, r9 - muls r0, r3 - ldr r1, _08040EDC @ =gEnemyParty - adds r7, r0, r1 - mov r4, r10 - lsls r0, r4, 1 - adds r6, r0, 0 - adds r6, 0x4C - adds r4, r0, 0 -_08040E72: - adds r1, r5, 0 - adds r1, 0xD - ldr r2, _08040ED8 @ =gBattleResources - ldr r0, [r2] - ldr r2, [r0] - adds r2, r6 - adds r0, r7, 0 - bl sub_804037C - adds r1, r5, 0 - adds r1, 0x11 - ldr r3, _08040ED8 @ =gBattleResources - ldr r0, [r3] - ldr r0, [r0] - adds r0, 0x4C - adds r0, r4 - ldrh r0, [r0] - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - ldr r0, _08040EE0 @ =gUnknown_8250C08 - adds r2, r0 - adds r0, r7, 0 - bl sub_804037C - adds r6, 0x2 - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _08040E72 -_08040EAE: - ldr r4, [sp, 0x10] - mov r9, r4 - cmp r4, 0x5 - ble _08040DD4 - ldr r1, _08040EE4 @ =gBattleTypeFlags - movs r0, 0x8 - str r0, [r1] - ldr r1, _08040EE8 @ =gTrainerBattleOpponent_A - movs r2, 0x80 - lsls r2, 3 - adds r0, r2, 0 - strh r0, [r1] - 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 -_08040ED8: .4byte gBattleResources -_08040EDC: .4byte gEnemyParty -_08040EE0: .4byte gUnknown_8250C08 -_08040EE4: .4byte gBattleTypeFlags -_08040EE8: .4byte gTrainerBattleOpponent_A - thumb_func_end CreateSecretBaseEnemyParty - - thumb_func_start GetSecretBaseTrainerPicIndex -GetSecretBaseTrainerPicIndex: @ 8040EEC - push {r4,r5,lr} - ldr r5, _08040F20 @ =gUnknown_825DFE0 - ldr r0, _08040F24 @ =gBattleResources - ldr r0, [r0] - ldr r4, [r0] - ldrb r0, [r4, 0x9] - movs r1, 0x5 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4, 0x1] - lsls r2, 27 - lsrs r2, 31 - lsls r1, r2, 2 - adds r1, r2 - adds r0, r1 - adds r0, r5 - ldrb r0, [r0] - ldr r1, _08040F28 @ =gUnknown_82538A8 - adds r0, r1 - ldrb r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08040F20: .4byte gUnknown_825DFE0 -_08040F24: .4byte gBattleResources -_08040F28: .4byte gUnknown_82538A8 - thumb_func_end GetSecretBaseTrainerPicIndex - - thumb_func_start GetSecretBaseTrainerNameIndex -GetSecretBaseTrainerNameIndex: @ 8040F2C - push {r4,r5,lr} - ldr r5, _08040F60 @ =gUnknown_825DFE0 - ldr r0, _08040F64 @ =gBattleResources - ldr r0, [r0] - ldr r4, [r0] - ldrb r0, [r4, 0x9] - movs r1, 0x5 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - ldrb r2, [r4, 0x1] - lsls r2, 27 - lsrs r2, 31 - lsls r1, r2, 2 - adds r1, r2 - adds r0, r1 - adds r0, r5 - ldrb r0, [r0] - ldr r1, _08040F68 @ =gUnknown_825393E - adds r0, r1 - ldrb r0, [r0] - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08040F60: .4byte gUnknown_825DFE0 -_08040F64: .4byte gBattleResources -_08040F68: .4byte gUnknown_825393E - thumb_func_end GetSecretBaseTrainerNameIndex - - thumb_func_start IsPlayerPartyAndPokemonStorageFull -IsPlayerPartyAndPokemonStorageFull: @ 8040F6C - push {r4,lr} - movs r4, 0 -_08040F70: - movs r0, 0x64 - muls r0, r4 - ldr r1, _08040F88 @ =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - cmp r0, 0 - bne _08040F8C - movs r0, 0 - b _08040F9A - .align 2, 0 -_08040F88: .4byte gPlayerParty -_08040F8C: - adds r4, 0x1 - cmp r4, 0x5 - ble _08040F70 - bl IsPokemonStorageFull - lsls r0, 24 - lsrs r0, 24 -_08040F9A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end IsPlayerPartyAndPokemonStorageFull - - thumb_func_start IsPokemonStorageFull -IsPokemonStorageFull: @ 8040FA0 - push {r4-r6,lr} - movs r6, 0 -_08040FA4: - movs r4, 0 - lsls r5, r6, 24 -_08040FA8: - lsls r1, r4, 24 - lsrs r1, 24 - lsrs r0, r5, 24 - movs r2, 0xB - bl GetBoxMonDataFromAnyBox - cmp r0, 0 - bne _08040FBC - movs r0, 0 - b _08040FCA -_08040FBC: - adds r4, 0x1 - cmp r4, 0x1D - ble _08040FA8 - adds r6, 0x1 - cmp r6, 0xD - ble _08040FA4 - movs r0, 0x1 -_08040FCA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end IsPokemonStorageFull - - thumb_func_start GetSpeciesName -GetSpeciesName: @ 8040FD0 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - movs r1, 0 - movs r0, 0xCE - lsls r0, 1 - mov r12, r0 - ldr r7, _08040FEC @ =gUnknown_8245EE0 - movs r0, 0xB - muls r0, r5 - adds r3, r0, r7 - adds r2, r6, 0 - b _08040FF6 - .align 2, 0 -_08040FEC: .4byte gUnknown_8245EE0 -_08040FF0: - adds r3, 0x1 - adds r2, 0x1 - adds r1, 0x1 -_08040FF6: - adds r4, r6, r1 - cmp r1, 0x9 - bgt _08041010 - cmp r5, r12 - bls _08041006 - adds r0, r1, r7 - ldrb r0, [r0] - b _08041008 -_08041006: - ldrb r0, [r3] -_08041008: - strb r0, [r2] - ldrb r0, [r4] - cmp r0, 0xFF - bne _08040FF0 -_08041010: - movs r0, 0xFF - strb r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end GetSpeciesName - - thumb_func_start CalculatePPWithBonus -CalculatePPWithBonus: @ 804101C - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r2, 24 - lsrs r2, 24 - ldr r4, _0804105C @ =gBattleMoves - lsls r3, r0, 1 - adds r3, r0 - lsls r3, 2 - adds r3, r4 - ldrb r4, [r3, 0x4] - ldr r0, _08041060 @ =gUnknown_825DEA1 - adds r0, r2, r0 - ldrb r3, [r0] - ands r3, r1 - lsls r2, 1 - asrs r3, r2 - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 2 - muls r0, r4 - movs r1, 0x64 - bl __divsi3 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0804105C: .4byte gBattleMoves -_08041060: .4byte gUnknown_825DEA1 - thumb_func_end CalculatePPWithBonus - - thumb_func_start RemoveMonPPBonus -RemoveMonPPBonus: @ 8041064 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - strb r0, [r1] - ldr r1, _0804109C @ =gUnknown_825DEA5 - adds r4, r1 - ldrb r1, [r4] - ands r1, r0 - mov r0, sp - strb r1, [r0] - adds r0, r5, 0 - movs r1, 0x15 - mov r2, sp - bl sub_804037C - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0804109C: .4byte gUnknown_825DEA5 - thumb_func_end RemoveMonPPBonus - - thumb_func_start RemoveBattleMonPPBonus -RemoveBattleMonPPBonus: @ 80410A0 - lsls r1, 24 - lsrs r1, 24 - adds r0, 0x3B - ldr r2, _080410B4 @ =gUnknown_825DEA5 - adds r1, r2 - ldrb r2, [r0] - ldrb r1, [r1] - ands r1, r2 - strb r1, [r0] - bx lr - .align 2, 0 -_080410B4: .4byte gUnknown_825DEA5 - thumb_func_end RemoveBattleMonPPBonus - - thumb_func_start CopyPlayerPartyMonToBattleData -CopyPlayerPartyMonToBattleData: @ 80410B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - movs r0, 0x64 - mov r5, r9 - muls r5, r0 - ldr r0, _080413A4 @ =gPlayerParty - adds r5, r0 - adds r0, r5, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - ldr r1, _080413A8 @ =gBattleMons - mov r8, r1 - movs r1, 0x58 - ldr r2, [sp, 0x14] - adds r4, r2, 0 - muls r4, r1 - mov r3, r8 - adds r6, r4, r3 - strh r0, [r6] - adds r0, r5, 0 - movs r1, 0xC - movs r2, 0 - bl GetMonData - strh r0, [r6, 0x2E] - movs r6, 0 - mov r0, r8 - adds r0, 0x24 - adds r7, r4, r0 -_0804110A: - adds r1, r6, 0 - adds r1, 0xD - adds r0, r5, 0 - movs r2, 0 - bl GetMonData - movs r1, 0xC - add r1, r8 - mov r10, r1 - adds r1, r4, r1 - strh r0, [r1] - adds r1, r6, 0 - adds r1, 0x11 - adds r0, r5, 0 - movs r2, 0 - bl GetMonData - strb r0, [r7] - adds r7, 0x1 - adds r4, 0x2 - adds r6, 0x1 - cmp r6, 0x3 - ble _0804110A - movs r0, 0x64 - mov r4, r9 - muls r4, r0 - ldr r0, _080413A4 @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x15 - movs r2, 0 - bl GetMonData - movs r2, 0xC - negs r2, r2 - add r2, r10 - mov r9, r2 - movs r1, 0x58 - ldr r3, [sp, 0x14] - adds r5, r3, 0 - muls r5, r1 - adds r7, r5, r2 - adds r1, r7, 0 - adds r1, 0x3B - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - adds r1, r7, 0 - adds r1, 0x2B - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x19 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x38 - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0x27 - movs r2, 0 - bl GetMonData - movs r6, 0x1F - ands r0, r6 - ldrb r2, [r7, 0x14] - movs r1, 0x20 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x14] - adds r0, r4, 0 - movs r1, 0x28 - movs r2, 0 - bl GetMonData - movs r1, 0x1F - mov r8, r1 - mov r2, r8 - ands r0, r2 - lsls r0, 5 - ldrh r2, [r7, 0x14] - ldr r1, _080413AC @ =0xfffffc1f - ands r1, r2 - orrs r1, r0 - strh r1, [r7, 0x14] - adds r0, r4, 0 - movs r1, 0x29 - movs r2, 0 - bl GetMonData - ands r0, r6 - lsls r0, 2 - ldrb r2, [r7, 0x15] - movs r1, 0x7D - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x15] - adds r0, r4, 0 - movs r1, 0x2A - movs r2, 0 - bl GetMonData - movs r1, 0x1F - ands r1, r0 - lsls r1, 15 - ldr r0, [r7, 0x14] - ldr r2, _080413B0 @ =0xfff07fff - ands r0, r2 - orrs r0, r1 - str r0, [r7, 0x14] - adds r0, r4, 0 - movs r1, 0x2B - movs r2, 0 - bl GetMonData - mov r3, r8 - ands r0, r3 - lsls r0, 4 - ldrh r2, [r7, 0x16] - ldr r1, _080413B4 @ =0xfffffe0f - ands r1, r2 - orrs r1, r0 - strh r1, [r7, 0x16] - adds r0, r4, 0 - movs r1, 0x2C - movs r2, 0 - bl GetMonData - ands r0, r6 - lsls r0, 1 - ldrb r2, [r7, 0x17] - movs r1, 0x3F - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x17] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x3C - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0x37 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x40 - adds r1, r5, r1 - str r0, [r1] - adds r0, r4, 0 - movs r1, 0x38 - movs r2, 0 - bl GetMonData - adds r1, r7, 0 - adds r1, 0x2A - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x39 - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x28] - adds r0, r4, 0 - movs r1, 0x3A - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x2C] - adds r0, r4, 0 - movs r1, 0x3B - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x2] - adds r0, r4, 0 - movs r1, 0x3C - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x4] - adds r0, r4, 0 - movs r1, 0x3D - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x6] - adds r0, r4, 0 - movs r1, 0x3E - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x8] - adds r0, r4, 0 - movs r1, 0x3F - movs r2, 0 - bl GetMonData - strh r0, [r7, 0xA] - adds r0, r4, 0 - movs r1, 0x2D - movs r2, 0 - bl GetMonData - movs r1, 0x1 - ands r0, r1 - lsls r0, 6 - ldrb r2, [r7, 0x17] - movs r1, 0x41 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x17] - adds r0, r4, 0 - movs r1, 0x2E - movs r2, 0 - bl GetMonData - lsls r0, 7 - ldrb r2, [r7, 0x17] - movs r1, 0x7F - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x17] - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - mov r1, r10 - adds r1, 0x48 - adds r1, r5, r1 - str r0, [r1] - ldr r2, _080413B8 @ =gBaseStats - ldrh r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - adds r1, r7, 0 - adds r1, 0x21 - strb r0, [r1] - ldrh r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x7] - adds r1, r7, 0 - adds r1, 0x22 - strb r0, [r1] - ldrh r0, [r7] - ldrb r1, [r7, 0x17] - lsrs r1, 7 - bl GetAbilityBySpecies - adds r1, r7, 0 - adds r1, 0x20 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, r10 - adds r0, 0x24 - adds r0, r5, r0 - mov r1, sp - bl StringCopy10 - mov r2, r10 - adds r2, 0x30 - adds r2, r5, r2 - adds r0, r4, 0 - movs r1, 0x7 - bl GetMonData - ldr r0, [sp, 0x14] - bl GetBankSide - ldr r1, _080413BC @ =gBattleStruct - lsls r0, 24 - lsrs r0, 23 - adds r0, 0xA8 - ldr r1, [r1] - adds r1, r0 - ldrh r0, [r7, 0x28] - strh r0, [r1] - movs r2, 0x6 - mov r1, r9 - movs r6, 0x7 - add r5, r10 - adds r0, r5, 0 - adds r0, 0x13 -_0804136E: - strb r2, [r0] - subs r0, 0x1 - subs r6, 0x1 - cmp r6, 0 - bge _0804136E - movs r2, 0 - movs r0, 0x58 - ldr r3, [sp, 0x14] - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - str r2, [r0] - ldr r0, [sp, 0x14] - bl sub_80174B8 - ldr r0, [sp, 0x14] - movs r1, 0 - bl ClearTemporarySpeciesSpriteData - 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 -_080413A4: .4byte gPlayerParty -_080413A8: .4byte gBattleMons -_080413AC: .4byte 0xfffffc1f -_080413B0: .4byte 0xfff07fff -_080413B4: .4byte 0xfffffe0f -_080413B8: .4byte gBaseStats -_080413BC: .4byte gBattleStruct - thumb_func_end CopyPlayerPartyMonToBattleData - - .align 2, 0 @ Don't pad with nop. |