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