diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-11 13:17:08 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-11 13:17:08 -0800 |
commit | f0da018ee248db36823ae3fe959d0d9dc7af6c90 (patch) | |
tree | bce1098d828342fb932973e5068f9cd13f4a9227 | |
parent | f5b85f1eb8110ddedff991549970e0f5c5277de9 (diff) |
split event_flag.s
-rw-r--r-- | asm/code.s | 3609 | ||||
-rw-r--r-- | asm/code_8002774.s | 1034 | ||||
-rw-r--r-- | asm/event_flag.s | 2591 | ||||
-rw-r--r-- | ld_script.txt | 2 |
4 files changed, 3627 insertions, 3609 deletions
@@ -2080,3613 +2080,4 @@ nullsub_3: bx lr thumb_func_end nullsub_3 - thumb_func_start sub_800135C -sub_800135C: - push {r4-r7,lr} - movs r1, 0 - ldr r4, _0800138C - ldr r3, _08001390 - movs r2, 0 -_08001366: - adds r0, r1, r3 - strb r2, [r0] - adds r1, 0x1 - cmp r1, r4 - ble _08001366 - movs r6, 0 -_08001372: - lsls r1, r6, 4 - ldr r0, _08001394 - adds r5, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - adds r7, r6, 0x1 - cmp r0, 0 - beq _080013B4 - cmp r0, 0x8 - beq _080013B4 - movs r4, 0 - b _080013AC - .align 2, 0 -_0800138C: .4byte 0x000003ff -_08001390: .4byte gUnknown_2000A88 -_08001394: .4byte gUnknown_80B7394 -_08001398: - movs r0, 0xA - ldrsh r3, [r5, r0] - movs r0, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_800199C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080013AC: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r4, r0 - blt _08001398 -_080013B4: - lsls r0, r7, 16 - asrs r6, r0, 16 - cmp r6, 0x50 - ble _08001372 - movs r0, 0 - movs r1, 0x1 - bl sub_80015C0 - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0x4 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0x6 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0x8 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0xA - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0xB - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0xC - movs r1, 0 - movs r2, 0 - bl sub_8001BB4 - movs r0, 0 - movs r1, 0xD - movs r2, 0xA2 - bl sub_80018D8 - movs r0, 0 - movs r1, 0xE - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0xF - movs r2, 0xA2 - bl sub_80018D8 - movs r4, 0x1 - negs r4, r4 - movs r0, 0 - movs r1, 0x10 - adds r2, r4, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x11 - movs r2, 0x24 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x12 - adds r2, r4, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x13 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x14 - adds r2, r4, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x16 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x18 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x19 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x1B - adds r2, r4, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x1C - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x1D - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x1E - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x1F - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x24 - bl sub_80015C0 - movs r0, 0 - movs r1, 0x25 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x26 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x27 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x28 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x29 - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x2A - movs r2, 0 - bl sub_80018D8 - movs r0, 0 - movs r1, 0x2B - bl sub_80015C0 - movs r0, 0 - movs r1, 0x2C - bl sub_80015C0 - movs r0, 0 - movs r1, 0x2D - bl sub_80015C0 - movs r0, 0 - movs r1, 0x2E - bl sub_80015C0 - movs r0, 0 - movs r1, 0x2F - bl sub_80015C0 - movs r0, 0 - movs r1, 0x30 - bl sub_80015C0 - movs r0, 0 - movs r1, 0x31 - bl sub_80015C0 - movs r0, 0 - movs r1, 0x41 - bl sub_80015C0 - bl sub_80972F4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_800135C - - thumb_func_start sub_8001564 -sub_8001564: - push {lr} - bl nullsub_128 - pop {r0} - bx r0 - thumb_func_end sub_8001564 - - thumb_func_start sub_8001570 -sub_8001570: - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 16 - asrs r6, r1, 16 - ldr r0, _08001584 - cmp r6, r0 - bgt _0800158C - lsls r1, r6, 4 - ldr r0, _08001588 - b _08001590 - .align 2, 0 -_08001584: .4byte 0x000003ff -_08001588: .4byte gUnknown_80B7394 -_0800158C: - lsls r1, r6, 4 - ldr r0, _08001598 -_08001590: - adds r5, r1, r0 - movs r4, 0 - b _080015B0 - .align 2, 0 -_08001598: .4byte 0x080b2d30 -_0800159C: - movs r0, 0xA - ldrsh r3, [r5, r0] - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_800199C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080015B0: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r4, r0 - blt _0800159C - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8001570 - - thumb_func_start sub_80015C0 -sub_80015C0: - push {r4-r7,lr} - adds r7, r0, 0 - lsls r1, 16 - asrs r6, r1, 16 - ldr r0, _080015D4 - cmp r6, r0 - bgt _080015DC - lsls r1, r6, 4 - ldr r0, _080015D8 - b _080015E0 - .align 2, 0 -_080015D4: .4byte 0x000003ff -_080015D8: .4byte gUnknown_80B7394 -_080015DC: - lsls r1, r6, 4 - ldr r0, _080015E8 -_080015E0: - adds r5, r1, r0 - movs r4, 0 - b _080015FE - .align 2, 0 -_080015E8: .4byte 0x080b2d30 -_080015EC: - adds r0, r7, 0 - adds r1, r6, 0 - adds r2, r4, 0 - movs r3, 0 - bl sub_800199C - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080015FE: - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r4, r0 - blt _080015EC - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80015C0 - - thumb_func_start sub_800160C -sub_800160C: - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - lsls r2, 16 - asrs r1, r2, 16 - ldr r0, _08001630 - cmp r1, r0 - bgt _0800163C - lsls r1, 4 - ldr r0, _08001634 - adds r1, r0 - str r1, [r3] - movs r2, 0x4 - ldrsh r0, [r1, r2] - ldr r1, _08001638 - adds r0, r1 - b _0800164C - .align 2, 0 -_08001630: .4byte 0x000003ff -_08001634: .4byte gUnknown_80B7394 -_08001638: .4byte gUnknown_2000A88 -_0800163C: - lsls r1, 4 - ldr r0, _08001654 - adds r1, r0 - str r1, [r3] - movs r2, 0x4 - ldrsh r0, [r1, r2] - lsls r0, 2 - adds r0, r4, r0 -_0800164C: - str r0, [r3, 0x4] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08001654: .4byte 0x080b2d30 - thumb_func_end sub_800160C - - thumb_func_start sub_8001658 -sub_8001658: - push {r4,lr} - sub sp, 0x8 - adds r2, r0, 0 - lsls r1, 16 - asrs r4, r1, 16 - mov r0, sp - adds r1, r2, 0 - adds r2, r4, 0 - bl sub_800160C - ldr r0, [sp] - ldrh r0, [r0] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bls _0800167C - b _08001778 -_0800167C: - lsls r0, 2 - ldr r1, _08001688 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08001688: .4byte _0800168C - .align 2, 0 -_0800168C: - .4byte _080016AC - .4byte _080016C2 - .4byte _080016C8 - .4byte _080016D2 - .4byte _080016D8 - .4byte _080016E0 - .4byte _080016C2 - .4byte _080016E6 -_080016AC: - ldr r0, [sp] - movs r1, 0x6 - ldrsh r0, [r0, r1] - movs r1, 0x80 - lsls r1, 17 - lsls r1, r0 - lsrs r1, 24 - ldr r0, [sp, 0x4] - ldrb r0, [r0] - ands r1, r0 - b _0800173E -_080016C2: - ldr r0, [sp, 0x4] - ldrb r0, [r0] - b _0800177A -_080016C8: - ldr r0, [sp, 0x4] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _0800177A -_080016D2: - ldr r0, [sp, 0x4] - ldrh r0, [r0] - b _0800177A -_080016D8: - ldr r0, [sp, 0x4] - movs r1, 0 - ldrsh r0, [r0, r1] - b _0800177A -_080016E0: - ldr r0, [sp, 0x4] - ldr r0, [r0] - b _0800177A -_080016E6: - adds r0, r4, 0 - subs r0, 0x17 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bhi _08001778 - lsls r0, 2 - ldr r1, _080016FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080016FC: .4byte _08001700 - .align 2, 0 -_08001700: - .4byte _08001734 - .4byte _08001778 - .4byte _08001778 - .4byte _08001778 - .4byte _08001778 - .4byte _08001778 - .4byte _08001778 - .4byte _08001778 - .4byte _08001778 - .4byte _08001746 - .4byte _0800174C - .4byte _08001754 - .4byte _08001764 -_08001734: - bl sub_8098F94 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 -_0800173E: - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _0800177A -_08001746: - bl sub_808D480 - b _0800177A -_0800174C: - movs r0, 0 - bl sub_808D544 - b _0800177A -_08001754: - ldr r0, _08001760 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - b _0800176C - .align 2, 0 -_08001760: .4byte gUnknown_203B460 -_08001764: - ldr r0, _08001774 - ldr r0, [r0] - movs r1, 0x99 - lsls r1, 2 -_0800176C: - adds r0, r1 - ldr r0, [r0] - b _0800177A - .align 2, 0 -_08001774: .4byte gUnknown_203B460 -_08001778: - movs r0, 0 -_0800177A: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8001658 - - thumb_func_start sub_8001784 -sub_8001784: - push {r4,r5,lr} - sub sp, 0x8 - adds r3, r0, 0 - lsls r1, 16 - asrs r5, r1, 16 - lsls r2, 16 - lsrs r4, r2, 16 - mov r0, sp - adds r1, r3, 0 - adds r2, r5, 0 - bl sub_800160C - ldr r0, [sp] - ldrh r0, [r0] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bls _080017AC - b _080018CC -_080017AC: - lsls r0, 2 - ldr r1, _080017B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080017B8: .4byte _080017BC - .align 2, 0 -_080017BC: - .4byte _080017DC - .4byte _08001800 - .4byte _08001808 - .4byte _08001814 - .4byte _0800181E - .4byte _0800182A - .4byte _08001800 - .4byte _08001834 -_080017DC: - ldr r0, [sp] - ldrh r1, [r0, 0x6] - adds r1, r4, r1 - lsls r1, 16 - lsrs r0, r1, 19 - ldr r2, [sp, 0x4] - adds r2, r0 - movs r0, 0xE0 - lsls r0, 11 - ands r0, r1 - lsrs r0, 16 - movs r1, 0x80 - lsls r1, 17 - lsls r1, r0 - lsrs r1, 24 - ldrb r0, [r2] - ands r1, r0 - b _0800188E -_08001800: - ldr r0, [sp, 0x4] - adds r0, r4 - ldrb r0, [r0] - b _080018CE -_08001808: - ldr r0, [sp, 0x4] - adds r0, r4 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - b _080018CE -_08001814: - ldr r0, [sp, 0x4] - lsls r1, r4, 1 - adds r1, r0 - ldrh r0, [r1] - b _080018CE -_0800181E: - ldr r0, [sp, 0x4] - lsls r1, r4, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - b _080018CE -_0800182A: - ldr r0, [sp, 0x4] - lsls r1, r4, 2 - adds r1, r0 - ldr r0, [r1] - b _080018CE -_08001834: - adds r0, r5, 0 - subs r0, 0x17 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xC - bhi _080018CC - lsls r0, 2 - ldr r1, _0800184C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0800184C: .4byte _08001850 - .align 2, 0 -_08001850: - .4byte _08001884 - .4byte _080018CC - .4byte _080018CC - .4byte _080018CC - .4byte _080018CC - .4byte _080018CC - .4byte _080018CC - .4byte _080018CC - .4byte _080018CC - .4byte _08001896 - .4byte _0800189C - .4byte _080018A4 - .4byte _080018B8 -_08001884: - bl sub_8098F94 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 -_0800188E: - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _080018CE -_08001896: - bl sub_808D480 - b _080018CE -_0800189C: - movs r0, 0 - bl sub_808D544 - b _080018CE -_080018A4: - ldr r0, _080018B4 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - ldr r0, [r0] - b _080018CE - .align 2, 0 -_080018B4: .4byte gUnknown_203B460 -_080018B8: - ldr r0, _080018C8 - ldr r0, [r0] - movs r2, 0x99 - lsls r2, 2 - adds r0, r2 - ldr r0, [r0] - b _080018CE - .align 2, 0 -_080018C8: .4byte gUnknown_203B460 -_080018CC: - movs r0, 0 -_080018CE: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8001784 - - thumb_func_start sub_80018D8 -sub_80018D8: - push {r4,r5,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r4, r2, 0 - lsls r1, 16 - asrs r5, r1, 16 - mov r0, sp - adds r1, r3, 0 - adds r2, r5, 0 - bl sub_800160C - ldr r0, [sp] - ldrh r0, [r0] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bhi _08001990 - lsls r0, 2 - ldr r1, _08001908 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08001908: .4byte _0800190C - .align 2, 0 -_0800190C: - .4byte _0800192C - .4byte _08001958 - .4byte _08001958 - .4byte _0800195E - .4byte _0800195E - .4byte _08001964 - .4byte _08001958 - .4byte _08001968 -_0800192C: - ldr r0, [sp] - movs r2, 0x6 - ldrsh r1, [r0, r2] - movs r0, 0x80 - lsls r0, 17 - lsls r0, r1 - lsrs r3, r0, 24 - cmp r4, 0 - beq _0800194A - ldr r2, [sp, 0x4] - ldrb r1, [r2] - adds r0, r3, 0 - orrs r0, r1 - strb r0, [r2] - b _08001990 -_0800194A: - ldr r2, [sp, 0x4] - ldrb r1, [r2] - adds r0, r3, 0 - orrs r0, r1 - eors r0, r3 - strb r0, [r2] - b _08001990 -_08001958: - ldr r0, [sp, 0x4] - strb r4, [r0] - b _08001990 -_0800195E: - ldr r0, [sp, 0x4] - strh r4, [r0] - b _08001990 -_08001964: - ldr r0, [sp, 0x4] - b _0800198E -_08001968: - cmp r5, 0x22 - beq _08001972 - cmp r5, 0x23 - beq _08001984 - b _08001990 -_08001972: - ldr r0, _08001980 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - b _0800198E - .align 2, 0 -_08001980: .4byte gUnknown_203B460 -_08001984: - ldr r0, _08001998 - ldr r0, [r0] - movs r2, 0x99 - lsls r2, 2 - adds r0, r2 -_0800198E: - str r4, [r0] -_08001990: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08001998: .4byte gUnknown_203B460 - thumb_func_end sub_80018D8 - - thumb_func_start sub_800199C -sub_800199C: - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r6, r3, 0 - lsls r1, 16 - asrs r7, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - mov r0, sp - adds r1, r4, 0 - adds r2, r7, 0 - bl sub_800160C - ldr r0, [sp] - ldrh r0, [r0] - subs r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - bhi _08001A68 - lsls r0, 2 - ldr r1, _080019D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080019D0: .4byte _080019D4 - .align 2, 0 -_080019D4: - .4byte _080019F4 - .4byte _08001A2C - .4byte _08001A2C - .4byte _08001A34 - .4byte _08001A34 - .4byte _08001A3E - .4byte _08001A2C - .4byte _08001A44 -_080019F4: - ldr r0, [sp] - ldrh r0, [r0, 0x6] - adds r0, r5, r0 - lsls r0, 16 - lsrs r2, r0, 19 - ldr r1, [sp, 0x4] - adds r3, r1, r2 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - movs r0, 0x80 - lsls r0, 17 - lsls r0, r1 - lsrs r2, r0, 24 - cmp r6, 0 - beq _08001A20 - ldrb r1, [r3] - adds r0, r2, 0 - orrs r0, r1 - strb r0, [r3] - b _08001A68 -_08001A20: - ldrb r1, [r3] - adds r0, r2, 0 - orrs r0, r1 - eors r0, r2 - strb r0, [r3] - b _08001A68 -_08001A2C: - ldr r0, [sp, 0x4] - adds r0, r5 - strb r6, [r0] - b _08001A68 -_08001A34: - ldr r1, [sp, 0x4] - lsls r0, r5, 1 - adds r0, r1 - strh r6, [r0] - b _08001A68 -_08001A3E: - ldr r1, [sp, 0x4] - lsls r0, r5, 2 - b _08001A64 -_08001A44: - cmp r7, 0x22 - beq _08001A4E - cmp r7, 0x23 - beq _08001A5C - b _08001A68 -_08001A4E: - ldr r0, _08001A58 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - b _08001A64 - .align 2, 0 -_08001A58: .4byte gUnknown_203B460 -_08001A5C: - ldr r0, _08001A70 - ldr r0, [r0] - movs r1, 0x99 - lsls r1, 2 -_08001A64: - adds r0, r1 - str r6, [r0] -_08001A68: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08001A70: .4byte gUnknown_203B460 - thumb_func_end sub_800199C - - thumb_func_start sub_8001A74 -sub_8001A74: - push {lr} - sub sp, 0x8 - adds r2, r0, 0 - lsls r2, 16 - asrs r2, 16 - mov r0, sp - movs r1, 0 - bl sub_800160C - ldr r0, [sp, 0x4] - add sp, 0x8 - pop {r1} - bx r1 - thumb_func_end sub_8001A74 - - thumb_func_start sub_8001A90 -sub_8001A90: - push {lr} - sub sp, 0x8 - adds r2, r0, 0 - lsls r2, 16 - asrs r2, 16 - mov r0, sp - movs r1, 0 - bl sub_800160C - ldr r0, [sp] - movs r1, 0x8 - ldrsh r0, [r0, r1] - add sp, 0x8 - pop {r1} - bx r1 - thumb_func_end sub_8001A90 - - thumb_func_start sub_8001AB0 -sub_8001AB0: - push {r4-r7,lr} - sub sp, 0x8 - adds r7, r0, 0 - lsls r1, 16 - asrs r5, r1, 16 - movs r6, 0 - mov r0, sp - movs r1, 0 - adds r2, r5, 0 - bl sub_800160C - movs r4, 0 - ldr r0, [sp] - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r6, r0 - bge _08001AEC -_08001AD2: - lsls r2, r4, 16 - lsrs r2, 16 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_8001784 - adds r6, r0 - adds r4, 0x1 - ldr r0, [sp] - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r4, r0 - blt _08001AD2 -_08001AEC: - adds r0, r6, 0 - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8001AB0 - - thumb_func_start sub_8001AF8 -sub_8001AF8: - push {r4,r5,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r3, 16 - asrs r3, 16 - mov r0, sp - movs r1, 0 - adds r2, r3, 0 - bl sub_800160C - ldr r1, [sp, 0x4] - movs r2, 0 - b _08001B1C -_08001B16: - strb r0, [r4] - adds r4, 0x1 - adds r2, 0x1 -_08001B1C: - cmp r2, r5 - bge _08001B28 - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0 - bne _08001B16 -_08001B28: - movs r0, 0 - strb r0, [r4] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8001AF8 - - thumb_func_start sub_8001B34 -sub_8001B34: - push {r4,lr} - sub sp, 0x8 - adds r3, r0, 0 - adds r4, r2, 0 - lsls r3, 16 - asrs r3, 16 - mov r0, sp - movs r1, 0 - adds r2, r3, 0 - bl sub_800160C - ldr r1, [sp, 0x4] - movs r2, 0 - b _08001B56 -_08001B50: - strb r0, [r1] - adds r1, 0x1 - adds r2, 0x1 -_08001B56: - cmp r2, r4 - bge _08001B62 - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0 - bne _08001B50 -_08001B62: - ldr r0, [sp] - movs r3, 0x8 - ldrsh r0, [r0, r3] - cmp r2, r0 - bge _08001B7E - movs r3, 0 -_08001B6E: - strb r3, [r1] - adds r1, 0x1 - adds r2, 0x1 - ldr r0, [sp] - movs r4, 0x8 - ldrsh r0, [r0, r4] - cmp r2, r0 - blt _08001B6E -_08001B7E: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8001B34 - - thumb_func_start sub_8001B88 -sub_8001B88: - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_8001784 - str r0, [r5] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8001784 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8001B88 - - thumb_func_start sub_8001BB4 -sub_8001BB4: - push {r4-r6,lr} - sub sp, 0x14 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r0, 16 - asrs r4, r0, 16 - add r2, sp, 0x10 - adds r0, r4, 0 - add r1, sp, 0xC - bl sub_8001B88 - ldr r1, _08001C20 - ldr r3, [sp, 0xC] - ldr r0, [sp, 0x10] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0x6 - adds r2, r4, 0 - bl Log - cmp r4, 0x3 - bne _08001BF8 - ldr r0, [sp, 0xC] - cmp r5, r0 - bne _08001BEE - ldr r0, [sp, 0x10] - cmp r6, r0 - beq _08001BF8 -_08001BEE: - movs r0, 0 - movs r1, 0x19 - movs r2, 0 - bl sub_80018D8 -_08001BF8: - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_800199C - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - adds r3, r6, 0 - bl sub_800199C - cmp r4, 0x4 - beq _08001C76 - cmp r4, 0x4 - bgt _08001C24 - cmp r4, 0x3 - beq _08001C2A - b _08001CBA - .align 2, 0 -_08001C20: .4byte gUnknown_80B72CC -_08001C24: - cmp r4, 0xC - beq _08001CA4 - b _08001CBA -_08001C2A: - subs r0, r5, 0x1 - cmp r0, 0x1A - bhi _08001CBA - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0x8 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08001C48 - movs r0, 0 - bl sub_80976F8 -_08001C48: - movs r0, 0x3 - movs r1, 0xB - movs r2, 0x3 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08001C5E - movs r0, 0x1 - bl sub_80976F8 -_08001C5E: - movs r0, 0x3 - movs r1, 0x11 - movs r2, 0 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08001CBA - movs r0, 0x2 - bl sub_80976F8 - b _08001CBA -_08001C76: - movs r0, 0x4 - movs r1, 0x1F - movs r2, 0 - bl sub_8001CC4 - lsls r0, 24 - cmp r0, 0 - bne _08001C8C - movs r0, 0x4 - bl sub_80976F8 -_08001C8C: - movs r0, 0x4 - movs r1, 0x20 - movs r2, 0 - bl sub_8001CC4 - lsls r0, 24 - cmp r0, 0 - bne _08001CBA - movs r0, 0x5 - bl sub_80976F8 - b _08001CBA -_08001CA4: - movs r0, 0xC - movs r1, 0x37 - movs r2, 0x2 - bl sub_8001CC4 - lsls r0, 24 - cmp r0, 0 - bne _08001CBA - movs r0, 0x3 - bl sub_80976F8 -_08001CBA: - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8001BB4 - - thumb_func_start sub_8001CC4 -sub_8001CC4: - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_8001784 - adds r5, r0, 0 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8001784 - cmp r5, 0x3A - beq _08001CFE - cmp r5, r6 - bcc _08001CFA - cmp r7, 0 - blt _08001CFE - cmp r5, r6 - bne _08001CFE - cmp r0, r7 - bge _08001CFE -_08001CFA: - movs r0, 0x1 - b _08001D00 -_08001CFE: - movs r0, 0 -_08001D00: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8001CC4 - - thumb_func_start sub_8001D08 -sub_8001D08: - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_8001784 - adds r5, r0, 0 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8001784 - cmp r5, r6 - bne _08001D3A - cmp r7, 0 - blt _08001D36 - cmp r0, r7 - bne _08001D3A -_08001D36: - movs r0, 0x1 - b _08001D3C -_08001D3A: - movs r0, 0 -_08001D3C: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8001D08 - - thumb_func_start sub_8001D44 -sub_8001D44: - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r7, r2, 0 - lsls r4, 16 - asrs r4, 16 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0 - bl sub_8001784 - adds r5, r0, 0 - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl sub_8001784 - cmp r5, 0x3A - beq _08001D7E - cmp r5, r6 - bhi _08001D7A - cmp r7, 0 - blt _08001D7E - cmp r5, r6 - bne _08001D7E - cmp r0, r7 - ble _08001D7E -_08001D7A: - movs r0, 0x1 - b _08001D80 -_08001D7E: - movs r0, 0 -_08001D80: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8001D44 - - thumb_func_start sub_8001D88 -sub_8001D88: - push {lr} - sub sp, 0x8 - add r2, sp, 0x4 - movs r0, 0x3 - mov r1, sp - bl sub_8001B88 - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x1A - bls _08001DA0 - b _080020D4 -_08001DA0: - movs r0, 0x4 - movs r1, 0x1F - movs r2, 0 - bl sub_8001CC4 - lsls r0, 24 - cmp r0, 0 - beq _08001E08 - movs r0, 0x3 - movs r1, 0xF - movs r2, 0x7 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08001DDE - movs r0, 0x4 - movs r1, 0x1F - movs r2, 0 - bl sub_8001BB4 - movs r0, 0xE - movs r1, 0x1 - bl sub_8097418 - movs r0, 0 - movs r1, 0x28 - movs r2, 0x2 - bl sub_80018D8 - b _08001E08 -_08001DDE: - movs r0, 0x4 - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08001E08 - movs r0, 0x3 - movs r1, 0xF - movs r2, 0x3 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08001E08 - movs r0, 0x4 - movs r1, 0x1D - movs r2, 0x1 - bl sub_8001BB4 -_08001E08: - movs r0, 0x4 - movs r1, 0x1F - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08001E36 - movs r0, 0xE - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001E36 - movs r0, 0x4 - movs r1, 0x1F - movs r2, 0x1 - bl sub_8001BB4 - movs r0, 0xF - movs r1, 0x1 - bl sub_809733C -_08001E36: - ldr r0, [sp] - cmp r0, 0x11 - bhi _08001E3E - b _080020D4 -_08001E3E: - movs r0, 0x25 - movs r1, 0x1 - bl sub_80973A8 - movs r0, 0xE7 - bl sub_8091130 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08001E72 - ldr r0, _080020DC - ldr r0, [r0] - ldr r1, _080020E0 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08001E72 - movs r0, 0x5 - movs r1, 0x21 - movs r2, 0x3 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08001E7A -_08001E72: - movs r0, 0x22 - movs r1, 0x1 - bl sub_80973A8 -_08001E7A: - movs r0, 0x2B - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001E8E - movs r0, 0x1F - movs r1, 0x1 - bl sub_80973A8 -_08001E8E: - movs r0, 0x24 - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001EA2 - movs r0, 0x20 - movs r1, 0x1 - bl sub_80973A8 -_08001EA2: - movs r0, 0x23 - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001EB6 - movs r0, 0x21 - movs r1, 0x1 - bl sub_80973A8 -_08001EB6: - movs r0, 0x19 - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001ECA - movs r0, 0x23 - movs r1, 0x1 - bl sub_80973A8 -_08001ECA: - movs r0, 0x3 - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001EE6 - movs r0, 0x24 - movs r1, 0x1 - bl sub_80973A8 - movs r0, 0x28 - movs r1, 0x1 - bl sub_80973A8 -_08001EE6: - movs r0, 0x2C - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001F06 - movs r0, 0x2D - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001F06 - movs r0, 0x26 - movs r1, 0x1 - bl sub_80973A8 -_08001F06: - movs r0, 0x5 - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08001F20 - movs r0, 0x5 - movs r1, 0x21 - movs r2, 0x1 - bl sub_8001BB4 -_08001F20: - movs r0, 0xE2 - bl sub_8091130 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _08001F3E - ldr r0, _080020DC - ldr r0, [r0] - movs r1, 0x85 - lsls r1, 2 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _08001F7E -_08001F3E: - movs r0, 0x7 - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08001F58 - movs r0, 0x7 - movs r1, 0x26 - movs r2, 0x1 - bl sub_8001BB4 -_08001F58: - movs r0, 0x9 - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08001F7E - movs r0, 0x37 - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08001F7E - movs r0, 0x9 - movs r1, 0x2E - movs r2, 0x1 - bl sub_8001BB4 -_08001F7E: - movs r0, 0x9 - movs r1, 0x30 - movs r2, 0 - bl sub_8001CC4 - lsls r0, 24 - cmp r0, 0 - bne _0800202A - movs r0, 0x5 - movs r1, 0x22 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08001FCC - movs r0, 0x90 - bl sub_808E734 - lsls r0, 24 - cmp r0, 0 - beq _08001FCC - movs r0, 0x91 - bl sub_808E734 - lsls r0, 24 - cmp r0, 0 - beq _08001FCC - movs r0, 0x92 - bl sub_808E734 - lsls r0, 24 - cmp r0, 0 - beq _08001FCC - movs r0, 0x5 - movs r1, 0x22 - movs r2, 0x1 - bl sub_8001BB4 -_08001FCC: - movs r0, 0xB - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08002002 - movs r0, 0x5 - movs r1, 0x21 - movs r2, 0x3 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08002002 - movs r0, 0xE - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08002002 - movs r0, 0xB - movs r1, 0x33 - movs r2, 0x1 - bl sub_8001BB4 -_08002002: - movs r0, 0xE - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _08002016 - movs r0, 0x27 - movs r1, 0x1 - bl sub_80973A8 -_08002016: - movs r0, 0xE - bl sub_8092600 - lsls r0, 24 - cmp r0, 0 - beq _0800202A - movs r0, 0x29 - movs r1, 0x1 - bl sub_80973A8 -_0800202A: - movs r0, 0x5 - movs r1, 0x22 - movs r2, 0 - bl sub_8001CC4 - lsls r0, 24 - cmp r0, 0 - bne _08002086 - movs r0, 0xA - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _0800205C - movs r0, 0xA - movs r1, 0x31 - movs r2, 0x1 - bl sub_8001BB4 - movs r0, 0x1B - movs r1, 0x1 - bl sub_809733C -_0800205C: - movs r0, 0xC - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08002086 - movs r0, 0xB - movs r1, 0x34 - movs r2, 0 - bl sub_8001CC4 - lsls r0, 24 - cmp r0, 0 - bne _08002086 - movs r0, 0xC - movs r1, 0x35 - movs r2, 0x1 - bl sub_8001BB4 -_08002086: - movs r0, 0x6 - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _080020AE - movs r0, 0x89 - lsls r0, 1 - bl sub_808E734 - lsls r0, 24 - cmp r0, 0 - beq _080020AE - movs r0, 0x6 - movs r1, 0x24 - movs r2, 0x1 - bl sub_8001BB4 -_080020AE: - movs r0, 0x8 - movs r1, 0 - movs r2, 0 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _080020D4 - ldr r0, _080020E4 - bl sub_808E734 - lsls r0, 24 - cmp r0, 0 - beq _080020D4 - movs r0, 0x8 - movs r1, 0x2C - movs r2, 0x1 - bl sub_8001BB4 -_080020D4: - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_080020DC: .4byte gUnknown_203B460 -_080020E0: .4byte 0x0000021e -_080020E4: .4byte 0x00000113 - thumb_func_end sub_8001D88 - - thumb_func_start sub_80020E8 -sub_80020E8: - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - cmp r2, 0xB - bhi _08002182 - lsls r0, r2, 2 - ldr r1, _080020FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080020FC: .4byte _08002100 - .align 2, 0 -_08002100: - .4byte _08002130 - .4byte _08002134 - .4byte _08002138 - .4byte _0800213C - .4byte _08002142 - .4byte _0800214C - .4byte _08002156 - .4byte _0800215C - .4byte _08002162 - .4byte _08002168 - .4byte _08002170 - .4byte _0800217A -_08002130: - adds r0, r4, 0 - b _08002194 -_08002134: - subs r0, r3, r4 - b _08002194 -_08002138: - adds r0, r3, r4 - b _08002194 -_0800213C: - adds r0, r3, 0 - muls r0, r4 - b _08002194 -_08002142: - adds r0, r3, 0 - adds r1, r4, 0 - bl __divsi3 - b _08002194 -_0800214C: - adds r0, r3, 0 - adds r1, r4, 0 - bl __modsi3 - b _08002194 -_08002156: - ands r3, r4 - adds r0, r3, 0 - b _08002194 -_0800215C: - orrs r3, r4 - adds r0, r3, 0 - b _08002194 -_08002162: - eors r3, r4 - adds r0, r3, 0 - b _08002194 -_08002168: - movs r0, 0x1 - lsls r0, r4 - orrs r0, r3 - b _08002194 -_08002170: - movs r0, 0x1 - lsls r0, r4 - bics r3, r0 - adds r0, r3, 0 - b _08002194 -_0800217A: - adds r0, r4, 0 - bl OtherRandomCapped - b _08002194 -_08002182: - ldr r0, _0800218C - ldr r1, _08002190 - bl FatalError - .align 2, 0 -_0800218C: .4byte gUnknown_80B7318 -_08002190: .4byte gUnknown_80B7324 -_08002194: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80020E8 - - thumb_func_start sub_800219C -sub_800219C: - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - cmp r2, 0xA - bhi _08002248 - lsls r0, r2, 2 - ldr r1, _080021B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080021B0: .4byte _080021B4 - .align 2, 0 -_080021B4: - .4byte _080021E0 - .4byte _080021E4 - .4byte _080021E8 - .4byte _080021FE - .4byte _08002212 - .4byte _08002208 - .4byte _0800221C - .4byte _080021F2 - .4byte _08002226 - .4byte _08002232 - .4byte _0800223E -_080021E0: - movs r0, 0x1 - b _08002258 -_080021E4: - movs r0, 0 - b _08002258 -_080021E8: - movs r0, 0 - cmp r3, r4 - bne _08002258 - movs r0, 0x1 - b _08002258 -_080021F2: - adds r1, r3, 0 - eors r1, r4 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - b _08002258 -_080021FE: - movs r0, 0 - cmp r3, r4 - ble _08002258 - movs r0, 0x1 - b _08002258 -_08002208: - movs r0, 0 - cmp r3, r4 - blt _08002258 - movs r0, 0x1 - b _08002258 -_08002212: - movs r0, 0 - cmp r3, r4 - bge _08002258 - movs r0, 0x1 - b _08002258 -_0800221C: - movs r0, 0 - cmp r3, r4 - bgt _08002258 - movs r0, 0x1 - b _08002258 -_08002226: - adds r0, r3, 0 - ands r0, r4 - cmp r0, 0 - beq _08002258 - movs r0, 0x1 - b _08002258 -_08002232: - adds r0, r3, 0 - eors r0, r4 - cmp r0, 0 - beq _08002258 - movs r0, 0x1 - b _08002258 -_0800223E: - asrs r3, r4 - movs r0, 0x1 - ands r3, r0 - adds r0, r3, 0 - b _08002258 -_08002248: - ldr r0, _08002250 - ldr r1, _08002254 - bl FatalError - .align 2, 0 -_08002250: .4byte gUnknown_80B7350 -_08002254: .4byte gUnknown_80B735C -_08002258: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_800219C - - thumb_func_start sub_8002260 -sub_8002260: - push {lr} - bl sub_80020E8 - pop {r1} - bx r1 - thumb_func_end sub_8002260 - - thumb_func_start sub_800226C -sub_800226C: - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r4, 16 - asrs r4, 16 - adds r1, r4, 0 - bl sub_8001658 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_80020E8 - adds r2, r0, 0 - mov r0, r8 - adds r1, r4, 0 - bl sub_80018D8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_800226C - - thumb_func_start sub_80022A0 -sub_80022A0: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r8, r0 - adds r5, r1, 0 - adds r4, r2, 0 - mov r9, r3 - lsls r5, 16 - asrs r5, 16 - lsls r4, 16 - asrs r4, 16 - adds r1, r5, 0 - bl sub_8001658 - adds r6, r0, 0 - mov r0, r8 - adds r1, r4, 0 - bl sub_8001658 - adds r1, r0, 0 - adds r0, r6, 0 - mov r2, r9 - bl sub_80020E8 - adds r2, r0, 0 - mov r0, r8 - adds r1, r5, 0 - bl sub_80018D8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80022A0 - - thumb_func_start sub_80022E8 -sub_80022E8: - push {lr} - bl sub_800219C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80022E8 - - thumb_func_start sub_80022F8 -sub_80022F8: - push {r4,r5,lr} - adds r4, r2, 0 - adds r5, r3, 0 - lsls r1, 16 - asrs r1, 16 - bl sub_8001658 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_800219C - lsls r0, 24 - lsrs r0, 24 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80022F8 - - thumb_func_start sub_8002318 -sub_8002318: - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r6, r0, 0 - adds r4, r2, 0 - mov r8, r3 - lsls r1, 16 - asrs r1, 16 - lsls r4, 16 - asrs r4, 16 - bl sub_8001658 - adds r5, r0, 0 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8001658 - adds r1, r0, 0 - adds r0, r5, 0 - mov r2, r8 - bl sub_800219C - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8002318 - - thumb_func_start sub_8002354 -sub_8002354: - push {lr} - adds r1, r0, 0 - cmp r1, 0x3A - bls _08002362 - movs r0, 0x1 - negs r0, r0 - b _0800236C -_08002362: - ldr r0, _08002370 - lsls r1, 3 - adds r0, 0x4 - adds r1, r0 - ldr r0, [r1] -_0800236C: - pop {r1} - bx r1 - .align 2, 0 -_08002370: .4byte gUnknown_80B6D90 - thumb_func_end sub_8002354 - - thumb_func_start sub_8002374 -sub_8002374: - push {lr} - adds r1, r0, 0 - cmp r1, 0x3A - bls _08002384 - ldr r0, _08002380 - b _0800238C - .align 2, 0 -_08002380: .4byte gUnknown_80B7378 -_08002384: - ldr r0, _08002390 - lsls r1, 3 - adds r1, r0 - ldr r0, [r1] -_0800238C: - pop {r1} - bx r1 - .align 2, 0 -_08002390: .4byte gUnknown_80B6D90 - thumb_func_end sub_8002374 - - thumb_func_start sub_8002394 -sub_8002394: - push {lr} - adds r1, r0, 0 - subs r1, 0x12 - cmp r1, 0x8 - bhi _080023AC - ldr r0, _080023A8 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - b _080023BA - .align 2, 0 -_080023A8: .4byte gUnknown_80B714C -_080023AC: - cmp r0, 0xF - beq _080023B8 - ldr r0, _080023B4 - b _080023BA - .align 2, 0 -_080023B4: .4byte gUnknown_80B7144 -_080023B8: - ldr r0, _080023C0 -_080023BA: - pop {r1} - bx r1 - .align 2, 0 -_080023C0: .4byte gUnknown_80B7388 - thumb_func_end sub_8002394 - - thumb_func_start sub_80023C4 -sub_80023C4: - push {lr} - adds r1, r0, 0 - cmp r1, 0x3 - bls _080023D4 - ldr r0, _080023D0 - b _080023DC - .align 2, 0 -_080023D0: .4byte gUnknown_80B7144 -_080023D4: - ldr r0, _080023E0 - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] -_080023DC: - pop {r1} - bx r1 - .align 2, 0 -_080023E0: .4byte gUnknown_80B71A0 - thumb_func_end sub_80023C4 - - thumb_func_start sub_80023E4 -sub_80023E4: - push {r4,lr} - cmp r0, 0x1D - bls _080023EC - b _0800264E -_080023EC: - lsls r0, 2 - ldr r1, _080023F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080023F8: .4byte _080023FC - .align 2, 0 -_080023FC: - .4byte _08002474 - .4byte _08002482 - .4byte _0800248E - .4byte _0800249A - .4byte _080024A6 - .4byte _080024BE - .4byte _080024E6 - .4byte _080024F4 - .4byte _08002500 - .4byte _0800250C - .4byte _0800251A - .4byte _08002526 - .4byte _08002532 - .4byte _0800255A - .4byte _08002566 - .4byte _0800257A - .4byte _0800258E - .4byte _0800259C - .4byte _080025AA - .4byte _080025B8 - .4byte _080025C6 - .4byte _080025D4 - .4byte _080025E2 - .4byte _080025F0 - .4byte _080025FE - .4byte _0800260C - .4byte _0800261A - .4byte _08002628 - .4byte _08002630 - .4byte _08002644 -_08002474: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0x2 - bl sub_8001D44 - b _08002648 -_08002482: - movs r0, 0x3 - movs r1, 0x3 - movs r2, 0x3 - bl sub_8001D44 - b _08002648 -_0800248E: - movs r0, 0x3 - movs r1, 0x4 - movs r2, 0x3 - bl sub_8001D44 - b _08002648 -_0800249A: - movs r0, 0x3 - movs r1, 0x5 - movs r2, 0 - bl sub_8001D44 - b _08002648 -_080024A6: - movs r4, 0 - movs r0, 0x3 - movs r1, 0xB - movs r2, 0 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08002556 - movs r0, 0x3 - movs r1, 0xD - b _080024D4 -_080024BE: - movs r4, 0 - movs r0, 0x3 - movs r1, 0xB - movs r2, 0x3 - bl sub_8001D44 - lsls r0, 24 - cmp r0, 0 - beq _08002556 - movs r0, 0x3 - movs r1, 0xF -_080024D4: - movs r2, 0 - bl sub_8001CC4 - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - b _08002556 -_080024E6: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0x11 - bl sub_8001D44 - b _08002648 -_080024F4: - movs r0, 0x3 - movs r1, 0x12 - movs r2, 0x2 - bl sub_8001D44 - b _08002648 -_08002500: - movs r0, 0x3 - movs r1, 0x12 - movs r2, 0x3 - bl sub_8001D44 - b _08002648 -_0800250C: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0x12 - bl sub_8001D44 - b _08002648 -_0800251A: - movs r0, 0x3 - movs r1, 0x5 - movs r2, 0x4 - bl sub_8001D44 - b _08002648 -_08002526: - movs r0, 0x3 - movs r1, 0x5 - movs r2, 0x4 - bl sub_8001D44 - b _08002648 -_08002532: - movs r4, 0 - movs r0, 0x3 - movs r1, 0xB - movs r2, 0x2 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - bne _08002556 - movs r0, 0x3 - movs r1, 0xB - movs r2, 0x3 - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - bne _08002556 - movs r4, 0x1 -_08002556: - adds r0, r4, 0 - b _08002650 -_0800255A: - movs r0, 0x3 - movs r1, 0x10 - movs r2, 0x2 - bl sub_8001D08 - b _08002648 -_08002566: - movs r0, 0x3 - movs r1, 0x5 - movs r2, 0x7 - bl sub_8001CC4 - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _08002640 - b _0800263E -_0800257A: - movs r0, 0x3 - movs r1, 0xF - movs r2, 0 - bl sub_8001CC4 - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _08002640 - b _0800263E -_0800258E: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0x7 - bl sub_8001D44 - b _08002648 -_0800259C: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0xC - bl sub_8001D44 - b _08002648 -_080025AA: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0xD - bl sub_8001D44 - b _08002648 -_080025B8: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0xF - bl sub_8001D44 - b _08002648 -_080025C6: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0x10 - bl sub_8001D44 - b _08002648 -_080025D4: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x5 - movs r1, 0x21 - bl sub_8001D44 - b _08002648 -_080025E2: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x5 - movs r1, 0x22 - bl sub_8001D44 - b _08002648 -_080025F0: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x6 - movs r1, 0x24 - bl sub_8001D44 - b _08002648 -_080025FE: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x7 - movs r1, 0x2A - bl sub_8001D44 - b _08002648 -_0800260C: - movs r2, 0x1 - negs r2, r2 - movs r0, 0x8 - movs r1, 0x2C - bl sub_8001D44 - b _08002648 -_0800261A: - movs r2, 0x1 - negs r2, r2 - movs r0, 0xA - movs r1, 0x31 - bl sub_8001D44 - b _08002648 -_08002628: - movs r0, 0x29 - bl sub_80973F4 - b _08002648 -_08002630: - bl sub_8092178 - movs r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bne _08002640 -_0800263E: - movs r1, 0x1 -_08002640: - adds r0, r1, 0 - b _08002650 -_08002644: - bl sub_809761C -_08002648: - lsls r0, 24 - lsrs r0, 24 - b _08002650 -_0800264E: - movs r0, 0 -_08002650: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80023E4 - - thumb_func_start sub_8002658 -sub_8002658: - push {r4,r5,lr} - lsls r0, 16 - asrs r4, r0, 16 - ldr r1, _0800267C - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - movs r3, 0x1 - negs r3, r3 - cmp r0, r3 - beq _0800268C -_0800266E: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, r4 - bne _08002680 - ldrb r0, [r1, 0x2] - b _0800268E - .align 2, 0 -_0800267C: .4byte gUnknown_80B71E4 -_08002680: - adds r1, 0x4 - ldrh r2, [r1] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, r3 - bne _0800266E -_0800268C: - movs r0, 0 -_0800268E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8002658 - - thumb_func_start sub_8002694 -sub_8002694: - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, _080026B4 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x1 - negs r2, r2 - cmp r0, r2 - beq _080026C2 -_080026A8: - ldrb r0, [r1, 0x2] - cmp r0, r3 - bne _080026B8 - movs r4, 0 - ldrsh r0, [r1, r4] - b _080026C6 - .align 2, 0 -_080026B4: .4byte gUnknown_80B71E4 -_080026B8: - adds r1, 0x4 - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, r2 - bne _080026A8 -_080026C2: - movs r0, 0x1 - negs r0, r0 -_080026C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8002694 - - thumb_func_start sub_80026CC -sub_80026CC: - push {lr} - lsls r0, 16 - asrs r0, 16 - bl sub_8002658 - lsls r0, 24 - lsrs r0, 24 - bl sub_8092600 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80026CC - - thumb_func_start sub_80026E8 -sub_80026E8: - push {lr} - lsls r0, 16 - asrs r0, 16 - bl sub_8002658 - lsls r0, 24 - lsrs r0, 24 - bl sub_80925EC - pop {r0} - bx r0 - thumb_func_end sub_80026E8 - - thumb_func_start sub_8002700 -sub_8002700: - push {lr} - ldr r1, _08002714 - movs r2, 0x80 - lsls r2, 3 - bl MemoryCopy8 - movs r0, 0x1 - pop {r1} - bx r1 - .align 2, 0 -_08002714: .4byte gUnknown_2000A88 - thumb_func_end sub_8002700 - - thumb_func_start sub_8002718 -sub_8002718: - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - mov r0, sp - movs r1, 0 - movs r2, 0 - bl sub_800160C - ldr r0, _08002748 - movs r2, 0x80 - lsls r2, 3 - adds r1, r4, 0 - bl MemoryCopy8 - ldr r0, [sp] - movs r2, 0xA - ldrsh r1, [r0, r2] - ldr r0, [sp, 0x4] - ldr r0, [r0] - cmp r1, r0 - bne _0800274C - movs r0, 0x1 - b _0800274E - .align 2, 0 -_08002748: .4byte gUnknown_2000A88 -_0800274C: - movs r0, 0 -_0800274E: - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8002718 - - thumb_func_start sub_8002758 -sub_8002758: - push {lr} - adds r2, r0, 0 - movs r0, 0 - movs r1, 0x1 - movs r3, 0x9 - bl sub_800226C - pop {r0} - bx r0 - thumb_func_end sub_8002758 - - thumb_func_start sub_800276C -sub_800276C: - movs r0, 0 - bx lr - thumb_func_end sub_800276C - - thumb_func_start nullsub_140 -nullsub_140: - bx lr - thumb_func_end nullsub_140 - - thumb_func_start sub_8002774 -sub_8002774: - sub sp, 0x4 - str r0, [sp] - mov r0, sp - ldrb r1, [r0, 0x2] - movs r0, 0xF8 - adds r2, r0, 0 - ands r2, r1 - lsls r2, 7 - mov r1, sp - ldrb r3, [r1, 0x1] - adds r1, r0, 0 - ands r1, r3 - lsls r1, 2 - orrs r2, r1 - mov r1, sp - ldrb r1, [r1] - ands r0, r1 - lsrs r0, 3 - orrs r0, r2 - add sp, 0x4 - bx lr - thumb_func_end sub_8002774 - - thumb_func_start sub_80027A0 -sub_80027A0: - push {r4,lr} - sub sp, 0x4 - lsls r0, 16 - lsrs r2, r0, 16 - adds r3, r2, 0 - mov r4, sp - movs r0, 0x1F - ands r0, r2 - lsls r1, r0, 3 - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _080027BE - movs r0, 0x7 - orrs r1, r0 -_080027BE: - strb r1, [r4] - mov r4, sp - movs r0, 0xF8 - lsls r0, 2 - ands r0, r2 - lsrs r1, r0, 2 - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _080027D6 - movs r0, 0x7 - orrs r1, r0 -_080027D6: - strb r1, [r4, 0x1] - mov r2, sp - movs r0, 0xF8 - lsls r0, 7 - ands r0, r3 - lsrs r1, r0, 7 - movs r0, 0x80 - lsls r0, 3 - ands r3, r0 - cmp r3, 0 - beq _080027F0 - movs r0, 0x7 - orrs r1, r0 -_080027F0: - strb r1, [r2, 0x2] - mov r0, sp - movs r1, 0 - strb r1, [r0, 0x3] - ldr r0, [sp] - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80027A0 - - thumb_func_start sub_8002804 -sub_8002804: - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r3, 0 -_0800280C: - adds r1, r5, r3 - adds r0, r2, r3 - ldrb r0, [r0] - muls r0, r4 - cmp r0, 0 - bge _0800281A - adds r0, 0xFF -_0800281A: - asrs r0, 8 - strb r0, [r1] - adds r3, 0x1 - cmp r3, 0x3 - ble _0800280C - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8002804 - - thumb_func_start sub_800282C -sub_800282C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - mov r9, r0 - str r1, [sp, 0x20] - adds r7, r2, 0 - mov r8, r3 - adds r0, r1, 0 - bl __floatsisf - adds r1, r0, 0 - ldr r0, _08002904 - bl __divsf3 - str r0, [sp, 0x24] - movs r5, 0 - mov r0, sp - adds r0, 0x10 - str r0, [sp, 0x2C] - str r0, [sp, 0x34] - mov r10, sp -_0800285C: - adds r6, r7, r5 - movs r4, 0 - ldrsb r4, [r6, r4] - adds r0, r4, 0 - bl __floatsisf - cmp r4, 0 - bge _08002872 - ldr r1, _08002908 - bl __addsf3 -_08002872: - mov r1, r10 - adds r1, 0x4 - mov r10, r1 - subs r1, 0x4 - stm r1!, {r0} - mov r1, r8 - adds r0, r1, r5 - ldrb r0, [r0] - ldrb r1, [r6] - subs r0, r1 - bl __floatsisf - ldr r1, [sp, 0x24] - bl __mulsf3 - ldr r1, [sp, 0x34] - stm r1!, {r0} - str r1, [sp, 0x34] - adds r5, 0x1 - cmp r5, 0x3 - ble _0800285C - ldr r0, [r7] - mov r1, r9 - adds r1, 0x4 - mov r9, r1 - subs r1, 0x4 - stm r1!, {r0} - movs r5, 0x1 - ldr r0, [sp, 0x20] - subs r0, 0x1 - str r0, [sp, 0x28] - mov r1, r8 - ldr r1, [r1] - str r1, [sp, 0x30] - cmp r5, r0 - bge _080028EE -_080028BA: - movs r6, 0 - adds r5, 0x1 - mov r10, r5 - movs r0, 0x4 - add r0, r9 - mov r8, r0 - mov r5, sp - ldr r7, [sp, 0x2C] -_080028CA: - mov r1, r9 - adds r4, r1, r6 - ldr r0, [r5] - ldm r7!, {r1} - bl __addsf3 - stm r5!, {r0} - bl __fixunssfsi - strb r0, [r4] - adds r6, 0x1 - cmp r6, 0x3 - ble _080028CA - mov r9, r8 - mov r5, r10 - ldr r0, [sp, 0x28] - cmp r5, r0 - blt _080028BA -_080028EE: - ldr r1, [sp, 0x30] - mov r0, r9 - str r1, [r0] - 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 -_08002904: .4byte 0x3f800000 -_08002908: .4byte 0x43800000 - thumb_func_end sub_800282C - - thumb_func_start sub_800290C -sub_800290C: - push {lr} - ldr r3, [r0] - cmp r3, r1 - ble _08002918 - str r1, [r0] - b _08002920 -_08002918: - negs r2, r1 - cmp r3, r2 - bge _08002920 - str r2, [r0] -_08002920: - ldr r2, [r0, 0x4] - cmp r2, r1 - bgt _0800292C - negs r1, r1 - cmp r2, r1 - bge _0800292E -_0800292C: - str r1, [r0, 0x4] -_0800292E: - pop {r0} - bx r0 - thumb_func_end sub_800290C - - thumb_func_start sub_8002934 -sub_8002934: - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - mov r10, r0 - adds r6, r1, 0 - mov r8, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x1C] - adds r0, r4, r5 - mov r9, r0 - ldr r0, [r6] - muls r0, r4 - ldr r1, [r2] - muls r1, r5 - adds r0, r1 - mov r1, r9 - bl __divsi3 - mov r1, r10 - str r0, [r1] - ldr r0, [r6, 0x4] - muls r0, r4 - mov r2, r8 - ldr r1, [r2, 0x4] - muls r1, r5 - adds r0, r1 - mov r1, r9 - bl __divsi3 - mov r1, r10 - str r0, [r1, 0x4] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8002934 - - thumb_func_start sub_8002984 -sub_8002984: - push {r4,lr} - lsls r0, 24 - asrs r4, r0, 24 - lsls r1, 24 - lsrs r1, 24 - subs r0, r1, 0x1 - cmp r0, 0x8 - bhi _08002A68 - lsls r0, 2 - ldr r1, _080029A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080029A0: .4byte _080029A4 - .align 2, 0 -_080029A4: - .4byte _080029C8 - .4byte _080029D0 - .4byte _080029D8 - .4byte _080029E0 - .4byte _080029E8 - .4byte _080029F4 - .4byte _08002A34 - .4byte _08002A4E - .4byte _08002A5E -_080029C8: - cmp r4, 0 - blt _08002A68 - adds r4, 0x7 - b _080029EE -_080029D0: - cmp r4, 0 - blt _08002A68 - adds r4, 0x1 - b _080029EE -_080029D8: - cmp r4, 0 - blt _08002A68 - adds r4, 0x6 - b _080029EE -_080029E0: - cmp r4, 0 - blt _08002A68 - adds r4, 0x2 - b _080029EE -_080029E8: - cmp r4, 0 - blt _08002A68 - adds r4, 0x4 -_080029EE: - movs r0, 0x7 - ands r4, r0 - b _08002A68 -_080029F4: - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08002A18 - movs r0, 0x2 - bl OtherRandomCapped - adds r1, r4, 0x7 - lsls r0, 1 - adds r1, r0 - adds r0, r1, 0 - cmp r1, 0 - bge _08002A10 - adds r0, r1, 0x7 -_08002A10: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - b _08002A64 -_08002A18: - movs r0, 0x3 - bl OtherRandomCapped - adds r1, r4, 0x6 - lsls r0, 1 - adds r1, r0 - adds r0, r1, 0 - cmp r1, 0 - bge _08002A2C - adds r0, r1, 0x7 -_08002A2C: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - b _08002A64 -_08002A34: - movs r0, 0x3 - bl OtherRandomCapped - adds r1, r4, 0x7 - adds r1, r0 - adds r0, r1, 0 - cmp r1, 0 - bge _08002A46 - adds r0, r1, 0x7 -_08002A46: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - b _08002A64 -_08002A4E: - movs r0, 0x8 - bl OtherRandomCapped - movs r2, 0x2 - negs r2, r2 - adds r1, r2, 0 - ands r0, r1 - b _08002A64 -_08002A5E: - movs r0, 0x8 - bl OtherRandomCapped -_08002A64: - lsls r0, 24 - asrs r4, r0, 24 -_08002A68: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8002984 - - thumb_func_start sub_8002A70 -sub_8002A70: - push {r4,lr} - lsls r0, 24 - asrs r3, r0, 24 - lsls r1, 24 - asrs r4, r1, 24 - lsls r2, 24 - lsrs r0, r2, 24 - cmp r3, r4 - beq _08002AFC - subs r0, 0x1 - cmp r0, 0xA - bhi _08002AFC - lsls r0, 2 - ldr r1, _08002A94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08002A94: .4byte _08002A98 - .align 2, 0 -_08002A98: - .4byte _08002AC4 - .4byte _08002ACC - .4byte _08002AD4 - .4byte _08002ADC - .4byte _08002AFC - .4byte _08002AFC - .4byte _08002AFC - .4byte _08002AFC - .4byte _08002AFC - .4byte _08002AF2 - .4byte _08002AE8 -_08002AC4: - cmp r3, 0 - blt _08002AFC - adds r3, 0x7 - b _08002AE2 -_08002ACC: - cmp r3, 0 - blt _08002AFC - adds r3, 0x1 - b _08002AE2 -_08002AD4: - cmp r3, 0 - blt _08002AFC - adds r3, 0x6 - b _08002AE2 -_08002ADC: - cmp r3, 0 - blt _08002AFC - adds r3, 0x2 -_08002AE2: - movs r0, 0x7 - ands r3, r0 - b _08002AFC -_08002AE8: - adds r0, r3, 0 - adds r1, r4, 0 - bl sub_8002B04 - adds r3, r0, 0 -_08002AF2: - adds r0, r3, 0 - adds r1, r4, 0 - bl sub_8002B04 - adds r3, r0, 0 -_08002AFC: - adds r0, r3, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8002A70 - - thumb_func_start sub_8002B04 -sub_8002B04: - push {lr} - lsls r0, 24 - asrs r2, r0, 24 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08002B56 - adds r0, r2, 0 - subs r0, 0x8 - subs r1, r0 - adds r0, r1, 0 - cmp r1, 0 - bge _08002B24 - adds r0, r1, 0x7 -_08002B24: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - cmp r0, 0 - beq _08002B56 - cmp r0, 0x3 - bgt _08002B40 - adds r1, r2, 0x1 - adds r0, r1, 0 - cmp r1, 0 - bge _08002B4C - adds r0, r2, 0 - adds r0, 0x8 - b _08002B4C -_08002B40: - adds r1, r2, 0x7 - adds r0, r1, 0 - cmp r1, 0 - bge _08002B4C - adds r0, r2, 0 - adds r0, 0xE -_08002B4C: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - lsls r0, 24 - asrs r2, r0, 24 -_08002B56: - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_8002B04 - - thumb_func_start sub_8002B5C -sub_8002B5C: - push {lr} - lsls r0, 24 - asrs r2, r0, 24 - lsls r1, 24 - asrs r1, 24 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08002BAE - adds r0, r2, 0 - subs r0, 0x8 - subs r1, r0 - adds r0, r1, 0 - cmp r1, 0 - bge _08002B7C - adds r0, r1, 0x7 -_08002B7C: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - cmp r0, 0 - beq _08002BAE - cmp r0, 0x3 - bgt _08002B98 - adds r1, r2, 0x2 - adds r0, r1, 0 - cmp r1, 0 - bge _08002BA4 - adds r0, r2, 0 - adds r0, 0x9 - b _08002BA4 -_08002B98: - adds r1, r2, 0x6 - adds r0, r1, 0 - cmp r1, 0 - bge _08002BA4 - adds r0, r2, 0 - adds r0, 0xD -_08002BA4: - asrs r0, 3 - lsls r0, 3 - subs r0, r1, r0 - lsls r0, 24 - asrs r2, r0, 24 -_08002BAE: - movs r0, 0x6 - ands r2, r0 - adds r0, r2, 0 - pop {r1} - bx r1 - thumb_func_end sub_8002B5C - - thumb_func_start sub_8002BB8 -sub_8002BB8: - push {r4,r5,lr} - lsls r1, 24 - asrs r1, 21 - ldr r3, _08002BD8 - adds r1, r3 - ldr r5, [r1] - adds r3, r5, 0 - muls r3, r2 - ldr r1, [r1, 0x4] - adds r4, r1, 0 - muls r4, r2 - str r3, [r0] - str r4, [r0, 0x4] - pop {r4,r5} - pop {r2} - bx r2 - .align 2, 0 -_08002BD8: .4byte gUnknown_80B7E3C - thumb_func_end sub_8002BB8 - - thumb_func_start sub_8002BDC -sub_8002BDC: - push {lr} - ldr r1, [r0] - cmp r1, 0 - bge _08002BFA - ldr r0, [r0, 0x4] - cmp r0, 0 - bge _08002BEE - movs r0, 0x5 - b _08002C2A -_08002BEE: - cmp r0, 0 - ble _08002BF6 - movs r0, 0x7 - b _08002C2A -_08002BF6: - movs r0, 0x6 - b _08002C2A -_08002BFA: - cmp r1, 0 - ble _08002C14 - ldr r0, [r0, 0x4] - cmp r0, 0 - bge _08002C08 - movs r0, 0x3 - b _08002C2A -_08002C08: - cmp r0, 0 - ble _08002C10 - movs r0, 0x1 - b _08002C2A -_08002C10: - movs r0, 0x2 - b _08002C2A -_08002C14: - ldr r0, [r0, 0x4] - cmp r0, 0 - bge _08002C1E - movs r0, 0x4 - b _08002C2A -_08002C1E: - cmp r0, 0 - bgt _08002C28 - movs r0, 0x1 - negs r0, r0 - b _08002C2A -_08002C28: - movs r0, 0 -_08002C2A: - pop {r1} - bx r1 - thumb_func_end sub_8002BDC - - thumb_func_start sub_8002C30 -sub_8002C30: - push {lr} - ldr r1, [r0, 0x4] - cmp r1, 0 - bge _08002C3C - movs r0, 0x4 - b _08002C5A -_08002C3C: - cmp r1, 0 - ble _08002C44 - movs r0, 0 - b _08002C5A -_08002C44: - ldr r0, [r0] - cmp r0, 0 - bge _08002C4E - movs r0, 0x6 - b _08002C5A -_08002C4E: - cmp r0, 0 - bgt _08002C58 - movs r0, 0x1 - negs r0, r0 - b _08002C5A -_08002C58: - movs r0, 0x2 -_08002C5A: - pop {r1} - bx r1 - thumb_func_end sub_8002C30 - - thumb_func_start sub_8002C60 -sub_8002C60: - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4] - cmp r0, 0 - bge _08002C6C - negs r0, r0 -_08002C6C: - adds r1, r0, 0 - ldr r3, [r4, 0x4] - adds r5, r3, 0 - cmp r3, 0 - bge _08002C78 - negs r5, r3 -_08002C78: - adds r2, r5, 0 - ldr r4, [r4] - cmp r4, 0 - bge _08002CA8 - cmp r3, 0 - bge _08002C94 - lsls r0, 1 - cmp r2, r0 - bgt _08002CD8 - lsls r0, r5, 1 - cmp r1, r0 - bgt _08002CA0 - movs r0, 0x5 - b _08002CE8 -_08002C94: - lsls r0, 1 - cmp r2, r0 - bgt _08002CE6 - lsls r0, r5, 1 - cmp r1, r0 - ble _08002CA4 -_08002CA0: - movs r0, 0x6 - b _08002CE8 -_08002CA4: - movs r0, 0x7 - b _08002CE8 -_08002CA8: - cmp r4, 0 - ble _08002CD4 - cmp r3, 0 - bge _08002CC0 - lsls r0, 1 - cmp r2, r0 - bgt _08002CD8 - lsls r0, r5, 1 - cmp r1, r0 - bgt _08002CCC - movs r0, 0x3 - b _08002CE8 -_08002CC0: - lsls r0, 1 - cmp r2, r0 - bgt _08002CE6 - lsls r0, r5, 1 - cmp r1, r0 - ble _08002CD0 -_08002CCC: - movs r0, 0x2 - b _08002CE8 -_08002CD0: - movs r0, 0x1 - b _08002CE8 -_08002CD4: - cmp r3, 0 - bge _08002CDC -_08002CD8: - movs r0, 0x4 - b _08002CE8 -_08002CDC: - cmp r3, 0 - bgt _08002CE6 - movs r0, 0x1 - negs r0, r0 - b _08002CE8 -_08002CE6: - movs r0, 0 -_08002CE8: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8002C60 - - thumb_func_start sub_8002CF0 -sub_8002CF0: - push {r4,lr} - adds r4, r0, 0 - ldr r3, [r4] - cmp r3, 0 - bge _08002CFC - negs r3, r3 -_08002CFC: - adds r1, r3, 0 - ldr r3, [r4, 0x4] - adds r0, r3, 0 - cmp r3, 0 - bge _08002D08 - negs r0, r3 -_08002D08: - adds r2, r0, 0 - ldr r0, [r4] - cmp r0, 0 - bge _08002D22 - cmp r3, 0 - bge _08002D1A - cmp r2, r1 - bgt _08002D3C - b _08002D1E -_08002D1A: - cmp r2, r1 - bgt _08002D4A -_08002D1E: - movs r0, 0x6 - b _08002D4C -_08002D22: - cmp r0, 0 - ble _08002D38 - cmp r3, 0 - bge _08002D30 - cmp r2, r1 - bgt _08002D3C - b _08002D34 -_08002D30: - cmp r2, r1 - bgt _08002D4A -_08002D34: - movs r0, 0x2 - b _08002D4C -_08002D38: - cmp r3, 0 - bge _08002D40 -_08002D3C: - movs r0, 0x4 - b _08002D4C -_08002D40: - cmp r3, 0 - bgt _08002D4A - movs r0, 0x1 - negs r0, r0 - b _08002D4C -_08002D4A: - movs r0, 0 -_08002D4C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8002CF0 - - thumb_func_start sub_8002D54 -sub_8002D54: - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r1, 0 - adds r5, r3, 0 - ldr r3, [r2] - ldr r1, [r0] - subs r3, r1 - str r3, [sp] - ldr r1, [r2, 0x4] - ldr r0, [r0, 0x4] - subs r1, r0 - str r1, [sp, 0x4] - adds r2, r3, 0 - cmp r2, 0 - blt _08002D8A - adds r2, 0x1 - ldr r0, [r4] - ldr r1, [r5] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r2, r0 - str r2, [sp] - cmp r2, 0 - bge _08002DA4 - b _08002DA0 -_08002D8A: - subs r2, r3, 0x1 - ldr r0, [r4] - ldr r1, [r5] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r2, r0 - str r2, [sp] - cmp r2, 0 - ble _08002DA4 -_08002DA0: - movs r0, 0 - str r0, [sp] -_08002DA4: - ldr r2, [sp, 0x4] - cmp r2, 0 - blt _08002DC2 - adds r2, 0x1 - ldr r0, [r4, 0x4] - ldr r1, [r5, 0x4] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r2, r0 - str r2, [sp, 0x4] - cmp r2, 0 - bge _08002DDC - b _08002DD8 -_08002DC2: - subs r2, 0x1 - ldr r0, [r4, 0x4] - ldr r1, [r5, 0x4] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r2, r0 - str r2, [sp, 0x4] - cmp r2, 0 - ble _08002DDC -_08002DD8: - movs r0, 0 - str r0, [sp, 0x4] -_08002DDC: - mov r0, sp - bl sub_8002CF0 - lsls r0, 24 - asrs r0, 24 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8002D54 - - thumb_func_start sub_8002DF0 -sub_8002DF0: - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r1, 0 - adds r5, r3, 0 - ldr r3, [r2] - ldr r1, [r0] - subs r3, r1 - str r3, [sp] - ldr r1, [r2, 0x4] - ldr r0, [r0, 0x4] - subs r1, r0 - str r1, [sp, 0x4] - adds r2, r3, 0 - cmp r2, 0 - blt _08002E26 - adds r2, 0x1 - ldr r0, [r4] - ldr r1, [r5] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r2, r0 - str r2, [sp] - cmp r2, 0 - bge _08002E40 - b _08002E3C -_08002E26: - subs r2, r3, 0x1 - ldr r0, [r4] - ldr r1, [r5] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r2, r0 - str r2, [sp] - cmp r2, 0 - ble _08002E40 -_08002E3C: - movs r0, 0 - str r0, [sp] -_08002E40: - ldr r2, [sp, 0x4] - cmp r2, 0 - blt _08002E5E - adds r2, 0x1 - ldr r0, [r4, 0x4] - ldr r1, [r5, 0x4] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - subs r2, r0 - str r2, [sp, 0x4] - cmp r2, 0 - bge _08002E78 - b _08002E74 -_08002E5E: - subs r2, 0x1 - ldr r0, [r4, 0x4] - ldr r1, [r5, 0x4] - adds r0, r1 - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - adds r2, r0 - str r2, [sp, 0x4] - cmp r2, 0 - ble _08002E78 -_08002E74: - movs r0, 0 - str r0, [sp, 0x4] -_08002E78: - mov r0, sp - bl sub_8002C60 - lsls r0, 24 - asrs r0, 24 - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8002DF0 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/code_8002774.s b/asm/code_8002774.s new file mode 100644 index 0000000..c1e3140 --- /dev/null +++ b/asm/code_8002774.s @@ -0,0 +1,1034 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_8002774 +sub_8002774: + sub sp, 0x4 + str r0, [sp] + mov r0, sp + ldrb r1, [r0, 0x2] + movs r0, 0xF8 + adds r2, r0, 0 + ands r2, r1 + lsls r2, 7 + mov r1, sp + ldrb r3, [r1, 0x1] + adds r1, r0, 0 + ands r1, r3 + lsls r1, 2 + orrs r2, r1 + mov r1, sp + ldrb r1, [r1] + ands r0, r1 + lsrs r0, 3 + orrs r0, r2 + add sp, 0x4 + bx lr + thumb_func_end sub_8002774 + + thumb_func_start sub_80027A0 +sub_80027A0: + push {r4,lr} + sub sp, 0x4 + lsls r0, 16 + lsrs r2, r0, 16 + adds r3, r2, 0 + mov r4, sp + movs r0, 0x1F + ands r0, r2 + lsls r1, r0, 3 + movs r0, 0x1 + ands r0, r2 + cmp r0, 0 + beq _080027BE + movs r0, 0x7 + orrs r1, r0 +_080027BE: + strb r1, [r4] + mov r4, sp + movs r0, 0xF8 + lsls r0, 2 + ands r0, r2 + lsrs r1, r0, 2 + movs r0, 0x20 + ands r0, r2 + cmp r0, 0 + beq _080027D6 + movs r0, 0x7 + orrs r1, r0 +_080027D6: + strb r1, [r4, 0x1] + mov r2, sp + movs r0, 0xF8 + lsls r0, 7 + ands r0, r3 + lsrs r1, r0, 7 + movs r0, 0x80 + lsls r0, 3 + ands r3, r0 + cmp r3, 0 + beq _080027F0 + movs r0, 0x7 + orrs r1, r0 +_080027F0: + strb r1, [r2, 0x2] + mov r0, sp + movs r1, 0 + strb r1, [r0, 0x3] + ldr r0, [sp] + add sp, 0x4 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80027A0 + + thumb_func_start sub_8002804 +sub_8002804: + push {r4,r5,lr} + adds r5, r0, 0 + adds r4, r1, 0 + movs r3, 0 +_0800280C: + adds r1, r5, r3 + adds r0, r2, r3 + ldrb r0, [r0] + muls r0, r4 + cmp r0, 0 + bge _0800281A + adds r0, 0xFF +_0800281A: + asrs r0, 8 + strb r0, [r1] + adds r3, 0x1 + cmp r3, 0x3 + ble _0800280C + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8002804 + + thumb_func_start sub_800282C +sub_800282C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x38 + mov r9, r0 + str r1, [sp, 0x20] + adds r7, r2, 0 + mov r8, r3 + adds r0, r1, 0 + bl __floatsisf + adds r1, r0, 0 + ldr r0, _08002904 + bl __divsf3 + str r0, [sp, 0x24] + movs r5, 0 + mov r0, sp + adds r0, 0x10 + str r0, [sp, 0x2C] + str r0, [sp, 0x34] + mov r10, sp +_0800285C: + adds r6, r7, r5 + movs r4, 0 + ldrsb r4, [r6, r4] + adds r0, r4, 0 + bl __floatsisf + cmp r4, 0 + bge _08002872 + ldr r1, _08002908 + bl __addsf3 +_08002872: + mov r1, r10 + adds r1, 0x4 + mov r10, r1 + subs r1, 0x4 + stm r1!, {r0} + mov r1, r8 + adds r0, r1, r5 + ldrb r0, [r0] + ldrb r1, [r6] + subs r0, r1 + bl __floatsisf + ldr r1, [sp, 0x24] + bl __mulsf3 + ldr r1, [sp, 0x34] + stm r1!, {r0} + str r1, [sp, 0x34] + adds r5, 0x1 + cmp r5, 0x3 + ble _0800285C + ldr r0, [r7] + mov r1, r9 + adds r1, 0x4 + mov r9, r1 + subs r1, 0x4 + stm r1!, {r0} + movs r5, 0x1 + ldr r0, [sp, 0x20] + subs r0, 0x1 + str r0, [sp, 0x28] + mov r1, r8 + ldr r1, [r1] + str r1, [sp, 0x30] + cmp r5, r0 + bge _080028EE +_080028BA: + movs r6, 0 + adds r5, 0x1 + mov r10, r5 + movs r0, 0x4 + add r0, r9 + mov r8, r0 + mov r5, sp + ldr r7, [sp, 0x2C] +_080028CA: + mov r1, r9 + adds r4, r1, r6 + ldr r0, [r5] + ldm r7!, {r1} + bl __addsf3 + stm r5!, {r0} + bl __fixunssfsi + strb r0, [r4] + adds r6, 0x1 + cmp r6, 0x3 + ble _080028CA + mov r9, r8 + mov r5, r10 + ldr r0, [sp, 0x28] + cmp r5, r0 + blt _080028BA +_080028EE: + ldr r1, [sp, 0x30] + mov r0, r9 + str r1, [r0] + 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 +_08002904: .4byte 0x3f800000 +_08002908: .4byte 0x43800000 + thumb_func_end sub_800282C + + thumb_func_start sub_800290C +sub_800290C: + push {lr} + ldr r3, [r0] + cmp r3, r1 + ble _08002918 + str r1, [r0] + b _08002920 +_08002918: + negs r2, r1 + cmp r3, r2 + bge _08002920 + str r2, [r0] +_08002920: + ldr r2, [r0, 0x4] + cmp r2, r1 + bgt _0800292C + negs r1, r1 + cmp r2, r1 + bge _0800292E +_0800292C: + str r1, [r0, 0x4] +_0800292E: + pop {r0} + bx r0 + thumb_func_end sub_800290C + + thumb_func_start sub_8002934 +sub_8002934: + push {r4-r6,lr} + mov r6, r10 + mov r5, r9 + mov r4, r8 + push {r4-r6} + mov r10, r0 + adds r6, r1, 0 + mov r8, r2 + adds r4, r3, 0 + ldr r5, [sp, 0x1C] + adds r0, r4, r5 + mov r9, r0 + ldr r0, [r6] + muls r0, r4 + ldr r1, [r2] + muls r1, r5 + adds r0, r1 + mov r1, r9 + bl __divsi3 + mov r1, r10 + str r0, [r1] + ldr r0, [r6, 0x4] + muls r0, r4 + mov r2, r8 + ldr r1, [r2, 0x4] + muls r1, r5 + adds r0, r1 + mov r1, r9 + bl __divsi3 + mov r1, r10 + str r0, [r1, 0x4] + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8002934 + + thumb_func_start sub_8002984 +sub_8002984: + push {r4,lr} + lsls r0, 24 + asrs r4, r0, 24 + lsls r1, 24 + lsrs r1, 24 + subs r0, r1, 0x1 + cmp r0, 0x8 + bhi _08002A68 + lsls r0, 2 + ldr r1, _080029A0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080029A0: .4byte _080029A4 + .align 2, 0 +_080029A4: + .4byte _080029C8 + .4byte _080029D0 + .4byte _080029D8 + .4byte _080029E0 + .4byte _080029E8 + .4byte _080029F4 + .4byte _08002A34 + .4byte _08002A4E + .4byte _08002A5E +_080029C8: + cmp r4, 0 + blt _08002A68 + adds r4, 0x7 + b _080029EE +_080029D0: + cmp r4, 0 + blt _08002A68 + adds r4, 0x1 + b _080029EE +_080029D8: + cmp r4, 0 + blt _08002A68 + adds r4, 0x6 + b _080029EE +_080029E0: + cmp r4, 0 + blt _08002A68 + adds r4, 0x2 + b _080029EE +_080029E8: + cmp r4, 0 + blt _08002A68 + adds r4, 0x4 +_080029EE: + movs r0, 0x7 + ands r4, r0 + b _08002A68 +_080029F4: + movs r0, 0x1 + ands r0, r4 + cmp r0, 0 + beq _08002A18 + movs r0, 0x2 + bl OtherRandomCapped + adds r1, r4, 0x7 + lsls r0, 1 + adds r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002A10 + adds r0, r1, 0x7 +_08002A10: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + b _08002A64 +_08002A18: + movs r0, 0x3 + bl OtherRandomCapped + adds r1, r4, 0x6 + lsls r0, 1 + adds r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002A2C + adds r0, r1, 0x7 +_08002A2C: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + b _08002A64 +_08002A34: + movs r0, 0x3 + bl OtherRandomCapped + adds r1, r4, 0x7 + adds r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002A46 + adds r0, r1, 0x7 +_08002A46: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + b _08002A64 +_08002A4E: + movs r0, 0x8 + bl OtherRandomCapped + movs r2, 0x2 + negs r2, r2 + adds r1, r2, 0 + ands r0, r1 + b _08002A64 +_08002A5E: + movs r0, 0x8 + bl OtherRandomCapped +_08002A64: + lsls r0, 24 + asrs r4, r0, 24 +_08002A68: + adds r0, r4, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002984 + + thumb_func_start sub_8002A70 +sub_8002A70: + push {r4,lr} + lsls r0, 24 + asrs r3, r0, 24 + lsls r1, 24 + asrs r4, r1, 24 + lsls r2, 24 + lsrs r0, r2, 24 + cmp r3, r4 + beq _08002AFC + subs r0, 0x1 + cmp r0, 0xA + bhi _08002AFC + lsls r0, 2 + ldr r1, _08002A94 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08002A94: .4byte _08002A98 + .align 2, 0 +_08002A98: + .4byte _08002AC4 + .4byte _08002ACC + .4byte _08002AD4 + .4byte _08002ADC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AFC + .4byte _08002AF2 + .4byte _08002AE8 +_08002AC4: + cmp r3, 0 + blt _08002AFC + adds r3, 0x7 + b _08002AE2 +_08002ACC: + cmp r3, 0 + blt _08002AFC + adds r3, 0x1 + b _08002AE2 +_08002AD4: + cmp r3, 0 + blt _08002AFC + adds r3, 0x6 + b _08002AE2 +_08002ADC: + cmp r3, 0 + blt _08002AFC + adds r3, 0x2 +_08002AE2: + movs r0, 0x7 + ands r3, r0 + b _08002AFC +_08002AE8: + adds r0, r3, 0 + adds r1, r4, 0 + bl sub_8002B04 + adds r3, r0, 0 +_08002AF2: + adds r0, r3, 0 + adds r1, r4, 0 + bl sub_8002B04 + adds r3, r0, 0 +_08002AFC: + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002A70 + + thumb_func_start sub_8002B04 +sub_8002B04: + push {lr} + lsls r0, 24 + asrs r2, r0, 24 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08002B56 + adds r0, r2, 0 + subs r0, 0x8 + subs r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B24 + adds r0, r1, 0x7 +_08002B24: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + cmp r0, 0 + beq _08002B56 + cmp r0, 0x3 + bgt _08002B40 + adds r1, r2, 0x1 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B4C + adds r0, r2, 0 + adds r0, 0x8 + b _08002B4C +_08002B40: + adds r1, r2, 0x7 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B4C + adds r0, r2, 0 + adds r0, 0xE +_08002B4C: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + lsls r0, 24 + asrs r2, r0, 24 +_08002B56: + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8002B04 + + thumb_func_start sub_8002B5C +sub_8002B5C: + push {lr} + lsls r0, 24 + asrs r2, r0, 24 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _08002BAE + adds r0, r2, 0 + subs r0, 0x8 + subs r1, r0 + adds r0, r1, 0 + cmp r1, 0 + bge _08002B7C + adds r0, r1, 0x7 +_08002B7C: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + cmp r0, 0 + beq _08002BAE + cmp r0, 0x3 + bgt _08002B98 + adds r1, r2, 0x2 + adds r0, r1, 0 + cmp r1, 0 + bge _08002BA4 + adds r0, r2, 0 + adds r0, 0x9 + b _08002BA4 +_08002B98: + adds r1, r2, 0x6 + adds r0, r1, 0 + cmp r1, 0 + bge _08002BA4 + adds r0, r2, 0 + adds r0, 0xD +_08002BA4: + asrs r0, 3 + lsls r0, 3 + subs r0, r1, r0 + lsls r0, 24 + asrs r2, r0, 24 +_08002BAE: + movs r0, 0x6 + ands r2, r0 + adds r0, r2, 0 + pop {r1} + bx r1 + thumb_func_end sub_8002B5C + + thumb_func_start sub_8002BB8 +sub_8002BB8: + push {r4,r5,lr} + lsls r1, 24 + asrs r1, 21 + ldr r3, _08002BD8 + adds r1, r3 + ldr r5, [r1] + adds r3, r5, 0 + muls r3, r2 + ldr r1, [r1, 0x4] + adds r4, r1, 0 + muls r4, r2 + str r3, [r0] + str r4, [r0, 0x4] + pop {r4,r5} + pop {r2} + bx r2 + .align 2, 0 +_08002BD8: .4byte gUnknown_80B7E3C + thumb_func_end sub_8002BB8 + + thumb_func_start sub_8002BDC +sub_8002BDC: + push {lr} + ldr r1, [r0] + cmp r1, 0 + bge _08002BFA + ldr r0, [r0, 0x4] + cmp r0, 0 + bge _08002BEE + movs r0, 0x5 + b _08002C2A +_08002BEE: + cmp r0, 0 + ble _08002BF6 + movs r0, 0x7 + b _08002C2A +_08002BF6: + movs r0, 0x6 + b _08002C2A +_08002BFA: + cmp r1, 0 + ble _08002C14 + ldr r0, [r0, 0x4] + cmp r0, 0 + bge _08002C08 + movs r0, 0x3 + b _08002C2A +_08002C08: + cmp r0, 0 + ble _08002C10 + movs r0, 0x1 + b _08002C2A +_08002C10: + movs r0, 0x2 + b _08002C2A +_08002C14: + ldr r0, [r0, 0x4] + cmp r0, 0 + bge _08002C1E + movs r0, 0x4 + b _08002C2A +_08002C1E: + cmp r0, 0 + bgt _08002C28 + movs r0, 0x1 + negs r0, r0 + b _08002C2A +_08002C28: + movs r0, 0 +_08002C2A: + pop {r1} + bx r1 + thumb_func_end sub_8002BDC + + thumb_func_start sub_8002C30 +sub_8002C30: + push {lr} + ldr r1, [r0, 0x4] + cmp r1, 0 + bge _08002C3C + movs r0, 0x4 + b _08002C5A +_08002C3C: + cmp r1, 0 + ble _08002C44 + movs r0, 0 + b _08002C5A +_08002C44: + ldr r0, [r0] + cmp r0, 0 + bge _08002C4E + movs r0, 0x6 + b _08002C5A +_08002C4E: + cmp r0, 0 + bgt _08002C58 + movs r0, 0x1 + negs r0, r0 + b _08002C5A +_08002C58: + movs r0, 0x2 +_08002C5A: + pop {r1} + bx r1 + thumb_func_end sub_8002C30 + + thumb_func_start sub_8002C60 +sub_8002C60: + push {r4,r5,lr} + adds r4, r0, 0 + ldr r0, [r4] + cmp r0, 0 + bge _08002C6C + negs r0, r0 +_08002C6C: + adds r1, r0, 0 + ldr r3, [r4, 0x4] + adds r5, r3, 0 + cmp r3, 0 + bge _08002C78 + negs r5, r3 +_08002C78: + adds r2, r5, 0 + ldr r4, [r4] + cmp r4, 0 + bge _08002CA8 + cmp r3, 0 + bge _08002C94 + lsls r0, 1 + cmp r2, r0 + bgt _08002CD8 + lsls r0, r5, 1 + cmp r1, r0 + bgt _08002CA0 + movs r0, 0x5 + b _08002CE8 +_08002C94: + lsls r0, 1 + cmp r2, r0 + bgt _08002CE6 + lsls r0, r5, 1 + cmp r1, r0 + ble _08002CA4 +_08002CA0: + movs r0, 0x6 + b _08002CE8 +_08002CA4: + movs r0, 0x7 + b _08002CE8 +_08002CA8: + cmp r4, 0 + ble _08002CD4 + cmp r3, 0 + bge _08002CC0 + lsls r0, 1 + cmp r2, r0 + bgt _08002CD8 + lsls r0, r5, 1 + cmp r1, r0 + bgt _08002CCC + movs r0, 0x3 + b _08002CE8 +_08002CC0: + lsls r0, 1 + cmp r2, r0 + bgt _08002CE6 + lsls r0, r5, 1 + cmp r1, r0 + ble _08002CD0 +_08002CCC: + movs r0, 0x2 + b _08002CE8 +_08002CD0: + movs r0, 0x1 + b _08002CE8 +_08002CD4: + cmp r3, 0 + bge _08002CDC +_08002CD8: + movs r0, 0x4 + b _08002CE8 +_08002CDC: + cmp r3, 0 + bgt _08002CE6 + movs r0, 0x1 + negs r0, r0 + b _08002CE8 +_08002CE6: + movs r0, 0 +_08002CE8: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8002C60 + + thumb_func_start sub_8002CF0 +sub_8002CF0: + push {r4,lr} + adds r4, r0, 0 + ldr r3, [r4] + cmp r3, 0 + bge _08002CFC + negs r3, r3 +_08002CFC: + adds r1, r3, 0 + ldr r3, [r4, 0x4] + adds r0, r3, 0 + cmp r3, 0 + bge _08002D08 + negs r0, r3 +_08002D08: + adds r2, r0, 0 + ldr r0, [r4] + cmp r0, 0 + bge _08002D22 + cmp r3, 0 + bge _08002D1A + cmp r2, r1 + bgt _08002D3C + b _08002D1E +_08002D1A: + cmp r2, r1 + bgt _08002D4A +_08002D1E: + movs r0, 0x6 + b _08002D4C +_08002D22: + cmp r0, 0 + ble _08002D38 + cmp r3, 0 + bge _08002D30 + cmp r2, r1 + bgt _08002D3C + b _08002D34 +_08002D30: + cmp r2, r1 + bgt _08002D4A +_08002D34: + movs r0, 0x2 + b _08002D4C +_08002D38: + cmp r3, 0 + bge _08002D40 +_08002D3C: + movs r0, 0x4 + b _08002D4C +_08002D40: + cmp r3, 0 + bgt _08002D4A + movs r0, 0x1 + negs r0, r0 + b _08002D4C +_08002D4A: + movs r0, 0 +_08002D4C: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002CF0 + + thumb_func_start sub_8002D54 +sub_8002D54: + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r1, 0 + adds r5, r3, 0 + ldr r3, [r2] + ldr r1, [r0] + subs r3, r1 + str r3, [sp] + ldr r1, [r2, 0x4] + ldr r0, [r0, 0x4] + subs r1, r0 + str r1, [sp, 0x4] + adds r2, r3, 0 + cmp r2, 0 + blt _08002D8A + adds r2, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp] + cmp r2, 0 + bge _08002DA4 + b _08002DA0 +_08002D8A: + subs r2, r3, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp] + cmp r2, 0 + ble _08002DA4 +_08002DA0: + movs r0, 0 + str r0, [sp] +_08002DA4: + ldr r2, [sp, 0x4] + cmp r2, 0 + blt _08002DC2 + adds r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + bge _08002DDC + b _08002DD8 +_08002DC2: + subs r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + ble _08002DDC +_08002DD8: + movs r0, 0 + str r0, [sp, 0x4] +_08002DDC: + mov r0, sp + bl sub_8002CF0 + lsls r0, 24 + asrs r0, 24 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8002D54 + + thumb_func_start sub_8002DF0 +sub_8002DF0: + push {r4,r5,lr} + sub sp, 0x8 + adds r4, r1, 0 + adds r5, r3, 0 + ldr r3, [r2] + ldr r1, [r0] + subs r3, r1 + str r3, [sp] + ldr r1, [r2, 0x4] + ldr r0, [r0, 0x4] + subs r1, r0 + str r1, [sp, 0x4] + adds r2, r3, 0 + cmp r2, 0 + blt _08002E26 + adds r2, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp] + cmp r2, 0 + bge _08002E40 + b _08002E3C +_08002E26: + subs r2, r3, 0x1 + ldr r0, [r4] + ldr r1, [r5] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp] + cmp r2, 0 + ble _08002E40 +_08002E3C: + movs r0, 0 + str r0, [sp] +_08002E40: + ldr r2, [sp, 0x4] + cmp r2, 0 + blt _08002E5E + adds r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + subs r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + bge _08002E78 + b _08002E74 +_08002E5E: + subs r2, 0x1 + ldr r0, [r4, 0x4] + ldr r1, [r5, 0x4] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + adds r2, r0 + str r2, [sp, 0x4] + cmp r2, 0 + ble _08002E78 +_08002E74: + movs r0, 0 + str r0, [sp, 0x4] +_08002E78: + mov r0, sp + bl sub_8002C60 + lsls r0, 24 + asrs r0, 24 + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8002DF0 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/event_flag.s b/asm/event_flag.s new file mode 100644 index 0000000..3fdcf00 --- /dev/null +++ b/asm/event_flag.s @@ -0,0 +1,2591 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_800135C +sub_800135C: + push {r4-r7,lr} + movs r1, 0 + ldr r4, _0800138C + ldr r3, _08001390 + movs r2, 0 +_08001366: + adds r0, r1, r3 + strb r2, [r0] + adds r1, 0x1 + cmp r1, r4 + ble _08001366 + movs r6, 0 +_08001372: + lsls r1, r6, 4 + ldr r0, _08001394 + adds r5, r1, r0 + movs r1, 0 + ldrsh r0, [r5, r1] + adds r7, r6, 0x1 + cmp r0, 0 + beq _080013B4 + cmp r0, 0x8 + beq _080013B4 + movs r4, 0 + b _080013AC + .align 2, 0 +_0800138C: .4byte 0x000003ff +_08001390: .4byte gUnknown_2000A88 +_08001394: .4byte gUnknown_80B7394 +_08001398: + movs r0, 0xA + ldrsh r3, [r5, r0] + movs r0, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_800199C + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080013AC: + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r4, r0 + blt _08001398 +_080013B4: + lsls r0, r7, 16 + asrs r6, r0, 16 + cmp r6, 0x50 + ble _08001372 + movs r0, 0 + movs r1, 0x1 + bl sub_80015C0 + movs r0, 0x2 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0x3 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0x4 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0x5 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0x6 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0x7 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0x8 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0x9 + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0xA + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0xB + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0xC + movs r1, 0 + movs r2, 0 + bl sub_8001BB4 + movs r0, 0 + movs r1, 0xD + movs r2, 0xA2 + bl sub_80018D8 + movs r0, 0 + movs r1, 0xE + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0xF + movs r2, 0xA2 + bl sub_80018D8 + movs r4, 0x1 + negs r4, r4 + movs r0, 0 + movs r1, 0x10 + adds r2, r4, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x11 + movs r2, 0x24 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x12 + adds r2, r4, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x13 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x14 + adds r2, r4, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x16 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x18 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x19 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x1B + adds r2, r4, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x1C + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x1D + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x1E + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x1F + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x24 + bl sub_80015C0 + movs r0, 0 + movs r1, 0x25 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x26 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x27 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x28 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x29 + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x2A + movs r2, 0 + bl sub_80018D8 + movs r0, 0 + movs r1, 0x2B + bl sub_80015C0 + movs r0, 0 + movs r1, 0x2C + bl sub_80015C0 + movs r0, 0 + movs r1, 0x2D + bl sub_80015C0 + movs r0, 0 + movs r1, 0x2E + bl sub_80015C0 + movs r0, 0 + movs r1, 0x2F + bl sub_80015C0 + movs r0, 0 + movs r1, 0x30 + bl sub_80015C0 + movs r0, 0 + movs r1, 0x31 + bl sub_80015C0 + movs r0, 0 + movs r1, 0x41 + bl sub_80015C0 + bl sub_80972F4 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_800135C + + thumb_func_start sub_8001564 +sub_8001564: + push {lr} + bl nullsub_128 + pop {r0} + bx r0 + thumb_func_end sub_8001564 + + thumb_func_start sub_8001570 +sub_8001570: + push {r4-r7,lr} + adds r7, r0, 0 + lsls r1, 16 + asrs r6, r1, 16 + ldr r0, _08001584 + cmp r6, r0 + bgt _0800158C + lsls r1, r6, 4 + ldr r0, _08001588 + b _08001590 + .align 2, 0 +_08001584: .4byte 0x000003ff +_08001588: .4byte gUnknown_80B7394 +_0800158C: + lsls r1, r6, 4 + ldr r0, _08001598 +_08001590: + adds r5, r1, r0 + movs r4, 0 + b _080015B0 + .align 2, 0 +_08001598: .4byte 0x080b2d30 +_0800159C: + movs r0, 0xA + ldrsh r3, [r5, r0] + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_800199C + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080015B0: + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r4, r0 + blt _0800159C + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8001570 + + thumb_func_start sub_80015C0 +sub_80015C0: + push {r4-r7,lr} + adds r7, r0, 0 + lsls r1, 16 + asrs r6, r1, 16 + ldr r0, _080015D4 + cmp r6, r0 + bgt _080015DC + lsls r1, r6, 4 + ldr r0, _080015D8 + b _080015E0 + .align 2, 0 +_080015D4: .4byte 0x000003ff +_080015D8: .4byte gUnknown_80B7394 +_080015DC: + lsls r1, r6, 4 + ldr r0, _080015E8 +_080015E0: + adds r5, r1, r0 + movs r4, 0 + b _080015FE + .align 2, 0 +_080015E8: .4byte 0x080b2d30 +_080015EC: + adds r0, r7, 0 + adds r1, r6, 0 + adds r2, r4, 0 + movs r3, 0 + bl sub_800199C + adds r0, r4, 0x1 + lsls r0, 16 + lsrs r4, r0, 16 +_080015FE: + movs r1, 0x8 + ldrsh r0, [r5, r1] + cmp r4, r0 + blt _080015EC + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_80015C0 + + thumb_func_start sub_800160C +sub_800160C: + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + lsls r2, 16 + asrs r1, r2, 16 + ldr r0, _08001630 + cmp r1, r0 + bgt _0800163C + lsls r1, 4 + ldr r0, _08001634 + adds r1, r0 + str r1, [r3] + movs r2, 0x4 + ldrsh r0, [r1, r2] + ldr r1, _08001638 + adds r0, r1 + b _0800164C + .align 2, 0 +_08001630: .4byte 0x000003ff +_08001634: .4byte gUnknown_80B7394 +_08001638: .4byte gUnknown_2000A88 +_0800163C: + lsls r1, 4 + ldr r0, _08001654 + adds r1, r0 + str r1, [r3] + movs r2, 0x4 + ldrsh r0, [r1, r2] + lsls r0, 2 + adds r0, r4, r0 +_0800164C: + str r0, [r3, 0x4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08001654: .4byte 0x080b2d30 + thumb_func_end sub_800160C + + thumb_func_start sub_8001658 +sub_8001658: + push {r4,lr} + sub sp, 0x8 + adds r2, r0, 0 + lsls r1, 16 + asrs r4, r1, 16 + mov r0, sp + adds r1, r2, 0 + adds r2, r4, 0 + bl sub_800160C + ldr r0, [sp] + ldrh r0, [r0] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bls _0800167C + b _08001778 +_0800167C: + lsls r0, 2 + ldr r1, _08001688 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08001688: .4byte _0800168C + .align 2, 0 +_0800168C: + .4byte _080016AC + .4byte _080016C2 + .4byte _080016C8 + .4byte _080016D2 + .4byte _080016D8 + .4byte _080016E0 + .4byte _080016C2 + .4byte _080016E6 +_080016AC: + ldr r0, [sp] + movs r1, 0x6 + ldrsh r0, [r0, r1] + movs r1, 0x80 + lsls r1, 17 + lsls r1, r0 + lsrs r1, 24 + ldr r0, [sp, 0x4] + ldrb r0, [r0] + ands r1, r0 + b _0800173E +_080016C2: + ldr r0, [sp, 0x4] + ldrb r0, [r0] + b _0800177A +_080016C8: + ldr r0, [sp, 0x4] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _0800177A +_080016D2: + ldr r0, [sp, 0x4] + ldrh r0, [r0] + b _0800177A +_080016D8: + ldr r0, [sp, 0x4] + movs r1, 0 + ldrsh r0, [r0, r1] + b _0800177A +_080016E0: + ldr r0, [sp, 0x4] + ldr r0, [r0] + b _0800177A +_080016E6: + adds r0, r4, 0 + subs r0, 0x17 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bhi _08001778 + lsls r0, 2 + ldr r1, _080016FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080016FC: .4byte _08001700 + .align 2, 0 +_08001700: + .4byte _08001734 + .4byte _08001778 + .4byte _08001778 + .4byte _08001778 + .4byte _08001778 + .4byte _08001778 + .4byte _08001778 + .4byte _08001778 + .4byte _08001778 + .4byte _08001746 + .4byte _0800174C + .4byte _08001754 + .4byte _08001764 +_08001734: + bl sub_8098F94 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 +_0800173E: + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _0800177A +_08001746: + bl sub_808D480 + b _0800177A +_0800174C: + movs r0, 0 + bl sub_808D544 + b _0800177A +_08001754: + ldr r0, _08001760 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 2 + b _0800176C + .align 2, 0 +_08001760: .4byte gUnknown_203B460 +_08001764: + ldr r0, _08001774 + ldr r0, [r0] + movs r1, 0x99 + lsls r1, 2 +_0800176C: + adds r0, r1 + ldr r0, [r0] + b _0800177A + .align 2, 0 +_08001774: .4byte gUnknown_203B460 +_08001778: + movs r0, 0 +_0800177A: + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8001658 + + thumb_func_start sub_8001784 +sub_8001784: + push {r4,r5,lr} + sub sp, 0x8 + adds r3, r0, 0 + lsls r1, 16 + asrs r5, r1, 16 + lsls r2, 16 + lsrs r4, r2, 16 + mov r0, sp + adds r1, r3, 0 + adds r2, r5, 0 + bl sub_800160C + ldr r0, [sp] + ldrh r0, [r0] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bls _080017AC + b _080018CC +_080017AC: + lsls r0, 2 + ldr r1, _080017B8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080017B8: .4byte _080017BC + .align 2, 0 +_080017BC: + .4byte _080017DC + .4byte _08001800 + .4byte _08001808 + .4byte _08001814 + .4byte _0800181E + .4byte _0800182A + .4byte _08001800 + .4byte _08001834 +_080017DC: + ldr r0, [sp] + ldrh r1, [r0, 0x6] + adds r1, r4, r1 + lsls r1, 16 + lsrs r0, r1, 19 + ldr r2, [sp, 0x4] + adds r2, r0 + movs r0, 0xE0 + lsls r0, 11 + ands r0, r1 + lsrs r0, 16 + movs r1, 0x80 + lsls r1, 17 + lsls r1, r0 + lsrs r1, 24 + ldrb r0, [r2] + ands r1, r0 + b _0800188E +_08001800: + ldr r0, [sp, 0x4] + adds r0, r4 + ldrb r0, [r0] + b _080018CE +_08001808: + ldr r0, [sp, 0x4] + adds r0, r4 + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + b _080018CE +_08001814: + ldr r0, [sp, 0x4] + lsls r1, r4, 1 + adds r1, r0 + ldrh r0, [r1] + b _080018CE +_0800181E: + ldr r0, [sp, 0x4] + lsls r1, r4, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + b _080018CE +_0800182A: + ldr r0, [sp, 0x4] + lsls r1, r4, 2 + adds r1, r0 + ldr r0, [r1] + b _080018CE +_08001834: + adds r0, r5, 0 + subs r0, 0x17 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xC + bhi _080018CC + lsls r0, 2 + ldr r1, _0800184C + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0800184C: .4byte _08001850 + .align 2, 0 +_08001850: + .4byte _08001884 + .4byte _080018CC + .4byte _080018CC + .4byte _080018CC + .4byte _080018CC + .4byte _080018CC + .4byte _080018CC + .4byte _080018CC + .4byte _080018CC + .4byte _08001896 + .4byte _0800189C + .4byte _080018A4 + .4byte _080018B8 +_08001884: + bl sub_8098F94 + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 +_0800188E: + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _080018CE +_08001896: + bl sub_808D480 + b _080018CE +_0800189C: + movs r0, 0 + bl sub_808D544 + b _080018CE +_080018A4: + ldr r0, _080018B4 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 2 + adds r0, r1 + ldr r0, [r0] + b _080018CE + .align 2, 0 +_080018B4: .4byte gUnknown_203B460 +_080018B8: + ldr r0, _080018C8 + ldr r0, [r0] + movs r2, 0x99 + lsls r2, 2 + adds r0, r2 + ldr r0, [r0] + b _080018CE + .align 2, 0 +_080018C8: .4byte gUnknown_203B460 +_080018CC: + movs r0, 0 +_080018CE: + add sp, 0x8 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8001784 + + thumb_func_start sub_80018D8 +sub_80018D8: + push {r4,r5,lr} + sub sp, 0x8 + adds r3, r0, 0 + adds r4, r2, 0 + lsls r1, 16 + asrs r5, r1, 16 + mov r0, sp + adds r1, r3, 0 + adds r2, r5, 0 + bl sub_800160C + ldr r0, [sp] + ldrh r0, [r0] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bhi _08001990 + lsls r0, 2 + ldr r1, _08001908 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08001908: .4byte _0800190C + .align 2, 0 +_0800190C: + .4byte _0800192C + .4byte _08001958 + .4byte _08001958 + .4byte _0800195E + .4byte _0800195E + .4byte _08001964 + .4byte _08001958 + .4byte _08001968 +_0800192C: + ldr r0, [sp] + movs r2, 0x6 + ldrsh r1, [r0, r2] + movs r0, 0x80 + lsls r0, 17 + lsls r0, r1 + lsrs r3, r0, 24 + cmp r4, 0 + beq _0800194A + ldr r2, [sp, 0x4] + ldrb r1, [r2] + adds r0, r3, 0 + orrs r0, r1 + strb r0, [r2] + b _08001990 +_0800194A: + ldr r2, [sp, 0x4] + ldrb r1, [r2] + adds r0, r3, 0 + orrs r0, r1 + eors r0, r3 + strb r0, [r2] + b _08001990 +_08001958: + ldr r0, [sp, 0x4] + strb r4, [r0] + b _08001990 +_0800195E: + ldr r0, [sp, 0x4] + strh r4, [r0] + b _08001990 +_08001964: + ldr r0, [sp, 0x4] + b _0800198E +_08001968: + cmp r5, 0x22 + beq _08001972 + cmp r5, 0x23 + beq _08001984 + b _08001990 +_08001972: + ldr r0, _08001980 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 2 + adds r0, r1 + b _0800198E + .align 2, 0 +_08001980: .4byte gUnknown_203B460 +_08001984: + ldr r0, _08001998 + ldr r0, [r0] + movs r2, 0x99 + lsls r2, 2 + adds r0, r2 +_0800198E: + str r4, [r0] +_08001990: + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08001998: .4byte gUnknown_203B460 + thumb_func_end sub_80018D8 + + thumb_func_start sub_800199C +sub_800199C: + push {r4-r7,lr} + sub sp, 0x8 + adds r4, r0, 0 + adds r6, r3, 0 + lsls r1, 16 + asrs r7, r1, 16 + lsls r2, 16 + lsrs r5, r2, 16 + mov r0, sp + adds r1, r4, 0 + adds r2, r7, 0 + bl sub_800160C + ldr r0, [sp] + ldrh r0, [r0] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x7 + bhi _08001A68 + lsls r0, 2 + ldr r1, _080019D0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080019D0: .4byte _080019D4 + .align 2, 0 +_080019D4: + .4byte _080019F4 + .4byte _08001A2C + .4byte _08001A2C + .4byte _08001A34 + .4byte _08001A34 + .4byte _08001A3E + .4byte _08001A2C + .4byte _08001A44 +_080019F4: + ldr r0, [sp] + ldrh r0, [r0, 0x6] + adds r0, r5, r0 + lsls r0, 16 + lsrs r2, r0, 19 + ldr r1, [sp, 0x4] + adds r3, r1, r2 + movs r1, 0xE0 + lsls r1, 11 + ands r1, r0 + lsrs r1, 16 + movs r0, 0x80 + lsls r0, 17 + lsls r0, r1 + lsrs r2, r0, 24 + cmp r6, 0 + beq _08001A20 + ldrb r1, [r3] + adds r0, r2, 0 + orrs r0, r1 + strb r0, [r3] + b _08001A68 +_08001A20: + ldrb r1, [r3] + adds r0, r2, 0 + orrs r0, r1 + eors r0, r2 + strb r0, [r3] + b _08001A68 +_08001A2C: + ldr r0, [sp, 0x4] + adds r0, r5 + strb r6, [r0] + b _08001A68 +_08001A34: + ldr r1, [sp, 0x4] + lsls r0, r5, 1 + adds r0, r1 + strh r6, [r0] + b _08001A68 +_08001A3E: + ldr r1, [sp, 0x4] + lsls r0, r5, 2 + b _08001A64 +_08001A44: + cmp r7, 0x22 + beq _08001A4E + cmp r7, 0x23 + beq _08001A5C + b _08001A68 +_08001A4E: + ldr r0, _08001A58 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 2 + b _08001A64 + .align 2, 0 +_08001A58: .4byte gUnknown_203B460 +_08001A5C: + ldr r0, _08001A70 + ldr r0, [r0] + movs r1, 0x99 + lsls r1, 2 +_08001A64: + adds r0, r1 + str r6, [r0] +_08001A68: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08001A70: .4byte gUnknown_203B460 + thumb_func_end sub_800199C + + thumb_func_start sub_8001A74 +sub_8001A74: + push {lr} + sub sp, 0x8 + adds r2, r0, 0 + lsls r2, 16 + asrs r2, 16 + mov r0, sp + movs r1, 0 + bl sub_800160C + ldr r0, [sp, 0x4] + add sp, 0x8 + pop {r1} + bx r1 + thumb_func_end sub_8001A74 + + thumb_func_start sub_8001A90 +sub_8001A90: + push {lr} + sub sp, 0x8 + adds r2, r0, 0 + lsls r2, 16 + asrs r2, 16 + mov r0, sp + movs r1, 0 + bl sub_800160C + ldr r0, [sp] + movs r1, 0x8 + ldrsh r0, [r0, r1] + add sp, 0x8 + pop {r1} + bx r1 + thumb_func_end sub_8001A90 + + thumb_func_start sub_8001AB0 +sub_8001AB0: + push {r4-r7,lr} + sub sp, 0x8 + adds r7, r0, 0 + lsls r1, 16 + asrs r5, r1, 16 + movs r6, 0 + mov r0, sp + movs r1, 0 + adds r2, r5, 0 + bl sub_800160C + movs r4, 0 + ldr r0, [sp] + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r6, r0 + bge _08001AEC +_08001AD2: + lsls r2, r4, 16 + lsrs r2, 16 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_8001784 + adds r6, r0 + adds r4, 0x1 + ldr r0, [sp] + movs r1, 0x8 + ldrsh r0, [r0, r1] + cmp r4, r0 + blt _08001AD2 +_08001AEC: + adds r0, r6, 0 + add sp, 0x8 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8001AB0 + + thumb_func_start sub_8001AF8 +sub_8001AF8: + push {r4,r5,lr} + sub sp, 0x8 + adds r3, r0, 0 + adds r4, r1, 0 + adds r5, r2, 0 + lsls r3, 16 + asrs r3, 16 + mov r0, sp + movs r1, 0 + adds r2, r3, 0 + bl sub_800160C + ldr r1, [sp, 0x4] + movs r2, 0 + b _08001B1C +_08001B16: + strb r0, [r4] + adds r4, 0x1 + adds r2, 0x1 +_08001B1C: + cmp r2, r5 + bge _08001B28 + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0 + bne _08001B16 +_08001B28: + movs r0, 0 + strb r0, [r4] + add sp, 0x8 + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_8001AF8 + + thumb_func_start sub_8001B34 +sub_8001B34: + push {r4,lr} + sub sp, 0x8 + adds r3, r0, 0 + adds r4, r2, 0 + lsls r3, 16 + asrs r3, 16 + mov r0, sp + movs r1, 0 + adds r2, r3, 0 + bl sub_800160C + ldr r1, [sp, 0x4] + movs r2, 0 + b _08001B56 +_08001B50: + strb r0, [r1] + adds r1, 0x1 + adds r2, 0x1 +_08001B56: + cmp r2, r4 + bge _08001B62 + ldrb r0, [r1] + adds r1, 0x1 + cmp r0, 0 + bne _08001B50 +_08001B62: + ldr r0, [sp] + movs r3, 0x8 + ldrsh r0, [r0, r3] + cmp r2, r0 + bge _08001B7E + movs r3, 0 +_08001B6E: + strb r3, [r1] + adds r1, 0x1 + adds r2, 0x1 + ldr r0, [sp] + movs r4, 0x8 + ldrsh r0, [r0, r4] + cmp r2, r0 + blt _08001B6E +_08001B7E: + add sp, 0x8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8001B34 + + thumb_func_start sub_8001B88 +sub_8001B88: + push {r4-r6,lr} + adds r4, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8001784 + str r0, [r5] + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_8001784 + str r0, [r6] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8001B88 + + thumb_func_start sub_8001BB4 +sub_8001BB4: + push {r4-r6,lr} + sub sp, 0x14 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r0, 16 + asrs r4, r0, 16 + add r2, sp, 0x10 + adds r0, r4, 0 + add r1, sp, 0xC + bl sub_8001B88 + ldr r1, _08001C20 + ldr r3, [sp, 0xC] + ldr r0, [sp, 0x10] + str r0, [sp] + str r5, [sp, 0x4] + str r6, [sp, 0x8] + movs r0, 0x6 + adds r2, r4, 0 + bl Log + cmp r4, 0x3 + bne _08001BF8 + ldr r0, [sp, 0xC] + cmp r5, r0 + bne _08001BEE + ldr r0, [sp, 0x10] + cmp r6, r0 + beq _08001BF8 +_08001BEE: + movs r0, 0 + movs r1, 0x19 + movs r2, 0 + bl sub_80018D8 +_08001BF8: + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + adds r3, r5, 0 + bl sub_800199C + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + adds r3, r6, 0 + bl sub_800199C + cmp r4, 0x4 + beq _08001C76 + cmp r4, 0x4 + bgt _08001C24 + cmp r4, 0x3 + beq _08001C2A + b _08001CBA + .align 2, 0 +_08001C20: .4byte gUnknown_80B72CC +_08001C24: + cmp r4, 0xC + beq _08001CA4 + b _08001CBA +_08001C2A: + subs r0, r5, 0x1 + cmp r0, 0x1A + bhi _08001CBA + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0x8 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08001C48 + movs r0, 0 + bl sub_80976F8 +_08001C48: + movs r0, 0x3 + movs r1, 0xB + movs r2, 0x3 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08001C5E + movs r0, 0x1 + bl sub_80976F8 +_08001C5E: + movs r0, 0x3 + movs r1, 0x11 + movs r2, 0 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08001CBA + movs r0, 0x2 + bl sub_80976F8 + b _08001CBA +_08001C76: + movs r0, 0x4 + movs r1, 0x1F + movs r2, 0 + bl sub_8001CC4 + lsls r0, 24 + cmp r0, 0 + bne _08001C8C + movs r0, 0x4 + bl sub_80976F8 +_08001C8C: + movs r0, 0x4 + movs r1, 0x20 + movs r2, 0 + bl sub_8001CC4 + lsls r0, 24 + cmp r0, 0 + bne _08001CBA + movs r0, 0x5 + bl sub_80976F8 + b _08001CBA +_08001CA4: + movs r0, 0xC + movs r1, 0x37 + movs r2, 0x2 + bl sub_8001CC4 + lsls r0, 24 + cmp r0, 0 + bne _08001CBA + movs r0, 0x3 + bl sub_80976F8 +_08001CBA: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8001BB4 + + thumb_func_start sub_8001CC4 +sub_8001CC4: + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8001784 + adds r5, r0, 0 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_8001784 + cmp r5, 0x3A + beq _08001CFE + cmp r5, r6 + bcc _08001CFA + cmp r7, 0 + blt _08001CFE + cmp r5, r6 + bne _08001CFE + cmp r0, r7 + bge _08001CFE +_08001CFA: + movs r0, 0x1 + b _08001D00 +_08001CFE: + movs r0, 0 +_08001D00: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8001CC4 + + thumb_func_start sub_8001D08 +sub_8001D08: + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8001784 + adds r5, r0, 0 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_8001784 + cmp r5, r6 + bne _08001D3A + cmp r7, 0 + blt _08001D36 + cmp r0, r7 + bne _08001D3A +_08001D36: + movs r0, 0x1 + b _08001D3C +_08001D3A: + movs r0, 0 +_08001D3C: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8001D08 + + thumb_func_start sub_8001D44 +sub_8001D44: + push {r4-r7,lr} + adds r4, r0, 0 + adds r6, r1, 0 + adds r7, r2, 0 + lsls r4, 16 + asrs r4, 16 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0 + bl sub_8001784 + adds r5, r0, 0 + movs r0, 0 + adds r1, r4, 0 + movs r2, 0x1 + bl sub_8001784 + cmp r5, 0x3A + beq _08001D7E + cmp r5, r6 + bhi _08001D7A + cmp r7, 0 + blt _08001D7E + cmp r5, r6 + bne _08001D7E + cmp r0, r7 + ble _08001D7E +_08001D7A: + movs r0, 0x1 + b _08001D80 +_08001D7E: + movs r0, 0 +_08001D80: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8001D44 + + thumb_func_start sub_8001D88 +sub_8001D88: + push {lr} + sub sp, 0x8 + add r2, sp, 0x4 + movs r0, 0x3 + mov r1, sp + bl sub_8001B88 + ldr r0, [sp] + subs r0, 0x1 + cmp r0, 0x1A + bls _08001DA0 + b _080020D4 +_08001DA0: + movs r0, 0x4 + movs r1, 0x1F + movs r2, 0 + bl sub_8001CC4 + lsls r0, 24 + cmp r0, 0 + beq _08001E08 + movs r0, 0x3 + movs r1, 0xF + movs r2, 0x7 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08001DDE + movs r0, 0x4 + movs r1, 0x1F + movs r2, 0 + bl sub_8001BB4 + movs r0, 0xE + movs r1, 0x1 + bl sub_8097418 + movs r0, 0 + movs r1, 0x28 + movs r2, 0x2 + bl sub_80018D8 + b _08001E08 +_08001DDE: + movs r0, 0x4 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08001E08 + movs r0, 0x3 + movs r1, 0xF + movs r2, 0x3 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08001E08 + movs r0, 0x4 + movs r1, 0x1D + movs r2, 0x1 + bl sub_8001BB4 +_08001E08: + movs r0, 0x4 + movs r1, 0x1F + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08001E36 + movs r0, 0xE + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001E36 + movs r0, 0x4 + movs r1, 0x1F + movs r2, 0x1 + bl sub_8001BB4 + movs r0, 0xF + movs r1, 0x1 + bl sub_809733C +_08001E36: + ldr r0, [sp] + cmp r0, 0x11 + bhi _08001E3E + b _080020D4 +_08001E3E: + movs r0, 0x25 + movs r1, 0x1 + bl sub_80973A8 + movs r0, 0xE7 + bl sub_8091130 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08001E72 + ldr r0, _080020DC + ldr r0, [r0] + ldr r1, _080020E0 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + bne _08001E72 + movs r0, 0x5 + movs r1, 0x21 + movs r2, 0x3 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08001E7A +_08001E72: + movs r0, 0x22 + movs r1, 0x1 + bl sub_80973A8 +_08001E7A: + movs r0, 0x2B + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001E8E + movs r0, 0x1F + movs r1, 0x1 + bl sub_80973A8 +_08001E8E: + movs r0, 0x24 + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001EA2 + movs r0, 0x20 + movs r1, 0x1 + bl sub_80973A8 +_08001EA2: + movs r0, 0x23 + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001EB6 + movs r0, 0x21 + movs r1, 0x1 + bl sub_80973A8 +_08001EB6: + movs r0, 0x19 + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001ECA + movs r0, 0x23 + movs r1, 0x1 + bl sub_80973A8 +_08001ECA: + movs r0, 0x3 + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001EE6 + movs r0, 0x24 + movs r1, 0x1 + bl sub_80973A8 + movs r0, 0x28 + movs r1, 0x1 + bl sub_80973A8 +_08001EE6: + movs r0, 0x2C + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001F06 + movs r0, 0x2D + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001F06 + movs r0, 0x26 + movs r1, 0x1 + bl sub_80973A8 +_08001F06: + movs r0, 0x5 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08001F20 + movs r0, 0x5 + movs r1, 0x21 + movs r2, 0x1 + bl sub_8001BB4 +_08001F20: + movs r0, 0xE2 + bl sub_8091130 + movs r1, 0x1 + negs r1, r1 + cmp r0, r1 + bne _08001F3E + ldr r0, _080020DC + ldr r0, [r0] + movs r1, 0x85 + lsls r1, 2 + adds r0, r1 + ldrh r0, [r0] + cmp r0, 0 + beq _08001F7E +_08001F3E: + movs r0, 0x7 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08001F58 + movs r0, 0x7 + movs r1, 0x26 + movs r2, 0x1 + bl sub_8001BB4 +_08001F58: + movs r0, 0x9 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08001F7E + movs r0, 0x37 + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08001F7E + movs r0, 0x9 + movs r1, 0x2E + movs r2, 0x1 + bl sub_8001BB4 +_08001F7E: + movs r0, 0x9 + movs r1, 0x30 + movs r2, 0 + bl sub_8001CC4 + lsls r0, 24 + cmp r0, 0 + bne _0800202A + movs r0, 0x5 + movs r1, 0x22 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08001FCC + movs r0, 0x90 + bl sub_808E734 + lsls r0, 24 + cmp r0, 0 + beq _08001FCC + movs r0, 0x91 + bl sub_808E734 + lsls r0, 24 + cmp r0, 0 + beq _08001FCC + movs r0, 0x92 + bl sub_808E734 + lsls r0, 24 + cmp r0, 0 + beq _08001FCC + movs r0, 0x5 + movs r1, 0x22 + movs r2, 0x1 + bl sub_8001BB4 +_08001FCC: + movs r0, 0xB + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08002002 + movs r0, 0x5 + movs r1, 0x21 + movs r2, 0x3 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08002002 + movs r0, 0xE + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08002002 + movs r0, 0xB + movs r1, 0x33 + movs r2, 0x1 + bl sub_8001BB4 +_08002002: + movs r0, 0xE + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _08002016 + movs r0, 0x27 + movs r1, 0x1 + bl sub_80973A8 +_08002016: + movs r0, 0xE + bl sub_8092600 + lsls r0, 24 + cmp r0, 0 + beq _0800202A + movs r0, 0x29 + movs r1, 0x1 + bl sub_80973A8 +_0800202A: + movs r0, 0x5 + movs r1, 0x22 + movs r2, 0 + bl sub_8001CC4 + lsls r0, 24 + cmp r0, 0 + bne _08002086 + movs r0, 0xA + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _0800205C + movs r0, 0xA + movs r1, 0x31 + movs r2, 0x1 + bl sub_8001BB4 + movs r0, 0x1B + movs r1, 0x1 + bl sub_809733C +_0800205C: + movs r0, 0xC + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08002086 + movs r0, 0xB + movs r1, 0x34 + movs r2, 0 + bl sub_8001CC4 + lsls r0, 24 + cmp r0, 0 + bne _08002086 + movs r0, 0xC + movs r1, 0x35 + movs r2, 0x1 + bl sub_8001BB4 +_08002086: + movs r0, 0x6 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _080020AE + movs r0, 0x89 + lsls r0, 1 + bl sub_808E734 + lsls r0, 24 + cmp r0, 0 + beq _080020AE + movs r0, 0x6 + movs r1, 0x24 + movs r2, 0x1 + bl sub_8001BB4 +_080020AE: + movs r0, 0x8 + movs r1, 0 + movs r2, 0 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _080020D4 + ldr r0, _080020E4 + bl sub_808E734 + lsls r0, 24 + cmp r0, 0 + beq _080020D4 + movs r0, 0x8 + movs r1, 0x2C + movs r2, 0x1 + bl sub_8001BB4 +_080020D4: + add sp, 0x8 + pop {r0} + bx r0 + .align 2, 0 +_080020DC: .4byte gUnknown_203B460 +_080020E0: .4byte 0x0000021e +_080020E4: .4byte 0x00000113 + thumb_func_end sub_8001D88 + + thumb_func_start sub_80020E8 +sub_80020E8: + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + cmp r2, 0xB + bhi _08002182 + lsls r0, r2, 2 + ldr r1, _080020FC + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080020FC: .4byte _08002100 + .align 2, 0 +_08002100: + .4byte _08002130 + .4byte _08002134 + .4byte _08002138 + .4byte _0800213C + .4byte _08002142 + .4byte _0800214C + .4byte _08002156 + .4byte _0800215C + .4byte _08002162 + .4byte _08002168 + .4byte _08002170 + .4byte _0800217A +_08002130: + adds r0, r4, 0 + b _08002194 +_08002134: + subs r0, r3, r4 + b _08002194 +_08002138: + adds r0, r3, r4 + b _08002194 +_0800213C: + adds r0, r3, 0 + muls r0, r4 + b _08002194 +_08002142: + adds r0, r3, 0 + adds r1, r4, 0 + bl __divsi3 + b _08002194 +_0800214C: + adds r0, r3, 0 + adds r1, r4, 0 + bl __modsi3 + b _08002194 +_08002156: + ands r3, r4 + adds r0, r3, 0 + b _08002194 +_0800215C: + orrs r3, r4 + adds r0, r3, 0 + b _08002194 +_08002162: + eors r3, r4 + adds r0, r3, 0 + b _08002194 +_08002168: + movs r0, 0x1 + lsls r0, r4 + orrs r0, r3 + b _08002194 +_08002170: + movs r0, 0x1 + lsls r0, r4 + bics r3, r0 + adds r0, r3, 0 + b _08002194 +_0800217A: + adds r0, r4, 0 + bl OtherRandomCapped + b _08002194 +_08002182: + ldr r0, _0800218C + ldr r1, _08002190 + bl FatalError + .align 2, 0 +_0800218C: .4byte gUnknown_80B7318 +_08002190: .4byte gUnknown_80B7324 +_08002194: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80020E8 + + thumb_func_start sub_800219C +sub_800219C: + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + cmp r2, 0xA + bhi _08002248 + lsls r0, r2, 2 + ldr r1, _080021B0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080021B0: .4byte _080021B4 + .align 2, 0 +_080021B4: + .4byte _080021E0 + .4byte _080021E4 + .4byte _080021E8 + .4byte _080021FE + .4byte _08002212 + .4byte _08002208 + .4byte _0800221C + .4byte _080021F2 + .4byte _08002226 + .4byte _08002232 + .4byte _0800223E +_080021E0: + movs r0, 0x1 + b _08002258 +_080021E4: + movs r0, 0 + b _08002258 +_080021E8: + movs r0, 0 + cmp r3, r4 + bne _08002258 + movs r0, 0x1 + b _08002258 +_080021F2: + adds r1, r3, 0 + eors r1, r4 + negs r0, r1 + orrs r0, r1 + lsrs r0, 31 + b _08002258 +_080021FE: + movs r0, 0 + cmp r3, r4 + ble _08002258 + movs r0, 0x1 + b _08002258 +_08002208: + movs r0, 0 + cmp r3, r4 + blt _08002258 + movs r0, 0x1 + b _08002258 +_08002212: + movs r0, 0 + cmp r3, r4 + bge _08002258 + movs r0, 0x1 + b _08002258 +_0800221C: + movs r0, 0 + cmp r3, r4 + bgt _08002258 + movs r0, 0x1 + b _08002258 +_08002226: + adds r0, r3, 0 + ands r0, r4 + cmp r0, 0 + beq _08002258 + movs r0, 0x1 + b _08002258 +_08002232: + adds r0, r3, 0 + eors r0, r4 + cmp r0, 0 + beq _08002258 + movs r0, 0x1 + b _08002258 +_0800223E: + asrs r3, r4 + movs r0, 0x1 + ands r3, r0 + adds r0, r3, 0 + b _08002258 +_08002248: + ldr r0, _08002250 + ldr r1, _08002254 + bl FatalError + .align 2, 0 +_08002250: .4byte gUnknown_80B7350 +_08002254: .4byte gUnknown_80B735C +_08002258: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_800219C + + thumb_func_start sub_8002260 +sub_8002260: + push {lr} + bl sub_80020E8 + pop {r1} + bx r1 + thumb_func_end sub_8002260 + + thumb_func_start sub_800226C +sub_800226C: + push {r4-r6,lr} + mov r6, r8 + push {r6} + mov r8, r0 + adds r4, r1, 0 + adds r5, r2, 0 + adds r6, r3, 0 + lsls r4, 16 + asrs r4, 16 + adds r1, r4, 0 + bl sub_8001658 + adds r1, r5, 0 + adds r2, r6, 0 + bl sub_80020E8 + adds r2, r0, 0 + mov r0, r8 + adds r1, r4, 0 + bl sub_80018D8 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_800226C + + thumb_func_start sub_80022A0 +sub_80022A0: + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + mov r8, r0 + adds r5, r1, 0 + adds r4, r2, 0 + mov r9, r3 + lsls r5, 16 + asrs r5, 16 + lsls r4, 16 + asrs r4, 16 + adds r1, r5, 0 + bl sub_8001658 + adds r6, r0, 0 + mov r0, r8 + adds r1, r4, 0 + bl sub_8001658 + adds r1, r0, 0 + adds r0, r6, 0 + mov r2, r9 + bl sub_80020E8 + adds r2, r0, 0 + mov r0, r8 + adds r1, r5, 0 + bl sub_80018D8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80022A0 + + thumb_func_start sub_80022E8 +sub_80022E8: + push {lr} + bl sub_800219C + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80022E8 + + thumb_func_start sub_80022F8 +sub_80022F8: + push {r4,r5,lr} + adds r4, r2, 0 + adds r5, r3, 0 + lsls r1, 16 + asrs r1, 16 + bl sub_8001658 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_800219C + lsls r0, 24 + lsrs r0, 24 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80022F8 + + thumb_func_start sub_8002318 +sub_8002318: + push {r4-r6,lr} + mov r6, r8 + push {r6} + adds r6, r0, 0 + adds r4, r2, 0 + mov r8, r3 + lsls r1, 16 + asrs r1, 16 + lsls r4, 16 + asrs r4, 16 + bl sub_8001658 + adds r5, r0, 0 + adds r0, r6, 0 + adds r1, r4, 0 + bl sub_8001658 + adds r1, r0, 0 + adds r0, r5, 0 + mov r2, r8 + bl sub_800219C + lsls r0, 24 + lsrs r0, 24 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_8002318 + + thumb_func_start sub_8002354 +sub_8002354: + push {lr} + adds r1, r0, 0 + cmp r1, 0x3A + bls _08002362 + movs r0, 0x1 + negs r0, r0 + b _0800236C +_08002362: + ldr r0, _08002370 + lsls r1, 3 + adds r0, 0x4 + adds r1, r0 + ldr r0, [r1] +_0800236C: + pop {r1} + bx r1 + .align 2, 0 +_08002370: .4byte gUnknown_80B6D90 + thumb_func_end sub_8002354 + + thumb_func_start sub_8002374 +sub_8002374: + push {lr} + adds r1, r0, 0 + cmp r1, 0x3A + bls _08002384 + ldr r0, _08002380 + b _0800238C + .align 2, 0 +_08002380: .4byte gUnknown_80B7378 +_08002384: + ldr r0, _08002390 + lsls r1, 3 + adds r1, r0 + ldr r0, [r1] +_0800238C: + pop {r1} + bx r1 + .align 2, 0 +_08002390: .4byte gUnknown_80B6D90 + thumb_func_end sub_8002374 + + thumb_func_start sub_8002394 +sub_8002394: + push {lr} + adds r1, r0, 0 + subs r1, 0x12 + cmp r1, 0x8 + bhi _080023AC + ldr r0, _080023A8 + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] + b _080023BA + .align 2, 0 +_080023A8: .4byte gUnknown_80B714C +_080023AC: + cmp r0, 0xF + beq _080023B8 + ldr r0, _080023B4 + b _080023BA + .align 2, 0 +_080023B4: .4byte gUnknown_80B7144 +_080023B8: + ldr r0, _080023C0 +_080023BA: + pop {r1} + bx r1 + .align 2, 0 +_080023C0: .4byte gUnknown_80B7388 + thumb_func_end sub_8002394 + + thumb_func_start sub_80023C4 +sub_80023C4: + push {lr} + adds r1, r0, 0 + cmp r1, 0x3 + bls _080023D4 + ldr r0, _080023D0 + b _080023DC + .align 2, 0 +_080023D0: .4byte gUnknown_80B7144 +_080023D4: + ldr r0, _080023E0 + lsls r1, 2 + adds r1, r0 + ldr r0, [r1] +_080023DC: + pop {r1} + bx r1 + .align 2, 0 +_080023E0: .4byte gUnknown_80B71A0 + thumb_func_end sub_80023C4 + + thumb_func_start sub_80023E4 +sub_80023E4: + push {r4,lr} + cmp r0, 0x1D + bls _080023EC + b _0800264E +_080023EC: + lsls r0, 2 + ldr r1, _080023F8 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080023F8: .4byte _080023FC + .align 2, 0 +_080023FC: + .4byte _08002474 + .4byte _08002482 + .4byte _0800248E + .4byte _0800249A + .4byte _080024A6 + .4byte _080024BE + .4byte _080024E6 + .4byte _080024F4 + .4byte _08002500 + .4byte _0800250C + .4byte _0800251A + .4byte _08002526 + .4byte _08002532 + .4byte _0800255A + .4byte _08002566 + .4byte _0800257A + .4byte _0800258E + .4byte _0800259C + .4byte _080025AA + .4byte _080025B8 + .4byte _080025C6 + .4byte _080025D4 + .4byte _080025E2 + .4byte _080025F0 + .4byte _080025FE + .4byte _0800260C + .4byte _0800261A + .4byte _08002628 + .4byte _08002630 + .4byte _08002644 +_08002474: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0x2 + bl sub_8001D44 + b _08002648 +_08002482: + movs r0, 0x3 + movs r1, 0x3 + movs r2, 0x3 + bl sub_8001D44 + b _08002648 +_0800248E: + movs r0, 0x3 + movs r1, 0x4 + movs r2, 0x3 + bl sub_8001D44 + b _08002648 +_0800249A: + movs r0, 0x3 + movs r1, 0x5 + movs r2, 0 + bl sub_8001D44 + b _08002648 +_080024A6: + movs r4, 0 + movs r0, 0x3 + movs r1, 0xB + movs r2, 0 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08002556 + movs r0, 0x3 + movs r1, 0xD + b _080024D4 +_080024BE: + movs r4, 0 + movs r0, 0x3 + movs r1, 0xB + movs r2, 0x3 + bl sub_8001D44 + lsls r0, 24 + cmp r0, 0 + beq _08002556 + movs r0, 0x3 + movs r1, 0xF +_080024D4: + movs r2, 0 + bl sub_8001CC4 + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 + b _08002556 +_080024E6: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0x11 + bl sub_8001D44 + b _08002648 +_080024F4: + movs r0, 0x3 + movs r1, 0x12 + movs r2, 0x2 + bl sub_8001D44 + b _08002648 +_08002500: + movs r0, 0x3 + movs r1, 0x12 + movs r2, 0x3 + bl sub_8001D44 + b _08002648 +_0800250C: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0x12 + bl sub_8001D44 + b _08002648 +_0800251A: + movs r0, 0x3 + movs r1, 0x5 + movs r2, 0x4 + bl sub_8001D44 + b _08002648 +_08002526: + movs r0, 0x3 + movs r1, 0x5 + movs r2, 0x4 + bl sub_8001D44 + b _08002648 +_08002532: + movs r4, 0 + movs r0, 0x3 + movs r1, 0xB + movs r2, 0x2 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + bne _08002556 + movs r0, 0x3 + movs r1, 0xB + movs r2, 0x3 + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + bne _08002556 + movs r4, 0x1 +_08002556: + adds r0, r4, 0 + b _08002650 +_0800255A: + movs r0, 0x3 + movs r1, 0x10 + movs r2, 0x2 + bl sub_8001D08 + b _08002648 +_08002566: + movs r0, 0x3 + movs r1, 0x5 + movs r2, 0x7 + bl sub_8001CC4 + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _08002640 + b _0800263E +_0800257A: + movs r0, 0x3 + movs r1, 0xF + movs r2, 0 + bl sub_8001CC4 + movs r1, 0 + lsls r0, 24 + cmp r0, 0 + bne _08002640 + b _0800263E +_0800258E: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0x7 + bl sub_8001D44 + b _08002648 +_0800259C: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0xC + bl sub_8001D44 + b _08002648 +_080025AA: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0xD + bl sub_8001D44 + b _08002648 +_080025B8: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0xF + bl sub_8001D44 + b _08002648 +_080025C6: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0x10 + bl sub_8001D44 + b _08002648 +_080025D4: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x5 + movs r1, 0x21 + bl sub_8001D44 + b _08002648 +_080025E2: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x5 + movs r1, 0x22 + bl sub_8001D44 + b _08002648 +_080025F0: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x6 + movs r1, 0x24 + bl sub_8001D44 + b _08002648 +_080025FE: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x7 + movs r1, 0x2A + bl sub_8001D44 + b _08002648 +_0800260C: + movs r2, 0x1 + negs r2, r2 + movs r0, 0x8 + movs r1, 0x2C + bl sub_8001D44 + b _08002648 +_0800261A: + movs r2, 0x1 + negs r2, r2 + movs r0, 0xA + movs r1, 0x31 + bl sub_8001D44 + b _08002648 +_08002628: + movs r0, 0x29 + bl sub_80973F4 + b _08002648 +_08002630: + bl sub_8092178 + movs r1, 0 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x6 + bne _08002640 +_0800263E: + movs r1, 0x1 +_08002640: + adds r0, r1, 0 + b _08002650 +_08002644: + bl sub_809761C +_08002648: + lsls r0, 24 + lsrs r0, 24 + b _08002650 +_0800264E: + movs r0, 0 +_08002650: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80023E4 + + thumb_func_start sub_8002658 +sub_8002658: + push {r4,r5,lr} + lsls r0, 16 + asrs r4, r0, 16 + ldr r1, _0800267C + ldrh r2, [r1] + movs r3, 0 + ldrsh r0, [r1, r3] + movs r3, 0x1 + negs r3, r3 + cmp r0, r3 + beq _0800268C +_0800266E: + lsls r0, r2, 16 + asrs r0, 16 + cmp r0, r4 + bne _08002680 + ldrb r0, [r1, 0x2] + b _0800268E + .align 2, 0 +_0800267C: .4byte gUnknown_80B71E4 +_08002680: + adds r1, 0x4 + ldrh r2, [r1] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, r3 + bne _0800266E +_0800268C: + movs r0, 0 +_0800268E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8002658 + + thumb_func_start sub_8002694 +sub_8002694: + push {r4,lr} + lsls r0, 24 + lsrs r3, r0, 24 + ldr r1, _080026B4 + movs r2, 0 + ldrsh r0, [r1, r2] + movs r2, 0x1 + negs r2, r2 + cmp r0, r2 + beq _080026C2 +_080026A8: + ldrb r0, [r1, 0x2] + cmp r0, r3 + bne _080026B8 + movs r4, 0 + ldrsh r0, [r1, r4] + b _080026C6 + .align 2, 0 +_080026B4: .4byte gUnknown_80B71E4 +_080026B8: + adds r1, 0x4 + movs r4, 0 + ldrsh r0, [r1, r4] + cmp r0, r2 + bne _080026A8 +_080026C2: + movs r0, 0x1 + negs r0, r0 +_080026C6: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002694 + + thumb_func_start sub_80026CC +sub_80026CC: + push {lr} + lsls r0, 16 + asrs r0, 16 + bl sub_8002658 + lsls r0, 24 + lsrs r0, 24 + bl sub_8092600 + lsls r0, 24 + lsrs r0, 24 + pop {r1} + bx r1 + thumb_func_end sub_80026CC + + thumb_func_start sub_80026E8 +sub_80026E8: + push {lr} + lsls r0, 16 + asrs r0, 16 + bl sub_8002658 + lsls r0, 24 + lsrs r0, 24 + bl sub_80925EC + pop {r0} + bx r0 + thumb_func_end sub_80026E8 + + thumb_func_start sub_8002700 +sub_8002700: + push {lr} + ldr r1, _08002714 + movs r2, 0x80 + lsls r2, 3 + bl MemoryCopy8 + movs r0, 0x1 + pop {r1} + bx r1 + .align 2, 0 +_08002714: .4byte gUnknown_2000A88 + thumb_func_end sub_8002700 + + thumb_func_start sub_8002718 +sub_8002718: + push {r4,lr} + sub sp, 0x8 + adds r4, r0, 0 + mov r0, sp + movs r1, 0 + movs r2, 0 + bl sub_800160C + ldr r0, _08002748 + movs r2, 0x80 + lsls r2, 3 + adds r1, r4, 0 + bl MemoryCopy8 + ldr r0, [sp] + movs r2, 0xA + ldrsh r1, [r0, r2] + ldr r0, [sp, 0x4] + ldr r0, [r0] + cmp r1, r0 + bne _0800274C + movs r0, 0x1 + b _0800274E + .align 2, 0 +_08002748: .4byte gUnknown_2000A88 +_0800274C: + movs r0, 0 +_0800274E: + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8002718 + + thumb_func_start sub_8002758 +sub_8002758: + push {lr} + adds r2, r0, 0 + movs r0, 0 + movs r1, 0x1 + movs r3, 0x9 + bl sub_800226C + pop {r0} + bx r0 + thumb_func_end sub_8002758 + + thumb_func_start sub_800276C +sub_800276C: + movs r0, 0 + bx lr + thumb_func_end sub_800276C + + thumb_func_start nullsub_140 +nullsub_140: + bx lr + thumb_func_end nullsub_140 + + .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index a5403f2..451c221 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -35,6 +35,8 @@ SECTIONS { { asm/crt0.o(.text); asm/code.o(.text); + asm/event_flag.o(.text); + asm/code_8002774.o(.text); asm/memory.o(.text); asm/code_80035F0.o(.text); src/other_random.o(.text); |