.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_0806FA6C sub_0806FA6C: @ 0x0806FA6C push {lr} adds r2, r0, #0 adds r2, #0x62 ldrb r2, [r2] adds r3, r1, #0 adds r3, #0x62 strb r2, [r3] adds r2, r0, #0 adds r2, #0x63 ldrb r2, [r2] adds r3, #1 strb r2, [r3] movs r2, #0 movs r3, #0 bl PositionRelative pop {pc} .align 2, 0 thumb_func_start sub_0806FA90 sub_0806FA90: @ 0x0806FA90 push {r4, r5, lr} adds r4, r0, #0 adds r4, #0x62 ldrb r4, [r4] movs r5, #0x62 strb r4, [r5, r1] adds r4, r0, #0 adds r4, #0x63 ldrb r4, [r4] movs r5, #0x63 strb r4, [r5, r1] lsls r2, r2, #0x10 lsls r3, r3, #0x10 bl PositionRelative pop {r4, r5, pc} thumb_func_start sub_0806FAB0 sub_0806FAB0: @ 0x0806FAB0 ldr r2, _0806FAD4 @ =gUnk_08114F78 adds r0, #0x29 ldrb r0, [r0] lsls r0, r0, #0x1d lsrs r0, r0, #0x1d adds r0, r0, r2 ldrb r0, [r0] adds r1, #0x29 movs r2, #7 ands r2, r0 ldrb r3, [r1] movs r0, #8 rsbs r0, r0, #0 ands r0, r3 orrs r0, r2 strb r0, [r1] bx lr .align 2, 0 _0806FAD4: .4byte gUnk_08114F78 thumb_func_start sub_0806FAD8 sub_0806FAD8: @ 0x0806FAD8 ldr r2, _0806FAFC @ =gUnk_08114F80 adds r0, #0x29 ldrb r0, [r0] lsls r0, r0, #0x1d lsrs r0, r0, #0x1d adds r0, r0, r2 ldrb r0, [r0] adds r1, #0x29 movs r2, #7 ands r2, r0 ldrb r3, [r1] movs r0, #8 rsbs r0, r0, #0 ands r0, r3 orrs r0, r2 strb r0, [r1] bx lr .align 2, 0 _0806FAFC: .4byte gUnk_08114F80 thumb_func_start sub_0806FB00 sub_0806FB00: @ 0x0806FB00 push {r4, lr} mov ip, r0 adds r4, r1, #0 cmp r3, #0 bne _0806FB0C movs r3, #1 _0806FB0C: mov r1, ip adds r1, #0x7e movs r0, #0 strb r0, [r1] mov r0, ip adds r0, #0x7f strb r3, [r0] mov r0, ip ldrh r1, [r0, #0x2e] adds r0, #0x80 strh r1, [r0] mov r1, ip ldrh r0, [r1, #0x32] adds r1, #0x82 strh r0, [r1] mov r0, ip adds r0, #0x84 strh r4, [r0] adds r0, #2 strh r2, [r0] pop {r4, pc} .align 2, 0 thumb_func_start sub_0806FB38 sub_0806FB38: @ 0x0806FB38 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r5, #0 adds r6, #0x7e adds r7, r5, #0 adds r7, #0x7f ldrb r0, [r6] ldrb r1, [r7] cmp r0, r1 bhs _0806FBA0 adds r0, #1 strb r0, [r6] adds r0, r5, #0 adds r0, #0x84 movs r2, #0 ldrsh r1, [r0, r2] adds r4, r5, #0 adds r4, #0x80 movs r2, #0 ldrsh r0, [r4, r2] subs r1, r1, r0 ldrb r0, [r6] muls r0, r1, r0 lsls r0, r0, #8 ldrb r1, [r7] bl __divsi3 asrs r0, r0, #8 ldrh r4, [r4] adds r0, r0, r4 strh r0, [r5, #0x2e] adds r0, r5, #0 adds r0, #0x86 movs r2, #0 ldrsh r1, [r0, r2] adds r4, r5, #0 adds r4, #0x82 movs r2, #0 ldrsh r0, [r4, r2] subs r1, r1, r0 ldrb r0, [r6] muls r0, r1, r0 lsls r0, r0, #8 ldrb r1, [r7] bl __divsi3 asrs r0, r0, #8 ldrh r4, [r4] adds r0, r0, r4 strh r0, [r5, #0x32] movs r0, #0 b _0806FBB2 _0806FBA0: adds r0, r5, #0 adds r0, #0x84 ldrh r0, [r0] strh r0, [r5, #0x2e] adds r0, r5, #0 adds r0, #0x86 ldrh r0, [r0] strh r0, [r5, #0x32] movs r0, #1 _0806FBB2: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0806FBB4 sub_0806FBB4: @ 0x0806FBB4 push {lr} adds r1, r0, #0 ldr r0, _0806FBD0 @ =gUnk_030010A0 ldrb r0, [r0, #5] cmp r0, #0 bne _0806FBC8 ldr r0, _0806FBD4 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _0806FBCC _0806FBC8: movs r0, #6 strb r0, [r1, #0xd] _0806FBCC: pop {pc} .align 2, 0 _0806FBD0: .4byte gUnk_030010A0 _0806FBD4: .4byte gUnk_03003F80 thumb_func_start sub_0806FBD8 sub_0806FBD8: @ 0x0806FBD8 push {r4, lr} adds r4, r0, #0 bl sub_0806FBEC movs r0, #0xc bl sub_0801D8E0 str r0, [r4, #0x48] pop {r4, pc} .align 2, 0 thumb_func_start sub_0806FBEC sub_0806FBEC: @ 0x0806FBEC push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x48] bl sub_0801DA0C movs r0, #0 str r0, [r4, #0x48] pop {r4, pc} thumb_func_start sub_0806FBFC sub_0806FBFC: @ 0x0806FBFC push {r4, r5, r6, lr} adds r5, r3, #0 ldr r4, _0806FC20 @ =gLinkEntity movs r6, #0x2e ldrsh r3, [r4, r6] subs r3, r3, r0 movs r6, #0x32 ldrsh r0, [r4, r6] subs r0, r0, r1 movs r1, #0 cmp r3, r2 bhs _0806FC1A cmp r0, r5 bhs _0806FC1A movs r1, #1 _0806FC1A: adds r0, r1, #0 pop {r4, r5, r6, pc} .align 2, 0 _0806FC20: .4byte gLinkEntity thumb_func_start sub_0806FC24 sub_0806FC24: @ 0x0806FC24 push {r4, lr} adds r4, r1, #0 ldr r1, _0806FC44 @ =gUnk_080046A4 bl sub_08007DD6 cmp r0, #0 beq _0806FC4C lsls r0, r0, #3 ldr r1, _0806FC48 @ =gUnk_080047F6 adds r0, r0, r1 ldrh r0, [r0] asrs r0, r4 movs r1, #1 ands r0, r1 b _0806FC4E .align 2, 0 _0806FC44: .4byte gUnk_080046A4 _0806FC48: .4byte gUnk_080047F6 _0806FC4C: movs r0, #0 _0806FC4E: pop {r4, pc} thumb_func_start sub_0806FC50 sub_0806FC50: @ 0x0806FC50 push {r4, lr} adds r4, r1, #0 ldr r1, _0806FC74 @ =gUnk_080046A4 bl sub_08007DD6 cmp r0, #0 beq _0806FC70 ldr r1, _0806FC78 @ =gUnk_080047F6 lsls r0, r0, #3 adds r2, r0, r1 ldrh r0, [r2] asrs r0, r4 movs r1, #1 ands r0, r1 cmp r0, #0 bne _0806FC7C _0806FC70: movs r0, #0 b _0806FC7E .align 2, 0 _0806FC74: .4byte gUnk_080046A4 _0806FC78: .4byte gUnk_080047F6 _0806FC7C: adds r0, r2, #0 _0806FC7E: pop {r4, pc} thumb_func_start sub_0806FC80 sub_0806FC80: @ 0x0806FC80 push {r4, r5, lr} lsls r4, r2, #4 movs r2, #0x2e ldrsh r3, [r1, r2] movs r5, #0x32 ldrsh r2, [r1, r5] adds r1, r3, #0 bl sub_080041DC cmp r4, r0 bhs _0806FC9A movs r0, #0 b _0806FC9C _0806FC9A: movs r0, #1 _0806FC9C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0806FCA0 sub_0806FCA0: @ 0x0806FCA0 push {lr} bl sub_080045C4 bl sub_0806F5A4 pop {pc} thumb_func_start sub_0806FCAC sub_0806FCAC: @ 0x0806FCAC push {lr} bl sub_080045C4 bl sub_0806F5B0 pop {pc} thumb_func_start sub_0806FCB8 sub_0806FCB8: @ 0x0806FCB8 push {r4, r5, lr} adds r4, r0, #0 movs r5, #0x2e ldrsh r0, [r4, r5] subs r0, r0, r1 movs r5, #0x32 ldrsh r1, [r4, r5] subs r1, r1, r2 adds r2, r3, #0 bl sub_0806FCD0 pop {r4, r5, pc} thumb_func_start sub_0806FCD0 sub_0806FCD0: @ 0x0806FCD0 push {r4, lr} movs r3, #0 adds r4, r2, #0 muls r4, r2, r4 adds r2, r4, #0 adds r4, r0, #0 muls r4, r0, r4 adds r0, r4, #0 adds r4, r1, #0 muls r4, r1, r4 adds r1, r4, #0 adds r0, r0, r1 cmp r2, r0 blt _0806FCEE movs r3, #1 _0806FCEE: adds r0, r3, #0 pop {r4, pc} .align 2, 0 thumb_func_start sub_0806FCF4 sub_0806FCF4: @ 0x0806FCF4 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r2, #0 adds r5, r3, #0 movs r2, #0 cmp r1, #0 bge _0806FD04 rsbs r1, r1, #0 _0806FD04: cmp r4, #0 beq _0806FD1A movs r0, #0x80 lsls r0, r0, #9 bl __divsi3 adds r1, r0, #0 adds r0, r4, #0 muls r0, r1, r0 lsrs r1, r0, #8 subs r2, r4, r1 _0806FD1A: cmp r5, #0 beq _0806FD22 cmp r5, #3 bne _0806FD24 _0806FD22: rsbs r2, r2, #0 _0806FD24: cmp r5, #0 beq _0806FD2C cmp r5, #2 bne _0806FD32 _0806FD2C: adds r0, r6, #0 adds r0, #0x63 b _0806FD36 _0806FD32: adds r0, r6, #0 adds r0, #0x62 _0806FD36: strb r2, [r0] pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_0806FD3C sub_0806FD3C: @ 0x0806FD3C ldrb r2, [r0, #0x18] movs r1, #0x31 rsbs r1, r1, #0 ands r1, r2 strb r1, [r0, #0x18] adds r0, #0x29 ldrb r2, [r0] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 strb r1, [r0] bx lr thumb_func_start sub_0806FD54 sub_0806FD54: @ 0x0806FD54 push {r4, lr} adds r3, r0, #0 ldr r0, _0806FD6C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #0x10 ands r0, r1 cmp r0, #0 bne _0806FD70 movs r0, #0 b _0806FD84 .align 2, 0 _0806FD6C: .4byte gUnk_03003F80 _0806FD70: ldr r0, _0806FD88 @ =gLinkEntity movs r2, #0x2e ldrsh r1, [r0, r2] movs r4, #0x32 ldrsh r2, [r0, r4] subs r2, #9 adds r0, r3, #0 movs r3, #0x48 bl sub_0806FCB8 _0806FD84: pop {r4, pc} .align 2, 0 _0806FD88: .4byte gLinkEntity thumb_func_start sub_0806FD8C sub_0806FD8C: @ 0x0806FD8C push {lr} ldr r0, _0806FD9C @ =gUnk_020000C0 movs r1, #0xc0 lsls r1, r1, #4 bl sub_0801D630 pop {pc} .align 2, 0 _0806FD9C: .4byte gUnk_020000C0 thumb_func_start sub_0806FDA0 sub_0806FDA0: @ 0x0806FDA0 push {r4, lr} movs r3, #1 ldr r1, _0806FDD8 @ =gUnk_020000C0 movs r4, #0xff movs r2, #0x61 adds r2, r2, r1 mov ip, r2 adds r2, r1, #0 adds r2, #0x40 adds r1, r0, #0 adds r1, #0x28 _0806FDB6: ldrb r0, [r2] lsls r0, r0, #0x1f cmp r0, #0 bne _0806FDDC strb r3, [r1] ldrb r0, [r2] movs r1, #1 orrs r0, r1 strb r0, [r2] strb r4, [r2, #1] strb r4, [r2, #0x11] mov r0, ip strb r4, [r0] strb r4, [r0, #0x10] movs r0, #1 b _0806FDEA .align 2, 0 _0806FDD8: .4byte gUnk_020000C0 _0806FDDC: movs r0, #0x40 add ip, r0 adds r2, #0x40 adds r3, #1 cmp r3, #0x2f bls _0806FDB6 movs r0, #0 _0806FDEA: pop {r4, pc} thumb_func_start sub_0806FDEC sub_0806FDEC: @ 0x0806FDEC push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 adds r4, r1, #0 bl sub_0806FDA0 cmp r0, #0 bne _0806FE02 movs r0, #0 b _0806FE74 _0806FE02: adds r0, r6, #0 bl sub_0801D230 adds r0, r6, #0 adds r0, #0x28 ldrb r0, [r0] lsls r0, r0, #6 ldr r1, _0806FE7C @ =gUnk_020000C0 adds r5, r0, r1 movs r7, #0 ldrh r1, [r4, #2] ldr r0, _0806FE80 @ =0x000003FF ands r0, r1 movs r1, #0x27 adds r1, r1, r6 mov r8, r1 cmp r0, #0 beq _0806FE6C _0806FE26: ldr r1, [r4] lsls r1, r1, #0x16 lsrs r1, r1, #0x16 adds r0, r6, #0 bl sub_0801D040 adds r2, r0, #0 ldr r3, [r4] lsls r1, r3, #6 lsrs r1, r1, #0x16 lsls r3, r3, #0x10 lsrs r3, r3, #0x1a adds r0, r5, #0 bl sub_0806FEE8 ldrb r1, [r4, #3] movs r0, #4 ands r0, r1 cmp r0, #0 beq _0806FE56 adds r0, r5, #0 adds r1, r6, #0 bl sub_0806FEFC _0806FE56: adds r5, #0x10 adds r4, #4 adds r7, #1 cmp r7, #3 bhi _0806FE6C ldrh r1, [r4, #2] ldr r2, _0806FE80 @ =0x000003FF adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _0806FE26 _0806FE6C: movs r0, #0 mov r1, r8 strb r0, [r1] movs r0, #1 _0806FE74: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0806FE7C: .4byte gUnk_020000C0 _0806FE80: .4byte 0x000003FF thumb_func_start sub_0806FE84 sub_0806FE84: @ 0x0806FE84 push {r4, r5, r6, lr} adds r0, #0x28 ldrb r2, [r0] movs r1, #0 strb r1, [r0] subs r0, r2, #1 cmp r0, #0x7e bhi _0806FEB4 lsls r1, r2, #6 ldr r0, _0806FEB8 @ =gUnk_020000C0 adds r6, r1, r0 movs r5, #0 adds r4, r6, #0 _0806FE9E: ldrb r0, [r4, #5] bl sub_0801D244 adds r4, #0x10 adds r5, #1 cmp r5, #3 bls _0806FE9E adds r0, r6, #0 movs r1, #0x40 bl sub_0801D630 _0806FEB4: pop {r4, r5, r6, pc} .align 2, 0 _0806FEB8: .4byte gUnk_020000C0 thumb_func_start sub_0806FEBC sub_0806FEBC: @ 0x0806FEBC adds r0, #0x28 ldrb r3, [r0] lsls r3, r3, #6 lsls r1, r1, #4 ldr r0, _0806FEE4 @ =gUnk_020000C0 adds r1, r1, r0 adds r3, r3, r1 movs r0, #0 str r0, [r3] str r0, [r3, #4] str r0, [r3, #8] str r2, [r3, #0xc] ldrb r0, [r3] movs r1, #1 orrs r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r3] bx lr .align 2, 0 _0806FEE4: .4byte gUnk_020000C0 thumb_func_start sub_0806FEE8 sub_0806FEE8: @ 0x0806FEE8 strb r3, [r0, #8] strh r1, [r0, #2] strb r2, [r0, #5] ldrb r1, [r0] movs r2, #8 orrs r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0] bx lr thumb_func_start sub_0806FEFC sub_0806FEFC: @ 0x0806FEFC adds r1, #0x60 ldrh r1, [r1] ldrb r2, [r0, #8] adds r1, r1, r2 strh r1, [r0, #0xa] ldrb r1, [r0] movs r2, #4 orrs r1, r2 strb r1, [r0] bx lr thumb_func_start sub_0806FF10 sub_0806FF10: @ 0x0806FF10 push {r4, r5, r6, lr} adds r6, r0, #0 adds r5, r2, #0 adds r0, #0x28 ldrb r2, [r0] lsls r2, r2, #6 lsls r1, r1, #4 ldr r0, _0806FF44 @ =gUnk_020000C0 adds r1, r1, r0 adds r4, r2, r1 adds r0, r5, #0 bl sub_0801D108 ldrb r1, [r4, #5] cmp r1, r0 beq _0806FF40 adds r0, r1, #0 bl sub_0801D244 adds r0, r6, #0 adds r1, r5, #0 bl sub_0801D040 strb r0, [r4, #5] _0806FF40: pop {r4, r5, r6, pc} .align 2, 0 _0806FF44: .4byte gUnk_020000C0 thumb_func_start sub_0806FF48 sub_0806FF48: @ 0x0806FF48 adds r0, #0x28 ldrb r0, [r0] lsls r0, r0, #6 lsls r1, r1, #4 ldr r3, _0806FF5C @ =gUnk_020000C0 adds r1, r1, r3 adds r0, r0, r1 strb r2, [r0, #4] bx lr .align 2, 0 _0806FF5C: .4byte gUnk_020000C0 thumb_func_start sub_0806FF60 sub_0806FF60: @ 0x0806FF60 push {lr} adds r3, r2, #0 adds r0, #0x28 ldrb r0, [r0] lsls r0, r0, #6 ldr r2, _0806FF84 @ =gUnk_020000C0 adds r0, r0, r2 lsls r1, r1, #4 adds r2, r0, r1 ldrb r0, [r2, #1] cmp r0, r3 beq _0806FF82 strb r3, [r2, #1] ldrb r0, [r2] movs r1, #8 orrs r0, r1 strb r0, [r2] _0806FF82: pop {pc} .align 2, 0 _0806FF84: .4byte gUnk_020000C0 thumb_func_start sub_0806FF88 sub_0806FF88: @ 0x0806FF88 push {r4, r5, lr} adds r5, r1, #0 adds r0, #0x28 ldrb r4, [r0] lsls r4, r4, #6 ldr r0, _0806FFB8 @ =gUnk_020000C0 adds r4, r4, r0 lsls r5, r5, #4 adds r5, r4, r5 lsls r2, r2, #4 adds r4, r4, r2 ldrh r0, [r5, #2] ldrb r1, [r5, #1] bl sub_080700C8 ldrb r1, [r5, #6] ldrb r2, [r0] adds r1, r1, r2 strb r1, [r4, #6] ldrb r1, [r5, #7] ldrb r0, [r0, #1] adds r1, r1, r0 strb r1, [r4, #7] pop {r4, r5, pc} .align 2, 0 _0806FFB8: .4byte gUnk_020000C0 thumb_func_start sub_0806FFBC sub_0806FFBC: @ 0x0806FFBC push {r4, lr} adds r0, #0x28 ldrb r0, [r0] lsls r0, r0, #6 lsls r1, r1, #4 ldr r4, _0806FFD4 @ =gUnk_020000C0 adds r1, r1, r4 adds r0, r0, r1 strb r2, [r0, #6] strb r3, [r0, #7] pop {r4, pc} .align 2, 0 _0806FFD4: .4byte gUnk_020000C0 thumb_func_start sub_0806FFD8 sub_0806FFD8: @ 0x0806FFD8 push {r4, r5, lr} adds r5, r1, #0 adds r0, #0x28 ldrb r4, [r0] lsls r4, r4, #6 ldr r0, _08070008 @ =gUnk_020000C0 adds r4, r4, r0 lsls r5, r5, #4 adds r5, r4, r5 lsls r2, r2, #4 adds r4, r4, r2 ldrh r0, [r5, #2] ldrb r1, [r5, #1] bl sub_080700C8 ldrb r1, [r5, #6] ldrb r2, [r0, #2] adds r1, r1, r2 strb r1, [r4, #6] ldrb r1, [r5, #7] ldrb r0, [r0, #3] adds r1, r1, r0 strb r1, [r4, #7] pop {r4, r5, pc} .align 2, 0 _08070008: .4byte gUnk_020000C0 thumb_func_start sub_0807000C sub_0807000C: @ 0x0807000C push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r7, r6, #0 adds r7, #0x28 ldrb r4, [r7] lsls r4, r4, #6 ldr r0, _08070074 @ =gUnk_020000C0 adds r4, r4, r0 adds r0, r4, #0 movs r1, #0 bl sub_0807007C adds r5, r0, #0 adds r0, r4, #0 movs r1, #1 bl sub_0807007C orrs r5, r0 adds r0, r4, #0 movs r1, #2 bl sub_0807007C orrs r5, r0 adds r0, r4, #0 movs r1, #3 bl sub_0807007C orrs r5, r0 cmp r5, #0 beq _08070072 ldr r3, _08070078 @ =gUnk_02024490 adds r2, r6, #0 adds r2, #0x26 ldrb r1, [r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r3 ldrb r1, [r7] strb r1, [r0, #7] ldrb r1, [r2] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r3 ldrb r2, [r0, #4] movs r1, #0xf ands r1, r2 movs r2, #0x30 orrs r1, r2 strb r1, [r0, #4] _08070072: pop {r4, r5, r6, r7, pc} .align 2, 0 _08070074: .4byte gUnk_020000C0 _08070078: .4byte gUnk_02024490 thumb_func_start sub_0807007C sub_0807007C: @ 0x0807007C push {lr} lsls r1, r1, #4 adds r2, r0, r1 ldrb r1, [r2] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080700C4 movs r0, #4 ands r0, r1 cmp r0, #0 beq _080700C4 ldrb r0, [r2, #1] cmp r0, #0xff beq _080700C4 ldrh r0, [r2, #2] lsls r0, r0, #4 ldr r1, _080700C0 @ =gUnk_080029B4 adds r3, r0, r1 ldr r1, [r3, #4] cmp r1, #0 beq _080700C4 ldrb r0, [r2, #1] lsls r0, r0, #2 adds r0, r1, r0 ldrb r1, [r0] strb r1, [r2, #9] ldrh r1, [r0, #2] lsls r1, r1, #5 ldr r0, [r3, #8] adds r0, r0, r1 str r0, [r2, #0xc] movs r0, #1 b _080700C6 .align 2, 0 _080700C0: .4byte gUnk_080029B4 _080700C4: movs r0, #0 _080700C6: pop {pc} thumb_func_start sub_080700C8 sub_080700C8: @ 0x080700C8 lsls r0, r0, #1 ldr r2, _080700E4 @ =gUnk_089FB780 adds r0, r0, r2 ldrh r0, [r0] subs r2, #0x10 adds r0, r0, r2 adds r1, r0, r1 ldrb r0, [r1] lsls r0, r0, #2 adds r0, r0, r2 ldr r1, [r2] adds r0, r1, r0 bx lr .align 2, 0 _080700E4: .4byte gUnk_089FB780 thumb_func_start sub_080700E8 sub_080700E8: @ 0x080700E8 push {lr} ldr r2, _080700FC @ =gUnk_0811B98C ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080700FC: .4byte gUnk_0811B98C thumb_func_start sub_08070100 sub_08070100: @ 0x08070100 push {r4, r5, lr} adds r5, r0, #0 movs r2, #1 movs r3, #1 strb r3, [r5, #0xc] ldrb r1, [r5, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r5, #0x18] ldrb r1, [r5, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #0x10] ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] movs r0, #0x80 lsls r0, r0, #2 strh r0, [r5, #0x24] movs r0, #0x40 str r0, [r5, #0x74] movs r0, #0xf0 lsls r0, r0, #1 str r0, [r5, #0x78] ldr r2, _0807017C @ =gLinkEntity ldr r1, _08070180 @ =gUnk_0811B9A0 ldrb r0, [r5, #0x14] adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r4, [r2, #0x2e] adds r0, r0, r4 strh r0, [r5, #0x2e] ldrb r0, [r5, #0x14] adds r0, #1 adds r0, r0, r1 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r5, #0x32] adds r1, r5, #0 adds r1, #0x3c movs r0, #7 strb r0, [r1] subs r1, #1 movs r0, #0x8a strb r0, [r1] ldr r0, _08070184 @ =gUnk_0811B9D0 str r0, [r5, #0x48] adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #2 bne _08070188 strb r3, [r5, #0xa] b _0807018C .align 2, 0 _0807017C: .4byte gLinkEntity _08070180: .4byte gUnk_0811B9A0 _08070184: .4byte gUnk_0811B9D0 _08070188: movs r0, #0 strb r0, [r5, #0xa] _0807018C: ldrb r1, [r2, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r5, #0x1b] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r5, #0x1b] ldrb r3, [r5, #0x14] lsrs r3, r3, #1 lsls r3, r3, #3 ldr r0, _080701F0 @ =gUnk_0811B9A8 adds r3, r3, r0 ldrb r1, [r3] movs r0, #1 ands r1, r0 lsls r1, r1, #6 ldrb r2, [r5, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] ldrb r1, [r3, #1] lsls r1, r1, #7 movs r2, #0x7f ands r0, r2 orrs r0, r1 strb r0, [r5, #0x18] ldrb r0, [r3, #4] adds r4, r5, #0 adds r4, #0x58 strb r0, [r4] movs r0, #2 ldrsb r0, [r3, r0] str r0, [r5, #0x6c] movs r0, #3 ldrsb r0, [r3, r0] str r0, [r5, #0x70] adds r0, r5, #0 bl sub_0801766C ldrb r1, [r4] adds r0, r5, #0 bl sub_08004260 ldr r0, _080701F4 @ =0x000001DD bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _080701F0: .4byte gUnk_0811B9A8 _080701F4: .4byte 0x000001DD thumb_func_start sub_080701F8 sub_080701F8: @ 0x080701F8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r0, _08070244 @ =gUnk_0811B9C8 ldrb r1, [r5, #0x14] adds r2, r1, r0 movs r6, #0 ldrsb r6, [r2, r6] adds r1, #1 adds r1, r1, r0 movs r7, #0 ldrsb r7, [r1, r7] adds r0, r5, #0 movs r1, #0xa adds r2, r6, #0 adds r3, r7, #0 bl sub_08008782 adds r4, r0, #0 cmp r4, #0 beq _08070248 ldrb r1, [r4, #5] ldrb r2, [r4, #2] movs r0, #0x53 bl CreateObject adds r1, r0, #0 cmp r1, #0 beq _08070260 ldrb r0, [r4, #3] strb r0, [r1, #0xe] ldrh r0, [r5, #0x2e] adds r0, r0, r6 strh r0, [r1, #0x2e] ldrh r0, [r5, #0x32] adds r0, r0, r7 strh r0, [r1, #0x32] b _08070260 .align 2, 0 _08070244: .4byte gUnk_0811B9C8 _08070248: ldr r0, [r5, #0x74] subs r0, #1 str r0, [r5, #0x74] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 beq _08070260 ldr r0, [r5, #0x78] subs r0, #1 str r0, [r5, #0x78] cmp r0, r1 bne _08070268 _08070260: adds r0, r5, #0 bl sub_08070458 b _0807037A _08070268: adds r0, r5, #0 bl sub_08004274 adds r0, r5, #0 bl sub_0806F69C ldrb r0, [r5, #0xa] cmp r0, #0 bne _08070280 adds r0, r5, #0 bl sub_0800451C _08070280: movs r1, #0x2e ldrsh r0, [r5, r1] ldr r7, _08070354 @ =gUnk_03000BF0 ldrh r1, [r7, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r6, #0x3f ands r0, r6 movs r2, #0x32 ldrsh r1, [r5, r2] ldrh r2, [r7, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 ldr r1, _08070358 @ =gLinkEntity adds r1, #0x38 ldrb r1, [r1] movs r2, #0x80 bl sub_080002F0 cmp r0, #0 bne _0807036A ldr r1, _0807035C @ =gUnk_08003E44 movs r3, #0x2e ldrsh r2, [r5, r3] movs r0, #0x32 ldrsh r3, [r5, r0] adds r0, r5, #0 bl sub_080040D8 cmp r0, #0 bne _08070364 adds r0, r5, #0 bl sub_080002B8 cmp r0, #0x19 bne _0807036A movs r0, #4 strb r0, [r5, #0xc] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] ldrh r2, [r5, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 movs r2, #8 orrs r0, r2 strh r0, [r5, #0x2e] ldrh r0, [r5, #0x32] ands r1, r0 orrs r1, r2 strh r1, [r5, #0x32] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 strb r0, [r2] movs r1, #0x2e ldrsh r0, [r5, r1] ldrh r1, [r7, #6] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r6 movs r2, #0x32 ldrsh r1, [r5, r2] ldrh r2, [r7, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 adds r4, r5, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_080001DA str r0, [r5, #0x7c] adds r0, r5, #0 movs r1, #0x14 bl sub_08004260 ldr r0, _08070360 @ =0x00004020 movs r3, #0x2e ldrsh r1, [r5, r3] ldrh r2, [r7, #6] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 movs r3, #0x32 ldrsh r2, [r5, r3] ldrh r3, [r7, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r6 lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r4] bl sub_0800015E b _0807037A .align 2, 0 _08070354: .4byte gUnk_03000BF0 _08070358: .4byte gLinkEntity _0807035C: .4byte gUnk_08003E44 _08070360: .4byte 0x00004020 _08070364: adds r0, r5, #0 bl sub_08070458 _0807036A: adds r0, r5, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0 beq _0807037A adds r0, r5, #0 bl sub_08070458 _0807037A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807037C sub_0807037C: @ 0x0807037C push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r4, #0x5a ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08070394 bl sub_0805E780 _08070394: pop {r4, pc} .align 2, 0 thumb_func_start sub_08070398 sub_08070398: @ 0x08070398 push {r4, lr} adds r4, r0, #0 bl sub_08004274 adds r0, r4, #0 bl sub_0806F69C movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080703B8 bl sub_0805E780 _080703B8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080703BC sub_080703BC: @ 0x080703BC push {r4, r5, lr} adds r4, r0, #0 bl sub_08004274 movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08070404 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r5, #0x32 ldrsh r1, [r4, r5] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080001DA adds r1, r0, #0 ldr r0, _08070408 @ =0x00004021 cmp r1, r0 beq _0807042E cmp r1, r0 bhi _0807040C subs r0, #1 cmp r1, r0 beq _08070420 b _08070412 .align 2, 0 _08070404: .4byte gUnk_03000BF0 _08070408: .4byte 0x00004021 _0807040C: ldr r0, _08070418 @ =0x00004070 cmp r1, r0 beq _0807041C _08070412: movs r0, #0 str r0, [r4, #0x7c] b _0807042E .align 2, 0 _08070418: .4byte 0x00004070 _0807041C: movs r0, #0xff str r0, [r4, #0x78] _08070420: ldr r0, [r4, #0x78] subs r0, #1 str r0, [r4, #0x78] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 bne _08070436 _0807042E: adds r0, r4, #0 bl sub_08070458 b _08070454 _08070436: adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] cmp r1, #0 beq _08070454 movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0807044E ldrb r0, [r4, #0xc] cmp r0, #0x1a bne _08070454 _0807044E: adds r0, r4, #0 bl sub_08070458 _08070454: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08070458 sub_08070458: @ 0x08070458 push {r4, r5, r6, lr} adds r4, r0, #0 movs r2, #0 movs r0, #2 strb r0, [r4, #0xc] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] strh r2, [r4, #0x24] ldr r5, [r4, #0x7c] cmp r5, #0 beq _0807049E movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, _080704B4 @ =gUnk_03000BF0 ldrh r0, [r2, #6] subs r1, r1, r0 asrs r1, r1, #4 movs r3, #0x3f ands r1, r3 movs r6, #0x32 ldrsh r0, [r4, r6] ldrh r2, [r2, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r1, r0 adds r0, r4, #0 adds r0, #0x38 ldrb r2, [r0] adds r0, r5, #0 bl sub_0800015E _0807049E: adds r0, r4, #0 movs r1, #0x13 bl sub_08004260 adds r0, r4, #0 bl sub_08017744 ldr r0, _080704B8 @ =0x00000199 bl sub_080A3268 pop {r4, r5, r6, pc} .align 2, 0 _080704B4: .4byte gUnk_03000BF0 _080704B8: .4byte 0x00000199 thumb_func_start sub_080704BC sub_080704BC: @ 0x080704BC push {lr} ldr r2, _080704D0 @ =gUnk_0811B9D8 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080704D0: .4byte gUnk_0811B9D8 thumb_func_start sub_080704D4 sub_080704D4: @ 0x080704D4 push {r4, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xc] movs r0, #0xff strb r0, [r4, #0x1e] adds r0, r4, #0 movs r1, #1 movs r2, #3 bl sub_080AE008 movs r0, #0x87 lsls r0, r0, #1 bl sub_080A3268 adds r0, r4, #0 bl sub_080704FC pop {r4, pc} .align 2, 0 thumb_func_start sub_080704FC sub_080704FC: @ 0x080704FC push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0807052C @ =gLinkEntity adds r0, r5, #0 adds r0, #0x5a ldrb r2, [r0] movs r0, #0x80 ands r0, r2 ldr r1, _08070530 @ =gUnk_03003F80 cmp r0, #0 bne _08070518 ldr r0, [r1, #0x2c] cmp r4, r0 beq _08070534 _08070518: ldr r0, [r1, #0x2c] cmp r4, r0 bne _08070522 movs r0, #0 str r0, [r1, #0x2c] _08070522: adds r0, r4, #0 bl sub_0805E7BC b _08070566 .align 2, 0 _0807052C: .4byte gLinkEntity _08070530: .4byte gUnk_03003F80 _08070534: movs r0, #0xf ands r0, r2 cmp r0, #0xf beq _08070562 ldrb r1, [r5, #0x1e] adds r0, #0x91 subs r0, r1, r0 ldrb r2, [r4, #0x1e] cmp r0, r2 beq _08070558 adds r0, r1, #0 adds r0, #0x6f strb r0, [r4, #0x1e] ldrb r1, [r4, #0x1e] ldrh r2, [r4, #0x12] adds r0, r4, #0 bl sub_080042D0 _08070558: adds r0, r4, #0 adds r1, r5, #0 bl sub_08078E84 b _08070566 _08070562: movs r0, #0xff strb r0, [r4, #0x1e] _08070566: ldr r2, _08070580 @ =gLinkEntity ldrb r1, [r2, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08070584 ldrb r0, [r2, #0x18] lsls r0, r0, #0x19 lsrs r2, r0, #0x1f movs r0, #1 eors r2, r0 b _0807058A .align 2, 0 _08070580: .4byte gLinkEntity _08070584: ldrb r0, [r2, #0x18] lsls r0, r0, #0x19 lsrs r2, r0, #0x1f _0807058A: lsls r2, r2, #6 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x18] pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0807059C sub_0807059C: @ 0x0807059C push {lr} ldr r0, _080705A8 @ =gUnk_02034490 movs r1, #0x18 bl sub_0801D630 pop {pc} .align 2, 0 _080705A8: .4byte gUnk_02034490 thumb_func_start sub_080705AC sub_080705AC: @ 0x080705AC push {lr} ldr r0, _08070614 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08070674 ldr r0, _08070618 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _08070674 ldr r0, _0807061C @ =gUnk_02034490 ldrb r0, [r0] cmp r0, #0 bne _08070674 ldr r0, _08070620 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08070674 ldr r1, _08070624 @ =gUnk_02002A40 adds r0, r1, #0 adds r0, #0xaa ldrb r0, [r0] cmp r0, #0 beq _08070674 adds r0, r1, #0 adds r0, #0xf2 ldrb r0, [r0] cmp r0, #0 beq _08070674 ldr r1, _08070628 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x8b ldrb r0, [r0] cmp r0, #0 bne _08070674 ldr r0, _0807062C @ =gUnk_03003DC0 ldrh r0, [r0, #8] cmp r0, #0 bne _08070674 adds r2, r1, #0 adds r2, #0xa8 ldrb r0, [r2] cmp r0, #0 bne _08070630 adds r0, r1, #0 adds r0, #0xa9 ldrb r0, [r0] b _08070632 .align 2, 0 _08070614: .4byte gUnk_03000FF0 _08070618: .4byte gUnk_03000FD0 _0807061C: .4byte gUnk_02034490 _08070620: .4byte gUnk_02000050 _08070624: .4byte gUnk_02002A40 _08070628: .4byte gUnk_03003F80 _0807062C: .4byte gUnk_03003DC0 _08070630: ldrb r0, [r2] _08070632: subs r0, #0x12 cmp r0, #0xa bhi _08070678 lsls r0, r0, #2 ldr r1, _08070644 @ =_08070648 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08070644: .4byte _08070648 _08070648: @ jump table .4byte _08070674 @ case 0 .4byte _08070674 @ case 1 .4byte _08070678 @ case 2 .4byte _08070674 @ case 3 .4byte _08070674 @ case 4 .4byte _08070678 @ case 5 .4byte _08070678 @ case 6 .4byte _08070678 @ case 7 .4byte _08070678 @ case 8 .4byte _08070678 @ case 9 .4byte _08070674 @ case 10 _08070674: movs r0, #0 b _0807067E _08070678: bl sub_080A4D88 movs r0, #1 _0807067E: pop {pc} thumb_func_start sub_08070680 sub_08070680: @ 0x08070680 push {lr} ldr r2, _08070694 @ =gUnk_0811B9E0 ldrb r1, [r0, #0xc] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08070694: .4byte gUnk_0811B9E0 thumb_func_start sub_08070698 sub_08070698: @ 0x08070698 push {r4, r5, r6, lr} sub sp, #4 adds r4, r0, #0 ldr r6, _08070788 @ =gUnk_03003F80 movs r0, #0xff strb r0, [r6] ldr r1, _0807078C @ =gLinkEntity ldrh r0, [r1, #0x2e] strh r0, [r6, #0x16] ldrh r0, [r1, #0x32] strh r0, [r6, #0x18] ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 movs r1, #0x39 rsbs r1, r1, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x10 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0x20 strb r0, [r4, #0x16] adds r1, r4, #0 adds r1, #0x3b movs r0, #8 strb r0, [r1] adds r1, #4 movs r0, #0x79 strb r0, [r1] ldr r0, _08070790 @ =gUnk_08114F88 str r0, [r4, #0x48] movs r0, #1 strh r0, [r4, #0x12] adds r0, #0xff strh r0, [r6, #8] adds r0, r4, #0 bl sub_0806FDA0 adds r0, r4, #0 movs r1, #1 movs r2, #2 bl sub_080AE008 adds r0, r4, #0 movs r1, #2 bl sub_080042AC adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 bne _08070726 adds r0, r4, #0 bl sub_08016A30 _08070726: movs r0, #0x10 bl sub_0805436C cmp r0, #2 beq _08070734 bl sub_08077728 _08070734: bl sub_0807A108 bl sub_0807AEE4 bl sub_08078EFC adds r5, r0, #0 cmp r5, #0 bne _08070784 bl sub_0807921C bl sub_0807A1B8 adds r1, r6, #0 adds r1, #0x26 ldrb r0, [r1] cmp r0, #0 beq _08070784 movs r0, #1 strb r0, [r1] bl sub_08079938 adds r1, r6, #0 adds r1, #0xa8 movs r0, #7 strb r0, [r1] adds r0, r4, #0 bl sub_0807ACCC str r5, [sp] movs r0, #6 movs r1, #0xf movs r2, #6 movs r3, #0xb bl sub_0805EB2C cmp r0, #0 beq _08070784 bl sub_0805E7BC _08070784: add sp, #4 pop {r4, r5, r6, pc} .align 2, 0 _08070788: .4byte gUnk_03003F80 _0807078C: .4byte gLinkEntity _08070790: .4byte gUnk_08114F88 thumb_func_start sub_08070794 sub_08070794: @ 0x08070794 push {r4, r5, r6, r7, lr} adds r5, r0, #0 ldr r6, _080707F0 @ =gUnk_03003F80 adds r3, r6, #0 adds r3, #0xa8 movs r4, #0 strb r4, [r3] ldr r1, [r6, #0x30] movs r7, #0x10 adds r0, r1, #0 ands r0, r7 mov ip, r6 cmp r0, #0 beq _08070818 adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] adds r0, r5, #0 adds r0, #0x42 strb r4, [r0] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r5, #0x24] movs r0, #0x80 strb r0, [r6, #6] strb r7, [r3] ldrb r0, [r5, #0x14] lsrs r0, r0, #1 adds r0, #0x5c adds r1, r5, #0 adds r1, #0x58 ldrb r1, [r1] cmp r0, r1 bne _080707F8 ldrh r0, [r5, #0x12] cmp r0, #2 bne _080707F8 ldr r0, _080707F4 @ =gLinkEntity bl sub_080042B8 b _08070800 .align 2, 0 _080707F0: .4byte gUnk_03003F80 _080707F4: .4byte gLinkEntity _080707F8: movs r0, #0x97 lsls r0, r0, #2 mov r1, ip strh r0, [r1, #8] _08070800: ldr r0, _08070814 @ =gLinkEntity bl sub_0806F948 bl sub_08077B2C adds r0, r5, #0 bl sub_08077698 b _08070BE4 .align 2, 0 _08070814: .4byte gLinkEntity _08070818: movs r0, #0x80 lsls r0, r0, #5 ands r0, r1 cmp r0, #0 beq _08070842 adds r1, r5, #0 adds r1, #0x40 movs r0, #0x1e strb r0, [r1] movs r0, #0xc strb r0, [r3] movs r1, #0 movs r2, #0x24 ldrsh r0, [r5, r2] cmp r0, #0 bne _0807083A movs r1, #1 _0807083A: adds r0, r5, #0 bl sub_08070BEC b _08070BE4 _08070842: movs r4, #0x80 lsls r4, r4, #0xc ands r4, r1 cmp r4, #0 beq _08070852 bl sub_08079938 b _08070BE4 _08070852: adds r0, r5, #0 bl sub_080085B0 adds r0, r5, #0 adds r0, #0x40 strb r4, [r0] bl sub_08078EFC cmp r0, #0 beq _08070868 b _08070BE4 _08070868: adds r0, r6, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _080708AC ldrb r1, [r6, #2] movs r2, #0xc0 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _080708AC ldrb r0, [r6, #3] cmp r0, #0 bne _0807088E adds r0, r6, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _08070892 _0807088E: strh r2, [r5, #0x24] b _080708AC _08070892: ldrb r0, [r6, #0x1b] cmp r0, #0 beq _0807089C movs r0, #0xe0 b _080708AA _0807089C: ldrb r0, [r6, #0x1c] cmp r0, #0 beq _080708A6 movs r0, #0x80 b _080708AA _080708A6: movs r0, #0xa0 lsls r0, r0, #1 _080708AA: strh r0, [r5, #0x24] _080708AC: ldr r4, _08070918 @ =gUnk_03003F80 ldrb r0, [r4, #6] movs r1, #0x80 orrs r1, r0 strb r1, [r4, #6] ldr r0, [r4, #0x30] ldr r6, _0807091C @ =0x10000002 ands r0, r6 cmp r0, #0 bne _080708C4 bl sub_0807A1B8 _080708C4: bl sub_08078EFC cmp r0, #0 beq _080708CE b _08070BE4 _080708CE: ldrb r0, [r4, #2] cmp r0, #0 beq _080708D6 b _080709D8 _080708D6: ldr r0, [r4, #0x30] movs r1, #0x80 lsls r1, r1, #3 ands r0, r1 cmp r0, #0 beq _080708E4 b _080709D8 _080708E4: adds r0, r5, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _08070924 bl sub_080782C0 cmp r0, #0 beq _08070924 ldr r0, _08070920 @ =gUnk_02034350 ldrb r0, [r0, #6] cmp r0, #0 bne _08070902 bl sub_08077B2C _08070902: ldr r0, [r4, #0x30] ands r0, r6 cmp r0, #0 beq _0807090C b _08070BE4 _0807090C: bl sub_0807A1B8 bl sub_08078EFC b _08070BE4 .align 2, 0 _08070918: .4byte gUnk_03003F80 _0807091C: .4byte 0x10000002 _08070920: .4byte gUnk_02034350 _08070924: ldr r0, _0807094C @ =gUnk_03003F80 ldr r1, [r0, #0x30] ldr r2, _08070950 @ =0x00041635 ands r1, r2 adds r0, #0xaa ldrb r0, [r0] orrs r1, r0 cmp r1, #0 bne _080709D8 bl sub_08019840 cmp r0, #0xf bls _08070940 b _08070BE4 _08070940: lsls r0, r0, #2 ldr r1, _08070954 @ =_08070958 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807094C: .4byte gUnk_03003F80 _08070950: .4byte 0x00041635 _08070954: .4byte _08070958 _08070958: @ jump table .4byte _08070998 @ case 0 .4byte _08070BE4 @ case 1 .4byte _08070BE4 @ case 2 .4byte _080709A8 @ case 3 .4byte _080709C2 @ case 4 .4byte _08070BE4 @ case 5 .4byte _08070BE4 @ case 6 .4byte _08070BE4 @ case 7 .4byte _08070BE4 @ case 8 .4byte _08070BE4 @ case 9 .4byte _08070BE4 @ case 10 .4byte _08070BE4 @ case 11 .4byte _08070BE4 @ case 12 .4byte _08070BE4 @ case 13 .4byte _08070BE4 @ case 14 .4byte _080709B4 @ case 15 _08070998: ldr r0, _080709A4 @ =gUnk_03003F80 ldrb r1, [r0, #6] movs r2, #0x80 eors r1, r2 strb r1, [r0, #6] b _080709D8 .align 2, 0 _080709A4: .4byte gUnk_03003F80 _080709A8: ldr r1, _080709B0 @ =gUnk_03003F80 movs r0, #0x80 strb r0, [r1, #6] b _080709D8 .align 2, 0 _080709B0: .4byte gUnk_03003F80 _080709B4: ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] bl sub_080797EC b _08070BE4 _080709C2: ldr r0, _080709D4 @ =gUnk_03003F80 ldrb r1, [r0, #6] movs r2, #0x80 eors r1, r2 strb r1, [r0, #6] bl sub_080797EC b _08070BE4 .align 2, 0 _080709D4: .4byte gUnk_03003F80 _080709D8: adds r1, r5, #0 adds r1, #0x3c movs r0, #0 strb r0, [r1] adds r6, r5, #0 adds r6, #0x29 ldrb r1, [r6] subs r0, #8 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r6] adds r0, r5, #0 bl sub_0807AC54 cmp r0, #0 beq _080709FC b _08070BE4 _080709FC: adds r0, r5, #0 bl sub_08077698 bl sub_08078EFC cmp r0, #0 beq _08070A0C b _08070BE4 _08070A0C: bl sub_080792D8 ldr r4, _08070A78 @ =gUnk_03003F80 ldrb r1, [r4, #2] ldrb r0, [r4, #0xa] orrs r0, r1 cmp r0, #0 bne _08070A32 bl sub_08079550 cmp r0, #0 beq _08070A26 b _08070BE4 _08070A26: adds r0, r5, #0 bl sub_08078F74 cmp r0, #0 beq _08070A32 b _08070BE4 _08070A32: adds r0, r5, #0 bl sub_08073904 bl sub_08078EFC cmp r0, #0 beq _08070A42 b _08070BE4 _08070A42: ldrb r2, [r4, #2] cmp r2, #0 beq _08070AAC adds r1, r4, #0 adds r1, #0xa8 movs r0, #0x14 strb r0, [r1] movs r0, #0xc0 ands r0, r2 cmp r0, #0 bne _08070A80 movs r0, #7 ands r0, r2 cmp r0, #3 beq _08070A7C movs r0, #0x20 ands r0, r2 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0 bne _08070A7C strh r0, [r5, #0x24] adds r0, r5, #0 bl sub_08008926 b _08070A80 .align 2, 0 _08070A78: .4byte gUnk_03003F80 _08070A7C: movs r0, #0xff strb r0, [r5, #0x15] _08070A80: bl sub_08079E08 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08070A94 b _08070BE4 _08070A94: ldr r0, _08070AA8 @ =gUnk_03003F80 ldrb r0, [r0, #4] cmp r0, #0 beq _08070A9E b _08070BE4 _08070A9E: adds r0, r5, #0 bl sub_080042B8 b _08070BE4 .align 2, 0 _08070AA8: .4byte gUnk_03003F80 _08070AAC: adds r0, r5, #0 adds r0, #0x42 ldrb r1, [r0] adds r7, r0, #0 cmp r1, #0 beq _08070ABA b _08070BBC _08070ABA: adds r0, r4, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08070AD4 adds r1, r4, #0 adds r1, #0xa8 movs r0, #7 strb r0, [r1] adds r0, r5, #0 bl sub_0807ACCC b _08070B56 _08070AD4: ldr r0, [r4, #0x30] movs r1, #0x80 lsls r1, r1, #0x12 ands r0, r1 cmp r0, #0 bne _08070AEE ldrb r0, [r6] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strb r1, [r6] _08070AEE: ldrb r1, [r4, #0x1e] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08070B00 adds r0, r5, #0 bl sub_08008AA0 b _08070B1E _08070B00: ldrb r0, [r4, #0x12] cmp r0, #0x17 bne _08070B0E adds r0, r5, #0 bl sub_08008926 b _08070B1E _08070B0E: cmp r0, #1 bne _08070B18 bl sub_08078F60 b _08070B1E _08070B18: adds r0, r5, #0 bl sub_08008AA0 _08070B1E: ldr r2, _08070BB8 @ =gUnk_03003F80 ldrb r1, [r2, #0x1b] movs r0, #0x10 ands r0, r1 cmp r0, #0 bne _08070B56 ldrb r3, [r2, #0xd] strb r3, [r5, #0x15] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #3 ands r0, r1 cmp r0, #0 beq _08070B56 movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r5, #0x24] movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _08070B52 ldrb r1, [r5, #0x14] movs r0, #0xe ands r0, r1 lsls r0, r0, #2 strb r0, [r5, #0x15] _08070B52: bl sub_0807A108 _08070B56: movs r4, #0 ldr r3, _08070BB8 @ =gUnk_03003F80 ldrb r2, [r3, #7] ldrb r0, [r5, #0x15] orrs r0, r2 movs r1, #0x80 ands r0, r1 ldrb r1, [r3, #0xa] orrs r0, r1 cmp r0, #0 bne _08070B8E movs r0, #0x10 ands r0, r2 cmp r0, #0 bne _08070B8E movs r4, #1 ldrb r0, [r7] cmp r0, #0 bne _08070B8E ldrb r1, [r3, #0x1e] movs r0, #0x40 ands r0, r1 cmp r0, #0 bne _08070B8C ldrb r0, [r3, #0x12] cmp r0, #0x17 beq _08070B8E _08070B8C: movs r4, #3 _08070B8E: adds r0, r5, #0 adds r1, r4, #0 bl sub_08070BEC adds r0, r5, #0 bl sub_08008AC6 ldrb r0, [r7] cmp r0, #0 bne _08070BE4 ldr r1, _08070BB8 @ =gUnk_03003F80 ldrb r0, [r1, #0xb] cmp r0, #0 bne _08070BE4 ldrb r0, [r1, #0x12] cmp r0, #0x1e beq _08070BE4 adds r0, r5, #0 bl sub_0806F948 b _08070BE4 .align 2, 0 _08070BB8: .4byte gUnk_03003F80 _08070BBC: ldr r0, [r4, #0x2c] cmp r0, #0 bne _08070BC8 adds r0, r5, #0 bl sub_080042B8 _08070BC8: adds r0, r4, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08070BE4 ldr r0, _08070BE8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _08070BE4 adds r0, r5, #0 bl sub_080A2A64 _08070BE4: pop {r4, r5, r6, r7, pc} .align 2, 0 _08070BE8: .4byte gUnk_030010A0 thumb_func_start sub_08070BEC sub_08070BEC: @ 0x08070BEC push {r4, lr} adds r4, r1, #0 movs r0, #1 ands r0, r4 cmp r0, #0 beq _08070BFE bl sub_080797EC b _08070C02 _08070BFE: bl sub_08079938 _08070C02: movs r0, #2 ands r0, r4 cmp r0, #0 beq _08070C0E bl sub_08079E08 _08070C0E: pop {r4, pc} thumb_func_start sub_08070C10 sub_08070C10: @ 0x08070C10 push {lr} ldr r2, _08070C34 @ =gUnk_03003F80 movs r1, #0xff strb r1, [r2, #0xd] movs r1, #0x80 strb r1, [r2, #6] adds r2, #0xa8 movs r1, #0xa strb r1, [r2] ldr r2, _08070C38 @ =gUnk_0811BA60 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08070C34: .4byte gUnk_03003F80 _08070C38: .4byte gUnk_0811BA60 thumb_func_start sub_08070C3C sub_08070C3C: @ 0x08070C3C push {r4, lr} adds r4, r0, #0 bl sub_08004168 ldr r2, _08070C64 @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #5 orrs r1, r0 ldr r0, _08070C68 @ =0xFFFFFBFF ands r1, r0 str r1, [r2, #0x30] movs r0, #0 strb r0, [r2, #2] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08070C6C movs r0, #0xdd lsls r0, r0, #1 b _08070C7E .align 2, 0 _08070C64: .4byte gUnk_03003F80 _08070C68: .4byte 0xFFFFFBFF _08070C6C: movs r0, #8 ands r1, r0 cmp r1, #0 beq _08070C7A movs r0, #0x8b lsls r0, r0, #3 b _08070C7E _08070C7A: movs r0, #0xdc lsls r0, r0, #1 _08070C7E: strh r0, [r2, #8] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] bl sub_08077B2C bl sub_0807A108 movs r0, #0x7b bl sub_080A3268 movs r0, #0x85 bl sub_080A3268 pop {r4, pc} .align 2, 0 thumb_func_start sub_08070CB4 sub_08070CB4: @ 0x08070CB4 push {r4, r5, lr} adds r5, r0, #0 bl sub_080042B8 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08070D1A ldr r0, _08070CF4 @ =gUnk_02002A40 adds r0, #0xaa ldrb r0, [r0] ldr r4, _08070CF8 @ =gUnk_03003F80 cmp r0, #0 beq _08070CFC ldr r1, [r4, #0x30] movs r0, #0x80 lsls r0, r0, #8 ands r0, r1 cmp r0, #0 beq _08070CFC movs r0, #6 rsbs r0, r0, #0 ands r1, r0 str r1, [r4, #0x30] ldrb r1, [r5, #0x18] adds r0, #2 ands r0, r1 strb r0, [r5, #0x18] b _08070D1A .align 2, 0 _08070CF4: .4byte gUnk_02002A40 _08070CF8: .4byte gUnk_03003F80 _08070CFC: ldr r0, [r4, #0x30] ldr r1, _08070D1C @ =0xFFFF7FFB ands r0, r1 str r0, [r4, #0x30] bl sub_08079458 movs r0, #0 strb r0, [r4, #0xa] adds r1, r5, #0 adds r1, #0x3d movs r0, #0x20 strb r0, [r1] subs r0, #0x22 bl sub_080526A0 _08070D1A: pop {r4, r5, pc} .align 2, 0 _08070D1C: .4byte 0xFFFF7FFB thumb_func_start sub_08070D20 sub_08070D20: @ 0x08070D20 push {lr} ldr r2, _08070D34 @ =gUnk_0811BA68 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08070D34: .4byte gUnk_0811BA68 thumb_func_start sub_08070D38 sub_08070D38: @ 0x08070D38 push {r4, lr} adds r2, r0, #0 ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] ldrb r1, [r2, #0x14] movs r0, #0xe ands r0, r1 lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 strb r0, [r2, #0x15] movs r4, #0 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #0x24] adds r0, r2, #0 adds r0, #0x42 strb r4, [r0] ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] ldr r3, _08070D94 @ =gUnk_03003F80 adds r0, r3, #0 adds r0, #0x38 ldrb r0, [r0] strb r0, [r2, #0xe] movs r0, #1 strh r0, [r2, #0x12] ldr r0, [r3, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08070D98 movs r0, #0x80 lsls r0, r0, #0xa str r0, [r2, #0x20] movs r0, #0x8a lsls r0, r0, #1 strh r0, [r3, #8] movs r0, #0x10 movs r1, #0 bl sub_08080964 b _08070DA2 .align 2, 0 _08070D94: .4byte gUnk_03003F80 _08070D98: ldr r0, _08070DBC @ =0x00000C18 strh r0, [r3, #8] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r2, #0x20] _08070DA2: ldr r0, _08070DC0 @ =gUnk_03003F80 movs r1, #0x80 strb r1, [r0, #2] movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 bl sub_08077B2C bl sub_08078F60 pop {r4, pc} .align 2, 0 _08070DBC: .4byte 0x00000C18 _08070DC0: .4byte gUnk_03003F80 thumb_func_start sub_08070DC4 sub_08070DC4: @ 0x08070DC4 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080085B0 bl sub_08079E08 bl sub_0807A1B8 bl sub_08078EFC cmp r0, #0 bne _08070E76 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08070E76 ldr r6, _08070E18 @ =gUnk_03003F80 strb r0, [r6, #2] bl sub_08078EFC adds r5, r0, #0 cmp r5, #0 bne _08070E76 bl sub_08079D48 cmp r0, #0 bne _08070E10 adds r0, r6, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08070E1C _08070E10: strb r5, [r6, #2] bl sub_080791D0 b _08070E76 .align 2, 0 _08070E18: .4byte gUnk_03003F80 _08070E1C: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _08070E32 movs r0, #0x80 lsls r0, r0, #9 str r0, [r4, #0x20] b _08070E76 _08070E32: ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r0, [r6, #0x14] cmp r0, #0 bne _08070E56 bl sub_08008B22 cmp r0, #0 beq _08070E56 movs r0, #7 strb r0, [r6, #0x11] bl sub_08079938 bl sub_080791BC b _08070E76 _08070E56: movs r0, #1 strh r0, [r4, #0x12] movs r0, #8 strb r0, [r4, #0xe] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] ldr r2, _08070E78 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08070E76 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #8] _08070E76: pop {r4, r5, r6, pc} .align 2, 0 _08070E78: .4byte gUnk_03003F80 thumb_func_start sub_08070E7C sub_08070E7C: @ 0x08070E7C push {lr} ldrb r1, [r0, #0xe] subs r1, #1 strb r1, [r0, #0xe] lsls r1, r1, #0x18 lsrs r1, r1, #0x18 cmp r1, #0 bne _08070E94 ldr r0, _08070E98 @ =gUnk_03003F80 strb r1, [r0, #2] bl sub_080791D0 _08070E94: pop {pc} .align 2, 0 _08070E98: .4byte gUnk_03003F80 thumb_func_start sub_08070E9C sub_08070E9C: @ 0x08070E9C push {r4, lr} adds r4, r0, #0 bl sub_08078EFC cmp r0, #0 beq _08070EAE bl sub_08056360 b _08070ED2 _08070EAE: ldr r1, _08070ED4 @ =gUnk_03003F80 adds r2, r1, #0 adds r2, #0x27 movs r0, #4 strb r0, [r2] adds r1, #0xa8 movs r0, #0x13 strb r0, [r1] bl sub_0807A1B8 ldr r1, _08070ED8 @ =gUnk_0811BA74 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 _08070ED2: pop {r4, pc} .align 2, 0 _08070ED4: .4byte gUnk_03003F80 _08070ED8: .4byte gUnk_0811BA74 thumb_func_start sub_08070EDC sub_08070EDC: @ 0x08070EDC push {lr} adds r2, r0, #0 ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #0x11] ldr r0, _08070F10 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 beq _08070EFE movs r0, #1 strb r0, [r2, #0xd] _08070EFE: ldr r2, _08070F14 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08070F18 bl sub_08079938 b _08070F1C .align 2, 0 _08070F10: .4byte gUnk_02000050 _08070F14: .4byte gUnk_03003F80 _08070F18: ldr r0, _08070F20 @ =0x00000C18 strh r0, [r2, #8] _08070F1C: pop {pc} .align 2, 0 _08070F20: .4byte 0x00000C18 thumb_func_start sub_08070F24 sub_08070F24: @ 0x08070F24 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r0, _08070F4C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _08070F4A ldrb r0, [r4, #0x11] lsrs r2, r0, #4 movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 orrs r1, r2 strb r1, [r4, #0x11] bl sub_080791D0 _08070F4A: pop {r4, pc} .align 2, 0 _08070F4C: .4byte gUnk_02000050 thumb_func_start sub_08070F50 sub_08070F50: @ 0x08070F50 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08070F9C @ =gUnk_03003F80 adds r0, #0xa8 movs r1, #0x15 strb r1, [r0] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r1, _08070FA0 @ =gUnk_0811BA7C ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r5, [r4, #0x54] cmp r5, #0 beq _08070F9A adds r0, r4, #0 adds r1, r5, #0 bl sub_0806FA30 ldrh r0, [r4, #0x12] ldrb r1, [r4, #0x1e] bl sub_080700C8 ldrb r1, [r0] adds r2, r5, #0 adds r2, #0x62 strb r1, [r2] ldrb r1, [r0, #1] adds r0, r5, #0 adds r0, #0x63 strb r1, [r0] _08070F9A: pop {r4, r5, pc} .align 2, 0 _08070F9C: .4byte gUnk_03003F80 _08070FA0: .4byte gUnk_0811BA7C thumb_func_start sub_08070FA4 sub_08070FA4: @ 0x08070FA4 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r1, #0 movs r0, #4 strb r0, [r4, #0x14] ldr r3, _08070FE8 @ =gUnk_03003F80 ldr r2, [r3, #0x30] movs r0, #1 orrs r2, r0 str r2, [r3, #0x30] strb r1, [r3, #2] movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _08071008 movs r0, #8 ands r2, r0 cmp r2, #0 beq _08070FF0 adds r0, r3, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_080542AC ldr r1, _08070FEC @ =0x0000045B cmp r0, #0 beq _08071004 adds r1, #3 b _08071004 .align 2, 0 _08070FE8: .4byte gUnk_03003F80 _08070FEC: .4byte 0x0000045B _08070FF0: adds r0, r3, #0 adds r0, #0x38 ldrb r0, [r0] bl sub_080542AC ldr r1, _08071018 @ =0x000001B9 cmp r0, #0 beq _08071004 movs r1, #0xb8 lsls r1, r1, #2 _08071004: ldr r0, _0807101C @ =gUnk_03003F80 strh r1, [r0, #8] _08071008: movs r0, #1 strb r0, [r4, #0xd] bl sub_08077B2C bl sub_08078F60 pop {r4, pc} .align 2, 0 _08071018: .4byte 0x000001B9 _0807101C: .4byte gUnk_03003F80 thumb_func_start sub_08071020 sub_08071020: @ 0x08071020 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _08071036 movs r0, #2 strb r0, [r4, #0xd] _08071036: pop {r4, pc} thumb_func_start sub_08071038 sub_08071038: @ 0x08071038 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 bl sub_08078EFC cmp r0, #0 bne _08071078 ldr r0, _0807107C @ =gUnk_02000050 ldrb r0, [r0] movs r2, #0x7f ands r2, r0 cmp r2, #0 bne _08071078 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08071078 str r2, [r4, #0x54] adds r0, r4, #0 adds r0, #0x42 strb r2, [r0] subs r0, #5 movs r1, #0xf8 strb r1, [r0] ldr r0, _08071080 @ =gUnk_03003F80 strb r2, [r0, #2] bl sub_080791D0 _08071078: pop {r4, pc} .align 2, 0 _0807107C: .4byte gUnk_02000050 _08071080: .4byte gUnk_03003F80 thumb_func_start sub_08071084 sub_08071084: @ 0x08071084 push {lr} ldr r1, _080710A0 @ =gUnk_03003F80 adds r1, #0xa8 movs r2, #0xb strb r2, [r1] ldr r2, _080710A4 @ =gUnk_0811BA88 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080710A0: .4byte gUnk_03003F80 _080710A4: .4byte gUnk_0811BA88 thumb_func_start sub_080710A8 sub_080710A8: @ 0x080710A8 push {r4, r5, lr} adds r4, r0, #0 ldrb r0, [r4, #0xd] adds r0, #1 movs r2, #0 strb r0, [r4, #0xd] ldr r1, _080710EC @ =gUnk_03003F80 ldr r3, [r1, #0x30] movs r0, #1 orrs r3, r0 ldr r0, _080710F0 @ =0xFFFFF3FF ands r3, r0 str r3, [r1, #0x30] strb r2, [r1, #0xc] ldrb r2, [r1, #5] ldrb r0, [r1, #0x1b] orrs r0, r2 adds r5, r1, #0 cmp r0, #0 bne _080710FA movs r0, #0x80 ands r3, r0 cmp r3, #0 bne _080710FA bl sub_08077B2C ldr r0, [r5, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _080710F4 movs r0, #0x84 lsls r0, r0, #3 b _080710F8 .align 2, 0 _080710EC: .4byte gUnk_03003F80 _080710F0: .4byte 0xFFFFF3FF _080710F4: movs r0, #0x81 lsls r0, r0, #4 _080710F8: strh r0, [r5, #8] _080710FA: movs r0, #0 strb r0, [r5, #0x1e] ldrb r1, [r4, #0x14] movs r0, #0xe ands r0, r1 lsls r0, r0, #2 strb r0, [r4, #0x15] movs r0, #1 bl sub_08079FC4 lsls r0, r0, #4 subs r0, #4 lsls r0, r0, #0xc str r0, [r4, #0x20] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] bl sub_0807A108 movs r0, #0x7c bl sub_080A3268 movs r0, #0x78 bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08071130 sub_08071130: @ 0x08071130 push {r4, r5, r6, lr} adds r5, r0, #0 bl sub_08078EFC cmp r0, #0 bne _08071206 ldr r6, _080711B4 @ =gUnk_03003F80 ldrb r0, [r6, #0x1b] cmp r0, #0 bne _08071158 adds r0, r5, #0 bl sub_080042B8 adds r0, r5, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08071206 _08071158: adds r0, r5, #0 bl sub_0806F69C movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 bl sub_08003FC4 cmp r0, #0 bne _08071206 strb r0, [r6, #2] adds r0, r5, #0 bl sub_0800455E ldr r0, [r5, #0x74] cmp r0, #0 beq _0807117E bl sub_0800455E _0807117E: adds r0, r5, #0 movs r1, #7 bl sub_08008790 ldrb r0, [r6, #0x14] cmp r0, #0 bne _08071206 bl sub_0807A1B8 bl sub_08078EFC adds r4, r0, #0 cmp r4, #0 bne _08071206 bl sub_08079D48 cmp r0, #0 beq _080711AC adds r0, r6, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _080711B8 _080711AC: strb r4, [r6, #2] bl sub_080791D0 b _08071206 .align 2, 0 _080711B4: .4byte gUnk_03003F80 _080711B8: movs r0, #6 strb r0, [r5, #0xe] ldrb r1, [r6, #5] ldrb r0, [r6, #0xb] orrs r0, r1 cmp r0, #0 bne _080711EE ldr r1, [r6, #0x30] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080711EE movs r0, #8 ands r1, r0 cmp r1, #0 beq _080711E0 ldr r0, _080711DC @ =0x00000424 b _080711E4 .align 2, 0 _080711DC: .4byte 0x00000424 _080711E0: movs r0, #0x82 lsls r0, r0, #4 _080711E4: strh r0, [r6, #8] adds r1, r5, #0 adds r1, #0x58 movs r0, #0xff strb r0, [r1] _080711EE: ldrb r0, [r5, #0xd] adds r0, #1 movs r4, #0 strb r0, [r5, #0xd] bl sub_08078F60 adds r0, r5, #0 adds r0, #0x42 strb r4, [r0] movs r0, #0x7d bl sub_080A3268 _08071206: pop {r4, r5, r6, pc} thumb_func_start sub_08071208 sub_08071208: @ 0x08071208 push {r4, lr} adds r4, r0, #0 ldr r2, _08071244 @ =gUnk_03003F80 ldrb r1, [r2, #5] ldrb r0, [r2, #0xb] orrs r0, r1 cmp r0, #0 bne _08071228 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08071228 adds r0, r4, #0 bl sub_080042B8 _08071228: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08071240 ldr r1, _08071244 @ =gUnk_03003F80 movs r0, #0 strb r0, [r1, #2] bl sub_080791D0 _08071240: pop {r4, pc} .align 2, 0 _08071244: .4byte gUnk_03003F80 thumb_func_start sub_08071248 sub_08071248: @ 0x08071248 push {lr} ldr r3, _08071274 @ =gUnk_03003F80 adds r2, r3, #0 adds r2, #0xa8 movs r1, #0x16 strb r1, [r2] ldr r1, [r3, #0x30] movs r2, #4 orrs r1, r2 str r1, [r3, #0x30] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] ldr r2, _08071278 @ =gUnk_0811BA94 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08071274: .4byte gUnk_03003F80 _08071278: .4byte gUnk_0811BA94 thumb_func_start sub_0807127C sub_0807127C: @ 0x0807127C push {r4, r5, lr} adds r4, r0, #0 movs r0, #1 strb r0, [r4, #0xd] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x3a ands r0, r1 strb r0, [r2] ldr r5, _080712AC @ =gUnk_03003F80 ldr r1, [r5, #0x30] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080712B4 movs r0, #0x3c strb r0, [r4, #0xe] ldr r0, _080712B0 @ =0x00000C19 strh r0, [r5, #8] movs r0, #0x84 bl sub_080A3268 b _080712E4 .align 2, 0 _080712AC: .4byte gUnk_03003F80 _080712B0: .4byte 0x00000C19 _080712B4: movs r0, #0x80 lsls r0, r0, #9 ands r1, r0 cmp r1, #0 bne _080712C4 adds r0, r4, #0 bl sub_08004168 _080712C4: adds r0, r4, #0 movs r1, #0xb movs r2, #0 bl CreateFX ldr r0, [r5, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 bne _080712E0 ldr r0, _080712DC @ =0x0000072C b _080712E2 .align 2, 0 _080712DC: .4byte 0x0000072C _080712E0: ldr r0, _080712EC @ =0x0000044C _080712E2: strh r0, [r5, #8] _080712E4: bl sub_08077B2C pop {r4, r5, pc} .align 2, 0 _080712EC: .4byte 0x0000044C thumb_func_start sub_080712F0 sub_080712F0: @ 0x080712F0 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 movs r5, #0 ldr r3, _08071314 @ =gUnk_03003F80 ldr r0, [r3, #0x30] movs r2, #0x80 ands r0, r2 cmp r0, #0 beq _08071318 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0807133E b _08071342 .align 2, 0 _08071314: .4byte gUnk_03003F80 _08071318: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0807133E adds r0, r4, #0 adds r0, #0x58 ldrb r0, [r0] cmp r0, #0xce beq _0807133C ldr r0, _08071338 @ =0x000002CE strh r0, [r3, #8] b _0807133E .align 2, 0 _08071338: .4byte 0x000002CE _0807133C: movs r5, #1 _0807133E: cmp r5, #0 beq _0807137A _08071342: adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] subs r1, #5 movs r0, #0x20 strb r0, [r1] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x59 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r2, _0807137C @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #5 rsbs r1, r1, #0 ands r0, r1 str r0, [r2, #0x30] bl sub_08079458 _0807137A: pop {r4, r5, pc} .align 2, 0 _0807137C: .4byte gUnk_03003F80 thumb_func_start sub_08071380 sub_08071380: @ 0x08071380 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _080713E8 @ =gUnk_03003F80 adds r1, r5, #0 adds r1, #0xa8 movs r0, #0xe strb r0, [r1] ldr r1, _080713EC @ =gUnk_0811BA9C ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldrb r0, [r4, #0xd] cmp r0, #7 beq _080713FC cmp r0, #2 bls _080713FC ldr r0, [r5, #0x30] movs r1, #0x20 ands r0, r1 cmp r0, #0 beq _080713FC ldr r0, _080713F0 @ =gUnk_03000FF0 ldrh r1, [r0, #2] movs r0, #0x81 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _080713FC bl sub_08052660 cmp r0, #0 bne _080713D0 ldr r0, _080713F4 @ =gUnk_02033A90 ldrb r0, [r0, #0x17] cmp r0, #3 bne _080713F8 _080713D0: movs r0, #7 strb r0, [r4, #0xd] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #7 movs r1, #0x10 bl sub_08050054 movs r0, #0xf8 bl sub_080A3268 b _080713FC .align 2, 0 _080713E8: .4byte gUnk_03003F80 _080713EC: .4byte gUnk_0811BA9C _080713F0: .4byte gUnk_03000FF0 _080713F4: .4byte gUnk_02033A90 _080713F8: bl sub_0804ACF8 _080713FC: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08071400 sub_08071400: @ 0x08071400 push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 movs r1, #0 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x42 strb r1, [r0] ldr r0, _0807149C @ =gUnk_02033A90 ldrh r3, [r0, #0x12] ldrh r5, [r0, #0x14] movs r0, #0x2e ldrsh r2, [r4, r0] cmp r2, r3 bne _0807142A movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 beq _08071444 _0807142A: movs r0, #0x32 ldrsh r1, [r4, r0] adds r0, r2, #0 adds r2, r3, #0 adds r3, r5, #0 bl sub_080045D4 strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] bl sub_08079E08 _08071444: adds r0, r4, #0 bl sub_08073904 adds r0, r4, #0 bl sub_080042B8 ldr r2, _080714A0 @ =gUnk_03003F80 ldrb r0, [r2, #2] cmp r0, #0 bne _0807147C ldr r0, [r2, #0x30] movs r1, #0x20 orrs r0, r1 str r0, [r2, #0x30] movs r0, #1 strb r0, [r4, #0xd] movs r0, #4 strb r0, [r4, #0x14] ldrb r1, [r4, #0x18] subs r0, #0x45 ands r0, r1 strb r0, [r4, #0x18] ldr r0, _0807149C @ =gUnk_02033A90 ldrb r0, [r0, #0x17] cmp r0, #4 bne _0807147C ldr r0, _080714A4 @ =0x0000052C strh r0, [r2, #8] _0807147C: movs r0, #8 strb r0, [r4, #0xe] ldr r0, _0807149C @ =gUnk_02033A90 ldrb r0, [r0, #0x17] cmp r0, #3 beq _0807149A adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #3 orrs r0, r1 strb r0, [r2] _0807149A: pop {r4, r5, pc} .align 2, 0 _0807149C: .4byte gUnk_02033A90 _080714A0: .4byte gUnk_03003F80 _080714A4: .4byte 0x0000052C thumb_func_start sub_080714A8 sub_080714A8: @ 0x080714A8 push {r4, lr} adds r4, r0, #0 ldr r0, _08071524 @ =gUnk_02033A90 ldrb r0, [r0, #0x17] cmp r0, #5 bgt _080714BE cmp r0, #4 blt _080714BE ldr r0, _08071528 @ =gLinkEntity bl sub_0806F948 _080714BE: ldr r3, _0807152C @ =gUnk_03003F80 ldrb r1, [r3, #0xd] movs r0, #0x84 ands r0, r1 cmp r0, #0 bne _0807153E ldrb r0, [r4, #0x15] cmp r0, r1 beq _080714D4 movs r0, #8 strb r0, [r4, #0xe] _080714D4: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08071538 ldrb r0, [r3, #0xd] strb r0, [r4, #0x15] lsls r0, r0, #0x18 lsrs r0, r0, #0x1a strb r0, [r4, #0x14] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r1, #0 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] movs r0, #9 strb r0, [r4, #0xc] movs r0, #7 strb r0, [r4, #0xd] strb r1, [r4, #0xf] ldr r1, [r3, #0x30] movs r0, #8 ands r0, r1 ldr r4, _08071530 @ =0x0000080C adds r2, r4, #0 cmp r0, #0 beq _08071516 ldr r0, _08071534 @ =0x0000041C adds r2, r0, #0 _08071516: strh r2, [r3, #8] movs r0, #0x21 rsbs r0, r0, #0 ands r1, r0 str r1, [r3, #0x30] b _0807156A .align 2, 0 _08071524: .4byte gUnk_02033A90 _08071528: .4byte gLinkEntity _0807152C: .4byte gUnk_03003F80 _08071530: .4byte 0x0000080C _08071534: .4byte 0x0000041C _08071538: ldrb r0, [r3, #0xd] strb r0, [r4, #0x15] b _08071542 _0807153E: movs r0, #8 strb r0, [r4, #0xe] _08071542: ldr r0, _0807155C @ =gUnk_02033A90 ldrb r0, [r0, #0x17] cmp r0, #4 bne _08071560 adds r0, r4, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 bne _08071566 adds r0, r4, #0 bl sub_080042B8 b _0807156A .align 2, 0 _0807155C: .4byte gUnk_02033A90 _08071560: adds r0, r4, #0 bl sub_08077698 _08071566: bl sub_08079938 _0807156A: pop {r4, pc} thumb_func_start sub_0807156C sub_0807156C: @ 0x0807156C push {lr} ldr r2, _080715A0 @ =gUnk_03000BF0 movs r1, #0 str r1, [r2, #0x30] ldr r2, _080715A4 @ =gUnk_02034490 movs r1, #1 strb r1, [r2] movs r1, #3 strb r1, [r0, #0xd] movs r1, #0x1e strb r1, [r0, #0xf] ldr r2, _080715A8 @ =gUnk_03003F80 movs r1, #0xe7 lsls r1, r1, #3 strh r1, [r2, #8] movs r1, #6 movs r2, #1 movs r3, #0 bl sub_080A2988 bl sub_08077B20 bl sub_0805E544 pop {pc} .align 2, 0 _080715A0: .4byte gUnk_03000BF0 _080715A4: .4byte gUnk_02034490 _080715A8: .4byte gUnk_03003F80 thumb_func_start sub_080715AC sub_080715AC: @ 0x080715AC push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080715CC adds r0, r4, #0 bl sub_080042B8 ldr r0, _080715D0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _080715CC movs r0, #4 strb r0, [r4, #0xd] _080715CC: pop {r4, pc} .align 2, 0 _080715D0: .4byte gUnk_03003F80 thumb_func_start sub_080715D4 sub_080715D4: @ 0x080715D4 push {lr} adds r3, r0, #0 movs r2, #0 movs r0, #5 strb r0, [r3, #0xd] movs r0, #0x29 adds r0, r0, r3 mov ip, r0 ldrb r1, [r0] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 mov r1, ip strb r0, [r1] strb r2, [r3, #0xf] ldrb r0, [r3, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r3, #0x19] adds r0, r3, #0 adds r0, #0x80 movs r2, #0x80 lsls r2, r2, #1 str r2, [r0] adds r0, #4 str r2, [r0] adds r0, r3, #0 adds r1, r2, #0 movs r3, #0 bl sub_0805EC9C ldr r2, _08071628 @ =gUnk_03003F80 ldr r0, _0807162C @ =0x000002C3 strh r0, [r2, #8] ldr r0, [r2, #0x30] movs r1, #0x80 orrs r0, r1 str r0, [r2, #0x30] ldr r0, _08071630 @ =0x0000016F bl sub_080A3268 pop {pc} .align 2, 0 _08071628: .4byte gUnk_03003F80 _0807162C: .4byte 0x000002C3 _08071630: .4byte 0x0000016F thumb_func_start sub_08071634 sub_08071634: @ 0x08071634 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r0, #0x81 ldrb r0, [r0] cmp r0, #0 beq _08071654 adds r1, r5, #0 adds r1, #0x80 ldr r0, [r1] adds r0, #0x80 lsls r0, r0, #0x14 lsrs r7, r0, #0x17 adds r4, r1, #0 b _0807166A _08071654: adds r4, r5, #0 adds r4, #0x80 ldrb r1, [r4] lsrs r1, r1, #6 movs r0, #3 eors r1, r0 adds r1, #1 movs r0, #0x10 bl __divsi3 asrs r7, r0, #1 _0807166A: adds r0, r5, #0 adds r0, #0x84 ldr r3, [r0] movs r1, #0x80 lsls r1, r1, #1 adds r2, r0, #0 cmp r3, r1 bls _08071684 adds r0, r3, #0 adds r0, #0x80 lsls r0, r0, #0x14 lsrs r3, r0, #0x17 b _08071694 _08071684: cmp r3, r1 bne _0807168C movs r3, #0x10 b _08071694 _0807168C: ldr r1, _080716B0 @ =gUnk_0811BABC lsrs r0, r3, #5 adds r0, r0, r1 ldrb r3, [r0] _08071694: movs r0, #0x80 lsls r0, r0, #9 mov r8, r0 adds r0, r5, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #2 beq _080716EA cmp r0, #2 bgt _080716B4 cmp r0, #1 beq _080716BA b _08071754 .align 2, 0 _080716B0: .4byte gUnk_0811BABC _080716B4: cmp r0, #3 beq _0807171E b _08071754 _080716BA: movs r1, #0x29 adds r1, r1, r5 mov ip, r1 ldrb r1, [r1] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 mov r1, ip strb r0, [r1] ldr r0, [r4] cmp r0, #0x80 bls _080716D6 subs r0, r0, r7 str r0, [r4] _080716D6: lsls r1, r3, #1 ldr r0, [r2] adds r0, r0, r1 str r0, [r2] mov r0, r8 lsls r1, r0, #1 ldr r0, [r5, #0x30] adds r0, r0, r1 str r0, [r5, #0x30] b _08071754 _080716EA: ldr r0, [r4] adds r0, r0, r7 str r0, [r4] ldr r1, [r2] movs r6, #0x80 lsls r6, r6, #1 cmp r1, r6 bls _08071710 ldr r0, _0807170C @ =0x0000017F cmp r1, r0 bhi _08071702 lsrs r3, r3, #1 _08071702: subs r0, r1, r3 cmp r0, #0xff bhi _08071716 str r6, [r2] b _08071718 .align 2, 0 _0807170C: .4byte 0x0000017F _08071710: cmp r1, #0x80 bls _08071718 subs r0, r1, r3 _08071716: str r0, [r2] _08071718: ldr r0, [r5, #0x34] mov r1, r8 b _08071750 _0807171E: ldr r0, [r4] ldr r6, _08071740 @ =0x0000033F cmp r0, r6 bhi _0807172A adds r0, r0, r7 str r0, [r4] _0807172A: ldr r1, [r2] cmp r1, r6 bls _08071744 movs r0, #8 strb r0, [r5, #0xe] movs r0, #0x1e strb r0, [r5, #0xf] movs r0, #6 strb r0, [r5, #0xd] b _0807174A .align 2, 0 _08071740: .4byte 0x0000033F _08071744: lsls r0, r3, #1 adds r0, r1, r0 str r0, [r2] _0807174A: mov r0, r8 lsls r1, r0, #1 ldr r0, [r5, #0x34] _08071750: subs r0, r0, r1 str r0, [r5, #0x34] _08071754: ldr r1, [r4] ldr r2, [r2] adds r0, r5, #0 movs r3, #0 bl sub_0805EC9C adds r0, r5, #0 bl sub_080042B8 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807176C sub_0807176C: @ 0x0807176C push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 bne _080717C6 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080717CA ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldr r1, _080717AC @ =gUnk_02033A90 ldrb r0, [r1, #0x17] cmp r0, #3 bne _080717B0 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _080717CA adds r0, r4, #0 bl sub_080717F8 b _080717CA .align 2, 0 _080717AC: .4byte gUnk_02033A90 _080717B0: cmp r0, #6 bne _080717C0 ldr r0, _080717BC @ =gUnk_0813AB58 bl sub_08080840 b _080717CA .align 2, 0 _080717BC: .4byte gUnk_0813AB58 _080717C0: movs r0, #1 strb r0, [r1, #0x19] b _080717CA _080717C6: subs r0, #1 strb r0, [r4, #0xe] _080717CA: pop {r4, pc} thumb_func_start sub_080717CC sub_080717CC: @ 0x080717CC push {lr} adds r1, r0, #0 ldr r0, _080717E4 @ =gUnk_03000FD0 ldrb r0, [r0] cmp r0, #0 bne _080717F4 ldrb r0, [r1, #0xe] cmp r0, #0 beq _080717E8 subs r0, #1 strb r0, [r1, #0xe] b _080717F4 .align 2, 0 _080717E4: .4byte gUnk_03000FD0 _080717E8: adds r0, r1, #0 bl sub_080717F8 movs r0, #0x10 bl sub_080500F4 _080717F4: pop {pc} .align 2, 0 thumb_func_start sub_080717F8 sub_080717F8: @ 0x080717F8 push {r4, lr} ldr r2, _08071850 @ =gUnk_02033A90 ldrb r1, [r2, #0x16] lsls r1, r1, #1 strb r1, [r0, #0x14] ldr r3, _08071854 @ =gUnk_0811BAC4 ldrb r1, [r2, #0x16] lsls r1, r1, #2 adds r1, r1, r3 ldrh r1, [r1] ldrh r4, [r2, #0x12] adds r1, r1, r4 movs r4, #0 strh r1, [r0, #0x2e] ldrb r1, [r2, #0x16] lsls r1, r1, #1 adds r1, #1 lsls r1, r1, #1 adds r1, r1, r3 ldrh r1, [r1] ldrh r3, [r2, #0x14] adds r1, r1, r3 strh r1, [r0, #0x32] movs r1, #0xb4 strb r1, [r2, #0x1a] ldr r1, _08071858 @ =gUnk_02034490 strb r4, [r1] movs r1, #9 strb r1, [r0, #0xc] strb r4, [r0, #0xd] ldr r3, _0807185C @ =gUnk_03003F80 ldr r1, [r3, #0x30] movs r2, #0x21 rsbs r2, r2, #0 ands r1, r2 movs r2, #0x80 orrs r1, r2 str r1, [r3, #0x30] bl sub_0805EC60 bl sub_0805E564 pop {r4, pc} .align 2, 0 _08071850: .4byte gUnk_02033A90 _08071854: .4byte gUnk_0811BAC4 _08071858: .4byte gUnk_02034490 _0807185C: .4byte gUnk_03003F80 thumb_func_start sub_08071860 sub_08071860: @ 0x08071860 push {r4, lr} adds r4, r0, #0 bl sub_08078EFC cmp r0, #0 beq _08071876 bl sub_08056360 bl sub_08071A6C b _08071896 _08071876: ldr r0, _08071898 @ =gUnk_03003F80 adds r0, #0xa8 movs r1, #0x13 strb r1, [r0] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r1, _0807189C @ =gUnk_0811BAD4 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 _08071896: pop {r4, pc} .align 2, 0 _08071898: .4byte gUnk_03003F80 _0807189C: .4byte gUnk_0811BAD4 thumb_func_start sub_080718A0 sub_080718A0: @ 0x080718A0 push {r4, r5, lr} adds r4, r0, #0 bl sub_08077B2C ldr r0, _080718EC @ =gUnk_03000B80 adds r0, #0x63 movs r1, #0 strb r1, [r0] adds r0, r4, #0 adds r0, #0x3d strb r1, [r0] ldr r1, _080718F0 @ =gUnk_03003DC0 movs r2, #6 movs r0, #6 strb r0, [r1] ldrb r1, [r4, #0x11] subs r0, #0x16 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x11] ldr r5, _080718F4 @ =gUnk_03003F80 ldr r0, [r5, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _080718F8 movs r0, #2 strb r0, [r4, #0xd] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x3b ands r0, r1 strb r0, [r2] bl sub_08052BB8 b _08071938 .align 2, 0 _080718EC: .4byte gUnk_03000B80 _080718F0: .4byte gUnk_03003DC0 _080718F4: .4byte gUnk_03003F80 _080718F8: ldrb r0, [r5, #2] cmp r0, #0 bne _08071928 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] ldrb r0, [r4, #0x14] cmp r0, #2 bne _08071914 ldr r0, _08071910 @ =0x000003CA b _08071916 .align 2, 0 _08071910: .4byte 0x000003CA _08071914: ldr r0, _08071924 @ =0x000003C6 _08071916: strh r0, [r5, #8] ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] b _08071938 .align 2, 0 _08071924: .4byte 0x000003C6 _08071928: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08071938 strb r0, [r5, #2] _08071938: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0807193C sub_0807193C: @ 0x0807193C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08071986 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #6 movs r2, #0 movs r3, #0 bl sub_080A2988 str r0, [r4, #0x54] cmp r0, #0 beq _08071986 ldrb r0, [r4, #0x14] cmp r0, #2 bne _0807197C ldr r1, _08071978 @ =gUnk_03003F80 movs r0, #0xf3 lsls r0, r0, #2 b _08071980 .align 2, 0 _08071978: .4byte gUnk_03003F80 _0807197C: ldr r1, _08071988 @ =gUnk_03003F80 ldr r0, _0807198C @ =0x000003C7 _08071980: strh r0, [r1, #8] bl sub_08052BB8 _08071986: pop {r4, pc} .align 2, 0 _08071988: .4byte gUnk_03003F80 _0807198C: .4byte 0x000003C7 thumb_func_start sub_08071990 sub_08071990: @ 0x08071990 push {r4, lr} adds r2, r0, #0 ldr r0, _080719C0 @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _080719E2 ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] ldr r3, _080719C4 @ =gUnk_03003F80 ldr r0, [r3, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _080719D8 ldrb r0, [r2, #0x14] cmp r0, #2 bne _080719CC ldr r0, _080719C8 @ =0x000003CD strh r0, [r3, #8] b _08071A4A .align 2, 0 _080719C0: .4byte gUnk_02000050 _080719C4: .4byte gUnk_03003F80 _080719C8: .4byte 0x000003CD _080719CC: ldr r0, _080719D4 @ =0x000003C9 strh r0, [r3, #8] b _08071A4A .align 2, 0 _080719D4: .4byte 0x000003C9 _080719D8: bl sub_08071A6C bl sub_08079258 b _08071A4A _080719E2: ldr r4, _08071A20 @ =gUnk_03003F80 ldr r0, [r4, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08071A4A ldrb r0, [r2, #0x14] movs r3, #0 cmp r0, #2 bne _080719F8 movs r3, #4 _080719F8: ldr r0, [r2, #0x54] ldrb r0, [r0, #0xe] cmp r0, #0 beq _08071A24 adds r0, r3, #0 adds r0, #0xc8 adds r1, r2, #0 adds r1, #0x58 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldrb r1, [r1] cmp r0, r1 beq _08071A44 movs r1, #0xf2 lsls r1, r1, #2 adds r0, r1, #0 adds r0, r3, r0 strh r0, [r4, #8] b _08071A4A .align 2, 0 _08071A20: .4byte gUnk_03003F80 _08071A24: adds r0, r3, #0 adds r0, #0xc7 adds r1, r2, #0 adds r1, #0x58 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 ldrb r1, [r1] cmp r0, r1 beq _08071A44 ldr r1, _08071A40 @ =0x000003C7 adds r0, r3, r1 strh r0, [r4, #8] b _08071A4A .align 2, 0 _08071A40: .4byte 0x000003C7 _08071A44: adds r0, r2, #0 bl sub_080042B8 _08071A4A: pop {r4, pc} thumb_func_start sub_08071A4C sub_08071A4C: @ 0x08071A4C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r4, #0x5a ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08071A68 bl sub_08071A6C bl sub_0807921C _08071A68: pop {r4, pc} .align 2, 0 thumb_func_start sub_08071A6C sub_08071A6C: @ 0x08071A6C ldr r1, _08071A84 @ =gUnk_03003DC0 movs r0, #0 strb r0, [r1] ldr r3, _08071A88 @ =gLinkEntity ldrb r1, [r3, #0x11] lsrs r2, r1, #4 subs r0, #0x10 ands r0, r1 orrs r0, r2 strb r0, [r3, #0x11] bx lr .align 2, 0 _08071A84: .4byte gUnk_03003DC0 _08071A88: .4byte gLinkEntity thumb_func_start sub_08071A8C sub_08071A8C: @ 0x08071A8C push {lr} ldr r1, _08071AA8 @ =gUnk_03003F80 adds r1, #0xa8 movs r2, #0x19 strb r2, [r1] ldr r2, _08071AAC @ =gUnk_0811BAE4 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08071AA8: .4byte gUnk_03003F80 _08071AAC: .4byte gUnk_0811BAE4 thumb_func_start sub_08071AB0 sub_08071AB0: @ 0x08071AB0 push {r4, lr} adds r3, r0, #0 ldrb r0, [r3, #0xd] adds r0, #1 strb r0, [r3, #0xd] ldr r1, _08071AD8 @ =gUnk_03003F80 ldr r2, [r1, #0x30] movs r0, #1 orrs r2, r0 str r2, [r1, #0x30] ldrb r4, [r3, #0xa] cmp r4, #1 bne _08071ADC movs r1, #0 movs r0, #0 strh r0, [r3, #0x24] strb r1, [r3, #0xe] strb r4, [r3, #0xf] b _08071AE8 .align 2, 0 _08071AD8: .4byte gUnk_03003F80 _08071ADC: movs r0, #0x80 ands r2, r0 cmp r2, #0 beq _08071AE6 movs r0, #0x40 _08071AE6: strh r0, [r3, #0x24] _08071AE8: adds r0, r3, #0 bl sub_08071AF0 pop {r4, pc} thumb_func_start sub_08071AF0 sub_08071AF0: @ 0x08071AF0 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08071B34 @ =gUnk_03003F80 adds r0, r5, #0 adds r0, #0x80 movs r1, #0 strh r1, [r0] adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xa] cmp r0, #1 bne _08071B44 ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 cmp r0, #0 bne _08071B58 ldr r0, _08071B38 @ =gUnk_0811BAF0 ldrb r1, [r4, #0xe] lsls r1, r1, #2 adds r1, r1, r0 ldrb r2, [r1] adds r0, r2, #0 cmp r0, #0xff beq _08071B3C strb r2, [r4, #0xf] ldrh r0, [r1, #2] strh r0, [r4, #0x24] ldrb r0, [r4, #0xe] adds r0, #1 strb r0, [r4, #0xe] b _08071B58 .align 2, 0 _08071B34: .4byte gUnk_03003F80 _08071B38: .4byte gUnk_0811BAF0 _08071B3C: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _08071B5C _08071B44: ldrb r0, [r5, #6] subs r0, #1 strb r0, [r5, #6] movs r1, #0x7f ands r0, r1 cmp r0, #0 bne _08071B58 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] _08071B58: bl sub_08079E08 _08071B5C: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08071B60 sub_08071B60: @ 0x08071B60 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08071BAC @ =gUnk_03003F80 movs r2, #0 movs r0, #2 strb r0, [r5, #6] ldr r0, [r5, #0x30] movs r1, #2 rsbs r1, r1, #0 ands r0, r1 str r0, [r5, #0x30] strb r2, [r4, #0xa] adds r0, r4, #0 adds r0, #0x42 strb r2, [r0] adds r0, r4, #0 bl sub_080728AC movs r0, #6 strb r0, [r4, #0xf] ldr r0, [r5, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08071BA8 movs r0, #0x82 lsls r0, r0, #1 strh r0, [r5, #8] movs r0, #3 strh r0, [r4, #0x12] ldrb r1, [r4, #0x14] lsrs r1, r1, #1 adds r1, #0x3c adds r0, r4, #0 bl sub_080042AC _08071BA8: pop {r4, r5, pc} .align 2, 0 _08071BAC: .4byte gUnk_03003F80 thumb_func_start sub_08071BB0 sub_08071BB0: @ 0x08071BB0 push {lr} ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] ldr r2, _08071BD4 @ =gUnk_0811BB2C ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldr r0, _08071BD8 @ =gUnk_03003F80 adds r0, #0xa8 movs r1, #0x12 strb r1, [r0] pop {pc} .align 2, 0 _08071BD4: .4byte gUnk_0811BB2C _08071BD8: .4byte gUnk_03003F80 thumb_func_start sub_08071BDC sub_08071BDC: @ 0x08071BDC push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08071C10 @ =gUnk_03003F80 ldr r0, [r5, #0x30] movs r1, #0x88 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 bne _08071C9C movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 beq _08071C1C ldr r0, [r5, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08071C14 movs r0, #0x84 lsls r0, r0, #3 strh r0, [r5, #8] b _08071C9C .align 2, 0 _08071C10: .4byte gUnk_03003F80 _08071C14: movs r0, #0x81 lsls r0, r0, #4 strh r0, [r5, #8] b _08071C9C _08071C1C: strb r0, [r5, #0xc] ldr r1, [r5, #0x30] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08071C4C ldrb r0, [r5, #0x12] subs r0, #8 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #2 bhi _08071C42 adds r0, r4, #0 bl sub_0807A298 bl sub_08079458 movs r0, #0xa strb r0, [r4, #0xc] _08071C42: ldr r0, _08071C48 @ =0x00000C1A b _08071C5A .align 2, 0 _08071C48: .4byte 0x00000C1A _08071C4C: movs r0, #8 ands r1, r0 movs r0, #0xde lsls r0, r0, #1 cmp r1, #0 beq _08071C5A ldr r0, _08071CA0 @ =0x00000459 _08071C5A: ldr r2, _08071CA4 @ =gUnk_03003F80 movs r3, #0 strh r0, [r2, #8] ldr r0, [r2, #0x30] ldr r1, _08071CA8 @ =0xFEDBF2FE ands r0, r1 str r0, [r2, #0x30] movs r0, #1 strb r0, [r4, #0xd] movs r0, #4 strb r0, [r4, #0x14] adds r5, r4, #0 adds r5, #0x29 ldrb r1, [r5] subs r0, #0x3d ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r5] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] strb r3, [r2, #2] strb r3, [r2, #6] adds r0, r4, #0 bl sub_0800451C bl sub_08077B2C movs r0, #0x87 bl sub_080A3268 _08071C9C: pop {r4, r5, pc} .align 2, 0 _08071CA0: .4byte 0x00000459 _08071CA4: .4byte gUnk_03003F80 _08071CA8: .4byte 0xFEDBF2FE thumb_func_start sub_08071CAC sub_08071CAC: @ 0x08071CAC push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r3, #0x80 adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08071CFE ldr r1, _08071CE0 @ =gUnk_03003F80 ldr r2, [r1, #0x30] adds r0, r2, #0 ands r0, r3 cmp r0, #0 bne _08071CEC movs r0, #8 ands r2, r0 ldr r0, _08071CE4 @ =0x000002BD cmp r2, #0 beq _08071CEE ldr r0, _08071CE8 @ =0x0000045A b _08071CEE .align 2, 0 _08071CE0: .4byte gUnk_03003F80 _08071CE4: .4byte 0x000002BD _08071CE8: .4byte 0x0000045A _08071CEC: ldr r0, _08071D00 @ =0x00000C1B _08071CEE: strh r0, [r1, #8] movs r0, #2 strb r0, [r4, #0xd] movs r0, #0xf0 strb r0, [r4, #0xe] movs r0, #0x7b bl sub_080A3268 _08071CFE: pop {r4, pc} .align 2, 0 _08071D00: .4byte 0x00000C1B thumb_func_start sub_08071D04 sub_08071D04: @ 0x08071D04 push {r4, r5, lr} adds r5, r0, #0 bl sub_080042B8 adds r0, r5, #0 adds r0, #0x5a ldrb r0, [r0] cmp r0, #0 beq _08071D7A movs r4, #0 movs r0, #0x28 bl sub_080544DC adds r1, r0, #0 cmp r1, #0 beq _08071D3A ldr r0, _08071D6C @ =gUnk_02002A40 adds r0, r0, r1 adds r0, #0xb5 movs r1, #0x20 strb r1, [r0] movs r0, #0x40 movs r1, #0x60 movs r2, #2 bl CreateObject movs r4, #0x20 _08071D3A: cmp r4, #0 beq _08071D74 adds r0, r4, #0 bl sub_080526A0 movs r2, #0 movs r0, #3 strb r0, [r5, #0xd] ldr r1, _08071D70 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x3c strb r2, [r0] movs r0, #0xff strb r0, [r5, #0x15] movs r3, #0 strh r2, [r5, #0x24] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r5, #0x20] movs r0, #1 strb r0, [r1, #2] adds r1, #0x26 strb r3, [r1] b _08071D7A .align 2, 0 _08071D6C: .4byte gUnk_02002A40 _08071D70: .4byte gUnk_03003F80 _08071D74: ldr r1, _08071D7C @ =gUnk_030010A0 movs r0, #1 strb r0, [r1, #5] _08071D7A: pop {r4, r5, pc} .align 2, 0 _08071D7C: .4byte gUnk_030010A0 thumb_func_start sub_08071D80 sub_08071D80: @ 0x08071D80 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 ldr r5, _08071DB4 @ =gUnk_03003F80 movs r0, #1 strb r0, [r5, #0x14] adds r0, r4, #0 bl sub_08073904 ldrb r1, [r5, #2] movs r0, #7 ands r0, r1 cmp r0, #3 bne _08071DB2 movs r0, #0 strb r0, [r5, #2] adds r1, r4, #0 adds r1, #0x3d movs r0, #0xe2 strb r0, [r1] bl sub_0805E564 bl sub_080791D0 _08071DB2: pop {r4, r5, pc} .align 2, 0 _08071DB4: .4byte gUnk_03003F80 thumb_func_start sub_08071DB8 sub_08071DB8: @ 0x08071DB8 push {lr} ldr r2, _08071DCC @ =gUnk_0811BB3C ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08071DCC: .4byte gUnk_0811BB3C thumb_func_start sub_08071DD0 sub_08071DD0: @ 0x08071DD0 push {lr} adds r2, r0, #0 ldr r1, _08071DF4 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x38 ldrb r0, [r0] strb r0, [r2, #0xe] adds r3, r1, #0 adds r3, #0x39 ldrb r0, [r3] cmp r0, #0 beq _08071DF8 movs r0, #0 strb r0, [r3] movs r0, #2 strb r0, [r2, #0xd] adds r0, #0xfe b _08071E00 .align 2, 0 _08071DF4: .4byte gUnk_03003F80 _08071DF8: movs r0, #1 strb r0, [r2, #0xd] movs r0, #0x8a lsls r0, r0, #1 _08071E00: strh r0, [r1, #8] pop {pc} thumb_func_start sub_08071E04 sub_08071E04: @ 0x08071E04 push {r4, r5, lr} adds r4, r0, #0 ldr r0, [r4, #0x34] cmp r0, #0 beq _08071E38 ldr r5, _08071E34 @ =gUnk_03003F80 ldrb r0, [r5, #0x14] cmp r0, #0 bne _08071E38 bl sub_0807A1B8 ldrb r0, [r5, #0x12] cmp r0, #1 bne _08071E38 movs r0, #7 strb r0, [r5, #0x11] ldr r0, [r5, #0x30] movs r1, #0x80 lsls r1, r1, #2 orrs r0, r1 str r0, [r5, #0x30] bl sub_080791BC b _08071E72 .align 2, 0 _08071E34: .4byte gUnk_03003F80 _08071E38: adds r0, r4, #0 bl sub_080042B8 bl sub_08079B24 cmp r0, #0 bne _08071E4E adds r0, r4, #0 bl sub_08079708 b _08071E72 _08071E4E: bl sub_080792D8 bl sub_0807953C cmp r0, #0 beq _08071E60 ldrb r0, [r4, #0xe] subs r0, #2 b _08071E64 _08071E60: ldrb r0, [r4, #0xe] subs r0, #1 _08071E64: strb r0, [r4, #0xe] movs r0, #0xe ldrsb r0, [r4, r0] cmp r0, #0 bgt _08071E72 bl sub_080791BC _08071E72: pop {r4, r5, pc} thumb_func_start sub_08071E74 sub_08071E74: @ 0x08071E74 push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 bl sub_08079E08 ldrb r0, [r4, #0xe] adds r1, r0, #0 adds r1, #0xff strb r1, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08071E96 bl sub_080791BC _08071E96: pop {r4, pc} thumb_func_start sub_08071E98 sub_08071E98: @ 0x08071E98 push {lr} ldr r2, _08071EAC @ =gUnk_0811BB48 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08071EAC: .4byte gUnk_0811BB48 thumb_func_start sub_08071EB0 sub_08071EB0: @ 0x08071EB0 push {r4, lr} adds r4, r0, #0 bl sub_08077B2C adds r0, r4, #0 movs r1, #0xe bl sub_08077C3C cmp r0, #0 beq _08071F12 ldr r3, _08071EE4 @ =gUnk_03003F80 adds r2, r3, #0 adds r2, #0x38 ldrb r1, [r2] adds r0, #0x68 strb r1, [r0] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] ldrb r0, [r2] cmp r0, #0x20 bne _08071EEC ldr r0, _08071EE8 @ =0x00000614 strh r0, [r3, #8] b _08071F12 .align 2, 0 _08071EE4: .4byte gUnk_03003F80 _08071EE8: .4byte 0x00000614 _08071EEC: cmp r0, #0x20 blt _08071F00 cmp r0, #0x25 bgt _08071F00 ldr r0, _08071EFC @ =0x000002DF strh r0, [r3, #8] b _08071F12 .align 2, 0 _08071EFC: .4byte 0x000002DF _08071F00: movs r0, #0xc2 lsls r0, r0, #3 strh r0, [r3, #8] adds r0, r3, #0 adds r0, #0x38 ldrb r0, [r0] movs r1, #2 bl sub_0807CAA0 _08071F12: pop {r4, pc} thumb_func_start sub_08071F14 sub_08071F14: @ 0x08071F14 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r4, #0x5a ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08071F32 ldr r1, _08071F34 @ =gUnk_03003F80 movs r0, #0 str r0, [r1, #0x2c] bl sub_0807921C _08071F32: pop {r4, pc} .align 2, 0 _08071F34: .4byte gUnk_03003F80 thumb_func_start sub_08071F38 sub_08071F38: @ 0x08071F38 push {lr} ldr r2, _08071F4C @ =gUnk_0811BB50 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08071F4C: .4byte gUnk_0811BB50 thumb_func_start sub_08071F50 sub_08071F50: @ 0x08071F50 push {lr} ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0x78 strb r1, [r0, #0xe] ldrb r1, [r0, #0xd] adds r1, #1 strb r1, [r0, #0xd] ldr r1, _08071F78 @ =gUnk_03003F80 movs r0, #0xa5 lsls r0, r0, #2 strh r0, [r1, #8] bl sub_08077B20 ldr r0, _08071F7C @ =0x00000195 bl sub_080A3268 pop {pc} .align 2, 0 _08071F78: .4byte gUnk_03003F80 _08071F7C: .4byte 0x00000195 thumb_func_start sub_08071F80 sub_08071F80: @ 0x08071F80 push {r4, r5, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 adds r5, r0, #0 cmp r5, #0 bne _08071FB8 adds r0, r4, #0 bl sub_08016A04 ldr r0, _08071FB4 @ =gUnk_03003F80 strb r5, [r0, #2] ldrb r0, [r0, #0x14] cmp r0, #0 bne _08071FB8 bl sub_08079D48 cmp r0, #0 bne _08071FB8 adds r0, r4, #0 bl sub_08072008 b _08072004 .align 2, 0 _08071FB4: .4byte gUnk_03003F80 _08071FB8: bl sub_08079B24 cmp r0, #0 bne _08071FC8 adds r0, r4, #0 bl sub_08079708 b _08071FFE _08071FC8: ldr r0, _08071FEC @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 lsls r1, r1, #4 ands r0, r1 cmp r0, #0 beq _08071FFE bl sub_0807953C cmp r0, #0 beq _08071FF0 ldrb r0, [r4, #0xe] subs r0, #3 strb r0, [r4, #0xe] adds r1, r4, #0 adds r1, #0x62 movs r0, #2 b _08071FF4 .align 2, 0 _08071FEC: .4byte gUnk_03003F80 _08071FF0: adds r1, r4, #0 adds r1, #0x62 _08071FF4: strb r0, [r1] movs r0, #0xe ldrsb r0, [r4, r0] cmp r0, #0 bgt _08072004 _08071FFE: adds r0, r4, #0 bl sub_08072008 _08072004: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08072008 sub_08072008: @ 0x08072008 push {lr} adds r3, r0, #0 adds r1, r3, #0 adds r1, #0x3d movs r2, #0 movs r0, #0xa0 strb r0, [r1] adds r0, r3, #0 adds r0, #0x42 strb r2, [r0] ldrb r1, [r3, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r3, #0x10] adds r0, r3, #0 adds r0, #0x62 strb r2, [r0] ldr r2, _08072044 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08072048 @ =0xFFFFF7FE ands r0, r1 str r0, [r2, #0x30] adds r0, r3, #0 movs r1, #0xd movs r2, #0 bl CreateFX bl sub_080791BC pop {pc} .align 2, 0 _08072044: .4byte gUnk_03003F80 _08072048: .4byte 0xFFFFF7FE thumb_func_start sub_0807204C sub_0807204C: @ 0x0807204C push {lr} ldr r2, _08072060 @ =gUnk_0811BB58 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08072060: .4byte gUnk_0811BB58 thumb_func_start sub_08072064 sub_08072064: @ 0x08072064 push {lr} movs r1, #1 strb r1, [r0, #0xd] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] ldr r2, _08072094 @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0x3a ldrb r1, [r1] strb r1, [r0, #0xe] adds r0, r2, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, #1 ldrb r0, [r0] lsls r0, r0, #8 orrs r1, r0 strh r1, [r2, #8] bl sub_08077B2C pop {pc} .align 2, 0 _08072094: .4byte gUnk_03003F80 thumb_func_start sub_08072098 sub_08072098: @ 0x08072098 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080720B4 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080720D8 b _080720C2 _080720B4: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080720D8 _080720C2: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _080720D4 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _080720D4: bl sub_080791BC _080720D8: pop {r4, pc} .align 2, 0 thumb_func_start sub_080720DC sub_080720DC: @ 0x080720DC push {r4, lr} adds r4, r0, #0 bl sub_08078EFC cmp r0, #0 bne _080720F8 ldr r0, _080720FC @ =gUnk_0811BB60 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _080720F8: pop {r4, pc} .align 2, 0 _080720FC: .4byte gUnk_0811BB60 thumb_func_start sub_08072100 sub_08072100: @ 0x08072100 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r0, _08072148 @ =gUnk_08114F88 str r0, [r4, #0x48] ldr r2, _0807214C @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x38 ldrb r0, [r0] strb r0, [r4, #0xe] movs r0, #1 strb r0, [r4, #0xd] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] adds r0, r2, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 beq _0807213A movs r0, #0xff strb r0, [r4, #0x15] _0807213A: ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08072154 ldr r0, _08072150 @ =0x00000404 b _08072158 .align 2, 0 _08072148: .4byte gUnk_08114F88 _0807214C: .4byte gUnk_03003F80 _08072150: .4byte 0x00000404 _08072154: movs r0, #0x82 lsls r0, r0, #1 _08072158: strh r0, [r2, #8] bl sub_08077B2C adds r0, r4, #0 bl sub_08072168 pop {r4, pc} .align 2, 0 thumb_func_start sub_08072168 sub_08072168: @ 0x08072168 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 movs r2, #0xc rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #0 bl sub_0806F854 lsls r0, r0, #0x10 movs r1, #0x80 lsls r1, r1, #6 cmp r0, #0 beq _0807218A movs r1, #0x80 lsls r1, r1, #7 _0807218A: adds r0, r4, #0 bl sub_08003FC4 ldr r0, _080721A4 @ =gUnk_03003F80 adds r0, #0x3a ldrb r0, [r0] cmp r0, #0 beq _080721A8 adds r0, r4, #0 bl sub_0806F69C b _080721AC .align 2, 0 _080721A4: .4byte gUnk_03003F80 _080721A8: bl sub_08079E08 _080721AC: ldr r1, _080721E0 @ =gUnk_03003F80 ldrb r0, [r4, #0x15] strb r0, [r1, #0xd] bl sub_08019840 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _080721DE adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 bl sub_08016A04 bl sub_080791BC _080721DE: pop {r4, pc} .align 2, 0 _080721E0: .4byte gUnk_03003F80 thumb_func_start sub_080721E4 sub_080721E4: @ 0x080721E4 push {lr} ldr r1, _08072208 @ =gUnk_03003F80 adds r1, #0xa8 movs r2, #0x1a strb r2, [r1] ldr r2, _0807220C @ =gUnk_0811BB68 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 ldr r0, _08072210 @ =gUnk_0200AF00 adds r0, #0x2e movs r1, #8 strb r1, [r0] pop {pc} .align 2, 0 _08072208: .4byte gUnk_03003F80 _0807220C: .4byte gUnk_0811BB68 _08072210: .4byte gUnk_0200AF00 thumb_func_start sub_08072214 sub_08072214: @ 0x08072214 push {lr} adds r3, r0, #0 movs r0, #1 strb r0, [r3, #0xd] movs r0, #0x80 strh r0, [r3, #0x24] ldr r2, _08072244 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x38 ldrb r0, [r0] strb r0, [r3, #0xe] ldrb r0, [r3, #0x14] movs r1, #4 eors r0, r1 lsls r0, r0, #2 strb r0, [r3, #0x15] ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 bne _08072248 movs r0, #0xd3 lsls r0, r0, #2 b _0807224A .align 2, 0 _08072244: .4byte gUnk_03003F80 _08072248: ldr r0, _0807225C @ =0x00000944 _0807224A: strh r0, [r2, #8] ldr r0, [r2, #0x30] movs r1, #1 orrs r0, r1 str r0, [r2, #0x30] adds r0, r3, #0 bl sub_08072260 pop {pc} .align 2, 0 _0807225C: .4byte 0x00000944 thumb_func_start sub_08072260 sub_08072260: @ 0x08072260 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _0807229C @ =gUnk_03003F80 adds r1, r5, #0 adds r1, #0x80 movs r0, #0 strh r0, [r1] bl sub_08079E08 adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080722B0 ldr r0, [r5, #0x30] movs r1, #2 rsbs r1, r1, #0 ands r0, r1 str r0, [r5, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 bne _080722A0 movs r0, #0xd3 lsls r0, r0, #2 b _080722A2 .align 2, 0 _0807229C: .4byte gUnk_03003F80 _080722A0: ldr r0, _080722B4 @ =0x00000944 _080722A2: strh r0, [r5, #8] adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] bl sub_080791BC _080722B0: pop {r4, r5, pc} .align 2, 0 _080722B4: .4byte 0x00000944 thumb_func_start sub_080722B8 sub_080722B8: @ 0x080722B8 push {lr} ldr r1, _080722D4 @ =gUnk_03003F80 adds r1, #0xa8 movs r2, #0xa strb r2, [r1] ldr r2, _080722D8 @ =gUnk_0811BB70 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080722D4: .4byte gUnk_03003F80 _080722D8: .4byte gUnk_0811BB70 thumb_func_start sub_080722DC sub_080722DC: @ 0x080722DC push {r4, r5, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldr r2, _08072318 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 adds r5, r2, #0 cmp r0, #0 bne _0807231C movs r0, #1 strb r0, [r4, #0xd] movs r0, #0xa0 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #0x42 movs r2, #0 bl CreateObject cmp r0, #0 beq _0807230E str r4, [r0, #0x54] _0807230E: movs r0, #0x8a lsls r0, r0, #1 strh r0, [r5, #8] b _08072332 .align 2, 0 _08072318: .4byte gUnk_03003F80 _0807231C: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] movs r0, #3 strb r0, [r4, #0xd] adds r1, r4, #0 adds r1, #0x42 movs r0, #0xa strb r0, [r1] _08072332: ldr r0, [r5, #0x30] ldr r1, _08072350 @ =0x00000401 orrs r0, r1 str r0, [r5, #0x30] bl sub_08077B2C movs r0, #0x92 lsls r0, r0, #1 bl sub_080A3268 movs r0, #0x7a bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _08072350: .4byte 0x00000401 thumb_func_start sub_08072354 sub_08072354: @ 0x08072354 push {r4, lr} adds r4, r0, #0 movs r2, #0xc rsbs r2, r2, #0 movs r1, #0 bl sub_0806F854 adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_08079744 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 adds r3, r0, #0 cmp r3, #0 bne _080723C0 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] adds r0, r4, #0 adds r0, #0x42 strb r3, [r0] movs r0, #2 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] ldr r2, _080723C4 @ =gUnk_03003F80 ldr r0, _080723C8 @ =0x000002C1 strh r0, [r2, #8] ldr r0, [r2, #0x30] ldr r1, _080723CC @ =0xFFFFFBFF ands r0, r1 str r0, [r2, #0x30] adds r0, r4, #0 bl sub_08016A04 adds r0, r4, #0 movs r1, #0xc movs r2, #0 bl CreateFX movs r0, #0xd3 lsls r0, r0, #1 bl sub_080A3268 _080723C0: pop {r4, pc} .align 2, 0 _080723C4: .4byte gUnk_03003F80 _080723C8: .4byte 0x000002C1 _080723CC: .4byte 0xFFFFFBFF thumb_func_start sub_080723D0 sub_080723D0: @ 0x080723D0 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0807240A adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x3d movs r0, #0x14 strb r0, [r1] subs r0, #0x16 bl sub_080526A0 bl sub_08079458 _0807240A: pop {r4, pc} thumb_func_start sub_0807240C sub_0807240C: @ 0x0807240C push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x42 ldrb r0, [r1] subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08072448 ldrb r0, [r2, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r2, #0x18] adds r1, r2, #0 adds r1, #0x3d movs r0, #0x14 strb r0, [r1] ldr r2, _0807244C @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08072450 @ =0xFFFFFBFF ands r0, r1 str r0, [r2, #0x30] movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 bl sub_08079458 _08072448: pop {pc} .align 2, 0 _0807244C: .4byte gUnk_03003F80 _08072450: .4byte 0xFFFFFBFF thumb_func_start sub_08072454 sub_08072454: @ 0x08072454 push {lr} ldr r2, _08072468 @ =gUnk_0811BB80 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08072468: .4byte gUnk_0811BB80 thumb_func_start sub_0807246C sub_0807246C: @ 0x0807246C push {lr} movs r1, #1 strb r1, [r0, #0xd] ldr r2, _0807248C @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0x38 ldrb r1, [r1] strb r1, [r0, #0xe] movs r0, #0xf0 lsls r0, r0, #2 strh r0, [r2, #8] movs r0, #0x7b bl sub_080A3268 pop {pc} .align 2, 0 _0807248C: .4byte gUnk_03003F80 thumb_func_start sub_08072490 sub_08072490: @ 0x08072490 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _080724AE adds r0, r1, #0 bl sub_080042B8 bl sub_08079E08 b _080724C2 _080724AE: adds r0, r1, #0 adds r0, #0x3d movs r1, #0x3c strb r1, [r0] movs r0, #8 rsbs r0, r0, #0 bl sub_080526A0 bl sub_080791D0 _080724C2: pop {pc} thumb_func_start sub_080724C4 sub_080724C4: @ 0x080724C4 push {lr} ldr r2, _080724D8 @ =gUnk_0811BB88 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _080724D8: .4byte gUnk_0811BB88 thumb_func_start sub_080724DC sub_080724DC: @ 0x080724DC push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] bl sub_0807A108 adds r0, r4, #0 bl sub_080002B8 cmp r0, #0x29 beq _0807254C ldr r1, _08072530 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x89 ldrb r0, [r0] cmp r0, #0 bne _08072512 adds r0, r1, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08072512 adds r0, r4, #0 bl sub_0807AE20 _08072512: ldr r0, _08072534 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #0 bne _08072538 ldrb r0, [r4, #0x11] lsrs r2, r0, #4 movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 orrs r1, r2 strb r1, [r4, #0x11] adds r0, r4, #0 bl sub_080728AC b _08072588 .align 2, 0 _08072530: .4byte gUnk_03003F80 _08072534: .4byte gUnk_03000BF0 _08072538: ldr r0, _08072548 @ =gUnk_03003F80 ldrb r0, [r0, #0x1c] cmp r0, #0 bne _08072588 adds r0, r4, #0 bl sub_080042B8 b _08072588 .align 2, 0 _08072548: .4byte gUnk_03003F80 _0807254C: ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #1 strb r0, [r4, #0xd] ldr r0, _08072570 @ =gUnk_02034350 ldrb r0, [r0] cmp r0, #0 bne _08072588 ldr r2, _08072574 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0807257C ldr r0, _08072578 @ =0x00000C18 b _08072580 .align 2, 0 _08072570: .4byte gUnk_02034350 _08072574: .4byte gUnk_03003F80 _08072578: .4byte 0x00000C18 _0807257C: movs r0, #0x82 lsls r0, r0, #1 _08072580: strh r0, [r2, #8] ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] _08072588: pop {r4, pc} .align 2, 0 thumb_func_start sub_0807258C sub_0807258C: @ 0x0807258C push {r4, lr} adds r4, r0, #0 ldr r0, _080725D0 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #0 bne _08072604 adds r0, r4, #0 bl sub_0807A894 cmp r0, #0x29 bne _080725E4 bl sub_08079E08 bl sub_080797C4 cmp r0, #0 beq _080725DC ldr r2, _080725D4 @ =gUnk_03003F80 ldr r1, _080725D8 @ =gLinkEntity ldrh r0, [r1, #0x2e] strh r0, [r2, #0x16] ldrh r0, [r1, #0x32] strh r0, [r2, #0x18] ldrb r1, [r4, #0x11] lsrs r2, r1, #4 movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x11] adds r0, r4, #0 bl sub_080728AC b _08072604 .align 2, 0 _080725D0: .4byte gUnk_03000BF0 _080725D4: .4byte gUnk_03003F80 _080725D8: .4byte gLinkEntity _080725DC: adds r0, r4, #0 bl sub_080042B8 b _08072604 _080725E4: ldr r2, _08072624 @ =gUnk_03003F80 ldr r1, _08072628 @ =gLinkEntity ldrh r0, [r1, #0x2e] strh r0, [r2, #0x16] ldrh r0, [r1, #0x32] strh r0, [r2, #0x18] ldrb r1, [r4, #0x11] lsrs r2, r1, #4 movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 orrs r0, r2 strb r0, [r4, #0x11] adds r0, r4, #0 bl sub_080728AC _08072604: ldr r1, _08072624 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x89 ldrb r0, [r0] cmp r0, #0 bne _08072620 adds r0, r1, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08072620 adds r0, r4, #0 bl sub_0807AE20 _08072620: pop {r4, pc} .align 2, 0 _08072624: .4byte gUnk_03003F80 _08072628: .4byte gLinkEntity thumb_func_start sub_0807262C sub_0807262C: @ 0x0807262C push {lr} ldr r1, _08072648 @ =gUnk_03003F80 adds r1, #0xa8 movs r2, #9 strb r2, [r1] ldr r2, _0807264C @ =gUnk_0811BB90 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08072648: .4byte gUnk_03003F80 _0807264C: .4byte gUnk_0811BB90 thumb_func_start sub_08072650 sub_08072650: @ 0x08072650 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08072698 @ =gUnk_03003F80 ldr r0, [r5, #0x30] movs r1, #0x80 lsls r1, r1, #0xe ands r0, r1 cmp r0, #0 bne _0807266E ldr r0, _0807269C @ =gLinkEntity bl sub_0806F948 ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] _0807266E: movs r1, #0 movs r0, #1 strb r0, [r4, #0xd] strb r1, [r4, #0xe] bl sub_08077B2C ldr r3, [r5, #0x30] movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _080726A4 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldr r0, _080726A0 @ =0x00000C08 b _080726BE .align 2, 0 _08072698: .4byte gUnk_03003F80 _0807269C: .4byte gLinkEntity _080726A0: .4byte 0x00000C08 _080726A4: adds r0, r4, #0 adds r0, #0x40 movs r1, #0x1e strb r1, [r0] movs r0, #8 ands r3, r0 cmp r3, #0 beq _080726BA movs r0, #0x87 lsls r0, r0, #3 b _080726BE _080726BA: movs r0, #0xab lsls r0, r0, #2 _080726BE: strh r0, [r5, #8] ldr r2, _080726E0 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0xb orrs r0, r1 str r0, [r2, #0x30] bl sub_08000E50 movs r1, #1 ands r1, r0 cmp r1, #0 beq _080726E4 movs r0, #0x79 bl sub_080A3268 b _080726EA .align 2, 0 _080726E0: .4byte gUnk_03003F80 _080726E4: movs r0, #0x78 bl sub_080A3268 _080726EA: movs r0, #0x7e bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080726F4 sub_080726F4: @ 0x080726F4 push {r4, r5, lr} adds r4, r0, #0 ldr r3, _08072744 @ =gUnk_03003F80 ldr r2, [r3, #0x30] movs r0, #0xc0 lsls r0, r0, #0xc ands r0, r2 movs r1, #0x80 lsls r1, r1, #0xb cmp r0, r1 bne _08072730 movs r0, #0x80 lsls r0, r0, #0xe ands r0, r2 cmp r0, #0 bne _0807274C adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 beq _0807274C adds r0, r4, #0 adds r0, #0x41 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807274C _08072730: ldr r0, _08072748 @ =0xFFFBFFFF ands r2, r0 str r2, [r3, #0x30] bl sub_08078EFC cmp r0, #0 beq _08072740 b _080728A0 _08072740: b _080727E0 .align 2, 0 _08072744: .4byte gUnk_03003F80 _08072748: .4byte 0xFFFBFFFF _0807274C: ldrb r1, [r4, #0x14] movs r0, #6 ands r0, r1 lsls r0, r0, #2 strb r0, [r4, #0x15] ldr r0, _080727A0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0807277E ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _0807277E ldr r0, _080727A4 @ =gLinkEntity movs r1, #0x11 movs r2, #0x40 bl CreateFX movs r0, #4 strb r0, [r4, #0xe] _0807277E: ldr r5, _080727A0 @ =gUnk_03003F80 ldr r0, [r5, #0x30] movs r1, #2 ands r0, r1 cmp r0, #0 bne _0807278E bl sub_0807A1B8 _0807278E: bl sub_08078EFC cmp r0, #0 beq _080727AC ldr r0, [r5, #0x30] ldr r1, _080727A8 @ =0xFFFBFFFF ands r0, r1 str r0, [r5, #0x30] b _080728A0 .align 2, 0 _080727A0: .4byte gUnk_03003F80 _080727A4: .4byte gLinkEntity _080727A8: .4byte 0xFFFBFFFF _080727AC: ldr r1, [r5, #0x30] movs r0, #0x80 lsls r0, r0, #0xc ands r0, r1 cmp r0, #0 beq _080727C4 ldr r0, _080727C0 @ =0xFFFBFFFF ands r1, r0 str r1, [r5, #0x30] b _080728A0 .align 2, 0 _080727C0: .4byte 0xFFFBFFFF _080727C4: adds r0, r4, #0 bl sub_0807AC54 cmp r0, #0 bne _080728A0 ldr r1, [r5, #0x30] movs r3, #0x94 lsls r3, r3, #2 ands r3, r1 cmp r3, #0 beq _080727EC ldr r0, _080727E8 @ =0xFFFBFFFF ands r1, r0 str r1, [r5, #0x30] _080727E0: adds r0, r4, #0 bl sub_080728AC b _080728A0 .align 2, 0 _080727E8: .4byte 0xFFFBFFFF _080727EC: ldrb r0, [r5, #0x12] cmp r0, #0x17 bne _080727FE adds r0, r4, #0 bl sub_0800892E adds r5, r4, #0 adds r5, #0x5a b _08072844 _080727FE: adds r1, r4, #0 adds r1, #0x5a ldrb r0, [r1] movs r2, #0xf ands r2, r0 adds r5, r1, #0 cmp r2, #1 beq _0807282A cmp r2, #1 bgt _08072818 cmp r2, #0 beq _08072822 b _0807283C _08072818: cmp r2, #2 beq _08072832 cmp r2, #3 beq _0807283A b _0807283C _08072822: movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] b _0807283C _0807282A: ldrh r0, [r4, #0x24] adds r0, #0x20 strh r0, [r4, #0x24] b _0807283C _08072832: movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] b _0807283C _0807283A: strh r3, [r4, #0x24] _0807283C: bl sub_08078F24 bl sub_08079E08 _08072844: ldrb r1, [r5] movs r0, #0x10 ands r0, r1 cmp r0, #0 bne _08072860 ldr r0, _080728A4 @ =gUnk_03003F80 ldr r1, [r0, #0x30] movs r0, #0x80 ands r1, r0 cmp r1, #0 bne _08072860 adds r0, r4, #0 adds r0, #0x40 strb r1, [r0] _08072860: ldrb r1, [r5] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _08072870 adds r0, r4, #0 bl sub_08077698 _08072870: ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08072882 ldr r0, _080728A4 @ =gUnk_03003F80 ldrb r0, [r0, #4] cmp r0, #0 beq _08072886 _08072882: bl sub_080791D0 _08072886: ldrb r1, [r5] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807289A ldr r0, _080728A4 @ =gUnk_03003F80 ldr r1, [r0, #0x30] ldr r2, _080728A8 @ =0xFFDBFFFF ands r1, r2 str r1, [r0, #0x30] _0807289A: adds r0, r4, #0 bl sub_080042B8 _080728A0: pop {r4, r5, pc} .align 2, 0 _080728A4: .4byte gUnk_03003F80 _080728A8: .4byte 0xFFDBFFFF thumb_func_start sub_080728AC sub_080728AC: @ 0x080728AC push {r4, r5, lr} adds r4, r0, #0 bl sub_08079938 ldr r0, _080728C8 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _080728CC adds r0, r4, #0 bl sub_0807B068 b _080728D0 .align 2, 0 _080728C8: .4byte gUnk_03003F80 _080728CC: bl sub_08078F60 _080728D0: ldr r1, _08072940 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _080728E0 movs r0, #0 strh r0, [r4, #0x24] _080728E0: ldr r0, [r1, #0x30] movs r5, #0x40 ands r5, r0 adds r3, r0, #0 cmp r5, #0 bne _080728F6 ldr r0, _08072944 @ =gLinkEntity ldrb r1, [r0, #0x18] movs r2, #3 orrs r1, r2 strb r1, [r0, #0x18] _080728F6: movs r0, #0x80 ands r0, r3 cmp r0, #0 bne _08072910 ldr r2, _08072944 @ =gLinkEntity adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] _08072910: ldr r0, _08072948 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #4 ands r0, r1 cmp r0, #0 bne _0807292C cmp r5, #0 beq _08072928 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _08072928: bl sub_080791D0 _0807292C: ldr r0, _08072940 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #2 ands r0, r1 cmp r0, #0 bne _0807293C bl sub_0807A1B8 _0807293C: pop {r4, r5, pc} .align 2, 0 _08072940: .4byte gUnk_03003F80 _08072944: .4byte gLinkEntity _08072948: .4byte gUnk_03000BF0 thumb_func_start sub_0807294C sub_0807294C: @ 0x0807294C push {lr} ldr r1, _08072968 @ =gUnk_03003F80 adds r1, #0xa8 movs r2, #0x17 strb r2, [r1] ldr r2, _0807296C @ =gUnk_0811BB98 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08072968: .4byte gUnk_03003F80 _0807296C: .4byte gUnk_0811BB98 thumb_func_start sub_08072970 sub_08072970: @ 0x08072970 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _08072A4C movs r7, #1 strb r7, [r5, #0xd] ldrh r2, [r5, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 adds r0, r1, #0 ands r0, r2 movs r2, #8 orrs r0, r2 strh r0, [r5, #0x2e] ldrh r0, [r5, #0x32] ands r1, r0 movs r0, #0xa movs r3, #0 orrs r1, r0 strh r1, [r5, #0x32] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] adds r2, r5, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #7 orrs r0, r1 movs r1, #0x39 rsbs r1, r1, #0 ands r0, r1 strb r0, [r2] strb r3, [r5, #0xe] ldr r2, _080729D8 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0xd orrs r0, r1 str r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _080729DC movs r0, #0x95 lsls r0, r0, #4 strh r0, [r2, #8] adds r6, r5, #0 adds r6, #0x38 b _08072A14 .align 2, 0 _080729D8: .4byte gUnk_03003F80 _080729DC: ldr r0, _08072A50 @ =0x0000061C strh r0, [r2, #8] movs r1, #0x2e ldrsh r0, [r5, r1] ldr r2, _08072A54 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r4, #0x32 ldrsh r1, [r5, r4] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 adds r4, r5, #0 adds r4, #0x38 ldrb r1, [r4] bl sub_080001DA ldr r1, _08072A58 @ =0x00004020 adds r6, r4, #0 cmp r0, r1 bne _08072A14 strb r7, [r5, #0xe] _08072A14: ldr r0, _08072A5C @ =0x00004070 movs r7, #0x2e ldrsh r1, [r5, r7] ldr r3, _08072A54 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r7, #0x32 ldrsh r2, [r5, r7] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 ldrb r2, [r6] bl sub_0800015E bl sub_08077B2C adds r0, r5, #0 bl sub_08072A60 movs r0, #0x81 bl sub_080A3268 _08072A4C: pop {r4, r5, r6, r7, pc} .align 2, 0 _08072A50: .4byte 0x0000061C _08072A54: .4byte gUnk_03000BF0 _08072A58: .4byte 0x00004020 _08072A5C: .4byte 0x00004070 thumb_func_start sub_08072A60 sub_08072A60: @ 0x08072A60 push {lr} adds r2, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08072AC4 ldrb r0, [r2, #0xe] cmp r0, #1 bne _08072A9C movs r0, #3 strb r0, [r2, #0xd] movs r0, #0x28 strb r0, [r2, #0xe] adds r2, #0x29 ldrb r1, [r2] subs r0, #0x61 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] ldr r1, _08072A94 @ =gUnk_03003F80 ldr r0, _08072A98 @ =0x00000624 strh r0, [r1, #8] b _08072ACA .align 2, 0 _08072A94: .4byte gUnk_03003F80 _08072A98: .4byte 0x00000624 _08072A9C: movs r0, #2 strb r0, [r2, #0xd] ldr r2, _08072AB4 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08072ABC ldr r0, _08072AB8 @ =0x00000954 strh r0, [r2, #8] b _08072ACA .align 2, 0 _08072AB4: .4byte gUnk_03003F80 _08072AB8: .4byte 0x00000954 _08072ABC: movs r0, #0xc4 lsls r0, r0, #3 strh r0, [r2, #8] b _08072ACA _08072AC4: adds r0, r2, #0 bl sub_080042B8 _08072ACA: pop {pc} thumb_func_start sub_08072ACC sub_08072ACC: @ 0x08072ACC push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08072AE0 @ =gUnk_03003F80 ldrb r3, [r5, #0xd] lsls r2, r3, #0x18 lsrs r0, r2, #0x18 cmp r0, #0xff bne _08072AE4 movs r0, #0 b _08072B56 .align 2, 0 _08072AE0: .4byte gUnk_03003F80 _08072AE4: ldrb r1, [r4, #0xf] cmp r1, #7 bls _08072B50 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] strb r3, [r4, #0x15] movs r0, #0xd0 lsls r0, r0, #9 str r0, [r4, #0x20] movs r0, #0x78 strh r0, [r4, #0x24] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x80 ands r0, r1 movs r1, #4 orrs r0, r1 movs r1, #0x39 rsbs r1, r1, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] movs r0, #0x41 strb r0, [r5, #2] bl sub_0807921C movs r1, #0x2e ldrsh r0, [r4, r1] ldr r2, _08072B4C @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r5, #0x32 ldrsh r1, [r4, r5] ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_0807BA8C b _08072B58 .align 2, 0 _08072B4C: .4byte gUnk_03000BF0 _08072B50: lsrs r0, r2, #0x1a strb r0, [r4, #0x14] adds r0, r1, #1 _08072B56: strb r0, [r4, #0xf] _08072B58: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08072B5C sub_08072B5C: @ 0x08072B5C push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r0, [r5, #0xe] movs r1, #0x28 subs r1, r1, r0 asrs r1, r1, #4 adds r1, #1 adds r0, r5, #0 bl sub_080042BA adds r0, r5, #0 bl sub_0806F948 ldrb r0, [r5, #0xe] cmp r0, #0 beq _08072B82 subs r0, #1 strb r0, [r5, #0xe] b _08072C40 _08072B82: ldr r0, _08072C04 @ =0x00004021 movs r2, #0x2e ldrsh r1, [r5, r2] ldr r3, _08072C08 @ =gUnk_03000BF0 ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r6, #0x32 ldrsh r2, [r5, r6] ldrh r3, [r3, #8] subs r2, r2, r3 asrs r2, r2, #4 ands r2, r4 lsls r2, r2, #6 orrs r1, r2 adds r2, r5, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] movs r0, #1 bl sub_0807A2F8 adds r4, r0, #0 cmp r4, #0 bne _08072C10 ldrb r0, [r5, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r5, #0x10] adds r2, r5, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] movs r0, #0x40 strh r0, [r5, #0x24] movs r0, #0xe4 lsls r0, r0, #0xa str r0, [r5, #0x20] ldr r0, [r5, #0x34] subs r0, #1 str r0, [r5, #0x34] ldr r1, _08072C0C @ =gUnk_03003F80 movs r0, #0x41 strb r0, [r1, #2] movs r2, #0xc rsbs r2, r2, #0 adds r0, r5, #0 movs r1, #0 bl sub_0806F854 bl sub_0807921C b _08072C40 .align 2, 0 _08072C04: .4byte 0x00004021 _08072C08: .4byte gUnk_03000BF0 _08072C0C: .4byte gUnk_03003F80 _08072C10: bl sub_08052620 cmp r0, #0 bne _08072C1E adds r0, r5, #0 bl sub_08004542 _08072C1E: ldrb r0, [r5, #0xd] adds r0, #1 strb r0, [r5, #0xd] lsls r4, r4, #4 subs r4, #4 lsls r4, r4, #0xc str r4, [r5, #0x20] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r5, #0x24] ldr r1, _08072C44 @ =gUnk_03003F80 movs r0, #0x81 lsls r0, r0, #4 strh r0, [r1, #8] movs r0, #0x7c bl sub_080A3268 _08072C40: pop {r4, r5, r6, pc} .align 2, 0 _08072C44: .4byte gUnk_03003F80 thumb_func_start sub_08072C48 sub_08072C48: @ 0x08072C48 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08072C98 adds r0, r4, #0 movs r1, #7 bl sub_08008790 ldr r4, _08072C90 @ =gUnk_03003F80 ldrb r0, [r4, #0x14] cmp r0, #0 beq _08072C94 bl sub_08008B22 cmp r0, #0 beq _08072C98 movs r0, #7 strb r0, [r4, #0x11] ldr r0, [r4, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08072C98 bl sub_080791BC b _08072C98 .align 2, 0 _08072C90: .4byte gUnk_03003F80 _08072C94: bl sub_0807921C _08072C98: pop {r4, pc} .align 2, 0 thumb_func_start sub_08072C9C sub_08072C9C: @ 0x08072C9C push {lr} ldr r1, _08072CB8 @ =gUnk_03003F80 adds r1, #0xa8 movs r2, #0x11 strb r2, [r1] ldr r2, _08072CBC @ =gUnk_0811BBAC ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08072CB8: .4byte gUnk_03003F80 _08072CBC: .4byte gUnk_0811BBAC thumb_func_start sub_08072CC0 sub_08072CC0: @ 0x08072CC0 movs r1, #1 strb r1, [r0, #0xd] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] ldr r3, _08072CF4 @ =gUnk_03003F80 adds r1, r3, #0 adds r1, #0x3a ldrb r1, [r1] lsrs r1, r1, #2 adds r1, #1 strb r1, [r0, #0xf] adds r1, r3, #0 adds r1, #0x39 ldrb r1, [r1] strb r1, [r0, #0x15] movs r2, #0 movs r1, #0x80 lsls r1, r1, #3 strh r1, [r0, #0x24] ldr r0, _08072CF8 @ =0x00000524 strh r0, [r3, #8] strb r2, [r3, #5] bx lr .align 2, 0 _08072CF4: .4byte gUnk_03003F80 _08072CF8: .4byte 0x00000524 thumb_func_start sub_08072CFC sub_08072CFC: @ 0x08072CFC push {r4, lr} adds r4, r0, #0 movs r1, #2 bl sub_080042BA ldrb r0, [r4, #0xf] subs r0, #1 strb r0, [r4, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _08072D1C adds r0, r4, #0 bl sub_0806F69C b _08072D4E _08072D1C: movs r0, #2 strb r0, [r4, #0xd] ldr r2, _08072D50 @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0x38 ldrb r0, [r1] cmp r0, #7 bhi _08072D30 movs r0, #8 strb r0, [r1] _08072D30: ldrb r0, [r1] lsls r0, r0, #0xc str r0, [r4, #0x20] movs r1, #0 movs r0, #0x80 lsls r0, r0, #2 strh r0, [r4, #0x24] movs r0, #0x81 lsls r0, r0, #4 strh r0, [r2, #8] movs r0, #5 strb r0, [r4, #0xe] strb r1, [r4, #0xf] bl sub_08077B2C _08072D4E: pop {r4, pc} .align 2, 0 _08072D50: .4byte gUnk_03003F80 thumb_func_start sub_08072D54 sub_08072D54: @ 0x08072D54 push {r4, r5, lr} adds r4, r0, #0 bl sub_080042B8 movs r2, #0xc rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #0 bl sub_0806F854 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08072D7A adds r0, r4, #0 bl sub_0806F69C ldrb r0, [r4, #0xe] subs r0, #1 b _08072E80 _08072D7A: adds r0, r4, #0 bl sub_0806F730 adds r1, r4, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 adds r2, r0, #0 ldrb r5, [r4, #0xf] cmp r5, #1 beq _08072DD0 cmp r5, #1 bgt _08072D9C cmp r5, #0 beq _08072DA6 b _08072E6C _08072D9C: cmp r5, #2 beq _08072DFA cmp r5, #3 beq _08072E30 b _08072E6C _08072DA6: ldr r1, _08072DC8 @ =gUnk_0811BBD4 ldr r0, _08072DCC @ =gLinkEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r2, #0 bl sub_08007DD6 cmp r0, #0 beq _08072E6C movs r0, #1 strb r0, [r4, #0xe] strb r0, [r4, #0xf] b _08072E6C .align 2, 0 _08072DC8: .4byte gUnk_0811BBD4 _08072DCC: .4byte gLinkEntity _08072DD0: ldr r1, _08072DEC @ =gUnk_0811BBD4 ldr r0, _08072DF0 @ =gLinkEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r2, #0 bl sub_08007DD6 cmp r0, #0 beq _08072DF4 strb r5, [r4, #0xe] b _08072E6C .align 2, 0 _08072DEC: .4byte gUnk_0811BBD4 _08072DF0: .4byte gLinkEntity _08072DF4: movs r0, #2 strb r0, [r4, #0xf] b _08072E6C _08072DFA: ldrb r0, [r4, #0x14] movs r5, #4 eors r0, r5 strb r0, [r4, #0x14] ldr r1, _08072E28 @ =gUnk_0811BBD4 ldr r0, _08072E2C @ =gLinkEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r2, #0 bl sub_08007DD6 cmp r0, #0 beq _08072E22 movs r0, #1 strb r0, [r4, #0xe] movs r0, #3 strb r0, [r4, #0xf] _08072E22: ldrb r0, [r4, #0x14] eors r0, r5 b _08072E6A .align 2, 0 _08072E28: .4byte gUnk_0811BBD4 _08072E2C: .4byte gLinkEntity _08072E30: ldrb r0, [r4, #0x14] movs r1, #4 eors r0, r1 strb r0, [r4, #0x14] ldr r1, _08072E58 @ =gUnk_0811BBD4 ldr r0, _08072E5C @ =gLinkEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r2, #0 bl sub_08007DD6 cmp r0, #0 beq _08072E60 movs r0, #1 strb r0, [r4, #0xe] b _08072E64 .align 2, 0 _08072E58: .4byte gUnk_0811BBD4 _08072E5C: .4byte gLinkEntity _08072E60: movs r0, #4 strb r0, [r4, #0xf] _08072E64: ldrb r0, [r4, #0x14] movs r1, #4 eors r0, r1 _08072E6A: strb r0, [r4, #0x14] _08072E6C: ldrb r0, [r4, #0xe] cmp r0, #0 beq _08072E7A adds r0, r4, #0 bl sub_0806F69C b _08072E7E _08072E7A: bl sub_08079E08 _08072E7E: movs r0, #0 _08072E80: strb r0, [r4, #0xe] movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _08072F10 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _08072EAA adds r0, r4, #0 bl sub_0800455E b _08072EB0 _08072EAA: adds r0, r4, #0 bl sub_08004542 _08072EB0: adds r0, r4, #0 movs r1, #7 bl sub_08008790 ldr r5, _08072EDC @ =gUnk_03003F80 ldrb r0, [r5, #0x14] cmp r0, #0 beq _08072EE0 bl sub_08008B22 cmp r0, #0 beq _08072F10 movs r0, #7 strb r0, [r5, #0x11] ldr r0, [r5, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08072F10 bl sub_080791BC b _08072F10 .align 2, 0 _08072EDC: .4byte gUnk_03003F80 _08072EE0: ldr r0, [r5, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08072EF4 ldr r0, _08072EF0 @ =0x00000424 b _08072EF8 .align 2, 0 _08072EF0: .4byte 0x00000424 _08072EF4: movs r0, #0x82 lsls r0, r0, #4 _08072EF8: strh r0, [r5, #8] movs r1, #0 movs r0, #6 strb r0, [r4, #0xe] movs r0, #3 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x42 strb r1, [r0] movs r0, #0x7d bl sub_080A3268 _08072F10: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08072F14 sub_08072F14: @ 0x08072F14 push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _08072F2C bl sub_0807921C b _08072F32 _08072F2C: adds r0, r1, #0 bl sub_080042B8 _08072F32: pop {pc} thumb_func_start sub_08072F34 sub_08072F34: @ 0x08072F34 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_08078EFC cmp r0, #0 bne _08072F86 ldr r6, _08072F88 @ =gUnk_03003F80 adds r1, r6, #0 adds r1, #0xa8 movs r0, #0x18 strb r0, [r1] adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_0807A1E8 strb r0, [r6, #0x12] ldr r1, _08072F8C @ =gUnk_0811BBE4 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 adds r5, r4, #0 adds r5, #0x42 ldrb r0, [r5] cmp r0, #0 beq _08072F86 bl sub_080792D8 ldrb r1, [r5] cmp r1, #0 bne _08072F86 movs r0, #0x1d strb r0, [r4, #0xc] strb r1, [r4, #0xd] strh r1, [r4, #0x30] ldr r0, _08072F90 @ =0x000002CF strh r0, [r6, #8] _08072F86: pop {r4, r5, r6, pc} .align 2, 0 _08072F88: .4byte gUnk_03003F80 _08072F8C: .4byte gUnk_0811BBE4 _08072F90: .4byte 0x000002CF thumb_func_start sub_08072F94 sub_08072F94: @ 0x08072F94 push {r4, lr} adds r4, r0, #0 ldr r0, _08072FB4 @ =gUnk_03003F80 ldrb r1, [r0, #0x12] adds r3, r0, #0 cmp r1, #0x1e beq _08072FB8 cmp r1, #0x1e blt _08072FAE cmp r1, #0x2c bgt _08072FAE cmp r1, #0x2a bge _08072FB8 _08072FAE: bl sub_0807921C b _0807308C .align 2, 0 _08072FB4: .4byte gUnk_03003F80 _08072FB8: adds r2, r4, #0 adds r2, #0x29 ldrb r0, [r2] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r0 strb r1, [r2] adds r2, r3, #0 ldrb r1, [r2, #0xd] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08073072 strb r1, [r4, #0x15] ldrb r0, [r2, #0xd] cmp r0, #8 beq _08072FDE cmp r0, #0x18 bne _08073008 _08072FDE: ldrb r0, [r2, #0x12] cmp r0, #0x1e beq _0807308C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08072FF8 movs r0, #0xb5 lsls r0, r0, #2 b _08072FFA _08072FF8: ldr r0, _08073004 @ =0x000002D5 _08072FFA: strh r0, [r2, #8] adds r0, r4, #0 bl sub_08073094 b _0807306A .align 2, 0 _08073004: .4byte 0x000002D5 _08073008: ldrb r0, [r2, #0x12] cmp r0, #0x1e bne _08073020 movs r0, #7 ands r0, r1 cmp r0, #0 beq _08073020 adds r0, r1, #0 adds r0, #8 movs r1, #0x10 ands r0, r1 strb r0, [r4, #0x15] _08073020: ldrb r1, [r4, #0x15] movs r2, #0x10 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0807304C adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08073044 ldr r0, _08073040 @ =0x000002D1 b _08073068 .align 2, 0 _08073040: .4byte 0x000002D1 _08073044: ldr r0, _08073048 @ =0x000002D2 b _08073068 .align 2, 0 _08073048: .4byte 0x000002D2 _0807304C: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08073064 ldr r0, _08073060 @ =0x000002CF b _08073068 .align 2, 0 _08073060: .4byte 0x000002CF _08073064: movs r0, #0xb4 lsls r0, r0, #2 _08073068: strh r0, [r3, #8] _0807306A: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] b _0807308C _08073072: adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08073088 movs r0, #0xb5 lsls r0, r0, #2 strh r0, [r2, #8] b _0807308C _08073088: ldr r0, _08073090 @ =0x000002D5 strh r0, [r3, #8] _0807308C: pop {r4, pc} .align 2, 0 _08073090: .4byte 0x000002D5 thumb_func_start sub_08073094 sub_08073094: @ 0x08073094 push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] ldr r2, _080730FC @ =gUnk_0811BBEC adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0xf ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] strh r0, [r4, #0x24] bl sub_08079E08 bl sub_08019840 cmp r0, #0 bne _080731A4 ldr r0, _08073100 @ =gUnk_03003F80 ldrb r1, [r0, #6] movs r2, #0x80 eors r1, r2 strb r1, [r0, #6] ldrb r0, [r0, #0x12] cmp r0, #0x2a beq _080730DE cmp r0, #0x2c beq _080730DE bl sub_0807A1B8 _080730DE: bl sub_08078EFC cmp r0, #0 bne _080731A4 ldr r1, _08073100 @ =gUnk_03003F80 ldrb r0, [r1, #0x12] subs r0, #0x19 adds r2, r1, #0 cmp r0, #0x13 bhi _08073178 lsls r0, r0, #2 ldr r1, _08073104 @ =_08073108 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080730FC: .4byte gUnk_0811BBEC _08073100: .4byte gUnk_03003F80 _08073104: .4byte _08073108 _08073108: @ jump table .4byte _0807316C @ case 0 .4byte _08073178 @ case 1 .4byte _08073178 @ case 2 .4byte _08073178 @ case 3 .4byte _08073178 @ case 4 .4byte _0807317E @ case 5 .4byte _08073178 @ case 6 .4byte _08073178 @ case 7 .4byte _08073178 @ case 8 .4byte _08073178 @ case 9 .4byte _08073178 @ case 10 .4byte _08073178 @ case 11 .4byte _08073178 @ case 12 .4byte _08073178 @ case 13 .4byte _08073178 @ case 14 .4byte _08073178 @ case 15 .4byte _08073178 @ case 16 .4byte _08073158 @ case 17 .4byte _0807317E @ case 18 .4byte _08073158 @ case 19 _08073158: adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0x16 orrs r0, r1 str r0, [r2, #0x30] b _0807317E _0807316C: adds r0, r4, #0 bl sub_08074808 bl sub_080791D0 b _080731A4 _08073178: bl sub_0807921C b _080731A4 _0807317E: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080731A4 bl sub_0807A1B8 bl sub_08078EFC cmp r0, #0 bne _080731A4 ldrb r0, [r4, #0xd] subs r0, #1 strb r0, [r4, #0xd] _080731A4: pop {r4, pc} .align 2, 0 thumb_func_start sub_080731A8 sub_080731A8: @ 0x080731A8 push {r4, lr} adds r4, r0, #0 ldr r0, _080731D0 @ =gUnk_03003F80 adds r0, #0xa8 movs r1, #0x1c strb r1, [r0] movs r0, #0 movs r1, #8 bl sub_0805E4E0 ldr r1, _080731D4 @ =gUnk_0811BBF8 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _080731D0: .4byte gUnk_03003F80 _080731D4: .4byte gUnk_0811BBF8 thumb_func_start sub_080731D8 sub_080731D8: @ 0x080731D8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 movs r2, #0 strb r0, [r4, #0x10] movs r1, #0 movs r0, #0x40 strh r0, [r4, #0x24] strb r1, [r4, #0x14] ldrh r1, [r4, #0x2e] movs r5, #0x10 rsbs r5, r5, #0 adds r0, r5, #0 ands r0, r1 movs r7, #8 orrs r0, r7 strh r0, [r4, #0x2e] strh r2, [r4, #0x2c] ldr r6, _08073214 @ =gUnk_03003F80 adds r0, r6, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 bne _08073218 movs r0, #1 strb r0, [r4, #0xd] b _0807329A .align 2, 0 _08073214: .4byte gUnk_03003F80 _08073218: ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #3 strb r0, [r4, #0xd] ldrh r0, [r4, #0x32] adds r1, r4, #0 adds r1, #0x7e strh r0, [r1] ldrh r0, [r4, #0x32] subs r0, #0x10 strh r0, [r4, #0x32] adds r0, r4, #0 movs r1, #0x70 movs r2, #1 movs r3, #0 bl sub_080A2988 str r0, [r4, #0x54] adds r0, r6, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #7 bne _08073270 ldrh r1, [r4, #0x32] adds r0, r5, #0 ands r0, r1 adds r0, #8 strh r0, [r4, #0x32] ldrh r1, [r4, #0x2e] adds r0, r5, #0 ands r0, r1 strh r0, [r4, #0x2e] strb r7, [r4, #0x15] movs r0, #2 strb r0, [r4, #0x14] ldr r0, _0807326C @ =0x00000187 bl sub_080A3268 b _08073294 .align 2, 0 _0807326C: .4byte 0x00000187 _08073270: ldrh r1, [r4, #0x32] adds r0, r5, #0 ands r0, r1 adds r0, #2 strh r0, [r4, #0x32] ldrh r1, [r4, #0x2e] adds r0, r5, #0 ands r0, r1 adds r0, #0xf strh r0, [r4, #0x2e] movs r0, #0x18 strb r0, [r4, #0x15] movs r0, #6 strb r0, [r4, #0x14] movs r0, #0xc4 lsls r0, r0, #1 bl sub_080A3268 _08073294: adds r0, r4, #0 bl sub_08066DE4 _0807329A: ldr r2, _080732AC @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _080732B4 ldr r0, _080732B0 @ =0x00000404 b _080732B8 .align 2, 0 _080732AC: .4byte gUnk_03003F80 _080732B0: .4byte 0x00000404 _080732B4: movs r0, #0x82 lsls r0, r0, #1 _080732B8: strh r0, [r2, #8] ldr r1, _080732CC @ =gUnk_03000BF0 movs r0, #0 str r0, [r1, #0x30] bl sub_0807A108 bl sub_08077B2C pop {r4, r5, r6, r7, pc} .align 2, 0 _080732CC: .4byte gUnk_03000BF0 thumb_func_start sub_080732D0 sub_080732D0: @ 0x080732D0 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_080002B8 cmp r0, #0x28 beq _080732EE movs r0, #0 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_0806F69C b _08073328 _080732EE: ldrb r0, [r4, #0xd] adds r0, #1 movs r1, #0 strb r0, [r4, #0xd] strh r1, [r4, #0x30] adds r0, r4, #0 movs r1, #0x70 movs r2, #1 movs r3, #0 bl sub_080A2988 ldr r0, _08073318 @ =gUnk_03003F80 adds r0, #0x39 ldrb r0, [r0] cmp r0, #7 bne _08073320 ldr r0, _0807331C @ =0x00000187 bl sub_080A3268 b _08073328 .align 2, 0 _08073318: .4byte gUnk_03003F80 _0807331C: .4byte 0x00000187 _08073320: movs r0, #0xc4 lsls r0, r0, #1 bl sub_080A3268 _08073328: pop {r4, pc} .align 2, 0 thumb_func_start sub_0807332C sub_0807332C: @ 0x0807332C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r0, _08073344 @ =gUnk_03003F80 adds r0, #0x39 ldrb r0, [r0] cmp r0, #7 bne _08073348 movs r0, #0 b _0807334A .align 2, 0 _08073344: .4byte gUnk_03003F80 _08073348: movs r0, #0x1c _0807334A: strb r0, [r4, #0x15] ldrh r1, [r4, #0x2e] movs r0, #0xf ands r0, r1 cmp r0, #0xf beq _08073386 ldr r0, _08073368 @ =gUnk_03003F80 adds r0, #0x39 ldrb r0, [r0] cmp r0, #7 bne _0807336C movs r0, #2 strb r0, [r4, #0x14] movs r0, #4 b _0807337C .align 2, 0 _08073368: .4byte gUnk_03003F80 _0807336C: movs r0, #6 strb r0, [r4, #0x14] ldrb r0, [r4, #0x15] cmp r0, #0x18 bls _0807337E subs r0, #1 movs r1, #0x1f ands r0, r1 _0807337C: strb r0, [r4, #0x15] _0807337E: adds r0, r4, #0 bl sub_0806F69C b _080733B6 _08073386: ldr r0, _0807339C @ =gUnk_03003F80 adds r0, #0x38 ldrb r0, [r0] cmp r0, #0 beq _080733A4 ldr r0, _080733A0 @ =gUnk_03000BF0 str r4, [r0, #0x30] bl sub_080791BC b _080733B6 .align 2, 0 _0807339C: .4byte gUnk_03003F80 _080733A0: .4byte gUnk_03000BF0 _080733A4: ldr r0, _080733B8 @ =gUnk_03001000 movs r1, #3 strb r1, [r0, #4] movs r1, #1 strb r1, [r0, #0xb] movs r0, #5 movs r1, #8 bl sub_08050054 _080733B6: pop {r4, pc} .align 2, 0 _080733B8: .4byte gUnk_03001000 thumb_func_start sub_080733BC sub_080733BC: @ 0x080733BC push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldrh r1, [r4, #0x2e] movs r0, #0xf ands r0, r1 cmp r0, #8 bne _080733FC movs r0, #0x10 strb r0, [r4, #0x15] movs r0, #4 strb r0, [r4, #0x14] ldr r0, [r4, #0x54] cmp r0, #0 beq _080733FC bl sub_0805E7BC movs r0, #0 str r0, [r4, #0x54] adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _080733F6 adds r0, r4, #0 bl sub_0807AABC b _080733FC _080733F6: adds r0, r4, #0 bl sub_0807AA80 _080733FC: adds r0, r4, #0 bl sub_0806F69C adds r0, r4, #0 adds r0, #0x7e ldrh r1, [r0] movs r2, #0x32 ldrsh r0, [r4, r2] cmp r1, r0 bne _08073418 ldr r0, _0807341C @ =gUnk_03000BF0 str r4, [r0, #0x30] bl sub_0807921C _08073418: pop {r4, pc} .align 2, 0 _0807341C: .4byte gUnk_03000BF0 thumb_func_start sub_08073420 sub_08073420: @ 0x08073420 push {r4, lr} adds r4, r0, #0 bl sub_08078EFC cmp r0, #0 bne _0807345E bl sub_0807A1B8 ldrb r2, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x19] ldr r0, _08073460 @ =gUnk_03003F80 adds r0, #0xa8 movs r1, #8 strb r1, [r0] ldr r1, _08073464 @ =gUnk_0811BC08 ldrb r0, [r4, #0xd] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 _0807345E: pop {r4, pc} .align 2, 0 _08073460: .4byte gUnk_03003F80 _08073464: .4byte gUnk_0811BC08 thumb_func_start sub_08073468 sub_08073468: @ 0x08073468 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _080734CC @ =gUnk_03003F80 movs r1, #0 movs r0, #0xe0 lsls r0, r0, #3 strh r0, [r5, #8] strb r1, [r5, #2] ldr r0, _080734D0 @ =0xFFFF0000 str r0, [r4, #0x20] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0xf0 lsls r0, r0, #1 str r0, [r4, #0x7c] ldrb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] ldr r1, [r5, #0x30] movs r2, #0x80 lsls r2, r2, #0x11 adds r0, r1, #0 ands r0, r2 cmp r0, #0 bne _080734AC orrs r1, r2 str r1, [r5, #0x30] adds r0, r4, #0 movs r1, #0x61 movs r2, #0 movs r3, #0 bl sub_080A2988 _080734AC: bl sub_08077B2C ldr r0, [r4, #0x20] cmp r0, #0 bgt _080734C0 adds r0, r5, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _080734C8 _080734C0: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] _080734C8: pop {r4, r5, pc} .align 2, 0 _080734CC: .4byte gUnk_03003F80 _080734D0: .4byte 0xFFFF0000 thumb_func_start sub_080734D4 sub_080734D4: @ 0x080734D4 push {r4, lr} adds r4, r0, #0 ldr r1, _080734FC @ =0xFFFFF000 bl sub_08003FC4 ldr r0, [r4, #0x20] cmp r0, #0 bgt _080734EE ldr r0, _08073500 @ =gUnk_03003F80 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _080734FA _080734EE: movs r0, #0x92 lsls r0, r0, #0xb str r0, [r4, #0x20] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] _080734FA: pop {r4, pc} .align 2, 0 _080734FC: .4byte 0xFFFFF000 _08073500: .4byte gUnk_03003F80 thumb_func_start sub_08073504 sub_08073504: @ 0x08073504 push {r4, lr} adds r4, r0, #0 ldr r0, [r4, #0x20] movs r1, #0x80 lsls r1, r1, #7 cmp r0, #0 bge _08073516 movs r1, #0x80 lsls r1, r1, #4 _08073516: adds r0, r4, #0 bl sub_08003FC4 ldr r0, [r4, #0x20] cmp r0, #0 bge _08073576 movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 ble _08073576 ldrb r0, [r4, #0xd] adds r0, #1 movs r2, #0 strb r0, [r4, #0xd] adds r1, r4, #0 adds r1, #0x80 ldrb r0, [r4, #0x15] lsls r0, r0, #8 str r0, [r1] adds r0, r4, #0 adds r0, #0x87 strb r2, [r0] subs r0, #1 strb r2, [r0] ldr r0, _08073580 @ =gUnk_03003F80 movs r1, #0xe1 lsls r1, r1, #3 strh r1, [r0, #8] adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 bne _08073576 ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #6 strb r0, [r4, #0xd] movs r0, #0x10 strh r0, [r4, #0x24] movs r0, #0x1e strb r0, [r4, #0xe] movs r0, #0xa9 lsls r0, r0, #1 bl sub_080A3268 _08073576: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08073580: .4byte gUnk_03003F80 thumb_func_start sub_08073584 sub_08073584: @ 0x08073584 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r2, _080735DC @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r5, #0x80 adds r0, r5, #0 ands r0, r1 adds r6, r2, #0 cmp r0, #0 bne _080735C0 adds r0, r4, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bgt _080735C0 adds r0, r6, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #0 bne _080735C0 ldr r0, [r6, #0x30] movs r1, #0x80 lsls r1, r1, #0x11 ands r0, r1 cmp r0, #0 bne _080735E0 _080735C0: ldrb r0, [r6, #2] movs r1, #0x40 orrs r1, r0 strb r1, [r6, #2] bl sub_0807921C adds r0, r4, #0 bl sub_08073904 movs r0, #0xe6 lsls r0, r0, #3 strh r0, [r6, #8] b _08073794 .align 2, 0 _080735DC: .4byte gUnk_03003F80 _080735E0: ldr r0, _0807360C @ =gUnk_0200AF00 adds r0, #0x2f movs r1, #1 strb r1, [r0] movs r0, #0 bl sub_0807A2F8 cmp r0, #0 beq _08073610 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] ldrb r1, [r4, #0x14] movs r0, #6 ands r0, r1 lsls r0, r0, #2 strb r0, [r4, #0x15] ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] b _08073794 .align 2, 0 _0807360C: .4byte gUnk_0200AF00 _08073610: ldr r0, _08073620 @ =gUnk_02033A90 ldrb r0, [r0, #1] cmp r0, #0x10 bne _08073624 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] b _08073626 .align 2, 0 _08073620: .4byte gUnk_02033A90 _08073624: strh r5, [r4, #0x24] _08073626: ldr r3, _08073650 @ =gUnk_03003F80 ldrb r1, [r3, #0xd] movs r0, #0x80 ands r0, r1 adds r2, r4, #0 adds r2, #0x80 cmp r0, #0 bne _0807365A ldrb r0, [r4, #0x15] cmp r0, r1 beq _0807365A ldrb r1, [r3, #0xd] subs r0, r0, r1 movs r1, #0x1f ands r0, r1 cmp r0, #0xf bgt _08073654 ldr r0, [r2] subs r0, #0x20 b _08073658 .align 2, 0 _08073650: .4byte gUnk_03003F80 _08073654: ldr r0, [r2] adds r0, #0x20 _08073658: str r0, [r2] _0807365A: ldr r0, [r2] lsrs r0, r0, #8 movs r1, #0x1f ands r0, r1 strb r0, [r4, #0x15] bl sub_08079E08 ldrb r2, [r4, #0x14] lsls r3, r2, #2 ldrb r1, [r4, #0x15] cmp r2, #0 bne _0807367C adds r3, #8 movs r0, #0x1f ands r3, r0 adds r1, #8 ands r1, r0 _0807367C: subs r0, r3, #7 cmp r0, r1 bls _08073686 subs r3, r2, #2 b _0807368E _08073686: adds r0, r3, #7 cmp r0, r1 bhs _08073694 adds r3, r2, #2 _0807368E: movs r0, #7 ands r3, r0 b _08073696 _08073694: adds r3, r2, #0 _08073696: movs r0, #0x87 adds r0, r0, r4 mov ip, r0 ldrb r1, [r4, #0x14] cmp r3, r1 beq _080736A8 movs r0, #0x14 mov r2, ip strb r0, [r2] _080736A8: strb r3, [r4, #0x14] movs r5, #0 ldr r1, _080736E4 @ =gUnk_03003F80 ldrb r2, [r1, #0xd] lsrs r3, r2, #2 mov r6, ip ldrb r0, [r6] adds r6, r1, #0 cmp r0, #0 beq _080736CA movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _08073736 ldrb r0, [r4, #0x14] cmp r0, r3 beq _08073736 _080736CA: movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _080736FA ldrb r2, [r4, #0x14] cmp r2, r3 beq _080736FA movs r0, #4 eors r0, r3 cmp r2, r0 bne _080736E8 movs r5, #2 b _080736FA .align 2, 0 _080736E4: .4byte gUnk_03003F80 _080736E8: movs r0, #6 ands r0, r3 adds r0, #2 movs r1, #7 ands r0, r1 movs r5, #3 cmp r2, r0 bne _080736FA movs r5, #1 _080736FA: ldr r1, _0807371C @ =gUnk_0811BC28 lsls r0, r5, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r6, #8] cmp r0, r1 bne _0807372C ldr r0, _08073720 @ =gUnk_02033A90 ldrb r0, [r0, #1] cmp r0, #0x10 bne _08073724 adds r0, r4, #0 movs r1, #2 bl sub_080042BA b _0807372E .align 2, 0 _0807371C: .4byte gUnk_0811BC28 _08073720: .4byte gUnk_02033A90 _08073724: adds r0, r4, #0 bl sub_080042B8 b _0807372E _0807372C: strh r0, [r6, #8] _0807372E: adds r0, r4, #0 adds r0, #0x86 strb r5, [r0] b _08073762 _08073736: mov r2, ip ldrb r0, [r2] subs r0, #1 strb r0, [r2] ldr r1, _0807375C @ =gUnk_0811BC30 adds r0, r4, #0 adds r0, #0x86 ldrb r0, [r0] lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] ldrh r1, [r6, #8] cmp r0, r1 bne _08073760 adds r0, r4, #0 bl sub_080042B8 b _08073762 .align 2, 0 _0807375C: .4byte gUnk_0811BC30 _08073760: strh r0, [r6, #8] _08073762: ldr r0, [r4, #0x7c] subs r1, r0, #1 str r1, [r4, #0x7c] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _08073784 ldr r2, _08073780 @ =gUnk_03003F80 ldrb r1, [r2, #2] movs r0, #0x40 orrs r0, r1 strb r0, [r2, #2] bl sub_0807921C b _08073794 .align 2, 0 _08073780: .4byte gUnk_03003F80 _08073784: adds r0, r1, #0 movs r1, #0x14 bl __divsi3 ldr r2, _08073798 @ =0x0000FFF8 adds r1, r2, #0 subs r1, r1, r0 strh r1, [r4, #0x36] _08073794: pop {r4, r5, r6, pc} .align 2, 0 _08073798: .4byte 0x0000FFF8 thumb_func_start sub_0807379C sub_0807379C: @ 0x0807379C push {lr} adds r2, r0, #0 ldrh r3, [r2, #0x36] movs r0, #0x36 ldrsh r1, [r2, r0] movs r0, #0x20 rsbs r0, r0, #0 cmp r1, r0 ble _080737B4 subs r0, r3, #1 strh r0, [r2, #0x36] b _080737BA _080737B4: ldrb r0, [r2, #0xd] adds r0, #1 strb r0, [r2, #0xd] _080737BA: pop {pc} thumb_func_start sub_080737BC sub_080737BC: @ 0x080737BC push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0806F69C ldr r0, [r4, #0x34] movs r1, #0x98 lsls r1, r1, #7 adds r0, r0, r1 str r0, [r4, #0x34] ldrb r1, [r4, #0x15] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080737E2 ldrh r1, [r4, #0x2e] b _080737E4 _080737E2: ldrh r1, [r4, #0x32] _080737E4: movs r0, #0xf ands r0, r1 cmp r0, #8 bne _08073804 adds r0, r4, #0 bl sub_080002D0 cmp r0, #0 bne _08073804 ldr r2, _08073808 @ =gUnk_03003F80 ldrb r1, [r2, #2] movs r0, #0x40 orrs r0, r1 strb r0, [r2, #2] bl sub_0807921C _08073804: pop {r4, pc} .align 2, 0 _08073808: .4byte gUnk_03003F80 thumb_func_start sub_0807380C sub_0807380C: @ 0x0807380C push {r4, lr} adds r4, r0, #0 ldr r0, _08073854 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _0807382A ldrb r0, [r4, #0x14] adds r0, #2 movs r1, #6 ands r0, r1 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] _0807382A: ldr r2, _08073858 @ =gUnk_03003F80 ldr r1, _0807385C @ =gUnk_0811BC38 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #8] movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #0x10 rsbs r0, r0, #0 cmp r1, r0 bge _08073860 movs r1, #0x80 lsls r1, r1, #2 adds r0, r4, #0 bl sub_08003FC4 b _0807387A .align 2, 0 _08073854: .4byte gUnk_030010A0 _08073858: .4byte gUnk_03003F80 _0807385C: .4byte gUnk_0811BC38 _08073860: ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0807387A movs r0, #7 strb r0, [r4, #0xd] movs r0, #0x3c strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] _0807387A: adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 thumb_func_start sub_08073884 sub_08073884: @ 0x08073884 push {r4, lr} adds r4, r0, #0 ldr r0, _080738DC @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _080738A2 ldrb r0, [r4, #0x14] adds r0, #2 movs r1, #6 ands r0, r1 strb r0, [r4, #0x14] lsls r0, r0, #2 strb r0, [r4, #0x15] _080738A2: ldr r2, _080738E0 @ =gUnk_03003F80 ldr r1, _080738E4 @ =gUnk_0811BC40 ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] strh r0, [r2, #8] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080738F0 adds r1, r2, #0 adds r1, #0x39 ldrb r0, [r1] cmp r0, #0xff beq _080738EC adds r1, r0, #0 lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _080738E8 @ =gUnk_0813AD88 adds r0, r0, r1 bl sub_08080840 b _080738F0 .align 2, 0 _080738DC: .4byte gUnk_030010A0 _080738E0: .4byte gUnk_03003F80 _080738E4: .4byte gUnk_0811BC40 _080738E8: .4byte gUnk_0813AD88 _080738EC: bl sub_08052A4C _080738F0: ldr r1, _08073900 @ =0xFFFFE800 adds r0, r4, #0 bl sub_08003FC4 adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} .align 2, 0 _08073900: .4byte 0xFFFFE800 thumb_func_start sub_08073904 sub_08073904: @ 0x08073904 push {lr} ldr r3, _0807391C @ =gUnk_0811BC48 ldr r1, _08073920 @ =gUnk_03003F80 ldrb r2, [r1, #2] movs r1, #7 ands r1, r2 lsls r1, r1, #2 adds r1, r1, r3 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807391C: .4byte gUnk_0811BC48 _08073920: .4byte gUnk_03003F80 thumb_func_start sub_08073924 sub_08073924: @ 0x08073924 push {r4, lr} adds r4, r0, #0 ldr r2, _08073964 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0xb ands r0, r1 cmp r0, #0 bne _08073962 movs r1, #0x36 ldrsh r0, [r4, r1] movs r1, #0x80 lsls r1, r1, #8 ands r0, r1 cmp r0, #0 beq _08073962 ldrb r0, [r2, #0xa] cmp r0, #0 bne _08073962 movs r0, #0x40 strb r0, [r2, #2] movs r0, #0xff strb r0, [r2, #0xd] movs r0, #1 rsbs r0, r0, #0 strb r0, [r4, #0x15] bl sub_08077B20 adds r0, r4, #0 bl sub_08073968 _08073962: pop {r4, pc} .align 2, 0 _08073964: .4byte gUnk_03003F80 thumb_func_start sub_08073968 sub_08073968: @ 0x08073968 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08073998 @ =gUnk_03003F80 ldrb r1, [r4, #2] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _0807397C ldrb r0, [r4, #0xd] strb r0, [r5, #0x15] _0807397C: bl sub_08078F24 ldrb r1, [r4, #5] ldrb r0, [r4, #0xb] orrs r0, r1 cmp r0, #0 bne _080739D4 ldr r1, [r4, #0x30] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080739A0 ldr r0, _0807399C @ =0x0000041C b _080739BA .align 2, 0 _08073998: .4byte gUnk_03003F80 _0807399C: .4byte 0x0000041C _080739A0: movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080739BC movs r0, #0x80 lsls r0, r0, #0x13 ands r1, r0 cmp r1, #0 beq _080739B8 movs r0, #0x81 lsls r0, r0, #4 b _080739BA _080739B8: ldr r0, _080739E4 @ =0x0000080C _080739BA: strh r0, [r4, #8] _080739BC: ldr r0, _080739E8 @ =gUnk_03003F80 ldrb r1, [r0, #2] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _080739CE adds r0, r5, #0 bl sub_0806F948 _080739CE: movs r0, #0x7c bl sub_080A3268 _080739D4: ldr r2, _080739E8 @ =gUnk_03003F80 ldrb r1, [r2, #2] movs r0, #0xf8 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #2] pop {r4, r5, pc} .align 2, 0 _080739E4: .4byte 0x0000080C _080739E8: .4byte gUnk_03003F80 thumb_func_start sub_080739EC sub_080739EC: @ 0x080739EC push {r4, r5, lr} adds r4, r0, #0 ldr r1, _08073A14 @ =gUnk_03003F80 ldrb r2, [r1, #2] movs r0, #0xc0 ands r0, r2 adds r5, r1, #0 cmp r0, #0 beq _08073A18 ldrb r0, [r4, #0x15] strb r0, [r5, #0xd] movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _08073A0E movs r0, #0 strh r0, [r4, #0x2a] _08073A0E: movs r2, #0x80 lsls r2, r2, #6 b _08073A48 .align 2, 0 _08073A14: .4byte gUnk_03003F80 _08073A18: movs r2, #0xc rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #0 bl sub_0806F854 lsls r0, r0, #0x10 cmp r0, #0 beq _08073A38 ldrb r1, [r5, #2] movs r0, #8 orrs r0, r1 strb r0, [r5, #2] movs r2, #0x80 lsls r2, r2, #7 b _08073A48 _08073A38: movs r2, #0x80 lsls r2, r2, #6 ldrb r1, [r5, #2] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08073A48 lsrs r2, r2, #1 _08073A48: ldrb r1, [r5, #2] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _08073A7E movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08073A7E ldr r0, [r4, #0x20] cmp r0, #0 bne _08073A7E movs r0, #0xa0 lsls r0, r0, #0xa str r0, [r4, #0x20] movs r0, #0xa strb r0, [r4, #0xe] movs r0, #0xff strb r0, [r4, #0x15] adds r0, r1, #2 strb r0, [r5, #2] movs r0, #0xba lsls r0, r0, #1 strh r0, [r5, #8] bl sub_08078F60 b _08073A90 _08073A7E: adds r0, r4, #0 adds r1, r2, #0 bl sub_08003FC4 cmp r0, #0 bne _08073A90 adds r0, r4, #0 bl sub_08073AD4 _08073A90: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08073A94 sub_08073A94: @ 0x08073A94 push {r4, lr} adds r4, r0, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08073AAE adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 beq _08073AB4 _08073AAE: adds r0, r4, #0 bl sub_08073B60 _08073AB4: ldr r0, _08073ACC @ =gLinkEntity ldr r0, [r0, #0x34] cmp r0, #0 beq _08073AC8 ldr r1, _08073AD0 @ =gUnk_03003F80 movs r0, #0 strb r0, [r1, #2] adds r0, r4, #0 bl sub_08073924 _08073AC8: pop {r4, pc} .align 2, 0 _08073ACC: .4byte gLinkEntity _08073AD0: .4byte gUnk_03003F80 thumb_func_start sub_08073AD4 sub_08073AD4: @ 0x08073AD4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r0, #0x38 ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08073AFA ldrb r2, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x19] _08073AFA: ldr r6, _08073B48 @ =gUnk_03003F80 ldrb r5, [r6, #2] movs r0, #0xc1 rsbs r0, r0, #0 ands r5, r0 ldrb r0, [r4, #0xc] cmp r0, #0xa beq _08073B32 bl sub_0807A2B8 movs r0, #0 strb r0, [r6, #2] bl sub_0807A1B8 ldrb r0, [r6, #0xc] cmp r0, #0 bne _08073B5C adds r0, r6, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _08073B5C ldrb r0, [r6, #4] cmp r0, #0 beq _08073B32 adds r0, r4, #0 bl sub_08073B60 _08073B32: ldr r2, _08073B48 @ =gUnk_03003F80 adds r0, r5, #1 strb r0, [r2, #2] ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08073B50 ldr r0, _08073B4C @ =0x00000424 b _08073B54 .align 2, 0 _08073B48: .4byte gUnk_03003F80 _08073B4C: .4byte 0x00000424 _08073B50: movs r0, #0x82 lsls r0, r0, #4 _08073B54: strh r0, [r2, #8] movs r0, #0x7d bl sub_080A3268 _08073B5C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08073B60 sub_08073B60: @ 0x08073B60 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08073B88 @ =gUnk_03003F80 movs r0, #0 strb r0, [r4, #0x1b] strb r0, [r4, #4] strb r0, [r4, #2] bl sub_08079938 adds r0, r5, #0 bl sub_080085B0 ldr r0, [r4, #0x30] movs r1, #0x20 ands r0, r1 cmp r0, #0 bne _08073B86 bl sub_080791BC _08073B86: pop {r4, r5, pc} .align 2, 0 _08073B88: .4byte gUnk_03003F80 thumb_func_start sub_08073B8C sub_08073B8C: @ 0x08073B8C push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08073BCC @ =gUnk_03003F80 ldrb r0, [r5, #4] cmp r0, #0 beq _08073C04 movs r2, #0xc rsbs r2, r2, #0 adds r0, r4, #0 movs r1, #0 bl sub_0806F854 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _08073BB8 adds r0, r4, #0 bl sub_080042B8 _08073BB8: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] ldrb r0, [r4, #0xe] cmp r0, #0 beq _08073BD0 subs r0, #1 strb r0, [r4, #0xe] b _08073C28 .align 2, 0 _08073BCC: .4byte gUnk_03003F80 _08073BD0: movs r1, #0x80 lsls r1, r1, #7 adds r0, r4, #0 bl sub_08003FC4 movs r0, #0x36 ldrsh r1, [r4, r0] movs r0, #8 rsbs r0, r0, #0 cmp r1, r0 blt _08073C28 ldrb r0, [r5, #0x14] cmp r0, #0 bne _08073C0C bl sub_0807A2B8 cmp r0, #0 bne _08073BFC bl sub_08079D48 cmp r0, #0 bne _08073C0C _08073BFC: ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _08073C04: adds r0, r4, #0 bl sub_08073B60 b _08073C28 _08073C0C: ldr r1, _08073C2C @ =gUnk_03003F80 ldrb r0, [r1, #2] adds r0, #1 strb r0, [r1, #2] movs r0, #0xf strb r0, [r4, #0xe] movs r0, #0x10 movs r1, #0 bl sub_08080964 movs r0, #0xa6 lsls r0, r0, #1 bl sub_080A3268 _08073C28: pop {r4, r5, pc} .align 2, 0 _08073C2C: .4byte gUnk_03003F80 thumb_func_start sub_08073C30 sub_08073C30: @ 0x08073C30 push {lr} adds r2, r0, #0 ldr r0, _08073C54 @ =gUnk_03003F80 ldrb r0, [r0, #4] cmp r0, #0 beq _08073C4A ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff bne _08073C58 _08073C4A: adds r0, r2, #0 bl sub_08073B60 b _08073C66 .align 2, 0 _08073C54: .4byte gUnk_03003F80 _08073C58: ldrb r0, [r2, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r0, r2, #0 bl sub_080042B8 _08073C66: pop {pc} thumb_func_start sub_08073C68 sub_08073C68: @ 0x08073C68 push {lr} ldr r2, _08073C7C @ =gUnk_0811BC60 ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08073C7C: .4byte gUnk_0811BC60 thumb_func_start sub_08073C80 sub_08073C80: @ 0x08073C80 push {r4, r5, r6, r7, lr} adds r4, r0, #0 ldr r2, _08073D00 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 orrs r0, r1 str r0, [r2, #0x30] movs r5, #0 ldr r0, _08073D04 @ =0x00000C18 strh r0, [r2, #8] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] ldrb r1, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] ldrb r1, [r4, #0x19] movs r7, #4 rsbs r7, r7, #0 adds r0, r7, #0 ands r0, r1 strb r0, [r4, #0x19] ldr r0, _08073D08 @ =gUnk_0811BC80 str r0, [r4, #0x48] strb r5, [r4, #0xe] movs r6, #2 strb r6, [r4, #0xf] adds r0, r4, #0 adds r0, #0x42 strb r5, [r0] movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 movs r1, #1 movs r2, #2 bl sub_080AE008 ldr r0, _08073D0C @ =gUnk_03000BF0 str r4, [r0, #0x30] bl sub_080809D4 ldr r1, _08073D10 @ =gUnk_030010A0 ldrb r0, [r1, #0xf] cmp r0, #9 bne _08073D14 strb r5, [r1, #0xf] ldrb r1, [r4, #0x18] adds r0, r7, #0 ands r0, r1 strb r0, [r4, #0x18] strb r6, [r4, #0xd] b _08073D1E .align 2, 0 _08073D00: .4byte gUnk_03003F80 _08073D04: .4byte 0x00000C18 _08073D08: .4byte gUnk_0811BC80 _08073D0C: .4byte gUnk_03000BF0 _08073D10: .4byte gUnk_030010A0 _08073D14: movs r0, #4 movs r1, #0 movs r2, #0 bl CreateObject _08073D1E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08073D20 sub_08073D20: @ 0x08073D20 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 ldr r5, _08073D70 @ =gUnk_03003F80 movs r0, #0xa8 adds r0, r0, r5 mov r8, r0 movs r0, #0 mov r1, r8 strb r0, [r1] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0x39 ands r0, r1 movs r1, #0x18 orrs r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x40 movs r0, #1 strb r0, [r1] bl sub_08078F60 adds r7, r5, #0 adds r7, #0x26 ldrb r0, [r7] cmp r0, #0 bne _08073D60 movs r0, #0xc0 strh r0, [r4, #0x24] _08073D60: bl sub_08079B24 cmp r0, #0 bne _08073D74 adds r0, r4, #0 bl sub_08079708 b _08073EFC .align 2, 0 _08073D70: .4byte gUnk_03003F80 _08073D74: bl sub_08078EFC adds r6, r0, #0 cmp r6, #0 beq _08073D80 b _08073EFC _08073D80: adds r0, r4, #0 bl sub_08073904 bl sub_0807A1B8 ldrb r0, [r5, #2] cmp r0, #0 beq _08073D96 movs r0, #0x14 mov r1, r8 strb r0, [r1] _08073D96: ldrb r0, [r5, #0x12] subs r0, #0x18 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _08073DB0 strb r6, [r7] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] _08073DB0: bl sub_08078EFC cmp r0, #0 beq _08073DBA b _08073EFC _08073DBA: ldrb r0, [r4, #0xd] cmp r0, #2 bne _08073DC2 b _08073EFC _08073DC2: ldr r0, [r5, #0x30] movs r1, #0x40 ands r0, r1 cmp r0, #0 bne _08073E10 adds r0, r4, #0 bl sub_080085B0 bl sub_080792D8 ldrb r0, [r5, #0xa] cmp r0, #0 bne _08073DE6 bl sub_08079550 cmp r0, #0 beq _08073DE6 b _08073EFC _08073DE6: adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 beq _08073DFA adds r0, r4, #0 adds r0, #0x3e ldrb r0, [r0] strb r0, [r4, #0x15] b _08073EFC _08073DFA: bl sub_080782C0 cmp r0, #0 beq _08073E08 bl sub_08078EFC b _08073EFC _08073E08: ldrb r0, [r4, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #0x10] _08073E10: bl sub_08019840 cmp r0, #0 bne _08073EFC adds r0, r4, #0 bl sub_08077698 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 adds r1, r0, #0 cmp r1, #0 bne _08073E32 ldr r0, _08073E74 @ =gUnk_03003F80 strb r1, [r0, #2] _08073E32: ldr r2, _08073E74 @ =gUnk_03003F80 ldrb r1, [r2, #7] movs r3, #0x80 adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _08073EFC ldrb r0, [r2, #0xa] cmp r0, #0 bne _08073EFC adds r0, r4, #0 adds r0, #0x3d movs r1, #0 ldrsb r1, [r0, r1] adds r6, r0, #0 cmp r1, #8 bgt _08073E90 adds r0, r2, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08073E78 adds r1, r2, #0 adds r1, #0xa8 movs r0, #7 strb r0, [r1] adds r0, r4, #0 bl sub_0807ACCC bl sub_08079E08 b _08073E90 .align 2, 0 _08073E74: .4byte gUnk_03003F80 _08073E78: ldrb r1, [r2, #0xd] strb r1, [r4, #0x15] adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _08073E90 adds r1, r2, #0 adds r1, #0xa8 movs r0, #1 strb r0, [r1] bl sub_08079E08 _08073E90: ldr r5, _08073EF0 @ =gUnk_03003F80 ldrb r0, [r5, #0xb] cmp r0, #0 bne _08073E9E adds r0, r4, #0 bl sub_0806F948 _08073E9E: adds r0, r4, #0 bl sub_080042B8 adds r0, r4, #0 bl sub_0807B068 movs r0, #0x10 bl sub_080793E4 cmp r0, #0 beq _08073EDC movs r0, #0x14 strb r0, [r6] adds r1, r4, #0 adds r1, #0x42 movs r0, #4 strb r0, [r1] ldrb r0, [r4, #0x14] lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 movs r0, #0x7a bl sub_080A3268 _08073EDC: ldr r0, [r5, #0x30] movs r1, #0x40 ands r0, r1 cmp r0, #0 bne _08073EF4 adds r0, r4, #0 bl sub_08008AC6 b _08073EFC .align 2, 0 _08073EF0: .4byte gUnk_03003F80 _08073EF4: adds r1, r5, #0 adds r1, #0xa8 movs r0, #0xd strb r0, [r1] _08073EFC: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08073F04 sub_08073F04: @ 0x08073F04 push {lr} adds r3, r0, #0 adds r3, #0x29 ldrb r2, [r3] movs r1, #0x39 rsbs r1, r1, #0 ands r1, r2 movs r2, #0x10 orrs r1, r2 strb r1, [r3] ldrb r2, [r0, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 strb r1, [r0, #0x18] ldrb r1, [r0, #0xd] adds r1, #1 strb r1, [r0, #0xd] movs r1, #0xa0 lsls r1, r1, #0xa str r1, [r0, #0x20] movs r1, #0x80 lsls r1, r1, #1 strh r1, [r0, #0x24] ldr r2, _08073F48 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x81 rsbs r1, r1, #0 ands r0, r1 str r0, [r2, #0x30] bl sub_08077B2C pop {pc} .align 2, 0 _08073F48: .4byte gUnk_03003F80 thumb_func_start sub_08073F4C sub_08073F4C: @ 0x08073F4C push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08073F84 @ =gUnk_02033A90 ldrh r3, [r0, #0x12] ldrh r5, [r0, #0x14] movs r0, #0x2e ldrsh r2, [r4, r0] cmp r2, r3 bne _08073F66 movs r1, #0x32 ldrsh r0, [r4, r1] cmp r0, r5 beq _08073F88 _08073F66: movs r0, #0x32 ldrsh r1, [r4, r0] adds r0, r2, #0 adds r2, r3, #0 adds r3, r5, #0 bl sub_080045D4 strb r0, [r4, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_0806F69C b _08073FC6 .align 2, 0 _08073F84: .4byte gUnk_02033A90 _08073F88: ldrb r1, [r4, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r4, #0x10] movs r0, #0x1e strb r0, [r4, #0xe] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 strb r0, [r4, #0x18] adds r0, r4, #0 adds r0, #0x80 movs r1, #0x90 lsls r1, r1, #3 str r1, [r0] adds r0, #4 str r1, [r0] ldrb r0, [r4, #0x19] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 bl sub_08074018 ldr r1, _08073FC8 @ =gUnk_03003F80 ldr r0, _08073FCC @ =0x0000073C strh r0, [r1, #8] _08073FC6: pop {r4, r5, pc} .align 2, 0 _08073FC8: .4byte gUnk_03003F80 _08073FCC: .4byte 0x0000073C thumb_func_start sub_08073FD0 sub_08073FD0: @ 0x08073FD0 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08073FF8 subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08074016 ldrb r1, [r4, #0x18] lsls r0, r1, #0x1e cmp r0, #0 bne _08073FF8 movs r0, #3 orrs r0, r1 strb r0, [r4, #0x18] movs r0, #0x7c bl sub_080A3268 _08073FF8: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 ldr r0, [r4, #0x20] cmp r0, #0 bne _08074016 ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0xb8 lsls r0, r0, #1 bl sub_080A3268 _08074016: pop {r4, pc} thumb_func_start sub_08074018 sub_08074018: @ 0x08074018 push {r4, lr} adds r4, r0, #0 adds r1, r4, #0 adds r1, #0x80 ldr r0, [r1] movs r3, #0x80 lsls r3, r3, #1 cmp r0, r3 bls _0807402E subs r0, #0x20 str r0, [r1] _0807402E: adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] adds r2, r0, #0 cmp r1, r3 bls _08074042 adds r0, r1, #0 subs r0, #0x20 str r0, [r2] b _08074048 _08074042: ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] _08074048: adds r0, r4, #0 adds r0, #0x80 ldr r1, [r0] ldr r2, [r2] adds r0, r4, #0 movs r3, #0 bl sub_0805EC9C adds r0, r4, #0 bl sub_080042B8 pop {r4, pc} thumb_func_start sub_08074060 sub_08074060: @ 0x08074060 push {r4, lr} adds r4, r0, #0 movs r1, #0x80 lsls r1, r1, #6 bl sub_08003FC4 cmp r0, #0 bne _080740D0 ldr r0, _080740C4 @ =gUnk_08114F88 str r0, [r4, #0x48] movs r3, #0x10 movs r0, #0x10 strb r0, [r4, #0x15] movs r0, #4 strb r0, [r4, #0x14] movs r2, #0 adds r0, #0xfc strh r0, [r4, #0x24] movs r0, #0x29 adds r0, r0, r4 mov ip, r0 ldrb r1, [r0] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 mov r1, ip strb r0, [r1] ldrb r1, [r4, #0x18] movs r0, #0x31 rsbs r0, r0, #0 ands r0, r1 orrs r0, r3 strb r0, [r4, #0x18] strb r2, [r4, #0xf] ldrb r0, [r4, #0xd] adds r0, #1 strb r0, [r4, #0xd] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r4, #0x20] ldr r1, _080740C8 @ =gUnk_03003F80 ldr r0, _080740CC @ =0x0000080C strh r0, [r1, #8] adds r0, r4, #0 bl sub_0805EC60 b _080740D6 .align 2, 0 _080740C4: .4byte gUnk_08114F88 _080740C8: .4byte gUnk_03003F80 _080740CC: .4byte 0x0000080C _080740D0: adds r0, r4, #0 bl sub_080042B8 _080740D6: pop {r4, pc} thumb_func_start sub_080740D8 sub_080740D8: @ 0x080740D8 push {r4, r5, r6, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r0, [r4, #0xf] cmp r0, #0 bne _080740EA ldrb r0, [r4, #0x15] b _080740F0 _080740EA: ldrb r1, [r4, #0x15] movs r0, #0x10 eors r0, r1 _080740F0: cmp r0, #8 beq _08074128 cmp r0, #8 bhi _080740FE cmp r0, #0 beq _08074168 b _0807418C _080740FE: cmp r0, #0x10 beq _08074148 cmp r0, #0x18 bne _0807418C movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, [r4, #0x48] ldrb r0, [r2, #2] subs r1, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 ldr r3, _08074124 @ =gUnk_03000BF0 ldrh r0, [r3, #6] subs r6, r1, r0 movs r1, #0x32 ldrsh r0, [r4, r1] b _08074182 .align 2, 0 _08074124: .4byte gUnk_03000BF0 _08074128: ldr r2, [r4, #0x48] movs r1, #0x2e ldrsh r0, [r4, r1] ldrb r1, [r2, #2] adds r0, r0, r1 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 ldr r3, _08074144 @ =gUnk_03000BF0 ldrh r1, [r3, #6] subs r6, r0, r1 movs r1, #0x32 ldrsh r0, [r4, r1] b _08074182 .align 2, 0 _08074144: .4byte gUnk_03000BF0 _08074148: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, [r4, #0x48] movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 ldr r3, _08074164 @ =gUnk_03000BF0 ldrh r0, [r3, #6] subs r6, r1, r0 movs r1, #0x32 ldrsh r0, [r4, r1] ldrb r1, [r2, #5] adds r0, r0, r1 b _08074182 .align 2, 0 _08074164: .4byte gUnk_03000BF0 _08074168: movs r0, #0x2e ldrsh r1, [r4, r0] ldr r2, [r4, #0x48] movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 ldr r3, _080741A4 @ =gUnk_03000BF0 ldrh r0, [r3, #6] subs r6, r1, r0 movs r1, #0x32 ldrsh r0, [r4, r1] ldrb r1, [r2, #5] subs r0, r0, r1 _08074182: movs r1, #1 ldrsb r1, [r2, r1] adds r0, r0, r1 ldrh r1, [r3, #8] subs r5, r0, r1 _0807418C: ldr r2, _080741A8 @ =gUnk_080082DC adds r0, r6, #0 adds r1, r5, #0 bl sub_080086B4 cmp r0, #0 beq _080741AC adds r0, r4, #0 bl sub_0806F69C b _080741B0 .align 2, 0 _080741A4: .4byte gUnk_03000BF0 _080741A8: .4byte gUnk_080082DC _080741AC: movs r0, #1 strb r0, [r4, #0xf] _080741B0: movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 bne _080741C2 bl sub_0807921C _080741C2: pop {r4, r5, r6, pc} thumb_func_start sub_080741C4 sub_080741C4: @ 0x080741C4 push {lr} ldr r0, _080741F0 @ =gUnk_03003F80 ldrb r1, [r0, #2] adds r2, r0, #0 cmp r1, #0 beq _080741D8 movs r0, #7 ands r0, r1 cmp r0, #3 bne _080741E0 _080741D8: ldr r0, _080741F4 @ =gLinkEntity ldr r0, [r0, #0x34] cmp r0, #0 beq _080741F8 _080741E0: movs r1, #0 strb r1, [r2, #0x11] adds r0, r2, #0 adds r0, #0x37 strb r1, [r0] movs r0, #1 b _080741FA .align 2, 0 _080741F0: .4byte gUnk_03003F80 _080741F4: .4byte gLinkEntity _080741F8: movs r0, #0 _080741FA: pop {pc} thumb_func_start nullsub_112 nullsub_112: @ 0x080741FC bx lr .align 2, 0 thumb_func_start sub_08074200 sub_08074200: @ 0x08074200 push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074226 adds r0, r4, #0 bl sub_08079C30 cmp r0, #0 beq _08074226 ldrb r0, [r4, #0xc] cmp r0, #3 beq _08074226 bl sub_08077B2C ldr r1, _08074228 @ =gUnk_03003F80 movs r0, #3 strb r0, [r1, #0xc] _08074226: pop {r4, pc} .align 2, 0 _08074228: .4byte gUnk_03003F80 thumb_func_start sub_0807422C sub_0807422C: @ 0x0807422C push {lr} movs r1, #8 movs r2, #0x18 bl sub_08074244 pop {pc} thumb_func_start sub_08074238 sub_08074238: @ 0x08074238 push {lr} movs r1, #0 movs r2, #0x10 bl sub_08074244 pop {pc} thumb_func_start sub_08074244 sub_08074244: @ 0x08074244 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r6, r1, #0 adds r7, r2, #0 ldr r5, _0807428C @ =gUnk_03003F80 ldrb r0, [r5, #0x12] subs r0, #0x28 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _08074278 adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] ldrb r2, [r4, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r4, #0x1b] ldrb r0, [r4, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x19] _08074278: bl sub_080741C4 cmp r0, #0 bne _080742A6 ldrb r0, [r5, #0x1e] cmp r0, #0 bne _08074290 ldrb r0, [r5, #0xd] b _08074294 .align 2, 0 _0807428C: .4byte gUnk_03003F80 _08074290: ldrb r0, [r4, #0x14] lsls r0, r0, #2 _08074294: cmp r6, r0 bne _0807429C cmp r7, r0 beq _080742A6 _0807429C: ldr r1, _080742A8 @ =gUnk_03003F80 adds r1, #0x80 ldrh r0, [r1] subs r0, #0x50 strh r0, [r1] _080742A6: pop {r4, r5, r6, r7, pc} .align 2, 0 _080742A8: .4byte gUnk_03003F80 thumb_func_start sub_080742AC sub_080742AC: @ 0x080742AC push {lr} adds r2, r0, #0 ldr r0, _080742E0 @ =gUnk_03003F80 adds r1, r0, #0 adds r1, #0x26 ldrb r0, [r1] cmp r0, #0 beq _080742C0 movs r0, #0 strb r0, [r1] _080742C0: adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r3] adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] pop {pc} .align 2, 0 _080742E0: .4byte gUnk_03003F80 thumb_func_start sub_080742E4 sub_080742E4: @ 0x080742E4 push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _0807430E ldr r2, _08074310 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0807430E ldrb r0, [r2, #0x11] cmp r0, #0xf bne _0807430E adds r0, r4, #0 movs r1, #0xe movs r2, #0 movs r3, #0 bl sub_080A2988 _0807430E: pop {r4, pc} .align 2, 0 _08074310: .4byte gUnk_03003F80 thumb_func_start sub_08074314 sub_08074314: @ 0x08074314 push {lr} adds r2, r0, #0 ldrh r1, [r2, #0x32] movs r0, #0xf ands r0, r1 cmp r0, #0xd bgt _08074330 movs r0, #0xcc lsls r0, r0, #7 strh r0, [r2, #0x2a] adds r0, r2, #0 bl sub_080743A4 b _08074336 _08074330: adds r0, r2, #0 bl sub_0807A298 _08074336: pop {pc} thumb_func_start sub_08074338 sub_08074338: @ 0x08074338 push {lr} adds r2, r0, #0 ldrh r1, [r2, #0x32] movs r0, #0xf ands r0, r1 cmp r0, #1 ble _08074354 movs r0, #0xcc lsls r0, r0, #7 strh r0, [r2, #0x2a] adds r0, r2, #0 bl sub_080743A4 b _0807435A _08074354: adds r0, r2, #0 bl sub_0807A298 _0807435A: pop {pc} thumb_func_start sub_0807435C sub_0807435C: @ 0x0807435C push {lr} adds r2, r0, #0 ldrh r1, [r2, #0x2e] movs r0, #0xf ands r0, r1 cmp r0, #0xb bgt _08074376 movs r0, #0x66 strh r0, [r2, #0x2a] adds r0, r2, #0 bl sub_080743A4 b _0807437C _08074376: adds r0, r2, #0 bl sub_0807A298 _0807437C: pop {pc} .align 2, 0 thumb_func_start sub_08074380 sub_08074380: @ 0x08074380 push {lr} adds r2, r0, #0 ldrh r1, [r2, #0x2e] movs r0, #0xf ands r0, r1 cmp r0, #4 ble _0807439A movs r0, #0x66 strh r0, [r2, #0x2a] adds r0, r2, #0 bl sub_080743A4 b _080743A0 _0807439A: adds r0, r2, #0 bl sub_0807A298 _080743A0: pop {pc} .align 2, 0 thumb_func_start sub_080743A4 sub_080743A4: @ 0x080743A4 push {lr} ldr r3, _080743D0 @ =gUnk_03003F80 ldr r1, [r3, #0x30] movs r2, #0x40 orrs r1, r2 str r1, [r3, #0x30] movs r3, #0 movs r1, #0x80 strb r1, [r0, #0xb] ldrb r2, [r0, #0x18] subs r1, #0x84 ands r1, r2 strb r1, [r0, #0x18] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] adds r0, #0x42 strb r3, [r0] bl sub_08077B2C pop {pc} .align 2, 0 _080743D0: .4byte gUnk_03003F80 thumb_func_start sub_080743D4 sub_080743D4: @ 0x080743D4 push {r4, r5, lr} adds r5, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074416 adds r0, r5, #0 bl sub_08079C30 cmp r0, #0 beq _08074416 adds r0, r5, #0 bl sub_0807AABC adds r0, r5, #0 bl sub_08074808 movs r0, #0x24 ldrsh r4, [r5, r0] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r5, #0x24] movs r0, #0x10 strb r0, [r5, #0x15] ldr r2, _08074418 @ =gUnk_03003F80 ldrb r1, [r2, #0xa] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0xa] adds r0, r5, #0 bl sub_0806F69C strh r4, [r5, #0x24] _08074416: pop {r4, r5, pc} .align 2, 0 _08074418: .4byte gUnk_03003F80 thumb_func_start sub_0807441C sub_0807441C: @ 0x0807441C push {r4, r5, r6, r7, lr} adds r7, r0, #0 ldr r0, _08074440 @ =gUnk_03003F80 adds r0, #0xa0 ldrb r0, [r0] cmp r0, #4 bne _08074502 ldr r6, _08074444 @ =gUnk_02002A40 adds r4, r6, #0 adds r4, #0xb4 ldrb r0, [r4] bl sub_0805449C cmp r0, #0 beq _08074448 ldrb r0, [r4] b _0807444E .align 2, 0 _08074440: .4byte gUnk_03003F80 _08074444: .4byte gUnk_02002A40 _08074448: adds r0, r6, #0 adds r0, #0xb5 ldrb r0, [r0] _0807444E: subs r0, #1 cmp r0, #5 bhi _0807448A lsls r0, r0, #2 ldr r1, _08074460 @ =_08074464 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08074460: .4byte _08074464 _08074464: @ jump table .4byte _0807447C @ case 0 .4byte _0807447C @ case 1 .4byte _08074480 @ case 2 .4byte _08074484 @ case 3 .4byte _0807448A @ case 4 .4byte _08074488 @ case 5 _0807447C: movs r5, #0 b _0807448A _08074480: movs r5, #1 b _0807448A _08074484: movs r5, #2 b _0807448A _08074488: movs r5, #3 _0807448A: movs r4, #0 cmp r4, r5 bhs _080744A6 ldr r1, _08074494 @ =gUnk_03004040 b _080744A0 .align 2, 0 _08074494: .4byte gUnk_03004040 _08074498: adds r1, #4 adds r4, #1 cmp r4, r5 bhs _080744A6 _080744A0: ldr r0, [r1] cmp r0, #0 bne _08074498 _080744A6: cmp r5, r4 bls _080744D4 adds r0, r7, #0 movs r1, #0x10 adds r2, r4, #0 movs r3, #0 bl sub_080A2988 adds r3, r0, #0 ldr r1, _080744D0 @ =gUnk_03004040 lsls r0, r4, #2 adds r0, r0, r1 str r3, [r0] cmp r3, #0 beq _08074502 adds r0, r7, #0 adds r1, r3, #0 bl sub_0806FA24 b _08074502 .align 2, 0 _080744D0: .4byte gUnk_03004040 _080744D4: ldr r2, _08074504 @ =gUnk_03003F80 ldrb r1, [r2, #0x1b] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x1b] ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0xf orrs r0, r1 str r0, [r2, #0x30] ldr r0, [r7, #0x2c] ldr r2, _08074508 @ =0xFFF00000 ands r0, r2 movs r1, #0x80 lsls r1, r1, #0xc orrs r0, r1 str r0, [r7, #0x2c] ldr r0, [r7, #0x30] ands r0, r2 orrs r0, r1 str r0, [r7, #0x30] bl sub_08077AEC _08074502: pop {r4, r5, r6, r7, pc} .align 2, 0 _08074504: .4byte gUnk_03003F80 _08074508: .4byte 0xFFF00000 thumb_func_start sub_0807450C sub_0807450C: @ 0x0807450C push {r4, r5, r6, r7, lr} adds r6, r0, #0 bl sub_080741C4 cmp r0, #0 bne _0807457A ldr r7, _0807457C @ =gUnk_03003F80 ldrb r0, [r7, #0x14] cmp r0, #0 bne _0807457A adds r4, r6, #0 adds r4, #0x3d movs r0, #0 ldrsb r0, [r4, r0] cmp r0, #0 bne _08074568 movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 movs r0, #0x7a bl sub_080A3268 movs r0, #0x18 strb r0, [r4] adds r1, r6, #0 adds r1, #0x42 movs r0, #4 strb r0, [r1] movs r0, #0x2e ldrsh r2, [r6, r0] ldr r5, _08074580 @ =0x0000FFF0 adds r0, r2, #0 ands r0, r5 movs r4, #8 orrs r0, r4 movs r1, #0x32 ldrsh r3, [r6, r1] adds r1, r3, #0 ands r1, r5 orrs r1, r4 bl sub_080045D4 adds r1, r6, #0 adds r1, #0x3e strb r0, [r1] _08074568: ldr r0, [r7, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0807457A adds r0, r6, #0 movs r1, #7 bl sub_08008790 _0807457A: pop {r4, r5, r6, r7, pc} .align 2, 0 _0807457C: .4byte gUnk_03003F80 _08074580: .4byte 0x0000FFF0 thumb_func_start sub_08074584 sub_08074584: @ 0x08074584 push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _080745AC ldr r0, _080745B0 @ =gUnk_03003F80 adds r0, #0x35 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080745A8 adds r0, r4, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 beq _080745AC _080745A8: bl sub_08078F60 _080745AC: pop {r4, pc} .align 2, 0 _080745B0: .4byte gUnk_03003F80 thumb_func_start sub_080745B4 sub_080745B4: @ 0x080745B4 push {r4, r5, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074636 ldr r0, _080745E4 @ =gUnk_03003F80 mov ip, r0 ldr r3, [r0, #0x30] movs r0, #0x80 ands r3, r0 cmp r3, #0 beq _080745E8 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] subs r0, #0xb9 ands r0, r1 strb r0, [r2] adds r0, r4, #0 bl sub_0807479C b _08074636 .align 2, 0 _080745E4: .4byte gUnk_03003F80 _080745E8: mov r5, ip adds r5, #0x26 ldrb r0, [r5] cmp r0, #0 beq _08074618 ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] subs r2, #0x13 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] strb r3, [r5] _08074618: mov r0, ip adds r0, #0x92 ldrh r1, [r0] movs r0, #0xf0 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 bne _08074630 mov r1, ip ldrb r0, [r1, #0x11] cmp r0, #1 bne _08074636 _08074630: movs r0, #0x83 bl sub_080A3268 _08074636: pop {r4, r5, pc} thumb_func_start sub_08074638 sub_08074638: @ 0x08074638 push {r4, r5, lr} adds r4, r0, #0 ldr r0, _08074674 @ =gUnk_03003F80 adds r5, r0, #0 adds r5, #0x26 ldrb r0, [r5] cmp r0, #0 beq _08074670 ldrb r1, [r4, #0x10] movs r0, #0x80 movs r3, #0 orrs r0, r1 strb r0, [r4, #0x10] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] subs r2, #0x13 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] strb r3, [r5] _08074670: pop {r4, r5, pc} .align 2, 0 _08074674: .4byte gUnk_03003F80 thumb_func_start sub_08074678 sub_08074678: @ 0x08074678 push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 beq _08074690 ldr r0, _0807468C @ =gUnk_03003F80 movs r1, #0 strb r1, [r0, #0x11] b _080746CE .align 2, 0 _0807468C: .4byte gUnk_03003F80 _08074690: adds r0, r4, #0 adds r0, #0x45 ldrb r0, [r0] cmp r0, #0 beq _0807476C adds r0, r4, #0 bl sub_08079C30 adds r1, r0, #0 cmp r1, #0 bne _080746B0 ldr r0, _080746AC @ =gUnk_03003F80 strb r1, [r0, #0x11] b _080746CE .align 2, 0 _080746AC: .4byte gUnk_03003F80 _080746B0: ldr r3, _080746D4 @ =gUnk_03003F80 ldr r1, [r3, #0x30] movs r0, #0x80 ands r1, r0 cmp r1, #0 bne _0807476C ldrb r2, [r3, #0x1e] cmp r2, #0 beq _080746D8 movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _080746DC strb r1, [r3, #0x11] adds r0, r3, #0 _080746CE: adds r0, #0x37 strb r1, [r0] b _08074792 .align 2, 0 _080746D4: .4byte gUnk_03003F80 _080746D8: bl sub_08077B20 _080746DC: ldr r1, _08074700 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x37 ldrb r0, [r0] cmp r0, #1 bne _08074704 adds r0, r4, #0 movs r1, #0x70 movs r2, #0 movs r3, #0 bl sub_080A2988 adds r0, r4, #0 movs r1, #0x52 movs r2, #0 bl CreateFX b _08074714 .align 2, 0 _08074700: .4byte gUnk_03003F80 _08074704: adds r0, r1, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0xf0 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 beq _08074720 _08074714: ldr r0, _0807471C @ =0x00000161 bl sub_080A3268 b _08074732 .align 2, 0 _0807471C: .4byte 0x00000161 _08074720: ldr r0, _08074760 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _08074732 ldr r0, _08074764 @ =0x00000161 bl sub_080A3268 _08074732: ldr r2, _08074768 @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0x80 ldrh r0, [r1] subs r0, #0xf0 strh r0, [r1] adds r1, #0x28 movs r0, #0x1b strb r0, [r1] adds r0, r2, #0 adds r0, #0x37 ldrb r0, [r0] lsls r3, r0, #0x18 lsrs r0, r3, #0x18 cmp r0, #0xef bhi _0807476C subs r1, #0x69 lsrs r0, r3, #0x1d adds r0, #4 ldrb r2, [r1] adds r0, r0, r2 strb r0, [r1] b _08074792 .align 2, 0 _08074760: .4byte gUnk_030010A0 _08074764: .4byte 0x00000161 _08074768: .4byte gUnk_03003F80 _0807476C: ldr r2, _08074794 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08074798 @ =0xFFFBFFFF ands r0, r1 str r0, [r2, #0x30] adds r0, r4, #0 movs r1, #0x52 movs r2, #0 bl CreateFX adds r1, r4, #0 adds r1, #0x3d movs r0, #0x20 strb r0, [r1] subs r0, #0x24 bl sub_080526A0 bl sub_08079458 _08074792: pop {r4, pc} .align 2, 0 _08074794: .4byte gUnk_03003F80 _08074798: .4byte 0xFFFBFFFF thumb_func_start sub_0807479C sub_0807479C: @ 0x0807479C push {r4, lr} adds r4, r0, #0 bl sub_080741C4 adds r2, r0, #0 cmp r2, #0 bne _08074804 ldr r1, _080747C0 @ =gUnk_03003F80 ldrb r0, [r1, #0x14] adds r3, r1, #0 cmp r0, #0 bne _080747C4 adds r1, #0x3f ldrb r0, [r1] adds r0, #2 strb r0, [r1] b _080747E6 .align 2, 0 _080747C0: .4byte gUnk_03003F80 _080747C4: adds r0, r3, #0 adds r0, #0x26 strb r2, [r0] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] adds r2, #0x13 ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] _080747E6: adds r0, r3, #0 adds r0, #0x26 ldrb r1, [r0] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _080747FE adds r0, r4, #0 bl sub_08079C30 cmp r0, #0 beq _08074804 _080747FE: adds r0, r4, #0 bl sub_08074808 _08074804: pop {r4, pc} .align 2, 0 thumb_func_start sub_08074808 sub_08074808: @ 0x08074808 push {r4, r5, r6, r7, lr} adds r6, r0, #0 bl sub_08077AEC movs r0, #0x46 bl GetInventoryValue adds r3, r0, #0 cmp r3, #1 bne _080748B8 ldr r1, _08074838 @ =gUnk_03003F80 adds r2, r1, #0 adds r2, #0x26 ldrb r0, [r2] cmp r0, #0 bne _0807486C ldr r0, [r1, #0x30] movs r1, #0x80 lsls r1, r1, #9 ands r0, r1 cmp r0, #0 beq _0807483C strb r3, [r2] b _08074840 .align 2, 0 _08074838: .4byte gUnk_03003F80 _0807483C: movs r0, #8 strb r0, [r2] _08074840: movs r1, #0 movs r0, #0 strh r0, [r6, #0x24] ldr r0, _080748AC @ =gUnk_03003F80 adds r2, r0, #0 adds r2, #0x89 strb r1, [r2] ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08074862 adds r0, r6, #0 movs r1, #0xb movs r2, #0 bl CreateFX _08074862: ldr r0, _080748B0 @ =0x000001A5 bl sub_080A3268 bl sub_08077B2C _0807486C: ldr r5, _080748AC @ =gUnk_03003F80 adds r4, r5, #0 adds r4, #0x26 ldrb r1, [r4] movs r7, #0xf adds r0, r7, #0 ands r0, r1 cmp r0, #1 beq _0807488A adds r0, r6, #0 bl sub_08079744 ldrb r0, [r4] subs r0, #1 strb r0, [r4] _0807488A: ldr r0, [r5, #0x30] ldr r1, _080748B4 @ =0xFFFFF3FF ands r0, r1 str r0, [r5, #0x30] movs r1, #0x80 lsls r1, r1, #7 ands r0, r1 cmp r0, #0 beq _080748BE adds r1, r6, #0 adds r1, #0x7a ldrh r0, [r1] cmp r0, #0xe bhi _080748BE strh r7, [r1] b _080748BE .align 2, 0 _080748AC: .4byte gUnk_03003F80 _080748B0: .4byte 0x000001A5 _080748B4: .4byte 0xFFFFF3FF _080748B8: ldr r1, _080748C0 @ =gUnk_03003F80 movs r0, #0x14 strb r0, [r1, #0xc] _080748BE: pop {r4, r5, r6, r7, pc} .align 2, 0 _080748C0: .4byte gUnk_03003F80 thumb_func_start sub_080748C4 sub_080748C4: @ 0x080748C4 ldr r1, _080748D0 @ =gUnk_03003F80 adds r1, #0x3f ldrb r0, [r1] subs r0, #2 strb r0, [r1] bx lr .align 2, 0 _080748D0: .4byte gUnk_03003F80 thumb_func_start sub_080748D4 sub_080748D4: @ 0x080748D4 push {lr} bl sub_080741C4 pop {pc} thumb_func_start sub_080748DC sub_080748DC: @ 0x080748DC push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074910 adds r0, r4, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 beq _0807490A ldrh r0, [r4, #0x32] adds r0, #0xc strh r0, [r4, #0x32] ldr r0, _08074914 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _0807490A ldrh r0, [r4, #0x36] subs r0, #0xc strh r0, [r4, #0x36] _0807490A: adds r0, r4, #0 bl sub_0807AABC _08074910: pop {r4, pc} .align 2, 0 _08074914: .4byte gUnk_03003F80 thumb_func_start sub_08074918 sub_08074918: @ 0x08074918 push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074934 adds r0, r4, #0 bl sub_08079C30 cmp r0, #0 beq _08074934 ldr r1, _08074938 @ =gUnk_03003F80 movs r0, #0x11 strb r0, [r1, #0xc] _08074934: pop {r4, pc} .align 2, 0 _08074938: .4byte gUnk_03003F80 thumb_func_start sub_0807493C sub_0807493C: @ 0x0807493C push {r4, lr} adds r4, r0, #0 movs r0, #0x44 bl GetInventoryValue cmp r0, #1 bne _08074952 adds r0, r4, #0 bl sub_0807496C b _08074966 _08074952: ldrh r1, [r4, #0x32] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #0xf movs r2, #0 orrs r0, r1 strh r0, [r4, #0x32] ldr r0, _08074968 @ =gUnk_03003F80 strb r2, [r0, #0x12] _08074966: pop {r4, pc} .align 2, 0 _08074968: .4byte gUnk_03003F80 thumb_func_start sub_0807496C sub_0807496C: @ 0x0807496C push {r4, lr} adds r4, r0, #0 bl sub_080741C4 adds r3, r0, #0 cmp r3, #0 bne _080749A2 ldr r0, _080749A4 @ =gUnk_03003F80 strb r3, [r0, #2] ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r4, #0x1b] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x1b] strb r3, [r4, #0x14] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] bl sub_08077B2C _080749A2: pop {r4, pc} .align 2, 0 _080749A4: .4byte gUnk_03003F80 thumb_func_start sub_080749A8 sub_080749A8: @ 0x080749A8 push {r4, lr} adds r4, r0, #0 movs r0, #0x44 bl GetInventoryValue cmp r0, #1 bne _080749BE adds r0, r4, #0 bl sub_080749D4 b _080749CE _080749BE: ldrh r1, [r4, #0x32] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #0 strh r0, [r4, #0x32] ldr r0, _080749D0 @ =gUnk_03003F80 strb r1, [r0, #0x12] _080749CE: pop {r4, pc} .align 2, 0 _080749D0: .4byte gUnk_03003F80 thumb_func_start sub_080749D4 sub_080749D4: @ 0x080749D4 push {r4, r5, lr} adds r4, r0, #0 bl sub_080741C4 adds r3, r0, #0 cmp r3, #0 bne _08074A40 ldrb r2, [r4, #0x19] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r4, #0x19] ldrb r0, [r4, #0x1b] ands r1, r0 orrs r1, r2 strb r1, [r4, #0x1b] strb r3, [r4, #0x14] adds r1, r4, #0 adds r1, #0x38 movs r0, #3 strb r0, [r1] ldr r5, _08074A2C @ =gUnk_03003F80 adds r0, r5, #0 adds r0, #0x26 strb r3, [r0] adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] ldrh r1, [r4, #0x32] movs r0, #0xf ands r0, r1 cmp r0, #7 bgt _08074A34 ldr r0, _08074A30 @ =0x000002D3 strh r0, [r5, #8] movs r0, #0x10 strb r0, [r4, #0x15] b _08074A3C .align 2, 0 _08074A2C: .4byte gUnk_03003F80 _08074A30: .4byte 0x000002D3 _08074A34: movs r1, #0 ldr r0, _08074A44 @ =0x000002D6 strh r0, [r5, #8] strb r1, [r4, #0x15] _08074A3C: bl sub_08077B2C _08074A40: pop {r4, r5, pc} .align 2, 0 _08074A44: .4byte 0x000002D6 thumb_func_start sub_08074A48 sub_08074A48: @ 0x08074A48 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08074A90 @ =gUnk_03003F80 adds r0, r5, #0 adds r0, #0x26 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08074A86 ldr r0, _08074A94 @ =gLinkEntity movs r1, #0 movs r2, #0x54 movs r3, #0 bl sub_080A2988 adds r1, r0, #0 cmp r1, #0 beq _08074A86 movs r0, #1 strb r0, [r1, #0xe] adds r0, r1, #0 bl sub_08016A04 ldrh r1, [r5, #0x22] adds r0, r4, #0 adds r0, #0x38 ldrb r2, [r0] movs r0, #0x39 bl sub_08000152 _08074A86: adds r0, r4, #0 bl sub_0807479C pop {r4, r5, pc} .align 2, 0 _08074A90: .4byte gUnk_03003F80 _08074A94: .4byte gLinkEntity thumb_func_start nullsub_504 nullsub_504: @ 0x08074A98 bx lr .align 2, 0 thumb_func_start sub_08074A9C sub_08074A9C: @ 0x08074A9C push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074AF0 ldr r2, _08074AE0 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x80 ldrh r1, [r0] subs r1, #0x80 strh r1, [r0] ldrb r0, [r2, #0x11] cmp r0, #1 beq _08074ACA adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0xf0 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 beq _08074AF0 _08074ACA: ldrb r0, [r2, #0x12] cmp r0, #0x25 bne _08074AE4 adds r0, r4, #0 movs r1, #0x21 movs r2, #1 movs r3, #0 bl sub_080A2988 b _08074AF0 .align 2, 0 _08074AE0: .4byte gUnk_03003F80 _08074AE4: adds r0, r4, #0 movs r1, #0x21 movs r2, #1 movs r3, #1 bl sub_080A2988 _08074AF0: pop {r4, pc} .align 2, 0 thumb_func_start sub_08074AF4 sub_08074AF4: @ 0x08074AF4 push {lr} adds r3, r0, #0 ldr r1, _08074B04 @ =gUnk_03003F80 ldrb r0, [r1, #0x1e] cmp r0, #0 bne _08074B08 ldrb r2, [r1, #0xd] b _08074B0C .align 2, 0 _08074B04: .4byte gUnk_03003F80 _08074B08: ldrb r0, [r3, #0x14] lsls r2, r0, #2 _08074B0C: adds r0, r3, #0 adds r1, r2, #0 bl sub_08074244 pop {pc} .align 2, 0 thumb_func_start sub_08074B18 sub_08074B18: @ 0x08074B18 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _08074B40 @ =gUnk_03003F80 ldrb r0, [r4, #0x14] cmp r0, #0 bne _08074B48 bl sub_080741C4 cmp r0, #0 bne _08074B48 ldr r0, [r4, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08074B44 adds r0, r5, #0 bl sub_08074200 b _08074B48 .align 2, 0 _08074B40: .4byte gUnk_03003F80 _08074B44: movs r0, #0x1a strb r0, [r4, #0xc] _08074B48: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08074B4C sub_08074B4C: @ 0x08074B4C push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074B6E ldr r0, _08074B70 @ =gUnk_03003F80 ldr r1, [r0, #0x30] movs r0, #0x80 ands r1, r0 cmp r1, #0 bne _08074B6E strb r1, [r4, #0x14] strb r1, [r4, #0x15] adds r0, r4, #0 bl sub_08074BF8 _08074B6E: pop {r4, pc} .align 2, 0 _08074B70: .4byte gUnk_03003F80 thumb_func_start sub_08074B74 sub_08074B74: @ 0x08074B74 push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074B9A ldr r0, _08074B9C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08074B9A movs r0, #4 strb r0, [r4, #0x14] movs r0, #0x10 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08074BF8 _08074B9A: pop {r4, pc} .align 2, 0 _08074B9C: .4byte gUnk_03003F80 thumb_func_start sub_08074BA0 sub_08074BA0: @ 0x08074BA0 push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074BC6 ldr r0, _08074BC8 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08074BC6 movs r0, #6 strb r0, [r4, #0x14] movs r0, #0x18 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08074BF8 _08074BC6: pop {r4, pc} .align 2, 0 _08074BC8: .4byte gUnk_03003F80 thumb_func_start sub_08074BCC sub_08074BCC: @ 0x08074BCC push {r4, lr} adds r4, r0, #0 bl sub_080741C4 cmp r0, #0 bne _08074BF2 ldr r0, _08074BF4 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08074BF2 movs r0, #2 strb r0, [r4, #0x14] movs r0, #8 strb r0, [r4, #0x15] adds r0, r4, #0 bl sub_08074BF8 _08074BF2: pop {r4, pc} .align 2, 0 _08074BF4: .4byte gUnk_03003F80 thumb_func_start sub_08074BF8 sub_08074BF8: @ 0x08074BF8 push {r4, lr} adds r4, r0, #0 bl sub_08077B2C adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] movs r0, #0xa0 lsls r0, r0, #1 strh r0, [r4, #0x24] ldr r1, _08074C40 @ =gUnk_03003F80 ldr r0, [r1, #0x30] movs r2, #0x80 lsls r2, r2, #0x12 orrs r0, r2 str r0, [r1, #0x30] ldrb r2, [r1, #0xa] movs r0, #0x80 orrs r2, r0 strb r2, [r1, #0xa] ldrb r2, [r1, #0x1a] orrs r0, r2 strb r0, [r1, #0x1a] adds r1, #0x27 ldrb r0, [r1] adds r0, #1 strb r0, [r1] adds r0, r4, #0 bl sub_0806F69C pop {r4, pc} .align 2, 0 _08074C40: .4byte gUnk_03003F80 thumb_func_start sub_08074C44 sub_08074C44: @ 0x08074C44 push {r4, lr} adds r4, r0, #0 bl sub_08078EFC cmp r0, #0 bne _08074C60 ldr r0, _08074C64 @ =gUnk_0811BC88 ldrb r1, [r4, #0xd] lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] adds r0, r4, #0 bl _call_via_r1 _08074C60: pop {r4, pc} .align 2, 0 _08074C64: .4byte gUnk_0811BC88 thumb_func_start sub_08074C68 sub_08074C68: @ 0x08074C68 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r4, #0 adds r6, #0x68 movs r2, #0 strb r2, [r6] ldr r5, _08074CA0 @ =gUnk_03003F80 adds r0, r5, #0 adds r0, #0x38 ldrb r3, [r0] cmp r3, #1 beq _08074CA8 adds r0, r4, #0 adds r0, #0x84 ldr r1, [r0] ldr r0, _08074CA4 @ =gUnk_02022750 cmp r1, r0 bne _08074CF2 movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 bl sub_0807DD64 adds r0, r4, #0 bl sub_08074CF8 b _08074CF2 .align 2, 0 _08074CA0: .4byte gUnk_03003F80 _08074CA4: .4byte gUnk_02022750 _08074CA8: ldrb r1, [r4, #0x18] movs r0, #4 rsbs r0, r0, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] strb r2, [r4, #0x14] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] movs r0, #2 strb r0, [r4, #0xd] strb r3, [r6] adds r0, r4, #0 bl sub_0807DD64 adds r0, r5, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _08074CE4 ldr r0, _08074CE0 @ =0x0000073A b _08074CE6 .align 2, 0 _08074CE0: .4byte 0x0000073A _08074CE4: ldr r0, _08074CF4 @ =0x00000736 _08074CE6: strh r0, [r5, #8] movs r1, #0x80 lsls r1, r1, #1 movs r0, #5 bl sub_08050054 _08074CF2: pop {r4, r5, r6, pc} .align 2, 0 _08074CF4: .4byte 0x00000736 thumb_func_start sub_08074CF8 sub_08074CF8: @ 0x08074CF8 push {r4, r5, r6, lr} adds r5, r0, #0 ldrb r6, [r5, #0x14] adds r4, r5, #0 adds r4, #0x84 ldr r1, [r4] bl sub_0807DF74 ldr r1, [r4] adds r0, r5, #0 bl sub_08074D34 adds r0, r5, #0 adds r0, #0x82 ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08074D20 strb r6, [r5, #0x14] _08074D20: movs r1, #0x80 lsls r1, r1, #6 adds r0, r5, #0 bl sub_08003FC4 adds r0, r5, #0 bl sub_080042B8 pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08074D34 sub_08074D34: @ 0x08074D34 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r6, r1, #0 ldr r0, [r6, #8] cmp r0, #0 bne _08074D46 b _08074EF8 _08074D46: movs r7, #0x80 lsls r7, r7, #1 adds r5, r4, #0 adds r5, #0x82 _08074D4E: ldr r1, [r6, #8] mvns r0, r1 adds r2, r0, #1 ands r2, r1 eors r1, r2 str r1, [r6, #8] cmp r2, r7 bne _08074D60 b _08074E82 _08074D60: cmp r2, r7 bhi _08074D90 cmp r2, #8 beq _08074E2C cmp r2, #8 bhi _08074D7C cmp r2, #2 beq _08074E08 cmp r2, #2 bls _08074D76 b _08074EF0 _08074D76: cmp r2, #1 beq _08074DEC b _08074EF0 _08074D7C: cmp r2, #0x20 beq _08074E62 cmp r2, #0x20 bhi _08074D8A cmp r2, #0x10 beq _08074E54 b _08074EF0 _08074D8A: cmp r2, #0x80 beq _08074E70 b _08074EF0 _08074D90: movs r0, #0x80 lsls r0, r0, #7 cmp r2, r0 bne _08074D9A b _08074EAE _08074D9A: cmp r2, r0 bhi _08074DBE movs r0, #0x80 lsls r0, r0, #5 cmp r2, r0 beq _08074E96 cmp r2, r0 bhi _08074DB4 movs r0, #0x80 lsls r0, r0, #2 cmp r2, r0 beq _08074E90 b _08074EF0 _08074DB4: movs r0, #0x80 lsls r0, r0, #6 cmp r2, r0 beq _08074EA8 b _08074EF0 _08074DBE: movs r0, #0x80 lsls r0, r0, #0xa cmp r2, r0 bne _08074DC8 b _08074EBE _08074DC8: cmp r2, r0 bhi _08074DD6 movs r0, #0x80 lsls r0, r0, #8 cmp r2, r0 beq _08074EB4 b _08074EF0 _08074DD6: movs r0, #0x80 lsls r0, r0, #0xd cmp r2, r0 bne _08074DE0 b _08074ED8 _08074DE0: movs r0, #0x80 lsls r0, r0, #0xe cmp r2, r0 bne _08074DEA b _08074EE4 _08074DEA: b _08074EF0 _08074DEC: ldr r2, _08074E00 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08074E04 movs r0, #0x80 lsls r0, r0, #3 strh r0, [r2, #8] b _08074EF0 .align 2, 0 _08074E00: .4byte gUnk_03003F80 _08074E04: strh r7, [r2, #8] b _08074EF0 _08074E08: ldr r2, _08074E1C @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _08074E24 ldr r0, _08074E20 @ =0x00000404 strh r0, [r2, #8] b _08074EF0 .align 2, 0 _08074E1C: .4byte gUnk_03003F80 _08074E20: .4byte 0x00000404 _08074E24: movs r0, #0x82 lsls r0, r0, #1 strh r0, [r2, #8] b _08074EF0 _08074E2C: ldr r1, _08074E3C @ =gUnk_03003F80 ldr r0, [r1, #0x30] ands r0, r2 cmp r0, #0 beq _08074E44 ldr r0, _08074E40 @ =0x0000041C b _08074E46 .align 2, 0 _08074E3C: .4byte gUnk_03003F80 _08074E40: .4byte 0x0000041C _08074E44: ldr r0, _08074E50 @ =0x0000080C _08074E46: strh r0, [r1, #8] movs r0, #0xc0 lsls r0, r0, #9 str r0, [r4, #0x20] b _08074EF0 .align 2, 0 _08074E50: .4byte 0x0000080C _08074E54: adds r0, r4, #0 movs r1, #8 movs r2, #0x18 rsbs r2, r2, #0 bl sub_080A2CFC b _08074EF0 _08074E62: adds r0, r4, #0 movs r1, #8 movs r2, #0x18 rsbs r2, r2, #0 bl sub_080A2D0C b _08074EF0 _08074E70: ldrb r0, [r4, #0x18] movs r2, #4 rsbs r2, r2, #0 adds r1, r2, #0 ands r0, r1 movs r1, #1 orrs r0, r1 strb r0, [r4, #0x18] b _08074EF0 _08074E82: ldrb r0, [r4, #0x18] movs r3, #4 rsbs r3, r3, #0 adds r1, r3, #0 ands r0, r1 strb r0, [r4, #0x18] b _08074EF0 _08074E90: movs r0, #0 strh r0, [r5] b _08074EF0 _08074E96: ldrh r0, [r5] ldr r2, _08074EA4 @ =0x0000FFFE adds r1, r2, #0 ands r0, r1 strh r0, [r5] b _08074EF0 .align 2, 0 _08074EA4: .4byte 0x0000FFFE _08074EA8: ldrh r0, [r5] movs r1, #1 b _08074EB8 _08074EAE: ldrh r0, [r5] movs r1, #8 b _08074EB8 _08074EB4: ldrh r0, [r5] movs r1, #4 _08074EB8: orrs r0, r1 strh r0, [r5] b _08074EF0 _08074EBE: ldrb r2, [r4, #0x18] lsls r0, r2, #0x19 lsrs r0, r0, #0x1f movs r1, #1 eors r0, r1 lsls r0, r0, #6 movs r3, #0x41 rsbs r3, r3, #0 adds r1, r3, #0 ands r2, r1 orrs r2, r0 strb r2, [r4, #0x18] b _08074EF0 _08074ED8: movs r1, #2 strb r1, [r4, #0xd] adds r0, r4, #0 adds r0, #0x68 strb r1, [r0] b _08074EF0 _08074EE4: movs r0, #0 movs r1, #3 strb r1, [r4, #0xd] adds r1, r4, #0 adds r1, #0x68 strb r0, [r1] _08074EF0: ldr r0, [r6, #8] cmp r0, #0 beq _08074EF8 b _08074D4E _08074EF8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08074F00 sub_08074F00: @ 0x08074F00 push {lr} ldr r2, _08074F18 @ =gUnk_0811BC98 adds r1, r0, #0 adds r1, #0x68 ldrb r1, [r1] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08074F18: .4byte gUnk_0811BC98 thumb_func_start sub_08074F1C sub_08074F1C: @ 0x08074F1C adds r2, r0, #0 adds r2, #0x68 movs r3, #0 movs r1, #1 strb r1, [r2] strb r3, [r0, #0x14] bx lr .align 2, 0 thumb_func_start sub_08074F2C sub_08074F2C: @ 0x08074F2C push {r4, r5, lr} adds r4, r0, #0 adds r5, r4, #0 adds r5, #0x84 ldr r1, [r5] bl sub_0807DF74 ldr r1, [r5] adds r0, r4, #0 bl sub_08074D34 pop {r4, r5, pc} thumb_func_start sub_08074F44 sub_08074F44: @ 0x08074F44 push {lr} adds r0, #0x68 ldrb r1, [r0] adds r1, #1 strb r1, [r0] ldr r0, _08074F74 @ =gLinkEntity ldr r0, [r0, #0x6c] cmp r0, #0 beq _08074F5A bl sub_0805E7BC _08074F5A: ldr r2, _08074F78 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _08074F80 ldr r0, _08074F7C @ =0x0000073B strh r0, [r2, #8] ldr r0, [r2, #0x30] movs r1, #8 orrs r0, r1 str r0, [r2, #0x30] b _08074F84 .align 2, 0 _08074F74: .4byte gLinkEntity _08074F78: .4byte gUnk_03003F80 _08074F7C: .4byte 0x0000073B _08074F80: ldr r0, _08074F88 @ =0x00000737 strh r0, [r2, #8] _08074F84: pop {pc} .align 2, 0 _08074F88: .4byte 0x00000737 thumb_func_start sub_08074F8C sub_08074F8C: @ 0x08074F8C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r3, r4, #0 adds r3, #0x5a ldrb r0, [r3] cmp r0, #1 bne _08074FAC movs r0, #0 strb r0, [r3] ldr r2, _08074FDC @ =gUnk_02033280 ldr r0, [r2] movs r1, #4 orrs r0, r1 str r0, [r2] _08074FAC: ldrb r1, [r3] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08074FEA adds r1, r4, #0 adds r1, #0x68 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #8 strb r0, [r4, #0xe] movs r0, #4 strb r0, [r4, #0x14] ldr r1, _08074FE0 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _08074FE4 movs r0, #0x80 lsls r0, r0, #3 b _08074FE8 .align 2, 0 _08074FDC: .4byte gUnk_02033280 _08074FE0: .4byte gUnk_03003F80 _08074FE4: movs r0, #0x80 lsls r0, r0, #1 _08074FE8: strh r0, [r1, #8] _08074FEA: pop {r4, pc} thumb_func_start sub_08074FEC sub_08074FEC: @ 0x08074FEC push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08075016 adds r1, r4, #0 adds r1, #0x68 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #4 strb r0, [r4, #0xe] ldr r0, _08075018 @ =gUnk_03003F80 adds r0, #0x3a ldrb r0, [r0] strb r0, [r4, #0x14] _08075016: pop {r4, pc} .align 2, 0 _08075018: .4byte gUnk_03003F80 thumb_func_start sub_0807501C sub_0807501C: @ 0x0807501C push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _08075086 ldr r1, _08075044 @ =gUnk_03003F80 adds r0, r1, #0 adds r0, #0x3a ldrb r0, [r0] strb r0, [r2, #0x14] adds r0, r1, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _0807504C ldr r0, _08075048 @ =0x0000041C b _0807504E .align 2, 0 _08075044: .4byte gUnk_03003F80 _08075048: .4byte 0x0000041C _0807504C: ldr r0, _08075088 @ =0x0000080C _0807504E: strh r0, [r1, #8] adds r3, r2, #0 adds r3, #0x29 ldrb r1, [r3] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r3] ldrb r0, [r2, #0x14] lsls r0, r0, #2 strb r0, [r2, #0x15] movs r0, #0xc8 strh r0, [r2, #0x24] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r2, #0x20] movs r0, #8 strb r0, [r2, #0xe] adds r1, r2, #0 adds r1, #0x68 ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0x7c bl sub_080A3268 _08075086: pop {pc} .align 2, 0 _08075088: .4byte 0x0000080C thumb_func_start sub_0807508C sub_0807508C: @ 0x0807508C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 movs r1, #0x80 lsls r1, r1, #6 adds r0, r4, #0 bl sub_08003FC4 cmp r0, #0 beq _080750AA adds r0, r4, #0 bl sub_0806F69C b _080750F2 _080750AA: ldr r2, _080750BC @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x39 ldrb r0, [r0] cmp r0, #0 bne _080750C0 movs r0, #0x80 lsls r0, r0, #3 b _080750CE .align 2, 0 _080750BC: .4byte gUnk_03003F80 _080750C0: ldr r0, [r2, #0x30] movs r1, #9 rsbs r1, r1, #0 ands r0, r1 str r0, [r2, #0x30] movs r0, #0x80 lsls r0, r0, #1 _080750CE: strh r0, [r2, #8] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 lsrs r1, r0, #0x18 cmp r1, #0 bne _080750F2 movs r0, #4 strb r0, [r4, #0x14] movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x68 strb r1, [r0] movs r0, #0x7d bl sub_080A3268 _080750F2: pop {r4, pc} thumb_func_start sub_080750F4 sub_080750F4: @ 0x080750F4 push {lr} ldr r2, _0807510C @ =gUnk_0811BCB4 adds r1, r0, #0 adds r1, #0x68 ldrb r1, [r1] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807510C: .4byte gUnk_0811BCB4 thumb_func_start sub_08075110 sub_08075110: @ 0x08075110 adds r2, r0, #0 adds r2, #0x68 ldrb r1, [r2] adds r1, #1 movs r3, #0 strb r1, [r2] ldrb r1, [r0, #0x14] strb r1, [r0, #0xf] strb r3, [r0, #0x14] ldr r2, _08075134 @ =gUnk_03003F80 ldr r0, _08075138 @ =0x00000734 strh r0, [r2, #8] ldr r0, [r2, #0x30] movs r1, #9 rsbs r1, r1, #0 ands r0, r1 str r0, [r2, #0x30] bx lr .align 2, 0 _08075134: .4byte gUnk_03003F80 _08075138: .4byte 0x00000734 thumb_func_start sub_0807513C sub_0807513C: @ 0x0807513C push {r4, r5, lr} adds r5, r0, #0 bl sub_080042B8 adds r4, r5, #0 adds r4, #0x5a ldrb r0, [r4] cmp r0, #1 bne _08075158 movs r0, #0 strb r0, [r4] movs r0, #0x7c bl sub_080A3268 _08075158: ldrb r0, [r4] cmp r0, #2 bne _0807516E movs r0, #0 strb r0, [r4] ldr r0, _08075188 @ =0x0000014B bl sub_080A3268 movs r0, #0x7a bl sub_080A3268 _0807516E: ldrb r1, [r4] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08075186 adds r0, r5, #0 adds r0, #0x68 ldrb r1, [r0] adds r1, #1 strb r1, [r0] movs r0, #0x3c strb r0, [r5, #0xe] _08075186: pop {r4, r5, pc} .align 2, 0 _08075188: .4byte 0x0000014B thumb_func_start sub_0807518C sub_0807518C: @ 0x0807518C push {lr} adds r1, r0, #0 ldrb r0, [r1, #0xe] subs r0, #1 strb r0, [r1, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _080751AA adds r1, #0x68 ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r1, _080751AC @ =gUnk_03003F80 ldr r0, _080751B0 @ =0x000003C9 strh r0, [r1, #8] _080751AA: pop {pc} .align 2, 0 _080751AC: .4byte gUnk_03003F80 _080751B0: .4byte 0x000003C9 thumb_func_start sub_080751B4 sub_080751B4: @ 0x080751B4 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 adds r0, r4, #0 adds r0, #0x5a ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080751E2 movs r1, #0 movs r0, #4 strb r0, [r4, #0x14] movs r0, #1 strb r0, [r4, #0xd] adds r0, r4, #0 adds r0, #0x68 strb r1, [r0] ldr r1, _080751E4 @ =gUnk_03003F80 movs r0, #0x80 lsls r0, r0, #1 strh r0, [r1, #8] _080751E2: pop {r4, pc} .align 2, 0 _080751E4: .4byte gUnk_03003F80 thumb_func_start sub_080751E8 sub_080751E8: @ 0x080751E8 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r5, r1, #0 adds r6, r2, #0 ldr r4, _08075230 @ =gUnk_02022750 adds r0, r4, #0 movs r1, #0x24 bl sub_0801D630 str r6, [r4] ldr r0, _08075234 @ =gLinkEntity adds r0, #0x84 str r4, [r0] ldr r2, _08075238 @ =gUnk_03003F80 movs r1, #0 movs r0, #0x1c strb r0, [r2, #0xc] adds r0, r2, #0 adds r0, #0x38 movs r4, #1 strb r4, [r0] adds r3, r2, #0 adds r3, #0x39 strb r1, [r3] adds r0, #2 strb r5, [r0] ldr r0, [r2, #0x30] movs r1, #8 orrs r0, r1 str r0, [r2, #0x30] cmp r7, #0 bne _08075240 strb r7, [r3] ldr r6, _0807523C @ =gUnk_08009ECC b _08075244 .align 2, 0 _08075230: .4byte gUnk_02022750 _08075234: .4byte gLinkEntity _08075238: .4byte gUnk_03003F80 _0807523C: .4byte gUnk_08009ECC _08075240: strb r4, [r3] ldr r6, _08075290 @ =gUnk_08009EF0 _08075244: ldr r0, _08075294 @ =gUnk_03003F80 adds r0, #0x39 ldrb r0, [r0] movs r1, #0 cmp r0, #0 bne _08075252 movs r1, #2 _08075252: movs r0, #0x5b movs r2, #0 bl CreateObject adds r4, r0, #0 cmp r4, #0 beq _08075270 ldr r0, _08075298 @ =gLinkEntity adds r1, r4, #0 bl sub_0806FA24 adds r0, r4, #0 adds r1, r6, #0 bl sub_0807DAD0 _08075270: ldr r4, _08075298 @ =gLinkEntity movs r1, #0xe rsbs r1, r1, #0 movs r2, #0x1c rsbs r2, r2, #0 adds r0, r4, #0 bl sub_080A2D1C str r0, [r4, #0x6c] cmp r0, #0 beq _0807528C movs r1, #3 bl sub_0805E3A0 _0807528C: pop {r4, r5, r6, r7, pc} .align 2, 0 _08075290: .4byte gUnk_08009EF0 _08075294: .4byte gUnk_03003F80 _08075298: .4byte gLinkEntity thumb_func_start sub_0807529C sub_0807529C: @ 0x0807529C push {lr} movs r2, #0x20 rsbs r2, r2, #0 movs r1, #8 bl sub_080A2D0C pop {pc} .align 2, 0 thumb_func_start sub_080752AC sub_080752AC: @ 0x080752AC push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 bl sub_0806F69C ldrb r0, [r4, #0x18] cmp r0, #0 bne _080752D0 adds r0, r5, #0 bl sub_080002B8 cmp r0, #0x29 beq _080752DC movs r0, #1 strb r0, [r4, #0x18] movs r0, #6 strb r0, [r4, #0x19] b _080752DC _080752D0: ldrb r0, [r4, #0x19] subs r0, #1 strb r0, [r4, #0x19] lsls r0, r0, #0x18 cmp r0, #0 beq _080752E2 _080752DC: ldr r1, _080752E4 @ =gUnk_02033280 movs r0, #0 strb r0, [r1, #6] _080752E2: pop {r4, r5, pc} .align 2, 0 _080752E4: .4byte gUnk_02033280 thumb_func_start sub_080752E8 sub_080752E8: @ 0x080752E8 push {lr} ldr r3, _080752FC @ =gUnk_0811BCC4 ldrb r2, [r0, #1] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _080752FC: .4byte gUnk_0811BCC4 thumb_func_start sub_08075300 sub_08075300: @ 0x08075300 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077BD4 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 pop {r4, r5, pc} thumb_func_start sub_08075314 sub_08075314: @ 0x08075314 push {lr} ldr r2, _08075330 @ =gUnk_03003F80 adds r2, #0xa8 movs r3, #2 strb r3, [r2] ldr r3, _08075334 @ =gUnk_0811BD44 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08075330: .4byte gUnk_03003F80 _08075334: .4byte gUnk_0811BD44 thumb_func_start sub_08075338 sub_08075338: @ 0x08075338 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r7, r1, #0 ldr r4, _0807536C @ =gUnk_03003F80 ldr r1, [r4, #0x30] movs r3, #0x80 adds r0, r1, #0 ands r0, r3 cmp r0, #0 beq _08075370 ldrb r0, [r5, #9] movs r1, #0x80 orrs r1, r0 strb r1, [r5, #9] adds r0, r5, #0 adds r1, r7, #0 bl sub_08077D38 movs r0, #0xc0 lsls r0, r0, #4 strh r0, [r4, #8] movs r0, #0x75 bl sub_080A3268 b _080754B4 .align 2, 0 _0807536C: .4byte gUnk_03003F80 _08075370: ldrb r2, [r4, #2] cmp r2, #0 beq _080753DC movs r6, #7 adds r0, r6, #0 ands r0, r2 cmp r0, #3 beq _080753E4 movs r0, #0x78 ands r0, r2 cmp r0, #0 bne _080753E4 ldr r3, _080753D4 @ =gLinkEntity ldr r1, [r3, #0x20] ldr r0, _080753D8 @ =0x00017FFF cmp r1, r0 bhi _080753E4 adds r0, r4, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080753E4 ldr r0, [r3, #0x34] cmp r0, #0 beq _080753E4 movs r0, #0x20 orrs r0, r2 strb r0, [r4, #2] adds r0, r4, #0 adds r0, #0xab strb r6, [r0] movs r0, #8 asrs r0, r7 lsls r1, r0, #4 orrs r0, r1 ldrb r1, [r4, #4] orrs r0, r1 strb r0, [r4, #4] adds r0, r5, #0 bl sub_08077B98 movs r0, #6 strb r0, [r5, #4] adds r0, r5, #0 adds r1, r7, #0 bl sub_08075898 b _080754B4 .align 2, 0 _080753D4: .4byte gLinkEntity _080753D8: .4byte 0x00017FFF _080753DC: ldr r2, _080753F0 @ =gLinkEntity ldr r0, [r2, #0x34] cmp r0, #0 beq _080753F4 _080753E4: adds r0, r5, #0 adds r1, r7, #0 bl sub_080759B8 b _080754B4 .align 2, 0 _080753F0: .4byte gLinkEntity _080753F4: movs r6, #0x80 lsls r6, r6, #0xb ands r6, r1 cmp r6, #0 beq _08075480 adds r0, r4, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #2 ands r0, r1 lsls r0, r0, #0x10 lsrs r6, r0, #0x10 cmp r6, #0 bne _0807541E ldr r0, [r4, #0x2c] cmp r0, #0 beq _080754B4 bl sub_0805E7BC str r6, [r4, #0x2c] b _080754B4 _0807541E: adds r0, r5, #0 adds r1, r7, #0 bl sub_08077D38 adds r0, r5, #0 bl sub_08077B98 movs r3, #8 adds r1, r3, #0 asrs r1, r7 lsls r0, r1, #4 orrs r0, r1 ldrb r2, [r4, #4] orrs r0, r2 strb r0, [r4, #4] ldrb r2, [r4, #0xa] adds r0, r1, #0 orrs r0, r2 strb r0, [r4, #0xa] ldrb r0, [r4, #0xb] orrs r1, r0 strb r1, [r4, #0xb] strb r3, [r5, #4] movs r0, #0x14 strb r0, [r5, #7] movs r0, #6 strb r0, [r5, #0xf] ldrb r1, [r5, #9] movs r0, #0x80 orrs r0, r1 strb r0, [r5, #9] adds r1, r4, #0 adds r1, #0xab movs r0, #2 strb r0, [r1] ldr r0, [r4, #0x30] movs r1, #0x80 lsls r1, r1, #0x14 orrs r0, r1 str r0, [r4, #0x30] movs r1, #0x98 lsls r1, r1, #1 adds r0, r5, #0 bl sub_08077DF4 movs r0, #0x77 bl sub_080A3268 b _080754B4 _08075480: ldrb r1, [r4, #0x1b] adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _08075492 strb r6, [r4, #0x1b] adds r0, r2, #0 bl sub_0806F948 _08075492: ldr r1, [r4, #0x2c] cmp r1, #0 beq _080754A6 ldrb r0, [r1, #9] cmp r0, #1 beq _080754A6 adds r0, r1, #0 bl sub_0805E7BC str r6, [r4, #0x2c] _080754A6: adds r0, r5, #0 adds r1, r7, #0 bl sub_08077D38 adds r0, r5, #0 bl sub_08077B98 _080754B4: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080754B8 sub_080754B8: @ 0x080754B8 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r7, _080754D4 @ =gUnk_03003F80 ldrb r1, [r7, #0x1b] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080754D8 adds r0, r4, #0 adds r1, r6, #0 bl sub_08075694 b _0807557E .align 2, 0 _080754D4: .4byte gUnk_03003F80 _080754D8: ldrb r0, [r7, #4] cmp r0, #0 beq _08075576 adds r0, r4, #0 bl sub_08077E24 ldrb r0, [r4, #0xe] cmp r0, #0 beq _080754F2 ldrb r1, [r4, #9] movs r0, #0x7f ands r0, r1 strb r0, [r4, #9] _080754F2: ldr r0, _0807552C @ =gLinkEntity adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08075538 bl sub_0807B014 adds r5, r0, #0 cmp r5, #0 beq _08075538 movs r0, #8 movs r1, #0xf movs r2, #2 bl sub_0805EB00 cmp r0, #0 bne _08075538 adds r0, r4, #0 movs r1, #0xf bl sub_08077C3C cmp r5, #0xf bne _08075530 adds r1, r7, #0 adds r1, #0xab movs r0, #5 b _08075536 .align 2, 0 _0807552C: .4byte gLinkEntity _08075530: adds r1, r7, #0 adds r1, #0xab movs r0, #8 _08075536: strb r0, [r1] _08075538: ldrb r1, [r4, #0xe] movs r2, #0x80 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0807557E ldr r1, _08075568 @ =gUnk_03003F80 ldr r0, [r1, #0x30] ands r0, r2 cmp r0, #0 bne _0807555C adds r0, r1, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0807556C _0807555C: adds r0, r4, #0 adds r1, r6, #0 bl sub_080759B8 b _0807557E .align 2, 0 _08075568: .4byte gUnk_03003F80 _0807556C: adds r0, r4, #0 adds r1, r6, #0 bl sub_08075580 b _0807557E _08075576: adds r0, r4, #0 adds r1, r6, #0 bl sub_080759B8 _0807557E: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08075580 sub_08075580: @ 0x08075580 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077EFC cmp r0, #0 beq _080755E6 ldr r2, _080755C8 @ =gUnk_03003F80 ldrb r3, [r2, #2] cmp r3, #0 bne _080755E6 movs r1, #8 asrs r1, r5 ldrb r0, [r2, #0xa] bics r0, r1 strb r0, [r2, #0xa] movs r0, #1 strb r0, [r2, #0x1b] ldr r0, [r2, #0x2c] adds r0, #0x40 movs r1, #0xd strb r1, [r0] strb r3, [r4, #0xf] movs r0, #2 strb r0, [r4, #4] adds r0, r2, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #2 ands r0, r1 cmp r0, #0 beq _080755CC movs r0, #0x28 b _080755CE .align 2, 0 _080755C8: .4byte gUnk_03003F80 _080755CC: movs r0, #0x50 _080755CE: strb r0, [r4, #7] movs r1, #0xb4 lsls r1, r1, #1 adds r0, r4, #0 bl sub_08077DF4 movs r0, #0x43 movs r1, #0 movs r2, #0 bl CreateObject b _080755EE _080755E6: adds r0, r4, #0 adds r1, r5, #0 bl sub_080759B8 _080755EE: pop {r4, r5, pc} thumb_func_start sub_080755F0 sub_080755F0: @ 0x080755F0 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077EFC cmp r0, #0 beq _08075642 adds r0, r4, #0 bl sub_08077EC8 cmp r0, #0 bne _0807564A ldr r2, _08075634 @ =gUnk_03003F80 ldrb r3, [r2, #0x1b] ldrb r0, [r2, #4] orrs r0, r3 cmp r0, #0 beq _08075638 ldrb r0, [r4, #7] subs r0, #1 strb r0, [r4, #7] lsls r0, r0, #0x18 cmp r0, #0 bne _0807564A movs r0, #3 strb r0, [r4, #4] ldrb r0, [r4, #9] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #9] movs r0, #0x20 orrs r0, r3 strb r0, [r2, #0x1b] b _0807564A .align 2, 0 _08075634: .4byte gUnk_03003F80 _08075638: adds r0, r4, #0 adds r1, r5, #0 bl sub_080759B8 b _0807564A _08075642: adds r0, r4, #0 adds r1, r5, #0 bl sub_080759B8 _0807564A: pop {r4, r5, pc} thumb_func_start sub_0807564C sub_0807564C: @ 0x0807564C push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r5, _08075668 @ =gUnk_03003F80 ldrb r1, [r5, #0x1b] ldrb r0, [r5, #4] orrs r0, r1 cmp r0, #0 bne _0807566C adds r0, r4, #0 adds r1, r6, #0 bl sub_080759B8 b _08075692 .align 2, 0 _08075668: .4byte gUnk_03003F80 _0807566C: adds r0, r4, #0 bl sub_08077EC8 cmp r0, #0 bne _08075692 adds r0, r4, #0 bl sub_08077EFC cmp r0, #0 beq _0807568A ldrb r1, [r5, #0x1b] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08075692 _0807568A: adds r0, r4, #0 adds r1, r6, #0 bl sub_08075694 _08075692: pop {r4, r5, r6, pc} thumb_func_start sub_08075694 sub_08075694: @ 0x08075694 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 movs r3, #1 strb r3, [r4, #7] ldr r2, _080756C4 @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #0x80 lsls r0, r0, #0x14 ands r0, r1 cmp r0, #0 beq _080756D0 ldr r0, _080756C8 @ =0xF7FFFFFF ands r1, r0 ldr r0, _080756CC @ =0xFFFBFFFF ands r1, r0 str r1, [r2, #0x30] movs r1, #0x96 lsls r1, r1, #1 adds r0, r4, #0 bl sub_08077DF4 b _080756E0 .align 2, 0 _080756C4: .4byte gUnk_03003F80 _080756C8: .4byte 0xF7FFFFFF _080756CC: .4byte 0xFFFBFFFF _080756D0: adds r0, r2, #0 adds r0, #0xab strb r3, [r0] movs r1, #0x92 lsls r1, r1, #1 adds r0, r4, #0 bl sub_08077DF4 _080756E0: ldr r2, _08075730 @ =gUnk_03003F80 movs r0, #8 asrs r0, r5 ldrb r1, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] movs r0, #4 strb r0, [r4, #4] movs r0, #6 strb r0, [r4, #0xf] ldr r0, _08075734 @ =gLinkEntity adds r0, #0x40 movs r1, #0x1e strb r1, [r0] ldrb r1, [r2, #0x1b] movs r0, #0x40 orrs r0, r1 movs r1, #0xdf ands r0, r1 strb r0, [r2, #0x1b] adds r3, r2, #0 adds r3, #0xa0 ldrb r0, [r3] cmp r0, #4 bne _08075726 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #0xf ands r0, r1 cmp r0, #0 bne _08075726 movs r0, #1 strb r0, [r3] bl sub_0807A108 _08075726: movs r0, #0x76 bl sub_080A3268 pop {r4, r5, pc} .align 2, 0 _08075730: .4byte gUnk_03003F80 _08075734: .4byte gLinkEntity thumb_func_start sub_08075738 sub_08075738: @ 0x08075738 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r5, _08075750 @ =gUnk_03003F80 ldrb r0, [r5, #4] cmp r0, #0 bne _08075754 adds r0, r4, #0 bl sub_080759B8 b _0807588C .align 2, 0 _08075750: .4byte gUnk_03003F80 _08075754: adds r0, r4, #0 bl sub_08077E24 adds r0, r4, #0 bl sub_08077F10 cmp r0, #0 beq _08075768 movs r0, #2 strb r0, [r4, #7] _08075768: ldrb r2, [r5, #0x1b] movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _080757D4 ldrb r1, [r5, #0xd] movs r2, #0x80 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _08075780 strb r1, [r4, #0xb] _08075780: ldr r1, _080757D0 @ =gLinkEntity ldrb r0, [r4, #0xb] strb r0, [r1, #0x15] movs r0, #0xc0 lsls r0, r0, #1 strh r0, [r1, #0x24] ldrb r1, [r4, #0xe] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _0807588C movs r2, #0xa adds r0, r5, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 beq _080757AA movs r2, #0xf _080757AA: ldrb r0, [r4, #8] adds r0, #1 strb r0, [r4, #8] movs r1, #0xff lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r2, r0 bls _080757C6 ldrb r0, [r4, #7] subs r0, #1 strb r0, [r4, #7] ands r0, r1 cmp r0, #0 bne _0807588C _080757C6: adds r0, r4, #0 adds r1, r6, #0 bl sub_080759B8 b _0807588C .align 2, 0 _080757D0: .4byte gLinkEntity _080757D4: ldr r7, _08075890 @ =gLinkEntity adds r0, r7, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08075816 movs r0, #0x80 ands r0, r2 cmp r0, #0 bne _08075816 adds r0, r5, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #1 ands r0, r1 cmp r0, #0 beq _08075816 adds r0, r4, #0 movs r1, #0x14 bl sub_08077C3C adds r2, r0, #0 cmp r2, #0 beq _08075816 ldrb r0, [r7, #0x14] movs r1, #6 ands r1, r0 movs r0, #0x80 orrs r1, r0 strb r1, [r2, #0x14] _08075816: ldr r5, _08075890 @ =gLinkEntity adds r0, r5, #0 adds r0, #0x5b ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0807587A ldr r2, _08075894 @ =gUnk_03003F80 ldrb r3, [r2, #0x1b] movs r0, #0x80 ands r0, r3 cmp r0, #0 bne _0807587A adds r0, r2, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0807587A ldrb r0, [r4, #7] subs r0, #1 strb r0, [r4, #7] lsls r0, r0, #0x18 cmp r0, #0 beq _0807587A movs r0, #0x10 orrs r0, r3 strb r0, [r2, #0x1b] adds r1, r2, #0 adds r1, #0xab movs r0, #6 strb r0, [r1] ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r4, #0xb] movs r0, #1 strb r0, [r4, #7] strb r0, [r4, #8] movs r1, #8 asrs r1, r6 ldrb r0, [r2, #0xa] bics r0, r1 strb r0, [r2, #0xa] movs r1, #0x94 lsls r1, r1, #1 adds r0, r4, #0 bl sub_08077DF4 _0807587A: ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807588C adds r0, r4, #0 adds r1, r6, #0 bl sub_080759B8 _0807588C: pop {r4, r5, r6, r7, pc} .align 2, 0 _08075890: .4byte gLinkEntity _08075894: .4byte gUnk_03003F80 thumb_func_start sub_08075898 sub_08075898: @ 0x08075898 push {lr} adds r2, r0, #0 ldr r0, _080758AC @ =gUnk_03003F80 ldrb r0, [r0, #4] cmp r0, #0 bne _080758AA adds r0, r2, #0 bl sub_080759B8 _080758AA: pop {pc} .align 2, 0 _080758AC: .4byte gUnk_03003F80 thumb_func_start sub_080758B0 sub_080758B0: @ 0x080758B0 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _080758C4 @ =gUnk_03003F80 ldrb r0, [r5, #4] cmp r0, #0 bne _080758C8 adds r0, r4, #0 bl sub_080759B8 b _080758F8 .align 2, 0 _080758C4: .4byte gUnk_03003F80 _080758C8: adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080758F8 movs r0, #0 strb r0, [r4, #0xf] ldrb r1, [r5, #0x1b] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080758EA movs r0, #3 b _080758EC _080758EA: movs r0, #5 _080758EC: strb r0, [r4, #4] ldr r2, _080758FC @ =gUnk_03003F80 ldrb r1, [r2, #0x1b] movs r0, #0xf7 ands r0, r1 strb r0, [r2, #0x1b] _080758F8: pop {r4, r5, pc} .align 2, 0 _080758FC: .4byte gUnk_03003F80 thumb_func_start sub_08075900 sub_08075900: @ 0x08075900 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r5, _08075920 @ =gUnk_03003F80 ldrb r0, [r5, #0x12] cmp r0, #0x11 bne _08075928 ldr r0, [r5, #0x30] ldr r1, _08075924 @ =0xFFFBFFFF ands r0, r1 str r0, [r5, #0x30] adds r0, r4, #0 adds r1, r6, #0 bl sub_080759B8 b _080759B2 .align 2, 0 _08075920: .4byte gUnk_03003F80 _08075924: .4byte 0xFFFBFFFF _08075928: adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r5, #0x1b] movs r2, #0x80 adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08075948 movs r0, #0xa0 strb r0, [r5, #0x1b] adds r0, r4, #0 adds r1, r6, #0 bl sub_0807564C b _080759B2 _08075948: ldrb r0, [r4, #7] cmp r0, #0 beq _08075998 subs r0, #1 strb r0, [r4, #7] lsls r0, r0, #0x18 cmp r0, #0 bne _08075962 movs r1, #0x9a lsls r1, r1, #1 adds r0, r4, #0 bl sub_08077DF4 _08075962: ldr r4, _08075990 @ =gLinkEntity ldrb r0, [r4, #0x14] lsrs r0, r0, #1 lsls r0, r0, #3 strb r0, [r4, #0x15] movs r0, #0xc0 lsls r0, r0, #2 strh r0, [r4, #0x24] bl sub_08079E08 ldr r0, _08075994 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #3 ands r0, r1 cmp r0, #0 bne _080759B2 adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl CreateFX b _080759B2 .align 2, 0 _08075990: .4byte gLinkEntity _08075994: .4byte gUnk_030010A0 _08075998: ldrb r1, [r4, #0xe] adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _080759B2 ldr r0, [r5, #0x30] ldr r1, _080759B4 @ =0xFFFBFFFF ands r0, r1 str r0, [r5, #0x30] adds r0, r4, #0 adds r1, r6, #0 bl sub_080759B8 _080759B2: pop {r4, r5, r6, pc} .align 2, 0 _080759B4: .4byte 0xFFFBFFFF thumb_func_start sub_080759B8 sub_080759B8: @ 0x080759B8 push {r4, lr} adds r3, r0, #0 adds r4, r1, #0 ldr r2, _080759E8 @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #0x80 ands r1, r0 cmp r1, #0 bne _080759D0 ldr r0, _080759EC @ =gLinkEntity adds r0, #0x40 strb r1, [r0] _080759D0: ldr r0, [r2, #0x30] ldr r1, _080759F0 @ =0xF7FFFFFF ands r0, r1 str r0, [r2, #0x30] movs r0, #0 strb r0, [r2, #0x1b] str r0, [r2, #0x2c] adds r0, r3, #0 adds r1, r4, #0 bl sub_08077E78 pop {r4, pc} .align 2, 0 _080759E8: .4byte gUnk_03003F80 _080759EC: .4byte gLinkEntity _080759F0: .4byte 0xF7FFFFFF thumb_func_start sub_080759F4 sub_080759F4: @ 0x080759F4 push {lr} ldr r3, _08075A08 @ =gUnk_0811BD68 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08075A08: .4byte gUnk_0811BD68 thumb_func_start sub_08075A0C sub_08075A0C: @ 0x08075A0C push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r4, #1] bl sub_0805436C adds r6, r0, #0 ldr r1, _08075A64 @ =gUnk_03003F80 ldrb r0, [r1, #5] cmp r0, #0 bne _08075A3E ldrb r0, [r1, #0xc] cmp r0, #0x18 beq _08075A3E ldrb r0, [r1, #2] cmp r0, #0 bne _08075A3E ldr r0, [r1, #0x2c] cmp r0, #0 bne _08075A3E ldr r0, [r1, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _08075A6C _08075A3E: movs r0, #0xf adds r1, r6, #0 bl sub_08054414 ldr r0, _08075A64 @ =gUnk_03003F80 ldr r1, [r0, #0x30] ldr r2, _08075A68 @ =0xFF7FFFFF ands r1, r2 str r1, [r0, #0x30] movs r0, #0xf adds r1, r6, #0 bl sub_08054414 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 b _08075AD0 .align 2, 0 _08075A64: .4byte gUnk_03003F80 _08075A68: .4byte 0xFF7FFFFF _08075A6C: ldrb r1, [r4, #9] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #9] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077D38 adds r0, r4, #0 bl sub_08077BD4 ldr r5, _08075AD4 @ =gLinkEntity adds r0, r5, #0 bl sub_0806F948 movs r0, #0x10 strb r0, [r4, #1] adds r1, r6, #0 bl sub_08054414 ldrb r1, [r5, #0x14] movs r0, #6 ands r0, r1 ldr r1, _08075AD8 @ =gUnk_08126EEC adds r4, r0, r1 adds r0, r5, #0 movs r1, #0x45 movs r2, #1 movs r3, #0 bl sub_080A2988 adds r2, r0, #0 cmp r2, #0 beq _08075AD0 adds r0, r5, #0 adds r0, #0x60 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x60 strh r1, [r0] movs r0, #0 ldrsb r0, [r4, r0] ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r4, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] _08075AD0: pop {r4, r5, r6, pc} .align 2, 0 _08075AD4: .4byte gLinkEntity _08075AD8: .4byte gUnk_08126EEC thumb_func_start sub_08075ADC sub_08075ADC: @ 0x08075ADC push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r2, _08075B44 @ =gUnk_03003F80 ldr r0, [r2, #0x2c] cmp r0, #0 bne _08075B08 ldrb r1, [r4, #0xe] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08075B08 ldr r0, [r2, #0x30] movs r1, #0x88 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 bne _08075B08 bl sub_08079D48 cmp r0, #0 bne _08075B4C _08075B08: movs r0, #0 strb r0, [r4, #0xf] ldrb r0, [r4, #4] adds r0, #1 strb r0, [r4, #4] ldr r3, _08075B44 @ =gUnk_03003F80 ldr r0, [r3, #0x30] movs r1, #0x80 lsls r1, r1, #0x10 orrs r0, r1 str r0, [r3, #0x30] movs r2, #8 asrs r2, r5 lsls r1, r2, #4 orrs r1, r2 ldrb r0, [r3, #4] bics r0, r1 strb r0, [r3, #4] mvns r2, r2 ldrb r1, [r3, #0xa] adds r0, r2, #0 ands r0, r1 strb r0, [r3, #0xa] ldrb r0, [r3, #0xb] ands r2, r0 strb r2, [r3, #0xb] ldr r0, _08075B48 @ =0x0000013D bl sub_080A3268 b _08075B52 .align 2, 0 _08075B44: .4byte gUnk_03003F80 _08075B48: .4byte 0x0000013D _08075B4C: adds r0, r4, #0 bl sub_08077E24 _08075B52: pop {r4, r5, pc} thumb_func_start sub_08075B54 sub_08075B54: @ 0x08075B54 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 mov sb, r1 ldr r5, _08075BB0 @ =gUnk_03003F80 ldr r0, [r5, #0x30] movs r1, #0x88 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 beq _08075B70 b _08075C80 _08075B70: ldrb r0, [r6, #1] bl sub_0805436C adds r4, r0, #0 adds r0, r6, #0 bl sub_08077F10 cmp r0, #0 bne _08075B86 cmp r4, #1 bls _08075BB8 _08075B86: ldrb r0, [r5, #2] cmp r0, #0 bne _08075BB8 movs r0, #0xf adds r1, r4, #0 bl sub_08054414 ldr r0, [r5, #0x30] ldr r1, _08075BB4 @ =0xFF7FFFFF ands r0, r1 str r0, [r5, #0x30] adds r0, r6, #0 mov r1, sb bl sub_08077E78 movs r0, #0x9f lsls r0, r0, #1 bl sub_080A3268 b _08075C80 .align 2, 0 _08075BB0: .4byte gUnk_03003F80 _08075BB4: .4byte 0xFF7FFFFF _08075BB8: ldr r0, _08075C88 @ =gUnk_03003F80 mov r8, r0 ldrb r0, [r0, #0xc] cmp r0, #0x18 beq _08075C80 ldr r5, _08075C8C @ =gLinkEntity ldrb r0, [r5, #0x1e] cmp r0, #0x36 bhi _08075C80 ldrh r1, [r5, #0x12] cmp r1, #6 bne _08075C80 ldrb r0, [r5, #0x14] ands r1, r0 ldr r0, _08075C90 @ =gUnk_08126EEC adds r7, r1, r0 mov r1, r8 ldrb r0, [r1, #2] cmp r0, #0 bne _08075C80 movs r2, #0x2e ldrsh r0, [r5, r2] movs r1, #0 ldrsb r1, [r7, r1] adds r0, r0, r1 ldr r4, _08075C94 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r2, #0x32 ldrsh r1, [r5, r2] movs r2, #1 ldrsb r2, [r7, r2] adds r1, r1, r2 ldrh r2, [r4, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] movs r2, #0x40 bl sub_080002F0 cmp r0, #0 beq _08075C80 movs r0, #0xf strb r0, [r6, #0xf] ldrb r0, [r6, #4] adds r0, #1 strb r0, [r6, #4] adds r1, r5, #0 adds r1, #0x7a movs r0, #2 strh r0, [r1] adds r0, r5, #0 movs r1, #0x45 movs r2, #1 movs r3, #0 bl sub_080A2988 adds r2, r0, #0 cmp r2, #0 beq _08075C60 adds r0, r5, #0 adds r0, #0x60 ldrh r1, [r0] adds r0, r2, #0 adds r0, #0x60 strh r1, [r0] movs r0, #0 ldrsb r0, [r7, r0] ldrh r1, [r2, #0x2e] adds r0, r0, r1 strh r0, [r2, #0x2e] movs r0, #1 ldrsb r0, [r7, r0] ldrh r1, [r2, #0x32] adds r0, r0, r1 strh r0, [r2, #0x32] _08075C60: ldr r1, _08075C98 @ =0x0000060C adds r0, r6, #0 bl sub_08077DF4 movs r1, #8 mov r2, sb asrs r1, r2 mov r0, r8 ldrb r2, [r0, #0xa] adds r0, r1, #0 orrs r0, r2 mov r2, r8 strb r0, [r2, #0xa] ldrb r0, [r2, #0xb] orrs r1, r0 strb r1, [r2, #0xb] _08075C80: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _08075C88: .4byte gUnk_03003F80 _08075C8C: .4byte gLinkEntity _08075C90: .4byte gUnk_08126EEC _08075C94: .4byte gUnk_03000BF0 _08075C98: .4byte 0x0000060C thumb_func_start sub_08075C9C sub_08075C9C: @ 0x08075C9C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08075CCA ldr r0, _08075CF8 @ =gLinkEntity ldrb r1, [r0, #0x14] movs r2, #6 ands r2, r1 ldr r1, _08075CFC @ =gUnk_08126EEC adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r2, [r2, #1] lsls r2, r2, #0x18 asrs r2, r2, #0x18 bl sub_0807AB44 _08075CCA: ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08075D04 movs r0, #0 strb r0, [r4, #0xf] ldrb r0, [r4, #4] subs r0, #1 strb r0, [r4, #4] ldr r2, _08075D00 @ =gUnk_03003F80 movs r1, #8 asrs r1, r5 mvns r1, r1 ldrb r3, [r2, #0xa] adds r0, r1, #0 ands r0, r3 strb r0, [r2, #0xa] ldrb r0, [r2, #0xb] ands r1, r0 strb r1, [r2, #0xb] b _08075D0E .align 2, 0 _08075CF8: .4byte gLinkEntity _08075CFC: .4byte gUnk_08126EEC _08075D00: .4byte gUnk_03003F80 _08075D04: ldr r1, _08075D10 @ =gLinkEntity adds r1, #0x7a ldrh r0, [r1] adds r0, #1 strh r0, [r1] _08075D0E: pop {r4, r5, pc} .align 2, 0 _08075D10: .4byte gLinkEntity thumb_func_start sub_08075D14 sub_08075D14: @ 0x08075D14 push {lr} ldr r3, _08075D28 @ =gUnk_0811BD78 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08075D28: .4byte gUnk_0811BD78 thumb_func_start sub_08075D2C sub_08075D2C: @ 0x08075D2C push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r5, _08075D74 @ =gUnk_03003F80 ldrb r1, [r5, #4] movs r0, #8 ands r0, r1 cmp r0, #0 bne _08075D7C ldrb r1, [r4, #1] adds r0, r4, #0 bl sub_08077C94 cmp r0, #0 bne _08075D7C ldrb r1, [r4, #9] movs r0, #0xf orrs r0, r1 strb r0, [r4, #9] ldr r0, _08075D78 @ =gLinkEntity bl sub_0806F948 adds r0, r4, #0 movs r1, #0xb bl sub_08077C0C adds r0, r4, #0 adds r1, r6, #0 bl sub_08077D38 ldrb r1, [r5, #4] movs r0, #8 orrs r0, r1 strb r0, [r5, #4] b _08075D84 .align 2, 0 _08075D74: .4byte gUnk_03003F80 _08075D78: .4byte gLinkEntity _08075D7C: adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 _08075D84: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08075D88 sub_08075D88: @ 0x08075D88 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r2, _08075DBC @ =gUnk_03003F80 ldrb r1, [r2, #4] movs r3, #0x80 adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _08075DD0 ldrb r0, [r4, #1] cmp r0, #0xc bne _08075DC0 ldrb r1, [r2, #0xa] adds r0, r3, #0 ands r0, r1 cmp r0, #0 beq _08075DC0 ldrb r1, [r4, #0xe] movs r0, #2 ands r0, r1 cmp r0, #0 beq _08075DC0 bl sub_08078F60 b _08075DD8 .align 2, 0 _08075DBC: .4byte gUnk_03003F80 _08075DC0: adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08075DD8 _08075DD0: adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08075DD8: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08075DDC sub_08075DDC: @ 0x08075DDC push {lr} ldr r3, _08075DF0 @ =gUnk_0811BD80 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08075DF0: .4byte gUnk_0811BD80 thumb_func_start sub_08075DF4 sub_08075DF4: @ 0x08075DF4 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r6, _08075E2C @ =gUnk_03003F80 ldrb r1, [r6, #4] movs r0, #8 ands r0, r1 cmp r0, #0 bne _08075E34 ldrb r1, [r4, #9] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #9] ldr r0, _08075E30 @ =gLinkEntity bl sub_0806F948 adds r0, r4, #0 bl sub_08077BB8 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077D38 adds r1, r6, #0 adds r1, #0x21 movs r0, #1 strb r0, [r1] b _08075E3C .align 2, 0 _08075E2C: .4byte gUnk_03003F80 _08075E30: .4byte gLinkEntity _08075E34: adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08075E3C: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08075E40 sub_08075E40: @ 0x08075E40 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 mov r8, r1 ldr r0, _08075EA0 @ =gUnk_03003F80 adds r1, r0, #0 adds r1, #0x21 ldrb r1, [r1] adds r6, r0, #0 cmp r1, #0 beq _08075EA8 ldrb r1, [r6, #4] movs r5, #0x80 adds r0, r5, #0 ands r0, r1 lsls r0, r0, #0x18 lsrs r7, r0, #0x18 cmp r7, #0 bne _08075EA8 adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _08075EB8 movs r0, #2 strb r0, [r4, #4] ldrb r1, [r4, #9] movs r0, #0x7f ands r0, r1 strb r0, [r4, #9] ldr r0, _08075EA4 @ =gUnk_02002A40 adds r0, #0xad ldrb r0, [r0] cmp r0, #0 beq _08075EB8 strb r7, [r4, #0xf] movs r1, #8 mov r0, r8 asrs r1, r0 ldrb r0, [r6, #0xa] bics r0, r1 strb r0, [r6, #0xa] b _08075EB8 .align 2, 0 _08075EA0: .4byte gUnk_03003F80 _08075EA4: .4byte gUnk_02002A40 _08075EA8: adds r1, r6, #0 adds r1, #0x21 movs r0, #0 strb r0, [r1] adds r0, r4, #0 mov r1, r8 bl sub_08077E78 _08075EB8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08075EC0 sub_08075EC0: @ 0x08075EC0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r0, _08075F04 @ =gUnk_02002A40 adds r0, #0xad ldrb r5, [r0] adds r0, r4, #0 bl sub_08077EFC cmp r0, #0 beq _08075F0C cmp r5, #0 beq _08075F0C ldr r2, _08075F08 @ =gUnk_03003F80 ldrb r1, [r2, #4] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08075EF0 adds r0, r2, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 bne _08075F32 _08075EF0: adds r1, r2, #0 adds r1, #0x21 movs r0, #0 strb r0, [r1] adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 b _08075F32 .align 2, 0 _08075F04: .4byte gUnk_02002A40 _08075F08: .4byte gUnk_03003F80 _08075F0C: ldr r2, _08075F34 @ =gUnk_03003F80 movs r0, #8 asrs r0, r6 ldrb r1, [r2, #0xa] orrs r0, r1 strb r0, [r2, #0xa] movs r1, #0x9f lsls r1, r1, #2 adds r0, r4, #0 bl sub_08077DF4 movs r1, #0xf movs r0, #0xf strb r0, [r4, #0xf] ldrb r0, [r4, #9] orrs r1, r0 strb r1, [r4, #9] movs r0, #3 strb r0, [r4, #4] _08075F32: pop {r4, r5, r6, pc} .align 2, 0 _08075F34: .4byte gUnk_03003F80 thumb_func_start sub_08075F38 sub_08075F38: @ 0x08075F38 push {r4, lr} adds r4, r0, #0 adds r3, r1, #0 ldr r2, _08075F6C @ =gUnk_03003F80 ldrb r1, [r2, #4] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08075F70 adds r0, r2, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _08075F70 adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08075F80 movs r0, #4 strb r0, [r4, #4] b _08075F80 .align 2, 0 _08075F6C: .4byte gUnk_03003F80 _08075F70: adds r1, r2, #0 adds r1, #0x21 movs r0, #0 strb r0, [r1] adds r0, r4, #0 adds r1, r3, #0 bl sub_08077E78 _08075F80: pop {r4, pc} .align 2, 0 thumb_func_start sub_08075F84 sub_08075F84: @ 0x08075F84 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r2, _08075FB4 @ =gUnk_03003F80 ldrb r1, [r2, #4] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08075FC8 adds r0, r2, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _08075FC8 movs r0, #0x70 bl GetInventoryValue cmp r0, #1 bne _08075FB8 adds r0, r4, #0 movs r1, #5 bl sub_08077E3C b _08075FBE .align 2, 0 _08075FB4: .4byte gUnk_03003F80 _08075FB8: adds r0, r4, #0 bl sub_08077E24 _08075FBE: ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08075FD8 _08075FC8: ldr r0, _08075FDC @ =gUnk_03003F80 adds r0, #0x21 movs r1, #0 strb r1, [r0] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08075FD8: pop {r4, r5, pc} .align 2, 0 _08075FDC: .4byte gUnk_03003F80 thumb_func_start sub_08075FE0 sub_08075FE0: @ 0x08075FE0 push {lr} ldr r3, _08075FF4 @ =gUnk_0811BD98 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08075FF4: .4byte gUnk_0811BD98 thumb_func_start sub_08075FF8 sub_08075FF8: @ 0x08075FF8 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r7, r1, #0 ldr r0, _08076018 @ =gUnk_03003F80 ldrb r1, [r0, #2] ldrb r0, [r0, #4] orrs r0, r1 cmp r0, #0 bne _08076076 movs r5, #0 movs r0, #8 movs r1, #2 movs r2, #2 bl sub_0805EB00 b _08076026 .align 2, 0 _08076018: .4byte gUnk_03003F80 _0807601C: adds r5, #1 adds r0, r4, #0 movs r1, #2 bl sub_0805EB64 _08076026: adds r4, r0, #0 cmp r4, #0 bne _0807601C ldrb r0, [r6, #1] movs r1, #1 cmp r0, #7 bne _08076036 movs r1, #3 _08076036: cmp r1, r5 bls _08076076 adds r0, r6, #0 movs r1, #2 bl sub_08077C3C adds r4, r0, #0 cmp r4, #0 beq _08076076 ldr r0, _08076080 @ =gLinkEntity ldrb r2, [r0, #0x14] movs r1, #6 ands r1, r2 ldr r2, _08076084 @ =gUnk_0811BDAC adds r1, r1, r2 movs r2, #0 ldrsb r2, [r1, r2] lsls r2, r2, #0x10 movs r3, #1 ldrsb r3, [r1, r3] lsls r3, r3, #0x10 adds r1, r4, #0 bl PositionRelative movs r0, #1 rsbs r0, r0, #0 bl sub_080542F4 movs r0, #0x82 lsls r0, r0, #1 bl sub_080A3268 _08076076: adds r0, r6, #0 adds r1, r7, #0 bl sub_08077E78 pop {r4, r5, r6, r7, pc} .align 2, 0 _08076080: .4byte gLinkEntity _08076084: .4byte gUnk_0811BDAC thumb_func_start sub_08076088 sub_08076088: @ 0x08076088 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r3, r1, #0 adds r5, r2, #0 cmp r3, #0 beq _080760AA ldrb r0, [r3, #0x16] movs r1, #1 ands r1, r0 cmp r1, #0 beq _080760A4 b _080761A0 _080760A4: movs r0, #2 strb r0, [r3, #0xc] strb r1, [r3, #0xd] _080760AA: str r3, [r4, #0x18] ldr r0, _080760C4 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _080760CC ldr r1, _080760C8 @ =0x00000928 adds r0, r4, #0 bl sub_08077DF4 b _080760D6 .align 2, 0 _080760C4: .4byte gUnk_03003F80 _080760C8: .4byte 0x00000928 _080760CC: movs r1, #0xce lsls r1, r1, #2 adds r0, r4, #0 bl sub_08077DF4 _080760D6: ldr r3, _08076130 @ =gUnk_03003F80 movs r0, #0 mov r8, r0 movs r7, #3 strb r7, [r3, #5] adds r0, r3, #0 adds r0, #0xa8 movs r6, #4 strb r6, [r0] movs r0, #2 strb r0, [r4, #4] movs r0, #0xf strb r0, [r4, #0xf] ldr r2, _08076134 @ =gLinkEntity movs r1, #0x79 adds r1, r1, r2 mov ip, r1 ldrb r1, [r1] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08076138 mov r1, r8 mov r0, ip strb r1, [r0] ldrb r0, [r2, #0x10] movs r1, #0x80 orrs r0, r1 strb r0, [r2, #0x10] strb r6, [r3, #5] movs r1, #8 asrs r1, r5 mvns r1, r1 ldrb r2, [r3, #0xb] adds r0, r1, #0 ands r0, r2 strb r0, [r3, #0xb] ldrb r0, [r3, #0xa] ands r1, r0 strb r1, [r3, #0xa] strb r7, [r4, #4] mov r0, r8 strb r0, [r4, #0xf] b _0807614A .align 2, 0 _08076130: .4byte gUnk_03003F80 _08076134: .4byte gLinkEntity _08076138: movs r1, #8 asrs r1, r5 ldrb r2, [r3, #0xa] adds r0, r1, #0 orrs r0, r2 strb r0, [r3, #0xa] ldrb r0, [r3, #0xb] orrs r1, r0 strb r1, [r3, #0xb] _0807614A: adds r0, r4, #0 movs r1, #0x13 bl sub_08077C3C adds r3, r0, #0 cmp r3, #0 bne _08076162 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077F50 b _080761A0 _08076162: ldr r1, _08076194 @ =gLinkEntity str r3, [r1, #0x74] movs r2, #0 strb r2, [r1, #0xf] ldr r0, [r4, #0x18] str r0, [r3, #0x54] ldrb r0, [r1, #0x16] strb r0, [r3, #0x16] str r4, [r3, #0x50] str r3, [r4, #0x18] ldrb r0, [r4, #3] strb r0, [r3, #0xb] ldrb r0, [r4, #7] strb r0, [r3, #0xe] ldrb r0, [r4, #8] strb r0, [r3, #0xf] ldr r0, [r4, #0x18] ldrb r1, [r0, #0x16] movs r0, #0xf0 ands r0, r1 cmp r0, #0x10 bne _08076198 movs r0, #8 strb r0, [r4, #7] b _0807619A .align 2, 0 _08076194: .4byte gLinkEntity _08076198: strb r2, [r4, #7] _0807619A: movs r0, #0x7f bl sub_080A3268 _080761A0: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_080761A8 sub_080761A8: @ 0x080761A8 push {lr} ldr r3, _080761BC @ =gUnk_0811BDB4 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _080761BC: .4byte gUnk_0811BDB4 thumb_func_start sub_080761C0 sub_080761C0: @ 0x080761C0 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r5, _08076220 @ =gUnk_03003F80 ldrb r0, [r5, #4] cmp r0, #0 bne _080762B8 ldrb r0, [r5, #2] cmp r0, #0 beq _080761DE ldr r0, [r5, #0x30] ldr r1, _08076224 @ =0x00001201 ands r0, r1 cmp r0, #0 beq _080762B8 _080761DE: ldr r1, _08076228 @ =gLinkEntity ldrb r2, [r1, #0x14] movs r0, #0x80 orrs r0, r2 strb r0, [r5, #1] adds r1, #0x3d movs r0, #0 ldrsb r0, [r1, r0] cmp r0, #8 bgt _080762B8 bl sub_080789A8 adds r3, r0, #0 cmp r3, #1 beq _08076258 cmp r3, #1 blo _0807626E cmp r3, #2 bne _080762C0 ldr r0, _0807622C @ =gUnk_03003BE0 ldr r2, [r0, #8] ldrb r1, [r2, #0x16] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08076230 adds r0, r4, #0 adds r1, r2, #0 adds r2, r6, #0 bl sub_08076088 b _080762C0 .align 2, 0 _08076220: .4byte gUnk_03003F80 _08076224: .4byte 0x00001201 _08076228: .4byte gLinkEntity _0807622C: .4byte gUnk_03003BE0 _08076230: str r2, [r4, #0x18] strb r3, [r2, #0xc] movs r1, #5 strb r1, [r2, #0xd] adds r0, r5, #0 adds r0, #0xa8 strb r1, [r0] adds r0, r4, #0 adds r1, r2, #0 movs r2, #2 adds r3, r6, #0 bl sub_080762C4 ldr r0, _08076254 @ =gUnk_0200AF00 adds r0, #0x2e movs r1, #8 strb r1, [r0] b _08076264 .align 2, 0 _08076254: .4byte gUnk_0200AF00 _08076258: adds r0, r4, #0 movs r1, #0 movs r2, #1 adds r3, r6, #0 bl sub_080762C4 _08076264: movs r0, #0x81 lsls r0, r0, #1 bl sub_080A3268 b _080762C0 _0807626E: movs r0, #5 strb r0, [r4, #4] movs r0, #0xf strb r0, [r4, #7] movs r0, #6 strb r0, [r4, #0xf] movs r3, #8 adds r1, r3, #0 asrs r1, r6 ldrb r2, [r5, #0xa] adds r0, r1, #0 orrs r0, r2 strb r0, [r5, #0xa] ldrb r0, [r5, #0xb] orrs r1, r0 strb r1, [r5, #0xb] ldr r0, [r5, #0x30] ands r0, r3 cmp r0, #0 bne _080762A2 movs r1, #0xde lsls r1, r1, #2 adds r0, r4, #0 bl sub_08077DF4 b _080762AA _080762A2: ldr r1, _080762B4 @ =0x00000948 adds r0, r4, #0 bl sub_08077DF4 _080762AA: movs r0, #0x88 bl sub_080A3268 b _080762C0 .align 2, 0 _080762B4: .4byte 0x00000948 _080762B8: adds r0, r4, #0 adds r1, r6, #0 bl sub_08077F50 _080762C0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080762C4 sub_080762C4: @ 0x080762C4 push {lr} str r1, [r0, #0x18] ldr r1, _080762D4 @ =gUnk_03003F80 strb r2, [r1, #5] adds r1, r3, #0 bl sub_08077D38 pop {pc} .align 2, 0 _080762D4: .4byte gUnk_03003F80 thumb_func_start sub_080762D8 sub_080762D8: @ 0x080762D8 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 ldr r4, _08076334 @ =gUnk_03003F80 ldrb r0, [r4, #5] movs r1, #0xcf ands r1, r0 strb r1, [r4, #5] adds r0, r5, #0 adds r1, r6, #0 bl sub_08077F64 cmp r0, #0 bne _080762F6 b _08076486 _080762F6: ldr r0, _08076338 @ =gLinkEntity adds r1, r0, #0 adds r1, #0x3d ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r3, r0, #0 cmp r1, #8 bgt _0807636C adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _0807636C ldr r2, [r5, #0x18] cmp r2, #0 beq _08076340 ldrh r1, [r2, #0xc] ldr r0, _0807633C @ =0x00000502 cmp r1, r0 bne _08076376 adds r0, r4, #0 adds r0, #0x90 ldrh r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08076340 movs r0, #6 strb r0, [r2, #0xd] b _08076376 .align 2, 0 _08076334: .4byte gUnk_03003F80 _08076338: .4byte gLinkEntity _0807633C: .4byte 0x00000502 _08076340: ldr r2, _08076364 @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0xa8 movs r0, #5 strb r0, [r1] ldr r0, _08076368 @ =gUnk_0200AF00 adds r0, #0x2e movs r1, #8 strb r1, [r0] ldrb r0, [r2, #2] cmp r0, #0 beq _0807635A b _0807647E _0807635A: ldrb r0, [r2, #5] cmp r0, #1 bne _08076394 b _08076380 .align 2, 0 _08076364: .4byte gUnk_03003F80 _08076368: .4byte gUnk_0200AF00 _0807636C: ldr r1, [r5, #0x18] cmp r1, #0 beq _08076376 movs r0, #6 strb r0, [r1, #0xd] _08076376: adds r0, r5, #0 adds r1, r6, #0 bl sub_08077F50 b _08076486 _08076380: adds r0, r3, #0 movs r1, #6 adds r2, r5, #0 bl sub_0800875A cmp r0, #0 beq _08076394 adds r0, r5, #0 movs r1, #0 b _080763EC _08076394: ldr r1, _080763F4 @ =gUnk_0811BE38 ldr r7, _080763F8 @ =gLinkEntity ldrb r0, [r7, #0x14] lsrs r0, r0, #1 lsls r3, r0, #1 adds r1, r3, r1 ldr r4, _080763FC @ =gUnk_03003F80 adds r2, r4, #0 adds r2, #0x90 ldrh r0, [r1] ldrh r2, [r2] ands r0, r2 cmp r0, #0 beq _08076400 adds r0, r5, #0 bl sub_08077E24 ldr r0, [r4, #0x30] movs r1, #8 ands r0, r1 movs r1, #0x94 lsls r1, r1, #4 cmp r0, #0 bne _080763C8 movs r1, #0xd0 lsls r1, r1, #2 _080763C8: ldrh r0, [r5, #0x10] cmp r1, r0 beq _080763D4 adds r0, r5, #0 bl sub_08077DF4 _080763D4: ldrb r0, [r4, #5] movs r1, #0x10 orrs r1, r0 strb r1, [r4, #5] adds r2, r4, #0 adds r2, #0xa8 movs r0, #0x1a strb r0, [r2] cmp r1, #1 beq _08076486 ldr r1, [r5, #0x18] adds r0, r5, #0 _080763EC: adds r2, r6, #0 bl sub_08076088 b _08076486 .align 2, 0 _080763F4: .4byte gUnk_0811BE38 _080763F8: .4byte gLinkEntity _080763FC: .4byte gUnk_03003F80 _08076400: ldr r0, _08076418 @ =gUnk_0811BE40 adds r0, r3, r0 ldrh r0, [r0] ands r0, r2 cmp r0, #0 beq _08076460 ldrb r0, [r7, #0xf] cmp r0, #5 bhi _0807641C adds r0, #1 strb r0, [r7, #0xf] b _08076486 .align 2, 0 _08076418: .4byte gUnk_0811BE40 _0807641C: ldrb r0, [r5, #0xa] adds r1, r4, #0 adds r1, #0x35 strb r0, [r1] ldrb r0, [r4, #6] movs r1, #0x80 orrs r0, r1 strb r0, [r4, #6] ldrb r1, [r4, #5] movs r0, #0x20 orrs r0, r1 strb r0, [r4, #5] adds r1, r4, #0 adds r1, #0xa8 movs r0, #0x19 strb r0, [r1] ldr r0, [r4, #0x30] movs r1, #8 ands r0, r1 ldr r1, _0807645C @ =0x0000093C cmp r0, #0 bne _0807644C movs r1, #0xcf lsls r1, r1, #2 _0807644C: ldrh r0, [r5, #0x10] cmp r1, r0 bne _08076476 adds r0, r5, #0 bl sub_08077E24 b _08076486 .align 2, 0 _0807645C: .4byte 0x0000093C _08076460: strb r0, [r7, #0xf] ldr r0, [r4, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 bne _08076472 movs r1, #0xd0 lsls r1, r1, #2 b _08076476 _08076472: movs r1, #0x94 lsls r1, r1, #4 _08076476: adds r0, r5, #0 bl sub_08077DF4 b _08076486 _0807647E: adds r0, r5, #0 adds r1, r6, #0 bl sub_08077F50 _08076486: pop {r4, r5, r6, r7, pc} thumb_func_start sub_08076488 sub_08076488: @ 0x08076488 push {r4, r5, r6, lr} adds r4, r0, #0 adds r5, r1, #0 ldrb r0, [r4, #7] adds r6, r0, #0 cmp r6, #0 bne _08076504 adds r0, r4, #0 bl sub_08077F64 cmp r0, #0 beq _08076508 ldr r0, [r4, #0x18] ldrb r1, [r0, #0x16] movs r0, #0xf0 ands r0, r1 cmp r0, #0x10 bne _080764B8 ldr r0, _080764F8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #1 ands r0, r1 cmp r0, #0 bne _08076510 _080764B8: adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08076508 ldr r2, _080764FC @ =gLinkEntity ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] ldr r2, _08076500 @ =gUnk_03003F80 movs r0, #4 strb r0, [r2, #5] movs r1, #8 asrs r1, r5 mvns r1, r1 ldrb r3, [r2, #0xb] adds r0, r1, #0 ands r0, r3 strb r0, [r2, #0xb] ldrb r0, [r2, #0xa] ands r1, r0 strb r1, [r2, #0xa] ldrb r0, [r4, #4] adds r0, #1 strb r0, [r4, #4] strb r6, [r4, #0xf] b _08076508 .align 2, 0 _080764F8: .4byte gUnk_030010A0 _080764FC: .4byte gLinkEntity _08076500: .4byte gUnk_03003F80 _08076504: subs r0, #1 strb r0, [r4, #7] _08076508: ldr r0, _08076514 @ =gUnk_03003F80 adds r0, #0xa8 movs r1, #4 strb r1, [r0] _08076510: pop {r4, r5, r6, pc} .align 2, 0 _08076514: .4byte gUnk_03003F80 thumb_func_start sub_08076518 sub_08076518: @ 0x08076518 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 mov r8, r1 bl sub_08077F64 cmp r0, #0 beq _080765D4 ldr r5, _0807655C @ =gUnk_03003F80 adds r1, r5, #0 adds r1, #0xa8 movs r0, #4 strb r0, [r1] ldrb r1, [r5, #2] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _080765D4 ldrb r0, [r5, #0x1f] cmp r0, #0 bne _080765D4 ldr r6, _08076560 @ =gLinkEntity adds r0, r6, #0 adds r0, #0x42 ldrb r7, [r0] cmp r7, #0 beq _08076564 adds r0, r4, #0 mov r1, r8 bl sub_08077F50 b _080765D4 .align 2, 0 _0807655C: .4byte gUnk_03003F80 _08076560: .4byte gLinkEntity _08076564: adds r0, r5, #0 adds r0, #0x92 ldrh r1, [r0] ldr r0, _080765B0 @ =0x00008018 ands r0, r1 cmp r0, #0 beq _080765D4 adds r0, r6, #0 bl sub_0806F948 movs r0, #5 strb r0, [r5, #5] ldr r1, [r4, #0x18] movs r0, #2 strb r0, [r1, #0xd] ldr r2, [r4, #0x18] ldrb r1, [r6, #0x14] movs r0, #0xe ands r0, r1 lsls r0, r0, #2 strb r0, [r2, #0x15] str r7, [r4, #0x18] ldrb r0, [r4, #4] adds r0, #1 strb r0, [r4, #4] movs r0, #0xf strb r0, [r4, #0xf] ldr r0, [r5, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _080765B4 movs r1, #0x93 lsls r1, r1, #4 adds r0, r4, #0 bl sub_08077DF4 b _080765BE .align 2, 0 _080765B0: .4byte 0x00008018 _080765B4: movs r1, #0xd1 lsls r1, r1, #2 adds r0, r4, #0 bl sub_08077DF4 _080765BE: ldr r2, _080765DC @ =gUnk_03003F80 movs r1, #8 mov r0, r8 asrs r1, r0 ldrb r3, [r2, #0xa] adds r0, r1, #0 orrs r0, r3 strb r0, [r2, #0xa] ldrb r0, [r2, #0xb] orrs r1, r0 strb r1, [r2, #0xb] _080765D4: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _080765DC: .4byte gUnk_03003F80 thumb_func_start sub_080765E0 sub_080765E0: @ 0x080765E0 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077F64 cmp r0, #0 beq _08076608 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08076602 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077F50 b _08076608 _08076602: adds r0, r4, #0 bl sub_08077E24 _08076608: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_0807660C sub_0807660C: @ 0x0807660C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077E24 ldrb r0, [r4, #7] subs r0, #1 strb r0, [r4, #7] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0xff beq _0807662C ldr r0, _0807663C @ =gUnk_03003F80 ldrb r0, [r0, #1] cmp r0, #0 bne _0807663A _0807662C: ldr r1, _0807663C @ =gUnk_03003F80 movs r0, #0 strb r0, [r1, #1] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _0807663A: pop {r4, r5, pc} .align 2, 0 _0807663C: .4byte gUnk_03003F80 thumb_func_start sub_08076640 sub_08076640: @ 0x08076640 push {r4, r5, lr} adds r3, r0, #0 adds r4, r1, #0 ldrb r0, [r3, #4] cmp r0, #0 beq _08076654 adds r0, r3, #0 bl sub_08076758 b _08076754 _08076654: ldr r0, _080766BC @ =gUnk_03003F80 ldr r1, [r0, #0x2c] adds r2, r0, #0 cmp r1, #0 bne _0807674C ldrb r0, [r2, #1] cmp r0, #0 beq _080766C4 ldrb r1, [r2, #4] ldrb r0, [r2, #5] orrs r0, r1 cmp r0, #0 bne _0807674C ldrb r0, [r2, #0x12] cmp r0, #0x12 beq _08076678 cmp r0, #1 bne _08076686 _08076678: ldr r0, _080766C0 @ =gLinkEntity ldr r0, [r0, #0x34] cmp r0, #0 bne _08076686 ldrb r0, [r2, #0x14] cmp r0, #0 beq _0807674C _08076686: ldrb r1, [r2, #2] cmp r1, #0 beq _08076694 movs r0, #7 ands r0, r1 cmp r0, #3 bne _08076710 _08076694: ldr r5, _080766C0 @ =gLinkEntity ldr r0, [r5, #0x34] cmp r0, #0 blt _0807674C movs r1, #0 strb r1, [r2, #1] ldrb r0, [r3, #4] adds r0, #1 strb r0, [r3, #4] strb r1, [r2, #0xb] movs r0, #1 strb r0, [r2, #2] movs r0, #0xff strb r0, [r2, #0xe] str r1, [r2, #0x2c] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r5, #0x20] b _0807673C .align 2, 0 _080766BC: .4byte gUnk_03003F80 _080766C0: .4byte gLinkEntity _080766C4: ldrb r0, [r2, #0x1b] ldrb r1, [r2, #0xa] orrs r0, r1 ldrb r1, [r2, #4] orrs r0, r1 ldrb r1, [r2, #5] orrs r0, r1 ldrb r1, [r2, #0x1c] orrs r0, r1 adds r1, r2, #0 adds r1, #0x3d ldrb r1, [r1] orrs r0, r1 cmp r0, #0 bne _0807674C ldrb r1, [r2, #0x12] adds r0, r1, #0 subs r0, #0x12 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bls _080766F4 cmp r1, #1 bne _08076702 _080766F4: ldr r0, _0807671C @ =gLinkEntity ldr r0, [r0, #0x34] cmp r0, #0 bne _08076702 ldrb r0, [r2, #0x14] cmp r0, #0 beq _0807674C _08076702: ldrb r1, [r2, #2] cmp r1, #0 beq _08076720 movs r0, #7 ands r0, r1 cmp r0, #3 beq _08076720 _08076710: adds r0, r3, #0 adds r1, r4, #0 bl sub_08076758 b _08076754 .align 2, 0 _0807671C: .4byte gLinkEntity _08076720: ldr r1, _08076748 @ =gLinkEntity ldr r0, [r1, #0x34] cmp r0, #0 blt _0807674C movs r0, #0x80 lsls r0, r0, #0xa str r0, [r1, #0x20] movs r1, #0 movs r0, #1 strb r0, [r2, #2] str r1, [r2, #0x2c] ldrb r0, [r3, #4] adds r0, #1 strb r0, [r3, #4] _0807673C: bl sub_08077F84 movs r0, #0x78 bl sub_080A3268 b _08076754 .align 2, 0 _08076748: .4byte gLinkEntity _0807674C: adds r0, r3, #0 adds r1, r4, #0 bl sub_08077E78 _08076754: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_08076758 sub_08076758: @ 0x08076758 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _080767C0 @ =gUnk_03003F80 movs r0, #0 strb r0, [r5, #0xe] ldrb r2, [r5, #2] movs r0, #0x28 ands r0, r2 cmp r0, #0 bne _080767F8 cmp r2, #0 beq _080767F8 movs r0, #7 ands r0, r2 cmp r0, #3 beq _080767F8 adds r0, r4, #0 bl sub_08077EFC cmp r0, #0 beq _080767D8 ldrb r0, [r4, #4] cmp r0, #1 bhi _080767C8 ldr r2, _080767C4 @ =gLinkEntity ldr r0, [r2, #0x20] cmp r0, #0 bgt _080767FE ldrb r3, [r5, #2] movs r0, #0x10 ands r0, r3 cmp r0, #0 bne _080767FE movs r0, #2 strb r0, [r4, #4] adds r1, r2, #0 adds r1, #0x7a strh r0, [r1] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r2, #0x20] movs r0, #0x10 orrs r0, r3 strb r0, [r5, #2] movs r0, #0xa2 lsls r0, r0, #2 strh r0, [r5, #8] movs r0, #0xb9 lsls r0, r0, #1 bl sub_080A3268 b _080767FE .align 2, 0 _080767C0: .4byte gUnk_03003F80 _080767C4: .4byte gLinkEntity _080767C8: ldr r1, _080767D4 @ =gLinkEntity adds r1, #0x7a ldrh r0, [r1] adds r0, #1 strh r0, [r1] b _080767FE .align 2, 0 _080767D4: .4byte gLinkEntity _080767D8: ldrb r0, [r4, #4] cmp r0, #1 bls _080767FE ldr r1, _080767F4 @ =gLinkEntity adds r1, #0x7a ldrh r0, [r1] adds r0, #1 strh r0, [r1] ldrb r1, [r5, #2] movs r0, #0xef ands r0, r1 strb r0, [r5, #2] b _080767FE .align 2, 0 _080767F4: .4byte gLinkEntity _080767F8: adds r0, r4, #0 bl sub_08077E78 _080767FE: pop {r4, r5, pc} thumb_func_start sub_08076800 sub_08076800: @ 0x08076800 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r6, r0, #0 mov sb, r1 ldr r4, _0807682C @ =gLinkEntity adds r0, r4, #0 adds r0, #0x7a ldrh r0, [r0] cmp r0, #0 beq _08076834 ldr r1, _08076830 @ =gUnk_03003F80 movs r0, #0 strb r0, [r1, #0x1e] strb r0, [r1, #0xe] adds r0, r6, #0 mov r1, sb bl sub_08077E78 b _080768EC .align 2, 0 _0807682C: .4byte gLinkEntity _08076830: .4byte gUnk_03003F80 _08076834: ldrb r0, [r6, #7] subs r0, #1 strb r0, [r6, #7] movs r1, #7 mov r8, r1 ands r0, r1 cmp r0, #0 bne _0807684A movs r0, #0x7d bl sub_080A3268 _0807684A: ldr r2, _08076880 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _080768DA ldrb r1, [r6, #7] mov r0, r8 ands r0, r1 cmp r0, #0 bne _080768DA ldrb r0, [r2, #0x12] cmp r0, #0x11 bne _08076884 adds r0, r4, #0 adds r0, #0x63 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _080768DA adds r0, r4, #0 movs r1, #0x52 movs r2, #0 bl CreateFX b _080768DA .align 2, 0 _08076880: .4byte gUnk_03003F80 _08076884: adds r0, r4, #0 movs r1, #0x11 movs r2, #0x40 bl CreateFX adds r5, r0, #0 cmp r5, #0 beq _080768DA ldrh r0, [r5, #0x32] adds r0, #2 strh r0, [r5, #0x32] ldrb r0, [r6, #4] cmp r0, #2 beq _080768DA bl sub_08000E50 adds r4, r0, #0 movs r0, #3 ands r4, r0 bl sub_08000E50 movs r7, #1 ands r0, r7 cmp r0, #0 beq _080768B8 rsbs r4, r4, #0 _080768B8: ldrh r0, [r5, #0x32] adds r0, r0, r4 strh r0, [r5, #0x32] bl sub_08000E50 adds r4, r0, #0 mov r0, r8 ands r4, r0 bl sub_08000E50 ands r0, r7 cmp r0, #0 beq _080768D4 rsbs r4, r4, #0 _080768D4: ldrh r0, [r5, #0x2e] adds r0, r0, r4 strh r0, [r5, #0x2e] _080768DA: ldr r0, _080768F4 @ =gUnk_0811BDCC ldrb r1, [r6, #4] lsls r1, r1, #2 adds r1, r1, r0 ldr r2, [r1] adds r0, r6, #0 mov r1, sb bl _call_via_r2 _080768EC: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _080768F4: .4byte gUnk_0811BDCC thumb_func_start sub_080768F8 sub_080768F8: @ 0x080768F8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r3, _08076934 @ =gUnk_03003F80 ldrb r1, [r3, #0x1c] ldrb r0, [r3, #4] orrs r1, r0 ldrb r0, [r3, #5] orrs r1, r0 ldrb r0, [r3, #2] orrs r1, r0 ldr r2, [r3, #0x30] movs r0, #0x80 lsls r0, r0, #5 ands r0, r2 orrs r1, r0 cmp r1, #0 bne _08076954 movs r0, #1 strb r0, [r3, #0x1e] adds r0, r3, #0 adds r0, #0x21 strb r1, [r0] movs r0, #0x80 ands r2, r0 cmp r2, #0 bne _08076938 movs r0, #0x10 strb r0, [r4, #7] b _0807693C .align 2, 0 _08076934: .4byte gUnk_03003F80 _08076938: ldr r0, _08076950 @ =0x00000C14 strh r0, [r3, #8] _0807693C: adds r0, r4, #0 adds r1, r5, #0 bl sub_08077D38 adds r0, r4, #0 adds r1, r5, #0 bl sub_08076964 b _08076962 .align 2, 0 _08076950: .4byte 0x00000C14 _08076954: movs r0, #0 strb r0, [r3, #0x1e] strb r0, [r3, #0xe] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08076962: pop {r4, r5, pc} thumb_func_start sub_08076964 sub_08076964: @ 0x08076964 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r6, r1, #0 bl sub_08077EFC cmp r0, #0 bne _08076978 b _08076A70 _08076978: ldr r0, _080769C4 @ =gLinkEntity ldr r7, [r0, #0x34] cmp r7, #0 bne _08076A70 ldr r5, _080769C8 @ =gUnk_03003F80 ldrb r0, [r5, #0x1e] cmp r0, #0 beq _08076A70 adds r0, r4, #0 bl sub_08077E24 ldr r0, [r5, #0x30] movs r1, #0x80 mov r8, r1 ands r0, r1 cmp r0, #0 bne _080769A0 adds r0, r4, #0 bl sub_08077E24 _080769A0: ldrb r0, [r5, #0x1e] adds r0, #1 strb r0, [r5, #0x1e] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x1e bne _08076A7E ldr r0, [r5, #0x30] movs r1, #2 ands r0, r1 cmp r0, #0 beq _080769CC strb r7, [r5, #0x1e] adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 b _08076A7E .align 2, 0 _080769C4: .4byte gLinkEntity _080769C8: .4byte gUnk_03003F80 _080769CC: movs r0, #0x40 strb r0, [r5, #0x1e] movs r1, #8 asrs r1, r6 ldrb r0, [r5, #0xa] bics r0, r1 strb r0, [r5, #0xa] ldrb r0, [r4, #4] adds r0, #1 strb r0, [r4, #4] bl sub_0807A158 cmp r0, #0 beq _08076A46 ldr r0, [r5, #0x30] mov r1, r8 ands r0, r1 cmp r0, #0 bne _08076A60 adds r0, r5, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #4 ands r0, r1 cmp r0, #0 beq _08076A46 adds r0, r5, #0 adds r0, #0xab movs r1, #3 strb r1, [r0] movs r1, #0xa6 lsls r1, r1, #2 adds r0, r4, #0 bl sub_08077DF4 adds r0, r4, #0 movs r1, #0xc bl sub_08077C3C adds r5, r0, #0 cmp r5, #0 beq _08076A70 ldr r6, _08076A34 @ =gUnk_02002A40 adds r4, r6, #0 adds r4, #0xb4 ldrb r0, [r4] bl sub_0805449C cmp r0, #0 beq _08076A38 ldrb r1, [r4] b _08076A3E .align 2, 0 _08076A34: .4byte gUnk_02002A40 _08076A38: adds r0, r6, #0 adds r0, #0xb5 ldrb r1, [r0] _08076A3E: adds r0, r5, #0 adds r0, #0x68 strb r1, [r0] b _08076A7E _08076A46: ldr r0, _08076A5C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08076A60 adds r1, #0x84 adds r0, r4, #0 bl sub_08077DF4 b _08076A7E .align 2, 0 _08076A5C: .4byte gUnk_03003F80 _08076A60: ldr r1, _08076A6C @ =gUnk_03003F80 movs r0, #0xc1 lsls r0, r0, #4 strh r0, [r1, #8] b _08076A7E .align 2, 0 _08076A6C: .4byte gUnk_03003F80 _08076A70: ldr r1, _08076A84 @ =gUnk_03003F80 movs r0, #0 strb r0, [r1, #0x1e] adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 _08076A7E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08076A84: .4byte gUnk_03003F80 thumb_func_start sub_08076A88 sub_08076A88: @ 0x08076A88 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r7, r1, #0 bl sub_08077EFC cmp r0, #0 beq _08076B64 ldr r1, _08076AB4 @ =gUnk_03003F80 ldrb r0, [r1, #0x1e] adds r3, r1, #0 cmp r0, #0 beq _08076B64 ldr r0, [r3, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08076ABC ldr r1, _08076AB8 @ =gLinkEntity movs r0, #0xc0 lsls r0, r0, #2 b _08076AC2 .align 2, 0 _08076AB4: .4byte gUnk_03003F80 _08076AB8: .4byte gLinkEntity _08076ABC: ldr r1, _08076B00 @ =gLinkEntity movs r0, #0xa0 lsls r0, r0, #2 _08076AC2: strh r0, [r1, #0x24] adds r5, r1, #0 ldr r1, _08076B04 @ =gUnk_0800275C ldrb r2, [r5, #0x14] movs r6, #0xe adds r0, r6, #0 ands r0, r2 lsls r0, r0, #3 adds r0, r0, r1 ldrh r1, [r0] ldrh r0, [r5, #0x2a] ands r0, r1 cmp r1, r0 bne _08076B0E ldrb r0, [r4, #8] cmp r0, #0 beq _08076B08 movs r2, #0 movs r0, #6 strb r0, [r5, #0xc] strb r2, [r5, #0xd] ldrb r1, [r5, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r5, #0x10] adds r0, r3, #0 adds r0, #0x38 strb r2, [r0] movs r0, #0xff strb r0, [r3, #0xd] b _08076B72 .align 2, 0 _08076B00: .4byte gLinkEntity _08076B04: .4byte gUnk_0800275C _08076B08: movs r0, #1 strb r0, [r4, #8] b _08076B72 _08076B0E: ldr r1, _08076B60 @ =gUnk_0811BE38 movs r0, #0xfe ands r0, r2 adds r0, r0, r1 adds r1, r3, #0 adds r1, #0x90 ldrh r2, [r0] ldrh r0, [r1] ands r0, r2 cmp r0, #0 bne _08076B64 ldrb r0, [r4, #0xa] adds r1, r6, #0 ands r1, r0 lsls r0, r1, #2 strb r0, [r4, #0xb] ldrb r2, [r3, #0xd] cmp r2, #0xff beq _08076B52 cmp r2, r0 beq _08076B52 adds r0, r2, #0 ldrb r1, [r4, #0xb] subs r0, r0, r1 movs r2, #0x1f ands r0, r2 cmp r0, #0xf bgt _08076B4A adds r0, r1, #2 strb r0, [r4, #0xb] _08076B4A: ldrb r0, [r4, #0xb] subs r0, #1 ands r0, r2 strb r0, [r4, #0xb] _08076B52: ldrb r0, [r4, #0xb] strb r0, [r3, #0xd] adds r0, r4, #0 bl sub_08077E24 b _08076B72 .align 2, 0 _08076B60: .4byte gUnk_0811BE38 _08076B64: ldr r1, _08076B74 @ =gUnk_03003F80 movs r0, #0 strb r0, [r1, #0x1e] adds r0, r4, #0 adds r1, r7, #0 bl sub_08077E78 _08076B72: pop {r4, r5, r6, r7, pc} .align 2, 0 _08076B74: .4byte gUnk_03003F80 thumb_func_start sub_08076B78 sub_08076B78: @ 0x08076B78 push {lr} ldr r3, _08076B94 @ =gUnk_0811BDD8 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 ldr r1, _08076B98 @ =gLinkEntity adds r1, #0x7a ldrh r0, [r1] adds r0, #1 strh r0, [r1] pop {pc} .align 2, 0 _08076B94: .4byte gUnk_0811BDD8 _08076B98: .4byte gLinkEntity thumb_func_start sub_08076B9C sub_08076B9C: @ 0x08076B9C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r3, _08076BB4 @ =gUnk_03003F80 ldrb r0, [r3, #0xc] cmp r0, #0x18 bne _08076BB8 adds r0, r4, #0 bl sub_08077E78 b _08076C1C .align 2, 0 _08076BB4: .4byte gUnk_03003F80 _08076BB8: ldrb r1, [r4, #9] movs r0, #0xf orrs r0, r1 strb r0, [r4, #9] ldr r1, _08076C20 @ =gLinkEntity movs r0, #4 strb r0, [r1, #0x14] ldrb r2, [r1, #0x18] subs r0, #0x45 ands r0, r2 strb r0, [r1, #0x18] ldrb r2, [r1, #0x10] movs r0, #0x7f ands r0, r2 strb r0, [r1, #0x10] adds r1, #0x7a movs r0, #2 strh r0, [r1] ldr r0, [r3, #0x30] movs r1, #0x80 lsls r1, r1, #0x15 orrs r0, r1 str r0, [r3, #0x30] adds r1, r3, #0 adds r1, #0x27 movs r0, #0xff strb r0, [r1] ldr r1, _08076C24 @ =gUnk_02034490 movs r0, #1 strb r0, [r1] movs r1, #8 asrs r1, r5 ldrb r2, [r3, #0xa] adds r0, r1, #0 orrs r0, r2 strb r0, [r3, #0xa] ldrb r0, [r3, #0xb] orrs r1, r0 strb r1, [r3, #0xb] bl sub_08078F60 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077D38 ldr r0, _08076C28 @ =0x00000216 bl sub_080A3268 bl sub_0805E544 _08076C1C: pop {r4, r5, pc} .align 2, 0 _08076C20: .4byte gLinkEntity _08076C24: .4byte gUnk_02034490 _08076C28: .4byte 0x00000216 thumb_func_start sub_08076C2C sub_08076C2C: @ 0x08076C2C push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 bl sub_08077E24 ldrb r1, [r5, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08076C6E ldr r0, _08076C70 @ =gLinkEntity ldrb r2, [r0, #0x10] movs r4, #0 movs r1, #0x80 orrs r1, r2 strb r1, [r0, #0x10] ldr r2, _08076C74 @ =gUnk_03003F80 ldr r1, [r2, #0x30] ldr r3, _08076C78 @ =0xEFFFFFFF ands r1, r3 str r1, [r2, #0x30] adds r2, #0x27 strb r4, [r2] ldr r1, _08076C7C @ =gUnk_02034490 strb r4, [r1] bl sub_0809D700 bl sub_0805E564 adds r0, r5, #0 adds r1, r6, #0 bl sub_08077E78 _08076C6E: pop {r4, r5, r6, pc} .align 2, 0 _08076C70: .4byte gLinkEntity _08076C74: .4byte gUnk_03003F80 _08076C78: .4byte 0xEFFFFFFF _08076C7C: .4byte gUnk_02034490 thumb_func_start sub_08076C80 sub_08076C80: @ 0x08076C80 push {lr} ldr r3, _08076C94 @ =gUnk_0811BDE0 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08076C94: .4byte gUnk_0811BDE0 thumb_func_start sub_08076C98 sub_08076C98: @ 0x08076C98 push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #9] movs r0, #0xf orrs r0, r2 strb r0, [r4, #9] adds r0, r4, #0 bl sub_08077D38 ldr r0, _08076CB8 @ =gLinkEntity bl sub_0806F948 adds r0, r4, #0 bl sub_08077BB8 pop {r4, pc} .align 2, 0 _08076CB8: .4byte gLinkEntity thumb_func_start sub_08076CBC sub_08076CBC: @ 0x08076CBC push {r4, lr} adds r4, r0, #0 ldrb r2, [r4, #0xe] movs r0, #0x80 ands r0, r2 cmp r0, #0 beq _08076CD2 adds r0, r4, #0 bl sub_08077E78 b _08076CE8 _08076CD2: movs r0, #0x40 ands r0, r2 cmp r0, #0 beq _08076CE2 adds r0, r4, #0 movs r1, #0x12 bl sub_08077C3C _08076CE2: adds r0, r4, #0 bl sub_08077E24 _08076CE8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08076CEC sub_08076CEC: @ 0x08076CEC push {lr} ldr r3, _08076D00 @ =gUnk_0811BDE8 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08076D00: .4byte gUnk_0811BDE8 thumb_func_start sub_08076D04 sub_08076D04: @ 0x08076D04 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r1, _08076D2C @ =gUnk_03003F80 movs r0, #0x81 strb r0, [r1, #3] movs r0, #2 strb r0, [r4, #9] ldr r0, _08076D30 @ =gLinkEntity bl sub_0806F948 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077D38 adds r0, r4, #0 bl sub_08077BB8 pop {r4, r5, pc} .align 2, 0 _08076D2C: .4byte gUnk_03003F80 _08076D30: .4byte gLinkEntity thumb_func_start sub_08076D34 sub_08076D34: @ 0x08076D34 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 bl sub_08077EFC adds r1, r0, #0 cmp r1, #0 beq _08076D80 ldr r5, _08076D78 @ =gUnk_03003F80 ldrb r0, [r5, #3] movs r1, #1 orrs r1, r0 strb r1, [r5, #3] adds r0, r4, #0 bl sub_08077E24 ldrb r0, [r4, #0xe] cmp r0, #0 beq _08076D8C ldrb r0, [r4, #4] adds r0, #1 strb r0, [r4, #4] movs r0, #0 strb r0, [r4, #0xf] movs r1, #8 asrs r1, r6 ldrb r0, [r5, #0xa] bics r0, r1 strb r0, [r5, #0xa] ldr r0, _08076D7C @ =0x0000015D bl sub_080A3268 b _08076D8C .align 2, 0 _08076D78: .4byte gUnk_03003F80 _08076D7C: .4byte 0x0000015D _08076D80: ldr r0, _08076D90 @ =gUnk_03003F80 strb r1, [r0, #3] adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 _08076D8C: pop {r4, r5, r6, pc} .align 2, 0 _08076D90: .4byte gUnk_03003F80 thumb_func_start sub_08076D94 sub_08076D94: @ 0x08076D94 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077EFC adds r1, r0, #0 cmp r1, #0 beq _08076DBC ldr r2, _08076DB8 @ =gUnk_03003F80 ldrb r1, [r2, #3] movs r0, #1 orrs r0, r1 strb r0, [r2, #3] adds r0, r4, #0 bl sub_08077E24 b _08076DC8 .align 2, 0 _08076DB8: .4byte gUnk_03003F80 _08076DBC: ldr r0, _08076DCC @ =gUnk_03003F80 strb r1, [r0, #3] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08076DC8: pop {r4, r5, pc} .align 2, 0 _08076DCC: .4byte gUnk_03003F80 thumb_func_start sub_08076DD0 sub_08076DD0: @ 0x08076DD0 push {lr} ldr r2, _08076DEC @ =gUnk_03003F80 adds r2, #0xa8 movs r3, #3 strb r3, [r2] ldr r3, _08076DF0 @ =gUnk_0811BDF4 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08076DEC: .4byte gUnk_03003F80 _08076DF0: .4byte gUnk_0811BDF4 thumb_func_start sub_08076DF4 sub_08076DF4: @ 0x08076DF4 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 adds r7, r1, #0 ldr r0, _08076E48 @ =gLinkEntity mov r8, r0 bl sub_0807A894 cmp r0, #0x29 beq _08076E50 ldr r6, _08076E4C @ =gUnk_03003F80 ldrb r0, [r6, #0x12] cmp r0, #0x12 beq _08076E50 cmp r0, #0x13 beq _08076E50 ldrb r5, [r6, #2] cmp r5, #0 bne _08076E50 adds r0, r4, #0 adds r1, r7, #0 bl sub_08077D38 strb r5, [r4, #7] mov r1, r8 ldrb r0, [r1, #0x14] strb r0, [r4, #0xa] ldrb r1, [r4, #9] movs r0, #0x80 orrs r0, r1 adds r0, #1 strb r0, [r4, #9] movs r0, #1 strb r0, [r6, #0x1d] mov r1, r8 str r5, [r1, #0x74] strb r0, [r6, #0x1c] adds r0, r4, #0 bl sub_08077BB8 b _08076E58 .align 2, 0 _08076E48: .4byte gLinkEntity _08076E4C: .4byte gUnk_03003F80 _08076E50: adds r0, r4, #0 adds r1, r7, #0 bl sub_08077E78 _08076E58: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08076E60 sub_08076E60: @ 0x08076E60 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r5, _08076EB4 @ =gUnk_03003F80 ldrb r1, [r5, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08076E7A adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 _08076E7A: ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08076EC0 movs r0, #2 strb r0, [r4, #4] ldr r1, _08076EB8 @ =0x00000504 adds r0, r4, #0 bl sub_08077DF4 movs r1, #8 asrs r1, r6 ldrb r0, [r5, #0xa] bics r0, r1 strb r0, [r5, #0xa] movs r0, #0x10 movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08077CB8 adds r1, r0, #0 cmp r1, #0 beq _08076EC6 ldr r0, _08076EBC @ =gLinkEntity str r0, [r1, #0x50] b _08076EC6 .align 2, 0 _08076EB4: .4byte gUnk_03003F80 _08076EB8: .4byte 0x00000504 _08076EBC: .4byte gLinkEntity _08076EC0: adds r0, r4, #0 bl sub_08077E24 _08076EC6: pop {r4, r5, r6, pc} thumb_func_start sub_08076EC8 sub_08076EC8: @ 0x08076EC8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r5, _08076EE4 @ =gUnk_03003F80 ldrb r1, [r5, #0x1c] movs r0, #0xf ands r0, r1 cmp r0, #0 bne _08076EE8 adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 b _08076F60 .align 2, 0 _08076EE4: .4byte gUnk_03003F80 _08076EE8: adds r0, r4, #0 bl sub_08077EFC cmp r0, #0 beq _08076F50 ldrb r0, [r4, #7] cmp r0, #0xef bls _08076EFC movs r0, #3 b _08076F0E _08076EFC: adds r0, #1 strb r0, [r4, #7] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x77 bls _08076F0C movs r0, #2 b _08076F0E _08076F0C: movs r0, #1 _08076F0E: strb r0, [r5, #0x1d] ldr r0, _08076F1C @ =gLinkEntity ldrb r0, [r0, #0xd] cmp r0, #0x1b bne _08076F24 ldr r1, _08076F20 @ =0x00000524 b _08076F36 .align 2, 0 _08076F1C: .4byte gLinkEntity _08076F20: .4byte 0x00000524 _08076F24: ldr r0, _08076F44 @ =gUnk_03003F80 ldrb r1, [r0, #0xd] movs r0, #0x80 ands r0, r1 movs r1, #0xa3 lsls r1, r1, #3 cmp r0, #0 beq _08076F36 subs r1, #0x14 _08076F36: ldrh r0, [r4, #0x10] cmp r1, r0 beq _08076F48 adds r0, r4, #0 bl sub_08077DF4 b _08076F60 .align 2, 0 _08076F44: .4byte gUnk_03003F80 _08076F48: adds r0, r4, #0 bl sub_08077E24 b _08076F60 _08076F50: ldrb r0, [r4, #4] adds r0, #1 strb r0, [r4, #4] movs r0, #8 asrs r0, r6 ldrb r1, [r5, #0xa] orrs r0, r1 strb r0, [r5, #0xa] _08076F60: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_08076F64 sub_08076F64: @ 0x08076F64 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldr r1, _08076F84 @ =gUnk_03003F80 ldrb r0, [r1, #0x1c] movs r2, #0xf ands r2, r0 adds r3, r1, #0 cmp r2, #7 bls _08076F7A b _080770EC _08076F7A: lsls r0, r2, #2 ldr r1, _08076F88 @ =_08076F8C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08076F84: .4byte gUnk_03003F80 _08076F88: .4byte _08076F8C _08076F8C: @ jump table .4byte _08077100 @ case 0 .4byte _080770EC @ case 1 .4byte _080770EC @ case 2 .4byte _0807704C @ case 3 .4byte _08077052 @ case 4 .4byte _08076FAC @ case 5 .4byte _080770B8 @ case 6 .4byte _080770D0 @ case 7 _08076FAC: ldrb r1, [r4, #0xe] movs r5, #0x80 adds r0, r5, #0 ands r0, r1 cmp r0, #0 beq _0807700E ldrb r0, [r4, #8] cmp r0, #0 beq _08077004 movs r0, #0 strb r0, [r4, #8] strb r0, [r4, #7] movs r1, #1 strb r1, [r3, #0x1d] ldr r5, _08076FFC @ =gLinkEntity str r0, [r5, #0x74] strb r1, [r3, #0x1c] movs r1, #8 asrs r1, r6 ldrb r0, [r3, #0xa] bics r0, r1 strb r0, [r3, #0xa] movs r0, #2 strb r0, [r4, #4] ldr r1, _08077000 @ =0x00000504 adds r0, r4, #0 bl sub_08077DF4 movs r0, #0x10 movs r1, #0 movs r2, #0 movs r3, #0 bl sub_08077CB8 cmp r0, #0 bne _08076FF6 b _08077110 _08076FF6: str r5, [r0, #0x50] b _08077110 .align 2, 0 _08076FFC: .4byte gLinkEntity _08077000: .4byte 0x00000504 _08077004: movs r0, #6 strb r0, [r3, #0x1c] movs r1, #0xa2 lsls r1, r1, #3 b _080770F2 _0807700E: adds r0, r4, #0 bl sub_08077EFC cmp r0, #0 beq _0807701C movs r0, #1 strb r0, [r4, #8] _0807701C: adds r0, r4, #0 bl sub_08077E24 ldr r0, _08077044 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #2 ands r0, r1 cmp r0, #0 bne _08077110 ldr r0, _08077048 @ =gLinkEntity ldrb r1, [r0, #0x14] lsls r1, r1, #2 movs r2, #0x10 eors r1, r2 strb r1, [r0, #0x15] strh r5, [r0, #0x24] bl sub_08079E08 b _08077110 .align 2, 0 _08077044: .4byte gUnk_03003F80 _08077048: .4byte gLinkEntity _0807704C: ldr r1, _080770B0 @ =gUnk_03003F80 movs r0, #4 strb r0, [r1, #0x1c] _08077052: adds r0, r4, #0 bl sub_08077EFC cmp r0, #0 beq _08077060 movs r0, #1 strb r0, [r4, #8] _08077060: adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0807708C ldr r1, _080770B0 @ =gUnk_03003F80 movs r2, #0 movs r0, #5 strb r0, [r1, #0x1c] ldr r0, _080770B4 @ =gLinkEntity str r2, [r0, #0x70] ldrb r0, [r1, #0x1d] cmp r0, #0 beq _0807708C movs r0, #0x11 movs r1, #0 movs r3, #0 bl sub_08077CB8 _0807708C: ldr r0, _080770B0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #2 ands r0, r1 cmp r0, #0 bne _08077110 ldr r2, _080770B4 @ =gLinkEntity ldrb r0, [r2, #0x14] lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 strb r0, [r2, #0x15] movs r0, #0x80 strh r0, [r2, #0x24] bl sub_08079E08 b _08077110 .align 2, 0 _080770B0: .4byte gUnk_03003F80 _080770B4: .4byte gLinkEntity _080770B8: adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08077110 ldr r3, _080770CC @ =gUnk_03003F80 b _08077100 .align 2, 0 _080770CC: .4byte gUnk_03003F80 _080770D0: ldr r1, _080770E4 @ =0x00000514 adds r0, r4, #0 bl sub_08077DF4 ldr r1, _080770E8 @ =gUnk_03003F80 movs r2, #0 movs r0, #3 strb r0, [r1, #0x1c] strb r2, [r1, #0x1d] b _08077110 .align 2, 0 _080770E4: .4byte 0x00000514 _080770E8: .4byte gUnk_03003F80 _080770EC: movs r0, #3 strb r0, [r3, #0x1c] ldr r1, _080770FC @ =0x00000514 _080770F2: adds r0, r4, #0 bl sub_08077DF4 b _08077110 .align 2, 0 _080770FC: .4byte 0x00000514 _08077100: movs r1, #0 strb r1, [r3, #0x1c] ldr r0, _08077114 @ =gLinkEntity str r1, [r0, #0x70] adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 _08077110: pop {r4, r5, r6, pc} .align 2, 0 _08077114: .4byte gLinkEntity thumb_func_start sub_08077118 sub_08077118: @ 0x08077118 push {lr} ldr r3, _0807712C @ =gUnk_0811BE04 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _0807712C: .4byte gUnk_0811BE04 thumb_func_start sub_08077130 sub_08077130: @ 0x08077130 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, _0807718C @ =gUnk_03003F80 ldrb r0, [r5, #2] cmp r0, #0 bne _080771B6 adds r0, r4, #0 bl sub_08077D38 adds r0, r5, #0 adds r0, #0x3d movs r6, #1 strb r6, [r0] ldrb r1, [r4, #9] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #9] bl sub_080774A0 adds r5, r0, #0 cmp r5, #0 beq _080771A8 ldrb r0, [r4, #7] cmp r0, #0 bne _080771C4 ldr r1, _08077190 @ =0x0000050C adds r0, r4, #0 bl sub_08077DF4 movs r0, #2 strb r0, [r4, #4] cmp r5, #0x56 bne _080771C4 ldr r2, _08077194 @ =gLinkEntity ldrb r1, [r2, #0x14] ands r0, r1 cmp r0, #0 beq _08077198 ldrh r0, [r2, #0x32] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #6 orrs r1, r0 strh r1, [r2, #0x32] b _080771C4 .align 2, 0 _0807718C: .4byte gUnk_03003F80 _08077190: .4byte 0x0000050C _08077194: .4byte gLinkEntity _08077198: ldrh r0, [r2, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strh r1, [r2, #0x2e] b _080771C4 _080771A8: movs r1, #0xa1 lsls r1, r1, #3 adds r0, r4, #0 bl sub_08077DF4 strb r6, [r4, #4] b _080771C4 _080771B6: adds r0, r4, #0 bl sub_08077E78 adds r1, r5, #0 adds r1, #0x3d movs r0, #0 strb r0, [r1] _080771C4: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080771C8 sub_080771C8: @ 0x080771C8 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080771F4 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 ldr r0, _080771F0 @ =gUnk_03003F80 adds r0, #0x3d movs r1, #0 strb r1, [r0] b _080772A4 .align 2, 0 _080771F0: .4byte gUnk_03003F80 _080771F4: movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _0807720E ldrb r0, [r4, #8] cmp r0, #0xff bne _0807720E ldr r0, _08077240 @ =gLinkEntity ldrb r2, [r4, #0xe] movs r1, #0x1e movs r3, #1 bl sub_080A2988 _0807720E: ldrb r1, [r4, #0xe] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _080772A4 ldr r5, _08077240 @ =gLinkEntity adds r0, r5, #0 movs r1, #0xd adds r2, r4, #0 bl sub_0800875A cmp r0, #0 bne _08077248 movs r1, #0xa4 lsls r1, r1, #3 adds r0, r4, #0 bl sub_08077DF4 movs r0, #3 strb r0, [r4, #4] ldr r0, _08077244 @ =0x00000107 bl sub_080A3268 b _080772A4 .align 2, 0 _08077240: .4byte gLinkEntity _08077244: .4byte 0x00000107 _08077248: ldrb r0, [r4, #8] cmp r0, #0xff beq _0807728C ldrb r3, [r4, #3] adds r0, r5, #0 movs r1, #0x1f movs r2, #0 bl sub_080A2988 adds r3, r0, #0 cmp r3, #0 beq _0807729C ldrb r0, [r4, #7] movs r2, #0 strb r0, [r3, #0xe] ldrb r0, [r4, #8] strb r0, [r3, #0xf] ldrb r1, [r5, #0x14] movs r0, #6 ands r0, r1 strb r0, [r3, #0x14] adds r0, r5, #0 adds r0, #0x5a strb r2, [r0] ldr r1, _08077288 @ =gUnk_0811BE14 ldrb r0, [r4, #8] adds r0, r0, r1 ldrb r1, [r0] adds r0, r5, #0 adds r0, #0x59 strb r1, [r0] b _0807729C .align 2, 0 _08077288: .4byte gUnk_0811BE14 _0807728C: ldrb r0, [r4, #3] cmp r0, #0xf bne _0807729C ldrb r0, [r4, #7] cmp r0, #0x17 bne _0807729C movs r0, #0 strb r0, [r4, #8] _0807729C: movs r0, #0x84 lsls r0, r0, #1 bl sub_080A3268 _080772A4: pop {r4, r5, pc} .align 2, 0 thumb_func_start sub_080772A8 sub_080772A8: @ 0x080772A8 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 ldrb r1, [r4, #0xe] movs r0, #8 ands r0, r1 cmp r0, #0 beq _080772C6 adds r0, r4, #0 bl sub_08077F10 cmp r0, #0 beq _080772C6 movs r0, #1 strb r0, [r4, #7] _080772C6: movs r0, #0x71 bl GetInventoryValue cmp r0, #1 bne _08077318 ldrb r1, [r4, #0xe] movs r5, #7 adds r0, r5, #0 ands r0, r1 cmp r0, #3 beq _08077300 adds r0, r4, #0 movs r1, #2 bl sub_08077E3C ldr r3, _080772F8 @ =gLinkEntity ldr r2, _080772FC @ =gUnk_0811BE16 ldrb r1, [r4, #0xe] adds r0, r5, #0 ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] lsls r0, r0, #1 b _0807732E .align 2, 0 _080772F8: .4byte gLinkEntity _080772FC: .4byte gUnk_0811BE16 _08077300: adds r0, r4, #0 bl sub_08077E24 ldr r3, _08077310 @ =gLinkEntity ldr r2, _08077314 @ =gUnk_0811BE16 ldrb r1, [r4, #0xe] adds r0, r5, #0 b _08077326 .align 2, 0 _08077310: .4byte gLinkEntity _08077314: .4byte gUnk_0811BE16 _08077318: adds r0, r4, #0 bl sub_08077E24 ldr r3, _0807736C @ =gLinkEntity ldr r2, _08077370 @ =gUnk_0811BE16 ldrb r1, [r4, #0xe] movs r0, #7 _08077326: ands r0, r1 lsls r0, r0, #1 adds r0, r0, r2 ldrh r0, [r0] _0807732E: strh r0, [r3, #0x24] ldr r5, _0807736C @ =gLinkEntity ldrb r0, [r5, #0x14] lsls r0, r0, #2 strb r0, [r5, #0x15] movs r1, #0x24 ldrsh r0, [r5, r1] cmp r0, #0 beq _08077344 bl sub_08079E08 _08077344: ldrb r1, [r4, #0xe] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0807738C ldrb r0, [r4, #7] cmp r0, #0 beq _08077374 adds r0, r5, #0 adds r0, #0x59 movs r1, #1 strb r1, [r0] bl sub_080774A0 cmp r0, #0 beq _08077374 movs r0, #0 strb r0, [r4, #7] b _0807743E .align 2, 0 _0807736C: .4byte gLinkEntity _08077370: .4byte gUnk_0811BE16 _08077374: adds r0, r4, #0 adds r1, r6, #0 bl sub_08077E78 ldr r0, _08077388 @ =gUnk_03003F80 adds r0, #0x3d movs r1, #0 strb r1, [r0] b _0807743E .align 2, 0 _08077388: .4byte gUnk_03003F80 _0807738C: movs r0, #0x60 ands r0, r1 cmp r0, #0 beq _0807743E adds r0, r5, #0 adds r0, #0x59 movs r6, #1 strb r6, [r0] adds r0, r5, #0 bl sub_0807B5B0 cmp r0, #0 beq _080773BC movs r0, #0x84 lsls r0, r0, #1 bl sub_080A3268 ldrb r2, [r4, #0xe] adds r0, r5, #0 movs r1, #0x1e movs r3, #0 bl sub_080A2988 b _0807743E _080773BC: ldr r1, _08077440 @ =0x0000051C adds r0, r4, #0 bl sub_08077DF4 adds r0, r5, #0 movs r1, #0x1d movs r2, #0 bl CreateFX adds r3, r0, #0 cmp r3, #0 beq _080773F6 ldrb r0, [r4, #0xa] strb r0, [r3, #0x14] adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 adds r3, #0x29 movs r0, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] _080773F6: adds r0, r5, #0 movs r1, #0x1d movs r2, #0 bl CreateFX adds r3, r0, #0 cmp r3, #0 beq _08077432 ldrb r0, [r4, #0xa] strb r0, [r3, #0x14] adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 movs r0, #0x29 adds r0, r0, r3 mov ip, r0 movs r0, #7 ands r1, r0 mov r0, ip ldrb r2, [r0] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 mov r1, ip strb r0, [r1] strb r6, [r3, #0xf] _08077432: movs r0, #3 strb r0, [r4, #4] strb r6, [r4, #5] ldr r0, _08077444 @ =0x00000119 bl sub_080A3268 _0807743E: pop {r4, r5, r6, pc} .align 2, 0 _08077440: .4byte 0x0000051C _08077444: .4byte 0x00000119 thumb_func_start sub_08077448 sub_08077448: @ 0x08077448 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 ldr r2, _08077498 @ =gLinkEntity ldrb r0, [r2, #0x14] lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 strb r0, [r2, #0x15] movs r0, #0x80 lsls r0, r0, #1 strh r0, [r2, #0x24] ldrb r1, [r4, #0xe] movs r0, #1 ands r0, r1 cmp r0, #0 beq _08077474 ldrb r0, [r4, #5] cmp r0, #0 beq _08077474 bl sub_08079E08 _08077474: adds r0, r4, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08077494 ldr r0, _0807749C @ =gUnk_03003F80 adds r0, #0x3d movs r1, #0 strb r1, [r0] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08077494: pop {r4, r5, pc} .align 2, 0 _08077498: .4byte gLinkEntity _0807749C: .4byte gUnk_03003F80 thumb_func_start sub_080774A0 sub_080774A0: @ 0x080774A0 push {r4, r5, r6, r7, lr} ldr r3, _080774FC @ =gLinkEntity movs r0, #0x2e ldrsh r2, [r3, r0] ldr r5, _08077500 @ =gUnk_0811BE1E ldrb r0, [r3, #0x14] movs r1, #6 ands r1, r0 adds r0, r1, r5 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 adds r2, r2, r0 ldr r4, _08077504 @ =gUnk_03000BF0 ldrh r0, [r4, #6] subs r2, r2, r0 asrs r6, r2, #4 movs r2, #0x3f ands r6, r2 movs r7, #0x32 ldrsh r0, [r3, r7] adds r1, #1 adds r1, r1, r5 ldrb r1, [r1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 ldrh r1, [r4, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r2 lsls r0, r0, #6 orrs r6, r0 adds r4, r3, #0 adds r4, #0x38 ldrb r1, [r4] adds r0, r6, #0 bl sub_080002E0 cmp r0, #0x16 bhi _080774F6 cmp r0, #0xe bhi _08077508 _080774F6: movs r0, #0 b _0807751A .align 2, 0 _080774FC: .4byte gLinkEntity _08077500: .4byte gUnk_0811BE1E _08077504: .4byte gUnk_03000BF0 _08077508: adds r0, r6, #0 ldrb r1, [r4] bl sub_080002C8 cmp r0, #0x56 bne _08077518 movs r0, #0x56 b _0807751A _08077518: movs r0, #1 _0807751A: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807751C sub_0807751C: @ 0x0807751C push {lr} ldr r3, _08077530 @ =gUnk_0811BE28 ldrb r2, [r0, #4] lsls r2, r2, #2 adds r2, r2, r3 ldr r2, [r2] bl _call_via_r2 pop {pc} .align 2, 0 _08077530: .4byte gUnk_0811BE28 thumb_func_start sub_08077534 sub_08077534: @ 0x08077534 push {r4, lr} adds r4, r0, #0 bl sub_08077D38 ldr r0, _08077570 @ =gLinkEntity bl sub_0806F948 adds r0, r4, #0 bl sub_08077BB8 ldrb r1, [r4, #9] movs r0, #0xf orrs r0, r1 strb r0, [r4, #9] ldrb r1, [r4, #1] ldr r0, _08077574 @ =gUnk_02002A40 adds r0, r0, r1 adds r0, #0x9a ldrb r0, [r0] strb r0, [r4, #7] ldrb r0, [r4, #7] subs r0, #0x20 cmp r0, #0x11 bhi _080775F8 lsls r0, r0, #2 ldr r1, _08077578 @ =_0807757C adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08077570: .4byte gLinkEntity _08077574: .4byte gUnk_02002A40 _08077578: .4byte _0807757C _0807757C: @ jump table .4byte _080775C4 @ case 0 .4byte _080775D4 @ case 1 .4byte _080775D4 @ case 2 .4byte _080775D4 @ case 3 .4byte _080775D4 @ case 4 .4byte _080775D4 @ case 5 .4byte _080775F8 @ case 6 .4byte _080775F8 @ case 7 .4byte _080775F8 @ case 8 .4byte _080775D4 @ case 9 .4byte _080775D4 @ case 10 .4byte _080775D4 @ case 11 .4byte _080775D4 @ case 12 .4byte _080775D4 @ case 13 .4byte _080775D4 @ case 14 .4byte _080775F8 @ case 15 .4byte _080775F8 @ case 16 .4byte _080775F8 @ case 17 _080775C4: ldr r1, _080775D0 @ =0x00000614 adds r0, r4, #0 bl sub_08077DF4 b _08077610 .align 2, 0 _080775D0: .4byte 0x00000614 _080775D4: movs r0, #3 strb r0, [r4, #4] ldr r1, _080775F0 @ =gLinkEntity movs r0, #4 strb r0, [r1, #0x14] ldrb r2, [r1, #0x18] subs r0, #0x45 ands r0, r2 strb r0, [r1, #0x18] ldr r1, _080775F4 @ =0x000002DF adds r0, r4, #0 bl sub_08077DF4 b _08077606 .align 2, 0 _080775F0: .4byte gLinkEntity _080775F4: .4byte 0x000002DF _080775F8: movs r0, #3 strb r0, [r4, #4] movs r1, #0xc2 lsls r1, r1, #3 adds r0, r4, #0 bl sub_08077DF4 _08077606: ldr r2, _08077614 @ =gLinkEntity ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] _08077610: pop {r4, pc} .align 2, 0 _08077614: .4byte gLinkEntity thumb_func_start sub_08077618 sub_08077618: @ 0x08077618 push {r4, lr} adds r4, r0, #0 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08077638 movs r1, #0xc3 lsls r1, r1, #3 adds r0, r4, #0 bl sub_08077DF4 ldrb r0, [r4, #4] adds r0, #1 strb r0, [r4, #4] b _0807763E _08077638: adds r0, r4, #0 bl sub_08077E24 _0807763E: pop {r4, pc} thumb_func_start sub_08077640 sub_08077640: @ 0x08077640 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08077666 ldr r2, _08077668 @ =gLinkEntity ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08077666: pop {r4, r5, pc} .align 2, 0 _08077668: .4byte gLinkEntity thumb_func_start sub_0807766C sub_0807766C: @ 0x0807766C push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08077E24 ldrb r1, [r4, #0xe] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _08077692 ldr r2, _08077694 @ =gLinkEntity ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 _08077692: pop {r4, r5, pc} .align 2, 0 _08077694: .4byte gLinkEntity thumb_func_start sub_08077698 sub_08077698: @ 0x08077698 push {r4, r5, lr} adds r4, r0, #0 ldr r2, _0807771C @ =gUnk_03003F80 ldrb r1, [r2, #3] movs r0, #0xfe ands r0, r1 strb r0, [r2, #3] ldrb r1, [r2, #4] movs r0, #0xf ands r0, r1 strb r0, [r2, #4] ldrb r0, [r2, #7] ldrb r3, [r2, #2] orrs r0, r3 movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08077700 movs r0, #0x40 ands r0, r3 cmp r0, #0 bne _08077700 adds r0, r2, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _08077700 adds r0, r4, #0 bl sub_08077758 cmp r0, #0 beq _08077700 bl sub_080777A0 cmp r0, #0 bne _08077700 ldr r4, _08077720 @ =gUnk_02002A40 adds r0, r4, #0 adds r0, #0xb4 ldrb r0, [r0] movs r1, #1 movs r2, #0 bl sub_08077880 adds r4, #0xb5 ldrb r0, [r4] movs r1, #2 movs r2, #0 bl sub_08077880 bl sub_080778CC _08077700: movs r5, #0 ldr r4, _08077724 @ =gUnk_03000B80 _08077704: ldrb r0, [r4, #9] cmp r0, #0 beq _08077712 adds r0, r4, #0 adds r1, r5, #0 bl sub_080752E8 _08077712: adds r4, #0x1c adds r5, #1 cmp r5, #3 bls _08077704 pop {r4, r5, pc} .align 2, 0 _0807771C: .4byte gUnk_03003F80 _08077720: .4byte gUnk_02002A40 _08077724: .4byte gUnk_03000B80 thumb_func_start sub_08077728 sub_08077728: @ 0x08077728 push {lr} cmp r0, #0 bne _08077744 ldr r0, _08077740 @ =gUnk_02002A40 adds r0, #0xb4 ldrb r0, [r0] movs r1, #1 movs r2, #1 bl sub_08077880 b _08077752 .align 2, 0 _08077740: .4byte gUnk_02002A40 _08077744: ldr r0, _08077754 @ =gUnk_02002A40 adds r0, #0xb5 ldrb r0, [r0] movs r1, #2 movs r2, #1 bl sub_08077880 _08077752: pop {pc} .align 2, 0 _08077754: .4byte gUnk_02002A40 thumb_func_start sub_08077758 sub_08077758: @ 0x08077758 push {lr} adds r3, r0, #0 ldr r2, _08077794 @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #0x80 lsls r0, r0, #7 ands r0, r1 cmp r0, #0 bne _0807779C movs r0, #0xd5 lsls r0, r0, #4 ands r1, r0 cmp r1, #0 bne _08077798 ldrb r0, [r2, #0x1e] ldrb r1, [r2, #0x1a] orrs r1, r0 adds r0, r3, #0 adds r0, #0x7a ldrh r0, [r0] orrs r1, r0 cmp r1, #0 bne _0807779C adds r0, r3, #0 adds r0, #0x42 ldrb r0, [r0] cmp r0, #0 bne _0807779C movs r0, #1 b _0807779E .align 2, 0 _08077794: .4byte gUnk_03003F80 _08077798: bl sub_0807A108 _0807779C: movs r0, #0 _0807779E: pop {pc} thumb_func_start sub_080777A0 sub_080777A0: @ 0x080777A0 push {r4, lr} ldr r3, _080777D0 @ =gUnk_03003F80 adds r0, r3, #0 adds r0, #0x92 ldrh r1, [r0] movs r4, #0x80 adds r0, r4, #0 ands r0, r1 cmp r0, #0 beq _08077870 ldr r1, [r3, #0x30] movs r0, #0x80 lsls r0, r0, #0xf ands r0, r1 cmp r0, #0 beq _080777D4 adds r1, r3, #0 adds r1, #0xa0 movs r0, #1 strb r0, [r1] bl sub_0807A108 _080777CC: movs r0, #1 b _0807787C .align 2, 0 _080777D0: .4byte gUnk_03003F80 _080777D4: ldr r2, _080777F4 @ =gUnk_02033A90 ldrb r0, [r2, #0x18] cmp r0, #2 beq _080777FC cmp r0, #3 beq _08077810 ldr r0, _080777F8 @ =gUnk_0200AF00 adds r0, #0x2c ldrb r0, [r0] cmp r0, #0xc bne _0807787A adds r2, r3, #0 ldrb r0, [r2, #0x1c] cmp r0, #0 bne _0807787A b _08077838 .align 2, 0 _080777F4: .4byte gUnk_02033A90 _080777F8: .4byte gUnk_0200AF00 _080777FC: ldrb r0, [r2, #0x1a] cmp r0, #0 bne _080777CC ldr r1, _0807780C @ =gLinkEntity ldrb r0, [r1, #0xd] adds r0, #1 strb r0, [r1, #0xd] b _080777CC .align 2, 0 _0807780C: .4byte gLinkEntity _08077810: ldrb r0, [r2, #0x1a] cmp r0, #0 bne _0807787A ands r1, r4 cmp r1, #0 beq _0807787A ldr r0, _08077834 @ =gLinkEntity ldrb r1, [r0, #0xd] adds r1, #1 strb r1, [r0, #0xd] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0xb4 bl sub_0805E4E0 b _080777CC .align 2, 0 _08077834: .4byte gLinkEntity _08077838: ldrb r0, [r2, #0x12] cmp r0, #0x11 beq _0807787A adds r0, r2, #0 adds r0, #0x90 ldrh r1, [r0] movs r0, #0xf0 lsls r0, r0, #4 ands r0, r1 cmp r0, #0 beq _0807787A ldr r0, [r2, #0x30] ldr r1, _0807786C @ =0x00040400 ands r0, r1 cmp r0, #0 bne _0807787A ldrb r0, [r2, #2] cmp r0, #0 bne _0807787A ldrb r0, [r2, #4] cmp r0, #0 bne _0807787A movs r0, #0x18 strb r0, [r2, #0xc] b _0807787A .align 2, 0 _0807786C: .4byte 0x00040400 _08077870: ldr r0, [r3, #0x30] movs r1, #0x20 ands r0, r1 cmp r0, #0 bne _080777CC _0807787A: movs r0, #0 _0807787C: pop {r4, pc} .align 2, 0 thumb_func_start sub_08077880 sub_08077880: @ 0x08077880 push {r4, r5, r6, lr} adds r4, r0, #0 adds r6, r1, #0 subs r0, r4, #1 cmp r0, #0x1e bhi _080778C0 lsls r0, r4, #1 adds r0, r0, r4 lsls r0, r0, #2 ldr r1, _080778C4 @ =gUnk_0811BE48 adds r5, r0, r1 ldr r1, _080778C8 @ =gUnk_03004010 ldrb r0, [r5] cmp r0, #0 beq _080778A0 adds r1, #2 _080778A0: ldrh r0, [r1] ands r0, r6 cmp r0, #0 bne _080778AC cmp r2, #0 beq _080778C0 _080778AC: adds r0, r4, #0 bl sub_0807794C adds r1, r0, #0 cmp r1, #0 beq _080778C0 ldrb r0, [r5, #1] strb r0, [r1, #9] strb r4, [r1, #1] strb r6, [r1, #3] _080778C0: pop {r4, r5, r6, pc} .align 2, 0 _080778C4: .4byte gUnk_0811BE48 _080778C8: .4byte gUnk_03004010 thumb_func_start sub_080778CC sub_080778CC: @ 0x080778CC push {lr} ldr r2, _08077920 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08077924 @ =0x000400A0 ands r0, r1 cmp r0, #0 bne _0807791C ldr r0, _08077928 @ =gLinkEntity adds r0, #0x79 ldrb r0, [r0] cmp r0, #0 bne _080778FA ldrb r0, [r2, #5] cmp r0, #0 bne _080778FA adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #8 ands r0, r1 cmp r0, #0 beq _0807791C _080778FA: bl sub_080789A8 cmp r0, #0 bne _08077910 ldr r0, _08077920 @ =gUnk_03003F80 adds r0, #0x90 ldrh r1, [r0] ldr r0, _0807792C @ =0x00000F03 ands r0, r1 cmp r0, #0 bne _0807791C _08077910: movs r0, #0x1b bl sub_0807794C adds r1, r0, #0 cmp r1, #0 bne _08077930 _0807791C: movs r0, #0 b _08077940 .align 2, 0 _08077920: .4byte gUnk_03003F80 _08077924: .4byte 0x000400A0 _08077928: .4byte gLinkEntity _0807792C: .4byte 0x00000F03 _08077930: movs r0, #0x1b strb r0, [r1, #1] ldr r0, _08077944 @ =gUnk_0811BE48 ldr r2, _08077948 @ =0x00000145 adds r0, r0, r2 ldrb r0, [r0] strb r0, [r1, #9] movs r0, #1 _08077940: pop {pc} .align 2, 0 _08077944: .4byte gUnk_0811BE48 _08077948: .4byte 0x00000145 thumb_func_start sub_0807794C sub_0807794C: @ 0x0807794C push {lr} adds r2, r0, #0 ldr r0, _080779B8 @ =gUnk_03003F80 ldrb r1, [r0, #0xc] adds r3, r0, #0 cmp r1, #0x18 bne _0807795E cmp r2, #0x1b bne _080779B2 _0807795E: ldr r0, [r3, #0x30] movs r1, #0x88 lsls r1, r1, #0xf ands r0, r1 cmp r0, #0 beq _0807796E cmp r2, #6 bhi _080779B2 _0807796E: ldrb r0, [r3, #2] cmp r0, #0 bne _0807797C ldr r0, _080779BC @ =gLinkEntity ldr r0, [r0, #0x34] cmp r0, #0 beq _08077980 _0807797C: cmp r2, #6 bhi _080779B2 _08077980: ldr r0, [r3, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0807799A ldr r0, _080779C0 @ =gUnk_0811BE48 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r1, r1, r0 ldrb r0, [r1, #8] cmp r0, #0 beq _080779B2 _0807799A: ldrb r0, [r3, #0x12] cmp r0, #0x11 bne _080779C4 adds r0, r3, #0 adds r0, #0x37 ldrb r0, [r0] cmp r0, #0 beq _080779C4 adds r0, r2, #0 subs r0, #0x14 cmp r0, #1 bls _080779C4 _080779B2: movs r0, #0 b _080779DE .align 2, 0 _080779B8: .4byte gUnk_03003F80 _080779BC: .4byte gLinkEntity _080779C0: .4byte gUnk_0811BE48 _080779C4: ldr r1, _080779E0 @ =gUnk_0811BE48 lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 adds r0, r0, r1 ldrb r0, [r0, #2] ldr r1, _080779E4 @ =gUnk_0811BFC8 lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r2, #0 bl _call_via_r1 _080779DE: pop {pc} .align 2, 0 _080779E0: .4byte gUnk_0811BE48 _080779E4: .4byte gUnk_0811BFC8 thumb_func_start sub_080779E8 sub_080779E8: @ 0x080779E8 movs r0, #0 bx lr thumb_func_start sub_080779EC sub_080779EC: @ 0x080779EC push {lr} ldr r1, _08077A00 @ =gUnk_03000B80 adds r0, r1, #0 adds r0, #0x25 ldrb r0, [r0] cmp r0, #0 bne _08077A04 adds r0, r1, #0 adds r0, #0x1c b _08077A16 .align 2, 0 _08077A00: .4byte gUnk_03000B80 _08077A04: adds r0, r1, #0 adds r0, #0x41 ldrb r0, [r0] cmp r0, #0 beq _08077A12 movs r0, #0 b _08077A16 _08077A12: adds r0, r1, #0 adds r0, #0x38 _08077A16: pop {pc} thumb_func_start sub_08077A18 sub_08077A18: @ 0x08077A18 push {lr} adds r1, r0, #0 ldr r0, _08077A3C @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _08077A44 ldr r0, _08077A40 @ =gUnk_03000B80 ldrb r2, [r0, #0x1d] cmp r1, r2 beq _08077A44 adds r0, #0x39 ldrb r0, [r0] cmp r1, r0 beq _08077A44 adds r0, r1, #0 bl sub_080779EC b _08077A46 .align 2, 0 _08077A3C: .4byte gUnk_03003F80 _08077A40: .4byte gUnk_03000B80 _08077A44: movs r0, #0 _08077A46: pop {pc} thumb_func_start sub_08077A48 sub_08077A48: @ 0x08077A48 push {r4, r5, r6, lr} adds r2, r0, #0 ldr r6, _08077A88 @ =gUnk_03003F80 ldrb r0, [r6, #5] cmp r0, #0 bne _08077A94 ldrb r1, [r6, #2] movs r0, #0x20 ands r0, r1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 bne _08077A94 ldr r0, _08077A8C @ =gUnk_0811BE48 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r1, r1, r0 ldr r5, _08077A90 @ =gUnk_03000B80 ldrb r0, [r1, #1] ldrb r1, [r5, #9] cmp r0, r1 blo _08077A94 adds r0, r5, #0 movs r1, #0 bl sub_08077E78 strb r4, [r6, #1] strb r4, [r6, #0x1c] strb r4, [r6, #0x1b] adds r0, r5, #0 b _08077A96 .align 2, 0 _08077A88: .4byte gUnk_03003F80 _08077A8C: .4byte gUnk_0811BE48 _08077A90: .4byte gUnk_03000B80 _08077A94: movs r0, #0 _08077A96: pop {r4, r5, r6, pc} thumb_func_start sub_08077A98 sub_08077A98: @ 0x08077A98 push {lr} ldr r0, _08077AB8 @ =gUnk_02002A40 adds r0, #0xac ldrb r0, [r0] cmp r0, #0 beq _08077AC4 ldr r0, _08077ABC @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _08077AC4 ldr r1, _08077AC0 @ =gUnk_03000B80 ldrb r0, [r1, #9] cmp r0, #0 bne _08077AC4 adds r0, r1, #0 b _08077AC6 .align 2, 0 _08077AB8: .4byte gUnk_02002A40 _08077ABC: .4byte gUnk_03003F80 _08077AC0: .4byte gUnk_03000B80 _08077AC4: movs r0, #0 _08077AC6: pop {pc} thumb_func_start sub_08077AC8 sub_08077AC8: @ 0x08077AC8 push {lr} movs r2, #0 ldr r1, _08077AD8 @ =gUnk_03000B80 _08077ACE: ldrb r0, [r1, #9] cmp r0, #0 beq _08077ADC movs r0, #0 b _08077AE6 .align 2, 0 _08077AD8: .4byte gUnk_03000B80 _08077ADC: adds r1, #0x1c adds r2, #1 cmp r2, #3 bls _08077ACE ldr r0, _08077AE8 @ =gUnk_03000BD4 _08077AE6: pop {pc} .align 2, 0 _08077AE8: .4byte gUnk_03000BD4 thumb_func_start sub_08077AEC sub_08077AEC: @ 0x08077AEC push {lr} ldr r0, _08077B14 @ =gUnk_03000BD4 movs r1, #3 bl sub_08077E78 ldr r2, _08077B18 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08077B1C @ =0xFF7FFFFF ands r0, r1 str r0, [r2, #0x30] movs r0, #0x10 bl sub_0805436C adds r1, r0, #0 cmp r1, #2 beq _08077B12 movs r0, #0xf bl sub_08054414 _08077B12: pop {pc} .align 2, 0 _08077B14: .4byte gUnk_03000BD4 _08077B18: .4byte gUnk_03003F80 _08077B1C: .4byte 0xFF7FFFFF thumb_func_start sub_08077B20 sub_08077B20: @ 0x08077B20 push {lr} bl sub_08077B2C bl sub_08077AEC pop {pc} thumb_func_start sub_08077B2C sub_08077B2C: @ 0x08077B2C push {r4, r5, lr} movs r4, #0 ldr r5, _08077B88 @ =gUnk_03000B80 _08077B32: adds r0, r5, #0 adds r1, r4, #0 bl sub_08077E78 adds r5, #0x1c adds r4, #1 cmp r4, #2 bls _08077B32 ldr r2, _08077B8C @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x3d movs r3, #0 strb r3, [r0] strb r3, [r2, #0x1c] subs r0, #0x1c strb r3, [r0] strb r3, [r2, #1] strb r3, [r2, #0xe] strb r3, [r2, #0x1e] strb r3, [r2, #0x1b] strb r3, [r2, #3] strb r3, [r2, #5] ldr r0, [r2, #0x30] ldr r1, _08077B90 @ =0xF7FBFFFF ands r0, r1 str r0, [r2, #0x30] ldr r0, _08077B94 @ =gLinkEntity str r3, [r0, #0x70] ldrb r1, [r2, #2] movs r0, #0xc0 ands r0, r1 cmp r0, #0 bne _08077B76 strb r3, [r2, #2] _08077B76: adds r1, r2, #0 adds r1, #0xa8 ldrb r0, [r1] cmp r0, #4 bgt _08077B86 cmp r0, #2 blt _08077B86 strb r3, [r1] _08077B86: pop {r4, r5, pc} .align 2, 0 _08077B88: .4byte gUnk_03000B80 _08077B8C: .4byte gUnk_03003F80 _08077B90: .4byte 0xF7FBFFFF _08077B94: .4byte gLinkEntity thumb_func_start sub_08077B98 sub_08077B98: @ 0x08077B98 push {r4, lr} adds r1, r0, #0 ldr r4, _08077BB4 @ =gUnk_03003F80 ldr r0, [r4, #0x2c] cmp r0, #0 beq _08077BAA ldrb r0, [r0, #9] cmp r0, #1 beq _08077BB2 _08077BAA: adds r0, r1, #0 bl sub_08077C54 str r0, [r4, #0x2c] _08077BB2: pop {r4, pc} .align 2, 0 _08077BB4: .4byte gUnk_03003F80 thumb_func_start sub_08077BB8 sub_08077BB8: @ 0x08077BB8 push {lr} bl sub_08077C54 adds r1, r0, #0 cmp r1, #0 beq _08077BC8 movs r0, #0x20 strb r0, [r1, #0x10] _08077BC8: ldr r0, _08077BD0 @ =gUnk_03003F80 str r1, [r0, #0x2c] pop {pc} .align 2, 0 _08077BD0: .4byte gUnk_03003F80 thumb_func_start sub_08077BD4 sub_08077BD4: @ 0x08077BD4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08077C04 @ =gUnk_0811BE48 ldrb r1, [r4, #1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r5 ldrb r1, [r0, #3] adds r0, r4, #0 bl sub_08077C94 cmp r0, #0 bne _08077C08 ldrb r1, [r4, #1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r5 ldrb r1, [r0, #3] adds r0, r4, #0 bl sub_08077C3C b _08077C0A .align 2, 0 _08077C04: .4byte gUnk_0811BE48 _08077C08: movs r0, #0 _08077C0A: pop {r4, r5, pc} thumb_func_start sub_08077C0C sub_08077C0C: @ 0x08077C0C push {r4, r5, lr} adds r5, r0, #0 ldr r2, _08077C34 @ =gUnk_0811BE48 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r2 ldrb r4, [r0, #3] adds r0, r5, #0 adds r1, r4, #0 bl sub_08077C94 cmp r0, #0 bne _08077C38 adds r0, r5, #0 adds r1, r4, #0 bl sub_08077C3C b _08077C3A .align 2, 0 _08077C34: .4byte gUnk_0811BE48 _08077C38: movs r0, #0 _08077C3A: pop {r4, r5, pc} thumb_func_start sub_08077C3C sub_08077C3C: @ 0x08077C3C push {r4, lr} adds r4, r0, #0 adds r0, r1, #0 ldrb r3, [r4, #1] movs r1, #0 movs r2, #0 bl sub_08077CB8 cmp r0, #0 beq _08077C52 str r4, [r0, #0x50] _08077C52: pop {r4, pc} thumb_func_start sub_08077C54 sub_08077C54: @ 0x08077C54 push {r4, r5, lr} adds r5, r0, #0 bl sub_0805E744 adds r4, r0, #0 cmp r4, #0 beq _08077C8C ldr r2, _08077C90 @ =gUnk_0811BE48 ldrb r1, [r5, #1] lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r2 ldrb r0, [r0, #3] strb r0, [r4, #9] movs r0, #8 strb r0, [r4, #8] movs r0, #0xa0 strb r0, [r4, #0x10] str r5, [r4, #0x50] ldrb r1, [r5, #1] adds r0, r4, #0 adds r0, #0x68 strb r1, [r0] adds r0, r4, #0 movs r1, #2 bl sub_0805EA2C _08077C8C: adds r0, r4, #0 pop {r4, r5, pc} .align 2, 0 _08077C90: .4byte gUnk_0811BE48 thumb_func_start sub_08077C94 sub_08077C94: @ 0x08077C94 push {lr} ldr r2, _08077CB4 @ =gUnk_0811BE48 lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 adds r0, r0, r2 ldrb r1, [r0, #3] movs r0, #8 movs r2, #2 bl sub_0805EB00 cmp r0, #0 bne _08077CB0 movs r0, #0 _08077CB0: pop {pc} .align 2, 0 _08077CB4: .4byte gUnk_0811BE48 thumb_func_start sub_08077CB8 sub_08077CB8: @ 0x08077CB8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 mov r8, r3 bl GetEmptyEntity adds r4, r0, #0 cmp r4, #0 beq _08077CEE movs r0, #0x80 strb r0, [r4, #0x10] movs r0, #8 strb r0, [r4, #8] strb r5, [r4, #9] strb r6, [r4, #0xa] strb r7, [r4, #0xb] adds r0, r4, #0 adds r0, #0x68 mov r1, r8 strb r1, [r0] adds r0, r4, #0 movs r1, #2 bl sub_0805EA2C _08077CEE: adds r0, r4, #0 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08077CF8 sub_08077CF8: @ 0x08077CF8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 mov r8, r3 bl sub_0805E744 adds r4, r0, #0 cmp r4, #0 beq _08077D2E movs r0, #0x80 strb r0, [r4, #0x10] movs r0, #8 strb r0, [r4, #8] strb r5, [r4, #9] strb r6, [r4, #0xa] strb r7, [r4, #0xb] adds r0, r4, #0 adds r0, #0x68 mov r1, r8 strb r1, [r0] adds r0, r4, #0 movs r1, #2 bl sub_0805EA2C _08077D2E: adds r0, r4, #0 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08077D38 sub_08077D38: @ 0x08077D38 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r4, r0, #0 mov r8, r1 ldr r3, _08077D94 @ =gUnk_03003F80 movs r7, #8 adds r1, r7, #0 mov r0, r8 asrs r1, r0 ldrb r2, [r3, #0xa] adds r0, r1, #0 orrs r0, r2 strb r0, [r3, #0xa] ldrb r0, [r3, #0xb] orrs r1, r0 strb r1, [r3, #0xb] ldr r0, _08077D98 @ =gLinkEntity ldrb r0, [r0, #0x14] strb r0, [r4, #0xa] ldrb r0, [r4, #4] cmp r0, #0 bne _08077D6A adds r0, #1 strb r0, [r4, #4] _08077D6A: ldrb r2, [r4, #1] lsls r0, r2, #1 adds r0, r0, r2 lsls r0, r0, #2 ldr r1, _08077D9C @ =gUnk_0811BE48 adds r5, r0, r1 ldrh r0, [r5, #4] cmp r0, #0 beq _08077DCC ldr r0, [r3, #0x30] ands r0, r7 cmp r0, #0 beq _08077DC4 cmp r2, #0xd beq _08077DB2 cmp r2, #0xd bgt _08077DA0 cmp r2, #1 beq _08077DAC b _08077DB4 .align 2, 0 _08077D94: .4byte gUnk_03003F80 _08077D98: .4byte gLinkEntity _08077D9C: .4byte gUnk_0811BE48 _08077DA0: cmp r2, #0x1b bne _08077DB4 ldr r6, _08077DA8 @ =0x00000948 b _08077DB4 .align 2, 0 _08077DA8: .4byte 0x00000948 _08077DAC: movs r6, #0x81 lsls r6, r6, #3 b _08077DB4 _08077DB2: ldr r6, _08077DC0 @ =0x0000040C _08077DB4: adds r0, r4, #0 adds r1, r6, #0 bl sub_08077DF4 b _08077DCC .align 2, 0 _08077DC0: .4byte 0x0000040C _08077DC4: ldrh r1, [r5, #4] adds r0, r4, #0 bl sub_08077DF4 _08077DCC: ldrb r0, [r5, #6] strb r0, [r4, #0xf] ldrb r0, [r5, #7] cmp r0, #0 beq _08077DE8 ldr r2, _08077DF0 @ =gUnk_03003F80 movs r0, #8 mov r1, r8 asrs r0, r1 lsls r1, r0, #4 orrs r0, r1 ldrb r1, [r2, #4] orrs r0, r1 strb r0, [r2, #4] _08077DE8: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _08077DF0: .4byte gUnk_03003F80 thumb_func_start sub_08077DF4 sub_08077DF4: @ 0x08077DF4 push {r4, lr} adds r4, r0, #0 adds r2, r1, #0 strh r2, [r4, #0x10] movs r0, #0xff ands r0, r2 cmp r0, #0xb8 bls _08077E0A ldrb r0, [r4, #0xa] lsrs r0, r0, #1 adds r2, r2, r0 _08077E0A: ldr r0, _08077E20 @ =gLinkEntity lsrs r1, r2, #8 strh r1, [r0, #0x12] lsls r1, r2, #0x18 lsrs r1, r1, #0x18 bl sub_080042AC adds r0, r4, #0 bl sub_08077E54 pop {r4, pc} .align 2, 0 _08077E20: .4byte gLinkEntity thumb_func_start sub_08077E24 sub_08077E24: @ 0x08077E24 push {r4, lr} adds r4, r0, #0 ldr r0, _08077E38 @ =gLinkEntity bl sub_080042B8 adds r0, r4, #0 bl sub_08077E54 pop {r4, pc} .align 2, 0 _08077E38: .4byte gLinkEntity thumb_func_start sub_08077E3C sub_08077E3C: @ 0x08077E3C push {r4, lr} adds r4, r0, #0 ldr r0, _08077E50 @ =gLinkEntity bl sub_080042BA adds r0, r4, #0 bl sub_08077E54 pop {r4, pc} .align 2, 0 _08077E50: .4byte gLinkEntity thumb_func_start sub_08077E54 sub_08077E54: @ 0x08077E54 ldr r2, _08077E74 @ =gLinkEntity adds r1, r2, #0 adds r1, #0x58 ldrb r1, [r1] strb r1, [r0, #0xc] ldrb r1, [r2, #0x1e] strb r1, [r0, #0x12] adds r1, r2, #0 adds r1, #0x59 ldrb r1, [r1] strb r1, [r0, #0xd] adds r1, r2, #0 adds r1, #0x5a ldrb r1, [r1] strb r1, [r0, #0xe] bx lr .align 2, 0 _08077E74: .4byte gLinkEntity thumb_func_start sub_08077E78 sub_08077E78: @ 0x08077E78 push {r4, r5, lr} adds r5, r0, #0 adds r3, r1, #0 ldr r4, _08077EC4 @ =gUnk_03003F80 cmp r3, #0 bne _08077E9A ldr r2, [r4, #0x2c] cmp r2, #0 beq _08077E98 ldrb r0, [r2, #0x11] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #6 orrs r1, r0 strb r1, [r2, #0x11] _08077E98: str r3, [r4, #0x2c] _08077E9A: movs r2, #8 asrs r2, r3 lsls r1, r2, #4 orrs r1, r2 ldrb r0, [r4, #4] bics r0, r1 strb r0, [r4, #4] mvns r2, r2 ldrb r1, [r4, #0xa] adds r0, r2, #0 ands r0, r1 strb r0, [r4, #0xa] ldrb r0, [r4, #0xb] ands r2, r0 strb r2, [r4, #0xb] adds r0, r5, #0 movs r1, #0x1c bl sub_0801D630 pop {r4, r5, pc} .align 2, 0 _08077EC4: .4byte gUnk_03003F80 thumb_func_start sub_08077EC8 sub_08077EC8: @ 0x08077EC8 push {r4, lr} adds r4, r0, #0 ldr r0, _08077EDC @ =gUnk_03003F80 ldrb r1, [r0, #0x1b] movs r0, #8 ands r0, r1 cmp r0, #0 bne _08077EE0 movs r0, #0 b _08077EF8 .align 2, 0 _08077EDC: .4byte gUnk_03003F80 _08077EE0: movs r1, #0xb8 lsls r1, r1, #1 adds r0, r4, #0 bl sub_08077DF4 movs r0, #0x28 strb r0, [r4, #7] movs r0, #7 strb r0, [r4, #4] movs r0, #6 strb r0, [r4, #0xf] movs r0, #1 _08077EF8: pop {r4, pc} .align 2, 0 thumb_func_start sub_08077EFC sub_08077EFC: @ 0x08077EFC push {lr} ldr r1, _08077F0C @ =gUnk_03003F80 adds r1, #0x90 ldrh r1, [r1] bl sub_08077F24 pop {pc} .align 2, 0 _08077F0C: .4byte gUnk_03003F80 thumb_func_start sub_08077F10 sub_08077F10: @ 0x08077F10 push {lr} ldr r1, _08077F20 @ =gUnk_03003F80 adds r1, #0x92 ldrh r1, [r1] bl sub_08077F24 pop {pc} .align 2, 0 _08077F20: .4byte gUnk_03003F80 thumb_func_start sub_08077F24 sub_08077F24: @ 0x08077F24 push {lr} ldr r2, _08077F34 @ =gUnk_02002AE8 ldrb r3, [r0, #1] ldrb r0, [r2, #0xc] cmp r0, r3 bne _08077F38 movs r2, #1 b _08077F42 .align 2, 0 _08077F34: .4byte gUnk_02002AE8 _08077F38: ldrb r0, [r2, #0xd] movs r2, #0 cmp r0, r3 bne _08077F42 movs r2, #2 _08077F42: adds r0, r2, #0 ands r0, r1 cmp r0, #0 beq _08077F4C movs r0, #1 _08077F4C: pop {pc} .align 2, 0 thumb_func_start sub_08077F50 sub_08077F50: @ 0x08077F50 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_08079184 adds r0, r4, #0 adds r1, r5, #0 bl sub_08077E78 pop {r4, r5, pc} thumb_func_start sub_08077F64 sub_08077F64: @ 0x08077F64 push {lr} adds r2, r0, #0 ldr r0, _08077F7C @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #0 bne _08077F80 adds r0, r2, #0 bl sub_08077F50 movs r0, #0 b _08077F82 .align 2, 0 _08077F7C: .4byte gUnk_03003F80 _08077F80: movs r0, #1 _08077F82: pop {pc} thumb_func_start sub_08077F84 sub_08077F84: @ 0x08077F84 push {r4, lr} ldr r4, _08077FE0 @ =gLinkEntity adds r0, r4, #0 adds r0, #0x38 ldrb r1, [r0] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08077FDE movs r1, #0x2e ldrsh r0, [r4, r1] movs r2, #0x32 ldrsh r1, [r4, r2] subs r1, #0xc movs r2, #2 bl sub_080002A4 ldr r1, _08077FE4 @ =0xFFFFFCBD adds r0, r0, r1 cmp r0, #3 bhi _08077FDE adds r0, r4, #0 bl sub_0807AA80 ldr r2, _08077FE8 @ =gUnk_03003F80 ldrb r1, [r2, #2] movs r0, #8 orrs r0, r1 strb r0, [r2, #2] movs r0, #0x44 movs r1, #0 movs r2, #0 bl CreateObject adds r1, r0, #0 cmp r1, #0 beq _08077FDE ldr r0, [r4, #0x2c] str r0, [r1, #0x2c] ldrh r0, [r4, #0x32] subs r0, #0xc strh r0, [r1, #0x32] ldrh r0, [r4, #0x32] subs r0, #0xc strh r0, [r4, #0x32] _08077FDE: pop {r4, pc} .align 2, 0 _08077FE0: .4byte gLinkEntity _08077FE4: .4byte 0xFFFFFCBD _08077FE8: .4byte gUnk_03003F80 thumb_func_start sub_08077FEC sub_08077FEC: @ 0x08077FEC push {lr} ldr r0, _08078000 @ =gUnk_03004020 ldr r2, _08078004 @ =gUnk_0811BFE8 ldrb r1, [r0] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _08078000: .4byte gUnk_03004020 _08078004: .4byte gUnk_0811BFE8 thumb_func_start sub_08078008 sub_08078008: @ 0x08078008 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r6, _08078060 @ =gUnk_02002A40 adds r5, r6, #0 adds r5, #0xb4 ldrb r0, [r5] bl sub_0805449C cmp r0, #0 bne _0807802C adds r5, r6, #0 adds r5, #0xb5 ldrb r0, [r5] bl sub_0805449C movs r2, #0 cmp r0, #0 beq _0807802E _0807802C: ldrb r2, [r5] _0807802E: subs r0, r2, #1 cmp r0, #1 bhi _08078036 movs r2, #0 _08078036: cmp r2, #0 beq _08078068 ldr r0, _08078064 @ =gUnk_03003F80 ldrb r1, [r0, #0x1b] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _08078068 ldrb r0, [r4, #1] adds r0, #1 strb r0, [r4, #1] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0x14 ble _0807806C movs r0, #0xa strb r0, [r4, #1] movs r0, #3 strb r0, [r4] strb r2, [r4, #2] b _0807806C .align 2, 0 _08078060: .4byte gUnk_02002A40 _08078064: .4byte gUnk_03003F80 _08078068: movs r0, #0 strb r0, [r4, #1] _0807806C: movs r0, #0 pop {r4, r5, r6, pc} thumb_func_start sub_08078070 sub_08078070: @ 0x08078070 push {lr} adds r2, r0, #0 ldr r3, _08078098 @ =gUnk_03003F80 ldrb r1, [r3, #0x1b] movs r0, #0x20 ands r0, r1 cmp r0, #0 beq _080780D6 adds r0, r3, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #3 ands r0, r1 cmp r0, #0 beq _0807809C ldrh r0, [r2, #4] adds r0, #0xc b _080780A0 .align 2, 0 _08078098: .4byte gUnk_03003F80 _0807809C: ldrh r0, [r2, #4] adds r0, #6 _080780A0: strh r0, [r2, #4] movs r0, #4 ldrsh r1, [r2, r0] ldr r0, _080780BC @ =0x0000031F cmp r1, r0 ble _080780C0 adds r0, #1 strh r0, [r2, #4] movs r0, #4 strb r0, [r2] movs r0, #0xd8 bl sub_080A3268 b _080780DA .align 2, 0 _080780BC: .4byte 0x0000031F _080780C0: movs r1, #4 ldrsh r0, [r2, r1] movs r1, #0x14 bl Mod cmp r0, #0 bne _080780DA movs r0, #0xd7 bl sub_080A3268 b _080780DA _080780D6: movs r0, #1 strb r0, [r2] _080780DA: movs r0, #1 pop {pc} .align 2, 0 thumb_func_start sub_080780E0 sub_080780E0: @ 0x080780E0 push {lr} adds r2, r0, #0 ldr r0, _080780F4 @ =gUnk_03003F80 ldrb r1, [r0, #0x1b] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _080780F8 movs r0, #5 b _08078102 .align 2, 0 _080780F4: .4byte gUnk_03003F80 _080780F8: movs r0, #0x20 ands r0, r1 cmp r0, #0 bne _08078104 movs r0, #1 _08078102: strb r0, [r2] _08078104: movs r0, #1 pop {pc} thumb_func_start sub_08078108 sub_08078108: @ 0x08078108 push {lr} adds r1, r0, #0 ldrh r0, [r1, #4] subs r0, #1 strh r0, [r1, #4] lsls r0, r0, #0x10 cmp r0, #0 bge _08078120 movs r0, #0 strh r0, [r1, #4] movs r0, #2 strb r0, [r1] _08078120: movs r0, #1 pop {pc} thumb_func_start sub_08078124 sub_08078124: @ 0x08078124 push {lr} adds r1, r0, #0 ldrh r0, [r1, #4] subs r0, #0x10 strh r0, [r1, #4] lsls r0, r0, #0x10 cmp r0, #0 bge _0807813C movs r0, #0 strh r0, [r1, #4] movs r0, #2 strb r0, [r1] _0807813C: movs r0, #1 pop {pc} thumb_func_start sub_08078140 sub_08078140: @ 0x08078140 push {lr} adds r1, r0, #0 ldrb r0, [r1, #1] subs r0, #1 movs r2, #0 strb r0, [r1, #1] lsls r0, r0, #0x18 cmp r0, #0 blt _08078156 movs r0, #0 b _0807815C _08078156: strb r2, [r1, #1] strb r2, [r1] movs r0, #1 _0807815C: pop {pc} .align 2, 0 thumb_func_start sub_08078160 sub_08078160: @ 0x08078160 push {lr} ldr r1, _08078178 @ =gUnk_03003F80 adds r1, #0xa8 strb r0, [r1] ldr r2, _0807817C @ =gLinkEntity ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] bl sub_08078B48 pop {pc} .align 2, 0 _08078178: .4byte gUnk_03003F80 _0807817C: .4byte gLinkEntity thumb_func_start sub_08078180 sub_08078180: @ 0x08078180 push {r4, r5, r6, lr} ldr r0, _080781C8 @ =gUnk_0200AF00 adds r1, r0, #0 adds r1, #0x2f ldrb r1, [r1] adds r6, r0, #0 cmp r1, #0 beq _08078192 b _080782BC _08078192: movs r4, #0 ldr r5, _080781CC @ =gUnk_03003F80 ldrb r0, [r5, #2] cmp r0, #0 beq _0807819E b _080782B6 _0807819E: ldr r0, [r5, #0x30] ldr r1, _080781D0 @ =0x00104D00 ands r0, r1 cmp r0, #0 beq _080781AA b _080782B6 _080781AA: ldrb r0, [r5, #5] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bhi _080781D4 adds r1, r6, #0 adds r1, #0x2e ldrb r0, [r1] movs r4, #3 cmp r0, #0 bne _080781C4 b _080782B6 _080781C4: adds r4, r0, #0 b _080782B6 .align 2, 0 _080781C8: .4byte gUnk_0200AF00 _080781CC: .4byte gUnk_03003F80 _080781D0: .4byte 0x00104D00 _080781D4: adds r1, r6, #0 adds r1, #0x2d ldrb r0, [r1] cmp r0, #0 bne _080781C4 bl sub_080784E4 adds r1, r0, #0 ldr r0, [r1, #8] adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 bne _08078278 ldrb r0, [r1, #1] subs r0, #1 cmp r0, #9 bhi _080782B6 lsls r0, r0, #2 ldr r1, _08078204 @ =_08078208 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08078204: .4byte _08078208 _08078208: @ jump table .4byte _08078230 @ case 0 .4byte _080782B6 @ case 1 .4byte _08078254 @ case 2 .4byte _080782B6 @ case 3 .4byte _08078254 @ case 4 .4byte _08078254 @ case 5 .4byte _08078230 @ case 6 .4byte _0807823C @ case 7 .4byte _08078260 @ case 8 .4byte _0807826C @ case 9 _08078230: movs r4, #7 ldr r6, _08078238 @ =gUnk_0200AF00 b _080782B6 .align 2, 0 _08078238: .4byte gUnk_0200AF00 _0807823C: ldr r0, _0807824C @ =gUnk_02034350 ldrb r0, [r0, #6] ldr r6, _08078250 @ =gUnk_0200AF00 cmp r0, #0 bne _080782B6 movs r4, #9 b _080782B6 .align 2, 0 _0807824C: .4byte gUnk_02034350 _08078250: .4byte gUnk_0200AF00 _08078254: movs r4, #6 ldr r6, _0807825C @ =gUnk_0200AF00 b _080782B6 .align 2, 0 _0807825C: .4byte gUnk_0200AF00 _08078260: movs r4, #5 ldr r6, _08078268 @ =gUnk_0200AF00 b _080782B6 .align 2, 0 _08078268: .4byte gUnk_0200AF00 _0807826C: movs r4, #2 ldr r6, _08078274 @ =gUnk_0200AF00 b _080782B6 .align 2, 0 _08078274: .4byte gUnk_0200AF00 _08078278: bl sub_080789A8 cmp r0, #0 beq _080782A4 adds r0, r5, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #0xe beq _080782BC ldr r1, _080782A0 @ =gUnk_03003BE0 ldrb r0, [r1, #1] movs r4, #9 cmp r0, #2 bne _080782B6 ldr r0, [r1, #8] ldrb r0, [r0, #0x16] cmp r0, #1 bne _080782B6 movs r4, #8 b _080782B6 .align 2, 0 _080782A0: .4byte gUnk_03003BE0 _080782A4: adds r0, r5, #0 adds r0, #0xa8 ldrb r0, [r0] cmp r0, #1 bne _080782B6 ldrb r0, [r5, #0x1a] cmp r0, #0 bne _080782B6 movs r4, #0xc _080782B6: adds r0, r6, #0 adds r0, #0x2c strb r4, [r0] _080782BC: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080782C0 sub_080782C0: @ 0x080782C0 push {r4, r5, r6, lr} ldr r1, _080782D8 @ =gUnk_03003F80 adds r2, r1, #0 adds r2, #0xa8 ldrb r0, [r2] adds r4, r1, #0 cmp r0, #0 bne _080782DC adds r0, r4, #0 adds r0, #0xa9 ldrb r0, [r0] b _080782DE .align 2, 0 _080782D8: .4byte gUnk_03003F80 _080782DC: ldrb r0, [r2] _080782DE: subs r0, #2 cmp r0, #0x14 bhi _08078348 lsls r0, r0, #2 ldr r1, _080782F0 @ =_080782F4 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _080782F0: .4byte _080782F4 _080782F4: @ jump table .4byte _080784AC @ case 0 .4byte _080784AC @ case 1 .4byte _08078348 @ case 2 .4byte _08078348 @ case 3 .4byte _08078348 @ case 4 .4byte _08078348 @ case 5 .4byte _08078348 @ case 6 .4byte _08078348 @ case 7 .4byte _08078348 @ case 8 .4byte _08078348 @ case 9 .4byte _080784AC @ case 10 .4byte _08078348 @ case 11 .4byte _08078348 @ case 12 .4byte _08078348 @ case 13 .4byte _08078348 @ case 14 .4byte _08078348 @ case 15 .4byte _080784AC @ case 16 .4byte _08078348 @ case 17 .4byte _08078348 @ case 18 .4byte _080784AC @ case 19 .4byte _080784AC @ case 20 _08078348: adds r0, r4, #0 adds r0, #0x27 adds r2, r4, #0 adds r2, #0x26 ldrb r1, [r0] ldrb r0, [r2] orrs r0, r1 cmp r0, #0 beq _0807835C b _080784AC _0807835C: ldrb r0, [r4, #0x12] cmp r0, #1 bne _08078376 ldrb r0, [r4, #0x14] cmp r0, #0 bne _0807836A b _080784AC _0807836A: bl sub_08052B24 cmp r0, #0 beq _08078374 b _080784C4 _08078374: b _080784AC _08078376: ldr r0, [r4, #0x30] movs r1, #0x80 lsls r1, r1, #7 ands r0, r1 cmp r0, #0 beq _08078384 b _080784AC _08078384: bl sub_08052B24 cmp r0, #0 beq _0807838E b _080784C4 _0807838E: bl sub_080784E4 ldr r6, [r0, #8] cmp r6, #0 bne _0807839A b _080784AC _0807839A: ldrb r0, [r4, #5] cmp r0, #0 beq _080783B6 cmp r0, #4 beq _080783A6 b _080784AC _080783A6: ldr r0, _08078400 @ =gLinkEntity ldr r0, [r0, #0x74] ldr r0, [r0, #0x54] ldrh r1, [r0, #8] ldr r0, _08078404 @ =0x00000206 cmp r1, r0 beq _080783B6 b _080784AC _080783B6: ldr r2, _08078408 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #5 ands r0, r1 adds r4, r2, #0 cmp r0, #0 beq _0807842C ldr r5, _0807840C @ =gUnk_03003DF0 ldr r0, [r5, #4] ldrb r0, [r0, #3] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #0x63 bhi _0807842C movs r0, #0 bl sub_0801E738 ldr r0, _08078410 @ =gUnk_02002A40 ldr r1, _08078414 @ =0x0000012B adds r0, r0, r1 ldrb r0, [r0] cmp r0, #0 beq _08078418 ldr r1, [r5, #4] ldrb r0, [r1, #3] strb r0, [r5, #2] ldr r0, [r1, #8] adds r0, #0x39 movs r1, #2 strb r1, [r0] movs r0, #7 strb r0, [r4, #0xc] b _08078420 .align 2, 0 _08078400: .4byte gLinkEntity _08078404: .4byte 0x00000206 _08078408: .4byte gUnk_03003F80 _0807840C: .4byte gUnk_03003DF0 _08078410: .4byte gUnk_02002A40 _08078414: .4byte 0x0000012B _08078418: ldr r0, _08078428 @ =0x00000B65 movs r1, #0 bl sub_08078AA8 _08078420: movs r0, #0x13 bl sub_08078160 b _080784C4 .align 2, 0 _08078428: .4byte 0x00000B65 _0807842C: adds r0, r4, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x88 ands r0, r1 cmp r0, #0 beq _080784AC ldr r0, _08078450 @ =gUnk_03003DF0 ldr r0, [r0, #4] ldrb r0, [r0, #1] cmp r0, #0xa bhi _080784C4 lsls r0, r0, #2 ldr r1, _08078454 @ =_08078458 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08078450: .4byte gUnk_03003DF0 _08078454: .4byte _08078458 _08078458: @ jump table .4byte _080784C4 @ case 0 .4byte _08078484 @ case 1 .4byte _080784C4 @ case 2 .4byte _0807848E @ case 3 .4byte _080784C4 @ case 4 .4byte _0807848E @ case 5 .4byte _08078484 @ case 6 .4byte _0807848E @ case 7 .4byte _080784A4 @ case 8 .4byte _08078484 @ case 9 .4byte _08078484 @ case 10 _08078484: movs r0, #7 strb r0, [r4, #0xc] movs r0, #0x13 bl sub_08078160 _0807848E: adds r1, r6, #0 adds r1, #0x39 movs r2, #0 movs r0, #1 strb r0, [r1] ldr r0, _080784A0 @ =gUnk_03003DF0 strb r2, [r0, #2] b _080784C4 .align 2, 0 _080784A0: .4byte gUnk_03003DF0 _080784A4: ldr r2, _080784B0 @ =gUnk_02034350 ldrb r0, [r2, #6] cmp r0, #0 beq _080784B4 _080784AC: movs r0, #0 b _080784C6 .align 2, 0 _080784B0: .4byte gUnk_02034350 _080784B4: adds r1, r6, #0 adds r1, #0x39 movs r0, #1 strb r0, [r1] ldrb r0, [r6, #0xa] strb r0, [r2, #6] ldrb r0, [r6, #0xb] strb r0, [r2, #7] _080784C4: movs r0, #1 _080784C6: pop {r4, r5, r6, pc} thumb_func_start sub_080784C8 sub_080784C8: @ 0x080784C8 push {r4, lr} ldr r4, _080784DC @ =gUnk_03003DF0 movs r1, #0xc4 lsls r1, r1, #1 adds r0, r4, #0 bl sub_0801D630 ldr r0, _080784E0 @ =gUnk_0811C000 str r0, [r4, #4] pop {r4, pc} .align 2, 0 _080784DC: .4byte gUnk_03003DF0 _080784E0: .4byte gUnk_0811C000 thumb_func_start sub_080784E4 sub_080784E4: @ 0x080784E4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _080784FC @ =gUnk_03003DF0 ldrb r1, [r0] mov r8, r0 cmp r1, #0 beq _08078500 ldr r0, [r0, #4] b _0807876A .align 2, 0 _080784FC: .4byte gUnk_03003DF0 _08078500: ldr r2, _08078528 @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0x27 adds r3, r2, #0 adds r3, #0x26 ldrb r1, [r0] ldrb r0, [r3] orrs r0, r1 cmp r0, #0 bne _08078598 adds r1, r2, #0 adds r1, #0xa8 ldrb r0, [r1] cmp r0, #0 bne _0807852C adds r0, r2, #0 adds r0, #0xa9 ldrb r0, [r0] b _0807852E .align 2, 0 _08078528: .4byte gUnk_03003F80 _0807852C: ldrb r0, [r1] _0807852E: subs r0, #2 cmp r0, #0x14 bhi _080785B0 lsls r0, r0, #2 ldr r1, _08078540 @ =_08078544 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08078540: .4byte _08078544 _08078544: @ jump table .4byte _08078598 @ case 0 .4byte _08078598 @ case 1 .4byte _080785B0 @ case 2 .4byte _080785B0 @ case 3 .4byte _080785B0 @ case 4 .4byte _080785B0 @ case 5 .4byte _080785B0 @ case 6 .4byte _080785B0 @ case 7 .4byte _080785B0 @ case 8 .4byte _080785B0 @ case 9 .4byte _080785B0 @ case 10 .4byte _080785B0 @ case 11 .4byte _080785B0 @ case 12 .4byte _080785B0 @ case 13 .4byte _080785B0 @ case 14 .4byte _080785B0 @ case 15 .4byte _08078598 @ case 16 .4byte _080785B0 @ case 17 .4byte _080785B0 @ case 18 .4byte _08078598 @ case 19 .4byte _08078598 @ case 20 _08078598: movs r0, #0xff mov r1, r8 strb r0, [r1, #3] ldr r0, _080785AC @ =gUnk_0811C000 str r0, [r1, #4] movs r1, #1 mov r2, r8 strb r1, [r2] b _0807876A .align 2, 0 _080785AC: .4byte gUnk_0811C000 _080785B0: ldr r0, [r2, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _080785F0 bl sub_08052734 cmp r0, #0 beq _080785C4 movs r0, #1 _080785C4: adds r7, r0, #0 bl sub_08052764 cmp r0, #0 beq _080785D2 movs r0, #2 orrs r7, r0 _080785D2: ldr r3, _080785E4 @ =gLinkEntity ldrb r0, [r3, #0x14] movs r1, #6 ands r1, r0 ldr r0, _080785E8 @ =gUnk_0811C00C adds r2, r1, r0 ldr r5, _080785EC @ =gUnk_03003DF0 mov r8, r5 b _080785FE .align 2, 0 _080785E4: .4byte gLinkEntity _080785E8: .4byte gUnk_0811C00C _080785EC: .4byte gUnk_03003DF0 _080785F0: ldr r3, _08078624 @ =gLinkEntity ldrb r0, [r3, #0x14] movs r1, #6 ands r1, r0 ldr r0, _08078628 @ =gUnk_0811C014 adds r2, r1, r0 movs r7, #0 _080785FE: mov ip, r3 mov r0, ip movs r3, #0x2e ldrsh r1, [r0, r3] movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 mov sl, r1 mov r5, ip movs r0, #0x32 ldrsh r1, [r5, r0] movs r0, #1 ldrsb r0, [r2, r0] adds r1, r1, r0 mov sb, r1 movs r6, #0 ldr r5, _0807862C @ =gUnk_03003DF8 b _08078724 .align 2, 0 _08078624: .4byte gLinkEntity _08078628: .4byte gUnk_0811C014 _0807862C: .4byte gUnk_03003DF8 _08078630: ldrb r1, [r5] movs r3, #1 adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _0807864E mov r0, ip adds r0, #0x38 adds r1, r2, #0 adds r1, #0x38 ldrb r2, [r0] ldrb r0, [r1] ands r0, r2 cmp r0, #0 beq _08078714 _0807864E: ldrb r1, [r5, #2] mov r2, ip ldrb r0, [r2, #0x14] lsrs r0, r0, #1 asrs r1, r0 ands r1, r3 cmp r1, #0 bne _08078714 ldrb r0, [r5, #1] cmp r0, #0xa bhi _080786D4 lsls r0, r0, #2 ldr r1, _08078670 @ =_08078674 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08078670: .4byte _08078674 _08078674: @ jump table .4byte _08078714 @ case 0 .4byte _080786A0 @ case 1 .4byte _080786C4 @ case 2 .4byte _080786A0 @ case 3 .4byte _080786A0 @ case 4 .4byte _080786C8 @ case 5 .4byte _080786CC @ case 6 .4byte _080786B4 @ case 7 .4byte _080786A0 @ case 8 .4byte _080786A0 @ case 9 .4byte _080786D4 @ case 10 _080786A0: ldr r0, _080786B0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08078714 b _080786D4 .align 2, 0 _080786B0: .4byte gUnk_03003F80 _080786B4: ldr r0, _080786C0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 b _080786D0 .align 2, 0 _080786C0: .4byte gUnk_03003F80 _080786C4: ldrb r0, [r5, #3] b _080786D0 _080786C8: movs r0, #1 b _080786CE _080786CC: movs r0, #2 _080786CE: ands r0, r7 _080786D0: cmp r0, #0 beq _08078714 _080786D4: ldr r0, [r5, #8] movs r1, #0x2e ldrsh r3, [r0, r1] movs r2, #0x32 ldrsh r4, [r0, r2] ldr r1, [r5, #4] cmp r1, #0 beq _080786F4 movs r0, #0 ldrsb r0, [r1, r0] adds r3, r3, r0 movs r0, #1 ldrsb r0, [r1, r0] adds r4, r4, r0 adds r2, r1, #2 b _080786F8 _080786F4: ldr r0, [r0, #0x48] adds r2, r0, #6 _080786F8: ldrb r1, [r2] mov r5, sl adds r0, r1, r5 subs r0, r0, r3 lsls r1, r1, #1 cmp r0, r1 bhs _08078714 ldrb r1, [r2, #1] mov r2, sb adds r0, r1, r2 subs r0, r0, r4 lsls r1, r1, #1 cmp r0, r1 blo _0807873A _08078714: adds r6, #1 cmp r6, #0x1f bhi _08078758 lsls r0, r6, #1 adds r0, r0, r6 lsls r0, r0, #2 ldr r3, _08078754 @ =gUnk_03003DF8 adds r5, r0, r3 _08078724: ldr r2, [r5, #8] cmp r2, #0 beq _08078714 adds r0, r2, #0 adds r0, #0x39 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 blt _0807873A b _08078630 _0807873A: cmp r6, #0x1f bhi _08078758 mov r5, r8 strb r6, [r5, #3] lsls r0, r6, #1 adds r0, r0, r6 lsls r0, r0, #2 mov r1, r8 adds r1, #8 adds r0, r0, r1 str r0, [r5, #4] b _08078762 .align 2, 0 _08078754: .4byte gUnk_03003DF8 _08078758: movs r0, #0xff mov r1, r8 strb r0, [r1, #3] ldr r0, _08078774 @ =gUnk_0811C000 str r0, [r1, #4] _08078762: movs r0, #1 mov r2, r8 strb r0, [r2] ldr r0, [r2, #4] _0807876A: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _08078774: .4byte gUnk_0811C000 thumb_func_start sub_08078778 sub_08078778: @ 0x08078778 push {lr} movs r1, #1 movs r2, #0 bl sub_0807887C pop {pc} thumb_func_start sub_08078784 sub_08078784: @ 0x08078784 push {lr} adds r2, r1, #0 movs r1, #1 bl sub_0807887C pop {pc} thumb_func_start sub_08078790 sub_08078790: @ 0x08078790 push {lr} adds r2, r1, #0 movs r1, #2 bl sub_0807887C pop {pc} thumb_func_start sub_0807879C sub_0807879C: @ 0x0807879C push {lr} movs r1, #7 movs r2, #0 bl sub_0807887C pop {pc} thumb_func_start sub_080787A8 sub_080787A8: @ 0x080787A8 push {lr} adds r2, r1, #0 movs r1, #7 bl sub_0807887C pop {pc} thumb_func_start sub_080787B4 sub_080787B4: @ 0x080787B4 push {lr} movs r1, #9 movs r2, #0 bl sub_0807887C pop {pc} thumb_func_start sub_080787C0 sub_080787C0: @ 0x080787C0 push {lr} movs r1, #0xa movs r2, #0 bl sub_0807887C pop {pc} thumb_func_start sub_080787CC sub_080787CC: @ 0x080787CC push {lr} movs r1, #5 movs r2, #0 bl sub_0807887C pop {pc} thumb_func_start sub_080787D8 sub_080787D8: @ 0x080787D8 push {lr} movs r1, #8 movs r2, #0 bl sub_0807887C adds r2, r0, #0 cmp r2, #0 blt _080787F6 ldr r0, _080787FC @ =gUnk_03003DF0 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r1, r1, r0 movs r0, #0xbe strb r0, [r1, #0xa] _080787F6: adds r0, r2, #0 pop {pc} .align 2, 0 _080787FC: .4byte gUnk_03003DF0 thumb_func_start sub_08078800 sub_08078800: @ 0x08078800 push {lr} movs r1, #6 movs r2, #0 bl sub_0807887C adds r2, r0, #0 cmp r2, #0 blt _0807881E ldr r0, _08078824 @ =gUnk_03003DF0 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r1, r1, r0 movs r0, #0xbe strb r0, [r1, #0xa] _0807881E: adds r0, r2, #0 pop {pc} .align 2, 0 _08078824: .4byte gUnk_03003DF0 thumb_func_start sub_08078828 sub_08078828: @ 0x08078828 push {lr} movs r1, #3 movs r2, #0 bl sub_0807887C adds r2, r0, #0 cmp r2, #0 blt _08078846 ldr r0, _0807884C @ =gUnk_03003DF0 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r1, r1, r0 movs r0, #0xbe strb r0, [r1, #0xa] _08078846: adds r0, r2, #0 pop {pc} .align 2, 0 _0807884C: .4byte gUnk_03003DF0 thumb_func_start sub_08078850 sub_08078850: @ 0x08078850 push {r4, r5, r6, lr} adds r4, r1, #0 adds r5, r2, #0 adds r6, r3, #0 bl sub_08078904 adds r2, r0, #0 cmp r2, #0 blt _08078876 ldr r0, _08078878 @ =gUnk_03003DF0 lsls r1, r2, #1 adds r1, r1, r2 lsls r1, r1, #2 adds r2, r1, r0 strb r4, [r2, #8] strb r5, [r2, #0xa] adds r0, #0xc adds r1, r1, r0 str r6, [r1] _08078876: pop {r4, r5, r6, pc} .align 2, 0 _08078878: .4byte gUnk_03003DF0 thumb_func_start sub_0807887C sub_0807887C: @ 0x0807887C push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r7, r1, #0 adds r6, r2, #0 adds r1, r5, #0 adds r1, #0x39 movs r0, #0 strb r0, [r1] adds r0, r5, #0 bl sub_08078904 adds r4, r0, #0 cmp r4, #0 bge _080788A4 movs r0, #0 bl sub_08078904 adds r4, r0, #0 cmp r4, #0 blt _080788BA _080788A4: ldr r2, _080788DC @ =gUnk_03003DF0 lsls r1, r4, #1 adds r1, r1, r4 lsls r1, r1, #2 adds r0, r2, #0 adds r0, #0x10 adds r0, r1, r0 str r5, [r0] adds r1, r1, r2 strb r7, [r1, #9] strb r6, [r1, #0xb] _080788BA: cmp r6, #0 beq _080788D6 movs r0, #6 movs r1, #9 movs r2, #6 bl sub_0805EB00 cmp r0, #0 bne _080788D6 movs r0, #9 movs r1, #0 movs r2, #0 bl CreateObject _080788D6: adds r0, r4, #0 pop {r4, r5, r6, r7, pc} .align 2, 0 _080788DC: .4byte gUnk_03003DF0 thumb_func_start sub_080788E0 sub_080788E0: @ 0x080788E0 push {lr} bl sub_08078904 adds r1, r0, #0 cmp r1, #0 blt _080788FC lsls r0, r1, #1 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _08078900 @ =gUnk_03003DF8 adds r0, r0, r1 movs r1, #0xc bl sub_0801D630 _080788FC: pop {pc} .align 2, 0 _08078900: .4byte gUnk_03003DF8 thumb_func_start sub_08078904 sub_08078904: @ 0x08078904 push {lr} adds r3, r0, #0 movs r1, #0 ldr r0, _0807891C @ =gUnk_03003DF0 adds r2, r0, #0 adds r2, #0x10 _08078910: ldr r0, [r2] cmp r3, r0 bne _08078920 adds r0, r1, #0 b _0807892C .align 2, 0 _0807891C: .4byte gUnk_03003DF0 _08078920: adds r2, #0xc adds r1, #1 cmp r1, #0x1f bls _08078910 movs r0, #1 rsbs r0, r0, #0 _0807892C: pop {pc} .align 2, 0 thumb_func_start sub_08078930 sub_08078930: @ 0x08078930 push {lr} adds r3, r0, #0 ldr r2, _08078950 @ =gUnk_03003BE0 ldrb r0, [r2, #2] cmp r0, #0x1f bhi _0807894C lsls r0, r0, #2 adds r1, r2, #0 adds r1, #0xc adds r0, r0, r1 str r3, [r0] ldrb r0, [r2, #2] adds r0, #1 strb r0, [r2, #2] _0807894C: pop {pc} .align 2, 0 _08078950: .4byte gUnk_03003BE0 thumb_func_start sub_08078954 sub_08078954: @ 0x08078954 push {r4, r5, lr} adds r5, r0, #0 movs r4, #0 ldr r0, _08078970 @ =gUnk_03003BE0 ldrb r1, [r0, #2] adds r2, r0, #0 cmp r4, r1 bhs _080789A6 ldr r0, [r2, #0xc] cmp r0, r5 bne _08078974 subs r0, r1, #1 b _0807898C .align 2, 0 _08078970: .4byte gUnk_03003BE0 _08078974: adds r4, #1 ldrb r3, [r2, #2] cmp r4, r3 bhs _080789A6 lsls r0, r4, #2 adds r1, r2, #0 adds r1, #0xc adds r0, r0, r1 ldr r0, [r0] cmp r0, r5 bne _08078974 subs r0, r3, #1 _0807898C: strb r0, [r2, #2] ldrb r0, [r2, #2] cmp r4, r0 bhs _080789A6 lsls r0, r4, #2 adds r0, #0xc adds r1, r0, r2 _0807899A: ldr r0, [r1, #4] stm r1!, {r0} adds r4, #1 ldrb r0, [r2, #2] cmp r4, r0 blo _0807899A _080789A6: pop {r4, r5, pc} thumb_func_start sub_080789A8 sub_080789A8: @ 0x080789A8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r1, _080789BC @ =gUnk_03003BE0 ldrb r0, [r1] cmp r0, #0 beq _080789C0 ldrb r0, [r1, #1] b _08078A88 .align 2, 0 _080789BC: .4byte gUnk_03003BE0 _080789C0: ldr r0, _08078A5C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08078A56 ldr r0, _08078A60 @ =gLinkEntity bl sub_080002D0 adds r4, r0, #0 cmp r4, #0xf bls _080789E6 ldr r0, _08078A64 @ =gUnk_080084BC adds r1, r4, #0 subs r1, #0x10 adds r1, r1, r0 ldrb r0, [r1] cmp r0, #0xf beq _08078A56 _080789E6: ldr r0, _08078A5C @ =gUnk_03003F80 ldrb r0, [r0, #0x12] cmp r0, #0x12 beq _08078A56 ldr r3, _08078A68 @ =gUnk_03003BE0 movs r0, #1 strb r0, [r3] ldrb r4, [r3, #2] cmp r4, #0 beq _08078A2E ldr r2, _08078A60 @ =gLinkEntity ldrb r1, [r2, #0x14] movs r0, #6 ands r0, r1 ldr r1, _08078A6C @ =gUnk_0811BFE0 adds r6, r0, r1 adds r7, r2, #0 adds r3, #8 mov r8, r3 _08078A0C: lsls r0, r4, #2 mov r1, r8 adds r5, r0, r1 ldr r1, [r5] cmp r1, #0 beq _08078A26 ldrb r2, [r6] ldrb r3, [r6, #1] adds r0, r7, #0 bl sub_0807A180 cmp r0, #0 bne _08078A74 _08078A26: subs r4, #1 ldr r7, _08078A60 @ =gLinkEntity cmp r4, #0 bne _08078A0C _08078A2E: ldr r0, _08078A60 @ =gLinkEntity ldrb r1, [r0, #0x14] movs r2, #6 ands r2, r1 ldr r1, _08078A70 @ =gUnk_08007DF4 adds r2, r2, r1 movs r1, #0 ldrsb r1, [r2, r1] ldrb r2, [r2, #1] lsls r2, r2, #0x18 asrs r2, r2, #0x18 bl sub_0800029C ldr r4, _08078A68 @ =gUnk_03003BE0 strh r0, [r4, #4] movs r1, #6 bl sub_0806FC24 cmp r0, #0 bne _08078A84 _08078A56: movs r0, #0 b _08078A88 .align 2, 0 _08078A5C: .4byte gUnk_03003F80 _08078A60: .4byte gLinkEntity _08078A64: .4byte gUnk_080084BC _08078A68: .4byte gUnk_03003BE0 _08078A6C: .4byte gUnk_0811BFE0 _08078A70: .4byte gUnk_08007DF4 _08078A74: mov r0, r8 subs r0, #8 ldr r1, [r5] str r1, [r0, #8] movs r1, #2 strb r1, [r0, #1] movs r0, #2 b _08078A88 _08078A84: movs r0, #1 strb r0, [r4, #1] _08078A88: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08078A90 sub_08078A90: @ 0x08078A90 push {lr} adds r1, r0, #0 ldr r0, _08078AA4 @ =gUnk_03003F80 adds r2, r0, #0 adds r2, #0x8b ldrb r0, [r2] cmp r0, #3 beq _08078AA2 strb r1, [r2] _08078AA2: pop {pc} .align 2, 0 _08078AA4: .4byte gUnk_03003F80 thumb_func_start sub_08078AA8 sub_08078AA8: @ 0x08078AA8 ldr r3, _08078AB8 @ =gUnk_03003F80 movs r2, #0x16 strb r2, [r3, #0xc] ldr r2, _08078ABC @ =gUnk_030010A0 strh r0, [r2, #0x36] adds r2, #0x35 strb r1, [r2] bx lr .align 2, 0 _08078AB8: .4byte gUnk_03003F80 _08078ABC: .4byte gUnk_030010A0 thumb_func_start sub_08078AC0 sub_08078AC0: @ 0x08078AC0 push {r4, lr} ldr r3, _08078AEC @ =gUnk_03003F80 mov ip, r3 movs r3, #0xf mov r4, ip strb r3, [r4, #0xc] mov r3, ip adds r3, #0x38 strb r0, [r3] rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f mov r1, ip adds r1, #0x39 strb r0, [r1] rsbs r0, r2, #0 orrs r0, r2 lsrs r0, r0, #0x1f adds r1, #1 strb r0, [r1] pop {r4, pc} .align 2, 0 _08078AEC: .4byte gUnk_03003F80 thumb_func_start sub_08078AF0 sub_08078AF0: @ 0x08078AF0 push {r4, lr} ldr r3, _08078B40 @ =gUnk_03003F80 mov ip, r3 adds r3, #0x38 movs r4, #0 strb r1, [r3] mov r1, ip adds r1, #0x39 strb r2, [r1] adds r1, #1 strb r4, [r1] movs r1, #8 mov r2, ip strb r1, [r2, #0xc] adds r2, #0xa8 movs r1, #0x15 strb r1, [r2] mov r1, ip adds r1, #0x26 strb r4, [r1] movs r1, #1 mov r3, ip strb r1, [r3, #0x14] ldr r2, _08078B44 @ =gLinkEntity str r0, [r2, #0x54] ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #2 orrs r0, r1 strb r0, [r2, #0x11] bl sub_0807A108 pop {r4, pc} .align 2, 0 _08078B40: .4byte gUnk_03003F80 _08078B44: .4byte gLinkEntity thumb_func_start sub_08078B48 sub_08078B48: @ 0x08078B48 push {lr} ldr r1, _08078B80 @ =gUnk_03003F80 ldrb r0, [r1, #7] movs r2, #0x80 orrs r0, r2 strb r0, [r1, #7] ldrb r0, [r1, #0xb] orrs r0, r2 strb r0, [r1, #0xb] ldrb r0, [r1, #0xa] orrs r2, r0 strb r2, [r1, #0xa] adds r2, r1, #0 adds r2, #0x27 movs r0, #2 strb r0, [r2] adds r0, r1, #0 adds r0, #0xa8 ldrb r0, [r0] subs r0, #4 adds r2, r1, #0 cmp r0, #0x19 bhi _08078BF8 lsls r0, r0, #2 ldr r1, _08078B84 @ =_08078B88 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08078B80: .4byte gUnk_03003F80 _08078B84: .4byte _08078B88 _08078B88: @ jump table .4byte _08078C04 @ case 0 .4byte _08078C04 @ case 1 .4byte _08078BF8 @ case 2 .4byte _08078BF8 @ case 3 .4byte _08078BF8 @ case 4 .4byte _08078BF0 @ case 5 .4byte _08078BF8 @ case 6 .4byte _08078BF8 @ case 7 .4byte _08078BF8 @ case 8 .4byte _08078BF8 @ case 9 .4byte _08078BF8 @ case 10 .4byte _08078BF8 @ case 11 .4byte _08078BF8 @ case 12 .4byte _08078BF8 @ case 13 .4byte _08078BF8 @ case 14 .4byte _08078BF8 @ case 15 .4byte _08078BF8 @ case 16 .4byte _08078BF8 @ case 17 .4byte _08078BF8 @ case 18 .4byte _08078BF8 @ case 19 .4byte _08078BF8 @ case 20 .4byte _08078C04 @ case 21 .4byte _08078C04 @ case 22 .4byte _08078BF8 @ case 23 .4byte _08078BF8 @ case 24 .4byte _08078C04 @ case 25 _08078BF0: ldr r0, [r2, #0x30] ldr r1, _08078C18 @ =0xFFFBFFFF ands r0, r1 str r0, [r2, #0x30] _08078BF8: ldr r0, _08078C1C @ =gUnk_02034350 ldrb r0, [r0, #6] cmp r0, #0 bne _08078C04 movs r0, #1 strb r0, [r2, #0x1a] _08078C04: ldr r0, _08078C20 @ =gLinkEntity adds r0, #0x3d movs r1, #0xfe strb r1, [r0] adds r1, r2, #0 adds r1, #0x8a movs r0, #2 strb r0, [r1] pop {pc} .align 2, 0 _08078C18: .4byte 0xFFFBFFFF _08078C1C: .4byte gUnk_02034350 _08078C20: .4byte gLinkEntity thumb_func_start sub_08078C24 sub_08078C24: @ 0x08078C24 push {lr} ldr r3, _08078CAC @ =gUnk_03003F80 movs r2, #0 strb r2, [r3] strb r2, [r3, #1] strb r2, [r3, #2] strb r2, [r3, #3] strb r2, [r3, #4] strb r2, [r3, #5] strb r2, [r3, #6] strb r2, [r3, #7] movs r0, #0 strh r2, [r3, #8] strb r0, [r3, #0xa] strb r0, [r3, #0xb] movs r1, #0x35 adds r1, r1, r3 mov ip, r1 adds r1, r3, #0 adds r1, #0x36 strb r0, [r1] strb r0, [r3, #0xc] strb r0, [r3, #0xd] strb r0, [r3, #0xe] strb r0, [r3, #0x11] strb r0, [r3, #0x12] strb r0, [r3, #0x13] strb r0, [r3, #0x14] strb r0, [r3, #0x1b] strb r0, [r3, #0x1e] strb r0, [r3, #0x1f] subs r1, #0x16 strb r0, [r1] adds r1, #1 strb r0, [r1] strh r2, [r3, #0x22] strh r2, [r3, #0x24] adds r1, #5 strb r0, [r1] str r2, [r3, #0x2c] adds r1, #0x5a strh r2, [r1] mov r1, ip strb r0, [r1] str r2, [r3, #0x30] adds r1, r3, #0 adds r1, #0x38 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #1 strb r0, [r1] adds r1, #5 strb r0, [r1] subs r1, #3 strb r0, [r1] movs r0, #1 rsbs r0, r0, #0 adds r1, #4 movs r2, #0x40 bl sub_0801D610 ldr r0, _08078CB0 @ =gUnk_03003DF0 movs r1, #0xc4 lsls r1, r1, #1 bl sub_0801D630 pop {pc} .align 2, 0 _08078CAC: .4byte gUnk_03003F80 _08078CB0: .4byte gUnk_03003DF0 thumb_func_start sub_08078CB4 sub_08078CB4: @ 0x08078CB4 push {lr} ldr r0, _08078CCC @ =gUnk_03003F80 ldrb r0, [r0, #5] subs r0, #3 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _08078CC8 bl sub_08078D60 _08078CC8: pop {pc} .align 2, 0 _08078CCC: .4byte gUnk_03003F80 thumb_func_start sub_08078CD0 sub_08078CD0: @ 0x08078CD0 push {r4, r5, lr} adds r5, r0, #0 ldr r4, [r5, #0x70] ldrh r0, [r5, #0x36] subs r0, #1 strh r0, [r4, #0x36] ldrb r1, [r5, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r4, #0x1b] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1b] adds r0, r5, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] ldr r1, _08078D28 @ =gUnk_0811C01C ldr r0, _08078D2C @ =gUnk_03003F80 ldr r0, [r0, #0x2c] ldrb r0, [r0, #0x1e] adds r0, r0, r1 ldrb r2, [r0] ldr r3, _08078D30 @ =gUnk_0811C0B0 ldrb r1, [r4, #0x1c] movs r0, #0x30 ands r0, r1 lsrs r0, r0, #2 adds r0, r0, r3 lsls r2, r2, #1 ldr r0, [r0] adds r2, r0, r2 ldrb r0, [r5, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _08078D34 movs r1, #0 ldrsb r1, [r2, r1] ldrh r0, [r5, #0x2e] subs r0, r0, r1 b _08078D3C .align 2, 0 _08078D28: .4byte gUnk_0811C01C _08078D2C: .4byte gUnk_03003F80 _08078D30: .4byte gUnk_0811C0B0 _08078D34: movs r0, #0 ldrsb r0, [r2, r0] ldrh r1, [r5, #0x2e] adds r0, r0, r1 _08078D3C: strh r0, [r4, #0x2e] movs r0, #1 ldrsb r0, [r2, r0] ldrh r1, [r5, #0x32] adds r0, r0, r1 strh r0, [r4, #0x32] adds r0, r5, #0 movs r1, #0 adds r2, r4, #0 bl sub_0806FEBC ldr r1, [r4, #0x50] cmp r1, #0 beq _08078D5E adds r0, r4, #0 bl sub_0806FA24 _08078D5E: pop {r4, r5, pc} thumb_func_start sub_08078D60 sub_08078D60: @ 0x08078D60 push {r4, r5, r6, lr} ldr r1, _08078DCC @ =gLinkEntity ldr r0, [r1, #0x74] ldr r4, [r0, #0x54] ldrb r0, [r4, #0xc] adds r6, r1, #0 cmp r0, #2 beq _08078D72 b _08078E82 _08078D72: adds r0, r6, #0 adds r0, #0x63 ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 ldrh r1, [r6, #0x36] adds r0, r0, r1 strh r0, [r4, #0x36] ldrb r1, [r6, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r4, #0x1b] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x1b] adds r0, r6, #0 adds r0, #0x38 ldrb r1, [r0] adds r0, r4, #0 adds r0, #0x38 strb r1, [r0] adds r0, r6, #0 adds r0, #0x5a ldrb r0, [r0] movs r2, #0x7f ands r2, r0 ldr r1, _08078DD0 @ =gUnk_0811C0E8 ldrb r0, [r4, #0x16] lsrs r0, r0, #4 lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] ldrb r0, [r6, #0x18] lsls r0, r0, #0x19 cmp r0, #0 bge _08078DD4 adds r2, r1, r2 movs r1, #0 ldrsb r1, [r2, r1] ldrh r0, [r6, #0x2e] subs r0, r0, r1 strh r0, [r4, #0x2e] adds r1, r2, #0 b _08078DE0 .align 2, 0 _08078DCC: .4byte gLinkEntity _08078DD0: .4byte gUnk_0811C0E8 _08078DD4: adds r1, r1, r2 movs r0, #0 ldrsb r0, [r1, r0] ldrh r2, [r6, #0x2e] adds r0, r0, r2 strh r0, [r4, #0x2e] _08078DE0: movs r0, #1 ldrsb r0, [r1, r0] ldrh r1, [r4, #0x36] adds r0, r0, r1 strh r0, [r4, #0x36] adds r5, r6, #0 ldrh r0, [r5, #0x32] strh r0, [r4, #0x32] adds r0, r5, #0 adds r1, r4, #0 bl sub_0806FAB0 ldr r0, _08078E34 @ =gUnk_03003F80 ldrb r0, [r0, #5] cmp r0, #4 bne _08078E4C ldrb r1, [r5, #0x19] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r2, [r4, #0x19] movs r0, #0x3f ands r0, r2 orrs r0, r1 strb r0, [r4, #0x19] adds r0, r4, #0 bl sub_0806F8DC ldrb r1, [r4, #0x16] movs r0, #0xf ands r0, r1 cmp r0, #2 bne _08078E82 ldr r0, _08078E38 @ =gUnk_030010A0 ldr r1, [r0] movs r0, #3 ands r1, r0 cmp r1, #1 beq _08078E3C cmp r1, #3 beq _08078E44 b _08078E82 .align 2, 0 _08078E34: .4byte gUnk_03003F80 _08078E38: .4byte gUnk_030010A0 _08078E3C: ldrh r0, [r4, #0x2e] adds r0, #1 strh r0, [r4, #0x2e] b _08078E82 _08078E44: ldrh r0, [r4, #0x2e] subs r0, #1 strh r0, [r4, #0x2e] b _08078E82 _08078E4C: ldrb r0, [r5, #0x14] lsrs r0, r0, #1 cmp r0, #0 beq _08078E62 adds r0, r5, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d subs r1, #1 b _08078E6E _08078E62: adds r0, r6, #0 adds r0, #0x29 ldrb r1, [r0] lsls r1, r1, #0x1d lsrs r1, r1, #0x1d adds r1, #1 _08078E6E: adds r3, r4, #0 adds r3, #0x29 movs r0, #7 ands r1, r0 ldrb r2, [r3] movs r0, #8 rsbs r0, r0, #0 ands r0, r2 orrs r0, r1 strb r0, [r3] _08078E82: pop {r4, r5, r6, pc} thumb_func_start sub_08078E84 sub_08078E84: @ 0x08078E84 push {r4, r5, lr} adds r5, r0, #0 adds r4, r1, #0 ldr r0, _08078ED0 @ =gLinkEntity cmp r4, r0 bne _08078EAC adds r0, r5, #0 bl sub_08079BD8 adds r0, r4, #0 adds r0, #0x62 ldrb r0, [r0] adds r1, r5, #0 adds r1, #0x62 strb r0, [r1] adds r0, r4, #0 adds r0, #0x63 ldrb r0, [r0] adds r1, #1 strb r0, [r1] _08078EAC: ldr r0, _08078ED4 @ =gUnk_080029B4 ldrh r2, [r4, #0x12] lsls r2, r2, #4 adds r0, #4 adds r2, r2, r0 ldrb r1, [r4, #0x1e] lsls r1, r1, #2 ldr r0, [r2] adds r0, r0, r1 ldrb r0, [r0, #1] cmp r0, #0 beq _08078ED8 adds r0, r4, #0 movs r1, #1 adds r2, r5, #0 bl sub_0806FEBC b _08078EE2 .align 2, 0 _08078ED0: .4byte gLinkEntity _08078ED4: .4byte gUnk_080029B4 _08078ED8: adds r0, r4, #0 movs r1, #3 adds r2, r5, #0 bl sub_0806FEBC _08078EE2: pop {r4, r5, pc} thumb_func_start sub_08078EE4 sub_08078EE4: @ 0x08078EE4 ldr r2, _08078EF4 @ =gLinkEntity ldr r1, _08078EF8 @ =gUnk_03003F80 ldrh r0, [r1, #0x16] strh r0, [r2, #0x2e] ldrh r0, [r1, #0x18] strh r0, [r2, #0x32] bx lr .align 2, 0 _08078EF4: .4byte gLinkEntity _08078EF8: .4byte gUnk_03003F80 thumb_func_start sub_08078EFC sub_08078EFC: @ 0x08078EFC push {lr} ldr r3, _08078F18 @ =gUnk_03003F80 ldrb r2, [r3, #0xc] cmp r2, #0 beq _08078F20 ldr r0, _08078F1C @ =gLinkEntity movs r1, #0 strb r2, [r0, #0xc] strb r1, [r0, #0xd] strb r1, [r3, #0xc] bl sub_08070680 movs r0, #1 b _08078F22 .align 2, 0 _08078F18: .4byte gUnk_03003F80 _08078F1C: .4byte gLinkEntity _08078F20: movs r0, #0 _08078F22: pop {pc} thumb_func_start sub_08078F24 sub_08078F24: @ 0x08078F24 push {r4, lr} ldr r4, _08078F38 @ =gUnk_03003F80 ldrb r3, [r4, #0xd] movs r0, #0x80 ands r0, r3 cmp r0, #0 beq _08078F3C bl sub_08078F60 b _08078F5A .align 2, 0 _08078F38: .4byte gUnk_03003F80 _08078F3C: ldr r2, _08078F5C @ =gUnk_080C9160 lsls r0, r3, #4 adds r0, r0, r2 ldrh r1, [r0] adds r0, r4, #0 adds r0, #0x8c strh r1, [r0] lsls r0, r3, #4 adds r0, #0x80 adds r0, r0, r2 ldrh r0, [r0] rsbs r0, r0, #0 adds r1, r4, #0 adds r1, #0x8e strh r0, [r1] _08078F5A: pop {r4, pc} .align 2, 0 _08078F5C: .4byte gUnk_080C9160 thumb_func_start sub_08078F60 sub_08078F60: @ 0x08078F60 ldr r0, _08078F70 @ =gUnk_03003F80 adds r1, r0, #0 adds r1, #0x8c movs r2, #0 strh r2, [r1] adds r0, #0x8e strh r2, [r0] bx lr .align 2, 0 _08078F70: .4byte gUnk_03003F80 thumb_func_start sub_08078F74 sub_08078F74: @ 0x08078F74 push {lr} adds r2, r0, #0 ldr r0, _08078FA4 @ =gUnk_02033A90 ldrb r0, [r0, #0x18] cmp r0, #3 bne _08078FAC ldr r3, _08078FA8 @ =gUnk_03003F80 adds r0, r3, #0 adds r0, #0x35 ldrb r0, [r0] cmp r0, #0xff beq _08078FAC movs r1, #0 movs r0, #0x81 strb r0, [r3, #2] movs r0, #0x15 strb r0, [r2, #0xc] strb r1, [r2, #0xd] movs r0, #0x80 lsls r0, r0, #0xa str r0, [r2, #0x20] movs r0, #1 b _08078FAE .align 2, 0 _08078FA4: .4byte gUnk_02033A90 _08078FA8: .4byte gUnk_03003F80 _08078FAC: movs r0, #0 _08078FAE: pop {pc} thumb_func_start sub_08078FB0 sub_08078FB0: @ 0x08078FB0 push {r4, r5, r6, lr} adds r4, r0, #0 ldr r5, _08078FE0 @ =gUnk_03003F80 ldrb r1, [r5, #6] movs r6, #0x80 adds r0, r6, #0 ands r0, r1 cmp r0, #0 bne _08078FCA adds r1, r5, #0 adds r1, #0x35 movs r0, #0xff strb r0, [r1] _08078FCA: adds r0, r4, #0 bl sub_08079064 ldr r1, [r5, #0x30] movs r0, #8 ands r0, r1 cmp r0, #0 beq _08078FE4 movs r2, #0x58 b _08078FFA .align 2, 0 _08078FE0: .4byte gUnk_03003F80 _08078FE4: ands r1, r6 cmp r1, #0 beq _08078FEE movs r2, #0x18 b _08078FFA _08078FEE: ldrh r0, [r5, #8] lsrs r0, r0, #8 movs r2, #0xb8 cmp r0, #7 bne _08078FFA movs r2, #0x34 _08078FFA: ldr r0, _08079014 @ =gUnk_03003F80 adds r3, r0, #0 ldrb r1, [r0, #8] cmp r2, r1 bls _08079040 ldrb r0, [r4, #0x14] adds r2, r0, #0 cmp r2, #4 bls _08079018 ldrb r0, [r4, #0x18] movs r1, #0x40 orrs r0, r1 b _08079020 .align 2, 0 _08079014: .4byte gUnk_03003F80 _08079018: ldrb r1, [r4, #0x18] movs r0, #0x41 rsbs r0, r0, #0 ands r0, r1 _08079020: strb r0, [r4, #0x18] ldr r0, [r3, #0x30] movs r1, #0x80 lsls r1, r1, #0xc ands r0, r1 cmp r0, #0 beq _08079036 ldrh r1, [r3, #8] ldrb r0, [r4, #0x14] adds r2, r1, r0 b _08079042 _08079036: lsls r0, r2, #0x18 lsrs r0, r0, #0x19 ldrh r3, [r3, #8] adds r2, r0, r3 b _08079042 _08079040: ldrh r2, [r0, #8] _08079042: ldrh r0, [r4, #0x12] lsls r0, r0, #8 adds r1, r4, #0 adds r1, #0x58 ldrb r1, [r1] orrs r0, r1 cmp r2, r0 beq _08079062 lsrs r0, r2, #8 strh r0, [r4, #0x12] movs r0, #0xff ands r2, r0 adds r0, r4, #0 adds r1, r2, #0 bl sub_080042AC _08079062: pop {r4, r5, r6, pc} thumb_func_start sub_08079064 sub_08079064: @ 0x08079064 push {r4, r5, r6, lr} adds r6, r0, #0 ldr r0, _0807909C @ =gUnk_03003F80 ldr r1, [r0, #0x30] ldr r2, _080790A0 @ =0x00100080 ands r1, r2 adds r5, r0, #0 cmp r1, #0 bne _080790DE movs r3, #0 movs r2, #0 ldr r1, _080790A4 @ =gUnk_03000B80 _0807907C: ldrb r0, [r1, #0xf] cmp r0, r3 bls _08079086 adds r3, r0, #0 ldrh r4, [r1, #0x10] _08079086: adds r1, #0x1c adds r2, #1 cmp r2, #3 bls _0807907C adds r2, r5, #0 ldrb r0, [r2, #0xe] cmp r0, r3 bhs _080790A8 strh r4, [r2, #8] b _080790DE .align 2, 0 _0807909C: .4byte gUnk_03003F80 _080790A0: .4byte 0x00100080 _080790A4: .4byte gUnk_03000B80 _080790A8: adds r0, r2, #0 adds r0, #0x26 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080790C0 ldr r0, _080790BC @ =0x000002BE strh r0, [r2, #8] b _080790DE .align 2, 0 _080790BC: .4byte 0x000002BE _080790C0: ldrh r1, [r5, #8] movs r0, #0xc1 lsls r0, r0, #3 cmp r1, r0 beq _080790D8 movs r0, #0x82 lsls r0, r0, #1 cmp r1, r0 beq _080790D8 ldr r0, _080790E0 @ =0x00000404 cmp r1, r0 bne _080790DE _080790D8: adds r0, r6, #0 bl sub_080790E4 _080790DE: pop {r4, r5, r6, pc} .align 2, 0 _080790E0: .4byte 0x00000404 thumb_func_start sub_080790E4 sub_080790E4: @ 0x080790E4 push {r4, r5, lr} adds r4, r0, #0 ldr r5, _08079128 @ =gUnk_03003F80 ldrb r0, [r5, #0xb] cmp r0, #0 bne _08079182 movs r0, #0x10 bl sub_080793E4 cmp r0, #0 beq _0807912C adds r1, r4, #0 adds r1, #0x3d movs r0, #0x14 strb r0, [r1] adds r1, #5 movs r0, #4 strb r0, [r1] ldrb r0, [r4, #0x14] lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 movs r0, #0x7a bl sub_080A3268 b _08079182 .align 2, 0 _08079128: .4byte gUnk_03003F80 _0807912C: ldrb r1, [r5, #6] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08079182 cmp r1, #0 bne _08079150 movs r0, #1 bl sub_080793E4 cmp r0, #0 beq _0807914C ldrb r0, [r4, #0xf] cmp r0, #5 bhi _08079154 adds r0, #1 _0807914C: strb r0, [r4, #0xf] b _08079182 _08079150: subs r0, r1, #1 strb r0, [r5, #6] _08079154: ldr r2, _08079174 @ =gUnk_03003F80 ldrb r0, [r4, #0x14] adds r1, r2, #0 adds r1, #0x35 strb r0, [r1] adds r1, #0x73 movs r0, #0x19 strb r0, [r1] ldr r0, [r2, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 beq _0807917C ldr r0, _08079178 @ =0x0000093C b _08079180 .align 2, 0 _08079174: .4byte gUnk_03003F80 _08079178: .4byte 0x0000093C _0807917C: movs r0, #0xcf lsls r0, r0, #2 _08079180: strh r0, [r2, #8] _08079182: pop {r4, r5, pc} thumb_func_start sub_08079184 sub_08079184: @ 0x08079184 ldr r0, _08079194 @ =gUnk_03003F80 movs r1, #0 strb r1, [r0, #5] strb r1, [r0, #1] ldr r0, _08079198 @ =gLinkEntity str r1, [r0, #0x74] bx lr .align 2, 0 _08079194: .4byte gUnk_03003F80 _08079198: .4byte gLinkEntity thumb_func_start sub_0807919C sub_0807919C: @ 0x0807919C push {lr} ldr r0, _080791B0 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _080791B4 bl sub_080791BC b _080791B8 .align 2, 0 _080791B0: .4byte gUnk_03003F80 _080791B4: bl sub_08079258 _080791B8: pop {pc} .align 2, 0 thumb_func_start sub_080791BC sub_080791BC: @ 0x080791BC ldr r0, _080791CC @ =gLinkEntity movs r2, #0 movs r1, #1 strb r1, [r0, #0xc] strb r2, [r0, #0xd] strb r2, [r0, #0xf] bx lr .align 2, 0 _080791CC: .4byte gLinkEntity thumb_func_start sub_080791D0 sub_080791D0: @ 0x080791D0 push {lr} ldr r3, _0807920C @ =gUnk_03003F80 ldr r0, [r3, #0x30] movs r1, #0x40 ands r0, r1 cmp r0, #0 bne _080791E8 ldr r0, _08079210 @ =gLinkEntity ldrb r1, [r0, #0x18] movs r2, #3 orrs r1, r2 strb r1, [r0, #0x18] _080791E8: ldr r0, [r3, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _08079214 ldr r2, _08079210 @ =gLinkEntity adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 movs r1, #8 orrs r0, r1 strb r0, [r2] bl sub_0807921C b _08079218 .align 2, 0 _0807920C: .4byte gUnk_03003F80 _08079210: .4byte gLinkEntity _08079214: bl sub_08079258 _08079218: pop {pc} .align 2, 0 thumb_func_start sub_0807921C sub_0807921C: @ 0x0807921C push {r4, lr} ldr r4, _0807924C @ =gLinkEntity ldrb r1, [r4, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r4, #0x10] ldrb r0, [r4, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r4, #0x18] ldr r2, _08079250 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08079254 @ =0xFECBF6FA ands r0, r1 str r0, [r2, #0x30] bl sub_08079938 bl sub_080791BC adds r0, r4, #0 bl sub_0805E374 pop {r4, pc} .align 2, 0 _0807924C: .4byte gLinkEntity _08079250: .4byte gUnk_03003F80 _08079254: .4byte 0xFECBF6FA thumb_func_start sub_08079258 sub_08079258: @ 0x08079258 push {r4, lr} ldr r4, _080792AC @ =gUnk_03003F80 ldr r0, [r4, #0x30] movs r1, #0x40 ands r0, r1 ldr r3, _080792B0 @ =gLinkEntity cmp r0, #0 bne _08079278 ldrb r1, [r3, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r3, #0x10] ldrb r0, [r3, #0x18] movs r1, #3 orrs r0, r1 strb r0, [r3, #0x18] _08079278: movs r0, #9 strb r0, [r3, #0xc] movs r0, #1 strb r0, [r3, #0xd] adds r2, r3, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 strb r0, [r2] movs r2, #0 ldr r0, _080792B4 @ =0x00000C18 strh r0, [r4, #8] ldr r0, [r4, #0x30] ldr r1, _080792B8 @ =0xFECFFEFA ands r0, r1 str r0, [r4, #0x30] adds r0, r4, #0 adds r0, #0x26 strb r2, [r0] strb r2, [r4, #0xc] adds r0, r3, #0 bl sub_0805E374 pop {r4, pc} .align 2, 0 _080792AC: .4byte gUnk_03003F80 _080792B0: .4byte gLinkEntity _080792B4: .4byte 0x00000C18 _080792B8: .4byte 0xFECFFEFA thumb_func_start sub_080792BC sub_080792BC: @ 0x080792BC push {r4, lr} ldr r3, _080792D0 @ =gUnk_03003F80 movs r4, #0x13 strb r4, [r3, #0xc] adds r3, #0x38 strb r2, [r3] ldr r2, _080792D4 @ =gLinkEntity strh r0, [r2, #0x24] strb r1, [r2, #0x15] pop {r4, pc} .align 2, 0 _080792D0: .4byte gUnk_03003F80 _080792D4: .4byte gLinkEntity thumb_func_start sub_080792D8 sub_080792D8: @ 0x080792D8 push {r4, r5, r6, lr} ldr r5, _08079344 @ =gLinkEntity adds r3, r5, #0 adds r3, #0x42 ldrb r0, [r3] cmp r0, #0 beq _080793E0 ldrb r2, [r5, #0xc] cmp r2, #0xb beq _08079338 ldr r0, _08079348 @ =gUnk_03003F80 ldrb r1, [r0, #0x1e] adds r6, r0, #0 cmp r1, #0 bne _08079338 ldrb r0, [r6, #5] subs r0, #1 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #3 bls _08079338 ldrb r0, [r6, #2] cmp r0, #0 bne _08079338 ldrb r0, [r6, #0x12] cmp r0, #0xff beq _08079338 ldrb r1, [r6, #7] movs r0, #0x80 ands r0, r1 cmp r0, #0 bne _08079338 adds r0, r6, #0 adds r0, #0x26 ldrb r1, [r0] movs r0, #0xf ands r0, r1 subs r0, #1 cmp r0, #0 bgt _08079338 cmp r2, #3 beq _08079338 ldr r1, [r6, #0x30] movs r0, #0x80 lsls r0, r0, #0xb ands r1, r0 cmp r1, #0 beq _0807934C _08079338: adds r1, r5, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] b _080793E0 .align 2, 0 _08079344: .4byte gLinkEntity _08079348: .4byte gUnk_03003F80 _0807934C: cmp r2, #0x1d bne _0807935E adds r0, r5, #0 adds r0, #0x3e ldrb r0, [r0] cmp r0, #0x10 beq _0807935E strb r1, [r3] b _080793E0 _0807935E: adds r0, r5, #0 adds r0, #0x42 ldrb r3, [r0] movs r1, #0 ldrsb r1, [r0, r1] adds r2, r0, #0 cmp r1, #0 ble _08079372 subs r0, r3, #1 b _08079374 _08079372: adds r0, r3, #1 _08079374: strb r0, [r2] ldrb r0, [r2] cmp r0, #0 beq _080793E0 adds r4, r6, #0 ldrb r0, [r4, #7] movs r1, #0xdf ands r1, r0 strb r1, [r4, #7] adds r0, r5, #0 adds r0, #0x3d ldrb r0, [r0] lsls r0, r0, #0x18 asrs r0, r0, #0x18 cmp r0, #0 ble _080793CA adds r0, r4, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _080793CA ldr r0, [r4, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 bne _080793CA ldrb r0, [r4, #2] cmp r0, #0 bne _080793CA bl sub_08077B2C ldr r0, [r4, #0x30] movs r1, #8 ands r0, r1 cmp r0, #0 bne _080793C4 movs r0, #0x8a lsls r0, r0, #1 strh r0, [r4, #8] b _080793CA _080793C4: movs r0, #0x83 lsls r0, r0, #3 strh r0, [r6, #8] _080793CA: movs r1, #0xa0 lsls r1, r1, #2 adds r4, r5, #0 adds r4, #0x3e ldrb r2, [r4] adds r0, r5, #0 bl sub_080027EA ldrb r0, [r4] bl sub_0807A5B8 _080793E0: pop {r4, r5, r6, pc} .align 2, 0 thumb_func_start sub_080793E4 sub_080793E4: @ 0x080793E4 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _080793FC @ =gUnk_03003F80 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _08079408 ldr r1, _08079400 @ =gUnk_0811C0F8 ldr r0, _08079404 @ =gLinkEntity ldrb r0, [r0, #0x14] lsrs r0, r0, #1 b _08079410 .align 2, 0 _080793FC: .4byte gUnk_03003F80 _08079400: .4byte gUnk_0811C0F8 _08079404: .4byte gLinkEntity _08079408: ldr r1, _08079448 @ =gUnk_0811C0F8 ldr r0, _0807944C @ =gLinkEntity ldrb r0, [r0, #0x15] lsrs r0, r0, #2 _08079410: lsls r0, r0, #1 adds r0, r0, r1 ldrh r4, [r0] bl sub_08079778 cmp r0, #0 beq _08079454 ldr r0, _08079450 @ =gUnk_03003F80 adds r0, #0x90 ldrh r0, [r0] ands r0, r4 cmp r0, #0 beq _08079454 cmp r5, #0 beq _08079442 bl sub_0807A500 ldr r1, _0807944C @ =gLinkEntity adds r1, #0x38 ldrb r1, [r1] adds r2, r5, #0 bl sub_080002F0 cmp r0, #0 beq _08079454 _08079442: movs r0, #1 b _08079456 .align 2, 0 _08079448: .4byte gUnk_0811C0F8 _0807944C: .4byte gLinkEntity _08079450: .4byte gUnk_03003F80 _08079454: movs r0, #0 _08079456: pop {r4, r5, pc} thumb_func_start sub_08079458 sub_08079458: @ 0x08079458 push {r4, r5, lr} ldr r4, _08079498 @ =gLinkEntity movs r1, #0 movs r0, #0x19 strb r0, [r4, #0xc] str r1, [r4, #0x34] str r1, [r4, #0x20] adds r0, r4, #0 adds r0, #0x42 strb r1, [r0] bl sub_08078EE4 ldr r2, _0807949C @ =gUnk_03003F80 ldr r1, [r2, #0x30] movs r0, #0x80 lsls r0, r0, #0xa ands r0, r1 cmp r0, #0 bne _08079514 movs r0, #0x80 lsls r0, r0, #9 ands r1, r0 cmp r1, #0 beq _080794E4 adds r0, r2, #0 adds r0, #0x84 ldr r1, [r0] ldrh r0, [r1, #0x2e] strh r0, [r4, #0x2e] ldrh r0, [r1, #0x32] strh r0, [r4, #0x32] b _08079514 .align 2, 0 _08079498: .4byte gLinkEntity _0807949C: .4byte gUnk_03003F80 _080794A0: ldr r2, _080794DC @ =gLinkEntity ldr r0, [r4] lsrs r0, r0, #0x1e adds r1, r2, #0 adds r1, #0x38 strb r0, [r1] ldr r3, _080794E0 @ =gUnk_03000BF0 ldr r0, [r4] movs r1, #0x3f ands r0, r1 lsls r0, r0, #4 ldrh r1, [r3, #6] adds r0, r0, r1 adds r0, #8 strh r0, [r2, #0x2e] ldr r0, [r4] movs r1, #0xfc lsls r1, r1, #4 ands r0, r1 lsrs r0, r0, #2 ldrh r3, [r3, #8] adds r0, r0, r3 adds r0, #8 strh r0, [r2, #0x32] ldrb r1, [r2, #0x10] movs r0, #0x80 orrs r0, r1 strb r0, [r2, #0x10] b _08079514 .align 2, 0 _080794DC: .4byte gLinkEntity _080794E0: .4byte gUnk_03000BF0 _080794E4: movs r5, #0 ldr r1, [r2, #0x40] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _08079514 adds r4, r2, #0 adds r4, #0x40 _080794F4: ldr r1, [r4] ldrh r0, [r4] lsrs r1, r1, #0x1e bl sub_080002E0 cmp r0, #0xf bne _080794A0 adds r4, #4 adds r5, #1 cmp r5, #0xf bhi _08079514 ldr r1, [r4] movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 bne _080794F4 _08079514: ldr r0, _0807951C @ =gLinkEntity bl sub_08016A04 pop {r4, r5, pc} .align 2, 0 _0807951C: .4byte gLinkEntity thumb_func_start sub_08079520 sub_08079520: @ 0x08079520 push {lr} adds r1, r0, #0 ldr r0, _08079538 @ =gUnk_03003F80 ldrb r0, [r0, #0xd] cmp r0, #0x7f ble _08079532 ldrb r0, [r1, #0x14] lsrs r0, r0, #1 lsls r0, r0, #3 _08079532: strb r0, [r1, #0x15] pop {pc} .align 2, 0 _08079538: .4byte gUnk_03003F80 thumb_func_start sub_0807953C sub_0807953C: @ 0x0807953C ldr r1, _08079548 @ =0x00000F38 ldr r0, _0807954C @ =gUnk_03003F80 adds r0, #0x92 ldrh r0, [r0] ands r0, r1 bx lr .align 2, 0 _08079548: .4byte 0x00000F38 _0807954C: .4byte gUnk_03003F80 thumb_func_start sub_08079550 sub_08079550: @ 0x08079550 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} ldr r0, _080795A8 @ =gUnk_03004030 ldrb r0, [r0, #8] cmp r0, #0 beq _08079562 b _080796FC _08079562: ldr r2, _080795AC @ =gUnk_03003F80 ldrb r0, [r2, #0x1e] cmp r0, #0 beq _08079576 ldr r0, [r2, #0x30] movs r1, #0x80 lsls r1, r1, #3 ands r0, r1 cmp r0, #0 beq _080795B4 _08079576: adds r0, r2, #0 adds r0, #0x26 ldrb r0, [r0] ldr r1, _080795B0 @ =gLinkEntity mov r8, r1 cmp r0, #0 bne _080795A0 ldrb r1, [r2, #0x1b] movs r0, #0x40 ands r0, r1 cmp r0, #0 bne _080795A0 mov r3, r8 ldrb r1, [r3, #0x15] ldrb r2, [r2, #0xd] cmp r1, r2 bne _080795A0 movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _080795B4 _080795A0: movs r0, #0 mov r5, r8 strb r0, [r5, #0xf] b _080796FE .align 2, 0 _080795A8: .4byte gUnk_03004030 _080795AC: .4byte gUnk_03003F80 _080795B0: .4byte gLinkEntity _080795B4: bl sub_08079778 cmp r0, #0 bne _080795BE b _080796FC _080795BE: ldr r3, _08079610 @ =gLinkEntity ldrb r2, [r3, #0x14] movs r0, #6 ands r0, r2 ldr r1, _08079614 @ =gUnk_0811C100 adds r1, r0, r1 movs r0, #2 ands r0, r2 mov r8, r3 cmp r0, #0 beq _0807961C movs r6, #0x2e ldrsh r2, [r3, r6] movs r0, #0 ldrsb r0, [r1, r0] adds r2, r2, r0 ldr r4, _08079618 @ =gUnk_03000BF0 ldrh r0, [r4, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 mov r0, r8 movs r5, #0x32 ldrsh r1, [r0, r5] ldr r0, [r0, #0x48] ldrb r5, [r0, #3] adds r0, r1, r5 ldrh r4, [r4, #8] subs r0, r0, r4 asrs r0, r0, #4 ands r0, r3 lsls r7, r0, #6 orrs r7, r2 subs r1, r1, r5 subs r1, r1, r4 asrs r1, r1, #4 ands r1, r3 lsls r4, r1, #6 orrs r4, r2 b _0807965E .align 2, 0 _08079610: .4byte gLinkEntity _08079614: .4byte gUnk_0811C100 _08079618: .4byte gUnk_03000BF0 _0807961C: mov r6, r8 movs r0, #0x2e ldrsh r2, [r6, r0] ldr r0, [r6, #0x48] ldrb r0, [r0, #4] mov ip, r0 adds r0, r2, r0 ldr r4, _080796EC @ =gUnk_03000BF0 ldrh r3, [r4, #6] mov sb, r3 subs r0, r0, r3 asrs r7, r0, #4 movs r3, #0x3f ands r7, r3 movs r5, #0x32 ldrsh r0, [r6, r5] ldrb r1, [r1, #1] lsls r1, r1, #0x18 asrs r1, r1, #0x18 adds r0, r0, r1 ldrh r1, [r4, #8] subs r0, r0, r1 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r7, r0 mov r6, ip subs r2, r2, r6 mov r1, sb subs r2, r2, r1 asrs r4, r2, #4 ands r4, r3 orrs r4, r0 _0807965E: adds r0, r7, #0 mov r5, r8 adds r5, #0x38 ldrb r1, [r5] bl sub_080002C8 adds r3, r0, #0 ldr r6, _080796F0 @ =gUnk_0811C1E8 mov r1, r8 ldrb r0, [r1, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r6 ldr r1, [r0] adds r0, r3, #0 bl sub_08007DD6 adds r3, r0, #0 cmp r3, #0 beq _080796FC adds r0, r4, #0 ldrb r1, [r5] bl sub_080002C8 adds r3, r0, #0 mov r5, r8 ldrb r0, [r5, #0x14] lsrs r0, r0, #1 lsls r0, r0, #2 adds r0, r0, r6 ldr r1, [r0] adds r0, r3, #0 bl sub_08007DD6 adds r3, r0, #0 cmp r3, #0 beq _080796FC ldr r1, _080796F4 @ =gUnk_03003F80 ldrb r2, [r1, #6] movs r0, #0x80 orrs r0, r2 strb r0, [r1, #6] ldrb r0, [r1, #0x1e] adds r4, r1, #0 cmp r0, #0 bne _080796C8 ldrb r0, [r5, #0xf] adds r0, #1 strb r0, [r5, #0xf] lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #5 bls _080796FC _080796C8: ldr r0, _080796F8 @ =gLinkEntity subs r1, r3, #1 movs r2, #0 strb r1, [r0, #0x14] movs r1, #4 strb r1, [r0, #0xc] strb r2, [r0, #0xd] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0x81 strb r1, [r4, #2] bl sub_08070680 movs r0, #1 b _080796FE .align 2, 0 _080796EC: .4byte gUnk_03000BF0 _080796F0: .4byte gUnk_0811C1E8 _080796F4: .4byte gUnk_03003F80 _080796F8: .4byte gLinkEntity _080796FC: movs r0, #0 _080796FE: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08079708 sub_08079708: @ 0x08079708 push {r4, lr} ldr r4, _08079740 @ =gUnk_03003F80 adds r2, r4, #0 adds r2, #0xa8 movs r3, #0 movs r1, #0x12 strb r1, [r2] subs r2, #0x6c movs r1, #0xff strb r1, [r2] ldrb r2, [r0, #0x10] movs r1, #0x7f ands r1, r2 strb r1, [r0, #0x10] movs r1, #0xa strb r1, [r0, #0xc] strb r3, [r0, #0xd] bl sub_080085B0 ldr r0, [r4, #0x30] movs r1, #0x88 lsls r1, r1, #1 ands r0, r1 cmp r0, #0 bne _0807973E bl sub_0805E544 _0807973E: pop {r4, pc} .align 2, 0 _08079740: .4byte gUnk_03003F80 thumb_func_start sub_08079744 sub_08079744: @ 0x08079744 push {lr} adds r2, r0, #0 ldrh r0, [r2, #0x2e] movs r1, #0xf ands r1, r0 cmp r1, #8 beq _0807975E cmp r1, #8 ble _0807975A subs r0, #1 b _0807975C _0807975A: adds r0, #1 _0807975C: strh r0, [r2, #0x2e] _0807975E: ldrh r0, [r2, #0x32] movs r1, #0xf ands r1, r0 cmp r1, #8 beq _08079774 cmp r1, #8 ble _08079770 subs r0, #1 b _08079772 _08079770: adds r0, #1 _08079772: strh r0, [r2, #0x32] _08079774: pop {pc} .align 2, 0 thumb_func_start sub_08079778 sub_08079778: @ 0x08079778 push {lr} ldr r0, _08079790 @ =gUnk_03003F80 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _0807979C ldr r2, _08079794 @ =gUnk_0811C108 ldr r1, _08079798 @ =gLinkEntity ldrb r0, [r1, #0x14] lsrs r0, r0, #1 b _080797A4 .align 2, 0 _08079790: .4byte gUnk_03003F80 _08079794: .4byte gUnk_0811C108 _08079798: .4byte gLinkEntity _0807979C: ldr r2, _080797BC @ =gUnk_0811C108 ldr r1, _080797C0 @ =gLinkEntity ldrb r0, [r1, #0x15] lsrs r0, r0, #2 _080797A4: lsls r0, r0, #1 adds r0, r0, r2 ldrh r2, [r0] movs r3, #0 ldrh r0, [r1, #0x2a] ands r0, r2 cmp r2, r0 bne _080797B6 movs r3, #1 _080797B6: adds r0, r3, #0 pop {pc} .align 2, 0 _080797BC: .4byte gUnk_0811C108 _080797C0: .4byte gLinkEntity thumb_func_start sub_080797C4 sub_080797C4: @ 0x080797C4 push {lr} ldr r1, _080797E4 @ =gUnk_0811C110 ldr r2, _080797E8 @ =gLinkEntity ldrb r0, [r2, #0x15] lsrs r0, r0, #3 lsls r0, r0, #1 adds r0, r0, r1 ldrh r1, [r0] movs r3, #0 ldrh r0, [r2, #0x2a] ands r0, r1 cmp r1, r0 bne _080797E0 movs r3, #1 _080797E0: adds r0, r3, #0 pop {pc} .align 2, 0 _080797E4: .4byte gUnk_0811C110 _080797E8: .4byte gLinkEntity thumb_func_start sub_080797EC sub_080797EC: @ 0x080797EC push {r4, r5, lr} ldr r4, _08079804 @ =gUnk_03003F80 ldr r1, [r4, #0x30] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0807985C ldrb r0, [r4, #5] cmp r0, #0 beq _0807980C ldr r5, _08079808 @ =0x00000934 b _0807991E .align 2, 0 _08079804: .4byte gUnk_03003F80 _08079808: .4byte 0x00000934 _0807980C: ldrb r0, [r4, #3] cmp r0, #0 beq _08079818 movs r5, #0x82 lsls r5, r5, #3 b _0807991E _08079818: adds r0, r4, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 bne _080798A0 adds r0, r4, #0 adds r0, #0x26 ldrb r0, [r0] movs r5, #0xa4 lsls r5, r5, #2 cmp r0, #0 bne _0807991E movs r5, #0xb6 lsls r5, r5, #1 ldrb r1, [r4, #0x1b] movs r0, #0x48 ands r0, r1 cmp r0, #0 bne _080798C2 lsls r0, r1, #0x18 cmp r0, #0 bne _080798CE adds r1, r4, #0 adds r1, #0xa8 ldrb r0, [r1] cmp r0, #0 bne _08079852 movs r0, #1 strb r0, [r1] _08079852: ldr r5, _08079858 @ =0x00000404 b _0807991E .align 2, 0 _08079858: .4byte 0x00000404 _0807985C: ldrb r0, [r4, #0x1c] cmp r0, #0 bne _0807992E ldrb r0, [r4, #5] cmp r0, #0 beq _0807986E movs r5, #0xd2 lsls r5, r5, #2 b _0807991E _0807986E: ldrb r0, [r4, #0x1e] cmp r0, #0 beq _0807987A movs r5, #0xa6 lsls r5, r5, #2 b _0807991E _0807987A: movs r0, #0x80 lsls r0, r0, #5 ands r1, r0 cmp r1, #0 beq _0807988A movs r5, #0xe2 lsls r5, r5, #3 b _0807991E _0807988A: ldrb r0, [r4, #3] cmp r0, #0 beq _08079896 movs r5, #0xb0 lsls r5, r5, #1 b _0807991E _08079896: adds r0, r4, #0 adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _080798A6 _080798A0: movs r5, #0xa1 lsls r5, r5, #2 b _0807991E _080798A6: adds r0, r4, #0 adds r0, #0x26 ldrb r0, [r0] movs r5, #0xa4 lsls r5, r5, #2 cmp r0, #0 bne _0807991E movs r5, #0xb6 lsls r5, r5, #1 ldrb r1, [r4, #0x1b] movs r0, #0x48 ands r0, r1 cmp r0, #0 beq _080798C8 _080798C2: movs r0, #0x6c strb r0, [r4] b _0807992E _080798C8: lsls r0, r1, #0x18 cmp r0, #0 beq _080798FC _080798CE: movs r0, #0 bl sub_080793E4 cmp r0, #0 beq _0807991E bl sub_0807A500 ldr r1, _080798F8 @ =gLinkEntity adds r1, #0x38 ldrb r1, [r1] bl sub_080002E0 cmp r0, #0xff beq _0807991E ldrb r1, [r4, #0x1b] movs r0, #0xf7 ands r0, r1 strb r0, [r4, #0x1b] movs r5, #0xb8 lsls r5, r5, #1 b _0807991E .align 2, 0 _080798F8: .4byte gLinkEntity _080798FC: adds r1, r4, #0 adds r1, #0xa8 ldrb r0, [r1] cmp r0, #0 bne _0807990A movs r0, #1 strb r0, [r1] _0807990A: ldr r0, [r4, #0x30] movs r1, #0x80 lsls r1, r1, #0x10 ands r0, r1 movs r5, #0x82 lsls r5, r5, #1 cmp r0, #0 beq _0807991E movs r5, #0xc1 lsls r5, r5, #3 _0807991E: ldr r0, _08079930 @ =gUnk_03003F80 strh r5, [r0, #8] ldrb r0, [r0, #3] cmp r0, #0 bne _0807992E ldr r0, _08079934 @ =gLinkEntity bl sub_080042B8 _0807992E: pop {r4, r5, pc} .align 2, 0 _08079930: .4byte gUnk_03003F80 _08079934: .4byte gLinkEntity thumb_func_start sub_08079938 sub_08079938: @ 0x08079938 push {r4, lr} ldr r3, _08079954 @ =gUnk_03003F80 ldr r2, [r3, #0x30] movs r0, #8 ands r0, r2 mov ip, r3 cmp r0, #0 beq _080799E4 ldrb r0, [r3, #5] cmp r0, #0 beq _0807995C ldr r4, _08079958 @ =0x0000092C b _08079AD8 .align 2, 0 _08079954: .4byte gUnk_03003F80 _08079958: .4byte 0x0000092C _0807995C: mov r0, ip adds r0, #0x3d mov r3, ip ldrb r1, [r3, #0x1c] ldrb r0, [r0] orrs r0, r1 cmp r0, #0 beq _0807996E b _08079B14 _0807996E: movs r0, #0x80 lsls r0, r0, #0x12 ands r0, r2 cmp r0, #0 bne _08079A1E mov r4, ip ldrb r0, [r4, #3] cmp r0, #0 beq _08079988 ldr r4, _08079984 @ =0x00000414 b _08079AD8 .align 2, 0 _08079984: .4byte 0x00000414 _08079988: mov r0, ip adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 bne _08079A5C mov r0, ip adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 bne _08079A6C mov r0, ip ldrb r1, [r0, #0x1b] movs r0, #0x48 ands r0, r1 cmp r0, #0 beq _080799AA b _08079B14 _080799AA: cmp r1, #0 beq _080799B0 b _08079AA4 _080799B0: mov r1, ip ldrb r0, [r1, #4] cmp r0, #0 beq _080799BA b _08079B14 _080799BA: movs r0, #0x20 ands r2, r0 cmp r2, #0 beq _080799D0 ldr r0, _080799D8 @ =gUnk_02033A90 ldrb r0, [r0, #0x17] cmp r0, #4 bne _080799CC b _08079AD4 _080799CC: cmp r0, #5 bne _080799DC _080799D0: movs r4, #0x80 lsls r4, r4, #3 b _08079AD8 .align 2, 0 _080799D8: .4byte gUnk_02033A90 _080799DC: ldr r4, _080799E0 @ =0x000002C2 b _08079AD8 .align 2, 0 _080799E0: .4byte 0x000002C2 _080799E4: mov r4, ip ldrb r0, [r4, #5] cmp r0, #0 beq _080799F2 movs r4, #0xd4 lsls r4, r4, #2 b _08079AD8 _080799F2: mov r0, ip adds r0, #0x3d mov r4, ip ldrb r1, [r4, #0x1c] ldrb r0, [r0] orrs r0, r1 cmp r0, #0 beq _08079A04 b _08079B14 _08079A04: movs r0, #0x80 lsls r0, r0, #0xc ands r0, r2 cmp r0, #0 beq _08079A14 movs r4, #0x8b lsls r4, r4, #4 b _08079AD8 _08079A14: movs r0, #0x80 lsls r0, r0, #0x12 ands r0, r2 cmp r0, #0 beq _08079A24 _08079A1E: movs r4, #0x81 lsls r4, r4, #4 b _08079AD8 _08079A24: mov r1, ip ldrb r0, [r1, #0x1e] cmp r0, #0 beq _08079A32 movs r4, #0xa6 lsls r4, r4, #2 b _08079AD8 _08079A32: movs r0, #0x80 lsls r0, r0, #5 ands r0, r2 cmp r0, #0 beq _08079A44 ldr r4, _08079A40 @ =0x0000070C b _08079AD8 .align 2, 0 _08079A40: .4byte 0x0000070C _08079A44: mov r4, ip ldrb r0, [r4, #3] cmp r0, #0 beq _08079A52 movs r4, #0xb2 lsls r4, r4, #1 b _08079AD8 _08079A52: mov r0, ip adds r0, #0x21 ldrb r0, [r0] cmp r0, #0 beq _08079A62 _08079A5C: movs r4, #0xa0 lsls r4, r4, #2 b _08079AD8 _08079A62: mov r0, ip adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08079A72 _08079A6C: movs r4, #0xa3 lsls r4, r4, #2 b _08079AD8 _08079A72: mov r0, ip ldrb r1, [r0, #0x1b] movs r0, #0x48 ands r0, r1 cmp r0, #0 bne _08079B14 movs r0, #0x20 ands r2, r0 cmp r2, #0 beq _08079AA0 ldr r0, _08079A98 @ =gUnk_02033A90 ldrb r0, [r0, #0x17] ldr r4, _08079A9C @ =0x000002C2 cmp r0, #4 bne _08079AD8 movs r4, #0xa6 lsls r4, r4, #3 b _08079AD8 .align 2, 0 _08079A98: .4byte gUnk_02033A90 _08079A9C: .4byte 0x000002C2 _08079AA0: cmp r1, #0 beq _08079AAA _08079AA4: movs r4, #0xb4 lsls r4, r4, #1 b _08079AD8 _08079AAA: ldrb r0, [r3, #4] cmp r0, #0 bne _08079B14 ldr r0, [r3, #0x30] movs r1, #0x80 lsls r1, r1, #0x10 ands r0, r1 cmp r0, #0 beq _08079AD4 ldr r0, _08079ACC @ =gUnk_03000B80 adds r0, #0x63 ldrb r0, [r0] cmp r0, #0 bne _08079B14 ldr r4, _08079AD0 @ =0x00000604 b _08079AD8 .align 2, 0 _08079ACC: .4byte gUnk_03000B80 _08079AD0: .4byte 0x00000604 _08079AD4: movs r4, #0x80 lsls r4, r4, #1 _08079AD8: mov r1, ip strh r4, [r1, #8] ldrb r0, [r1, #5] cmp r0, #0 bne _08079B10 movs r3, #0 movs r2, #0 ldr r1, _08079B18 @ =gUnk_03000B80 _08079AE8: ldrb r0, [r1, #0xf] cmp r0, r3 bls _08079AF0 adds r3, r0, #0 _08079AF0: adds r1, #0x1c adds r2, #1 cmp r2, #3 bls _08079AE8 mov r2, ip ldrb r0, [r2, #0xe] cmp r0, r3 blo _08079B14 lsls r0, r4, #0x18 lsrs r0, r0, #0x18 ldrb r3, [r2] cmp r0, r3 bne _08079B10 ldr r0, _08079B1C @ =gLinkEntity bl sub_080042B8 _08079B10: ldr r0, _08079B20 @ =gUnk_03003F80 strb r4, [r0] _08079B14: pop {r4, pc} .align 2, 0 _08079B18: .4byte gUnk_03000B80 _08079B1C: .4byte gLinkEntity _08079B20: .4byte gUnk_03003F80 thumb_func_start sub_08079B24 sub_08079B24: @ 0x08079B24 push {r4, r5, lr} ldr r2, _08079B60 @ =gLinkEntity ldrb r0, [r2, #0xc] cmp r0, #0xa beq _08079BD4 adds r0, r2, #0 adds r0, #0x45 ldrb r3, [r0] cmp r3, #0 bne _08079BD4 ldr r4, _08079B64 @ =gUnk_03003F80 ldr r1, [r4, #0x30] ldr r0, _08079B68 @ =0xFEFFFFFF ands r1, r0 str r1, [r4, #0x30] adds r0, r2, #0 adds r0, #0x42 strb r3, [r0] ldrb r0, [r4, #7] cmp r0, #0 bne _08079BD4 adds r0, r4, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _08079B6C bl sub_08079458 b _08079BC0 .align 2, 0 _08079B60: .4byte gLinkEntity _08079B64: .4byte gUnk_03003F80 _08079B68: .4byte 0xFEFFFFFF _08079B6C: ldrb r0, [r4, #0x14] cmp r0, #0 bne _08079BC0 movs r3, #0x80 lsls r3, r3, #5 ands r3, r1 cmp r3, #0 bne _08079BC0 movs r5, #0x36 ldrsh r0, [r2, r5] cmp r0, #0 bge _08079BA6 ldr r0, [r2, #0x20] cmp r0, #0 ble _08079B8C str r3, [r2, #0x20] _08079B8C: ldrb r1, [r4, #2] movs r3, #0x41 adds r0, r3, #0 ands r0, r1 cmp r0, #0 bne _08079BD4 strb r3, [r4, #2] movs r0, #0xff strb r0, [r2, #0x15] movs r0, #1 rsbs r0, r0, #0 strb r0, [r4, #0xd] b _08079BD4 _08079BA6: movs r0, #2 ands r1, r0 cmp r1, #0 bne _08079BC0 bl sub_08079D48 cmp r0, #0 bne _08079BC0 ldrb r0, [r4, #0xa] movs r1, #0x10 orrs r0, r1 strb r0, [r4, #0xa] b _08079BD4 _08079BC0: ldr r2, _08079BD0 @ =gLinkEntity ldrb r1, [r2, #0x10] movs r0, #0x7f ands r0, r1 strb r0, [r2, #0x10] movs r0, #0 b _08079BD6 .align 2, 0 _08079BD0: .4byte gLinkEntity _08079BD4: movs r0, #1 _08079BD6: pop {r4, r5, pc} thumb_func_start sub_08079BD8 sub_08079BD8: @ 0x08079BD8 push {r4, r5, lr} ldr r4, _08079C2C @ =gLinkEntity ldr r1, [r4, #0x2c] str r1, [r0, #0x2c] ldr r1, [r4, #0x30] str r1, [r0, #0x30] ldr r1, [r4, #0x34] str r1, [r0, #0x34] adds r1, r4, #0 adds r1, #0x38 ldrb r2, [r1] adds r1, r0, #0 adds r1, #0x38 strb r2, [r1] ldrb r3, [r4, #0x19] lsrs r3, r3, #6 lsls r3, r3, #6 ldrb r5, [r0, #0x19] movs r2, #0x3f adds r1, r2, #0 ands r1, r5 orrs r1, r3 strb r1, [r0, #0x19] ldrb r1, [r4, #0x1b] lsrs r1, r1, #6 lsls r1, r1, #6 ldrb r3, [r0, #0x1b] ands r2, r3 orrs r2, r1 strb r2, [r0, #0x1b] adds r4, #0x29 ldrb r2, [r4] lsls r2, r2, #0x1d adds r0, #0x29 lsrs r2, r2, #0x1d ldrb r3, [r0] movs r1, #8 rsbs r1, r1, #0 ands r1, r3 orrs r1, r2 strb r1, [r0] pop {r4, r5, pc} .align 2, 0 _08079C2C: .4byte gLinkEntity thumb_func_start sub_08079C30 sub_08079C30: @ 0x08079C30 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r6, r0, #0 ldr r0, _08079C68 @ =gUnk_03003F80 ldrb r1, [r0, #0x14] adds r7, r0, #0 cmp r1, #0 beq _08079C44 b _08079D40 _08079C44: ldr r1, [r7, #0x30] movs r0, #2 ands r0, r1 cmp r0, #0 bne _08079D40 movs r0, #0x80 ands r1, r0 cmp r1, #0 bne _08079D36 ldrb r0, [r7, #0x13] subs r0, #0xd cmp r0, #0x1d bhi _08079CE8 lsls r0, r0, #2 ldr r1, _08079C6C @ =_08079C70 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _08079C68: .4byte gUnk_03003F80 _08079C6C: .4byte _08079C70 _08079C70: @ jump table .4byte _08079D36 @ case 0 .4byte _08079D36 @ case 1 .4byte _08079D36 @ case 2 .4byte _08079D36 @ case 3 .4byte _08079CE8 @ case 4 .4byte _08079CE8 @ case 5 .4byte _08079CE8 @ case 6 .4byte _08079D36 @ case 7 .4byte _08079CE8 @ case 8 .4byte _08079CE8 @ case 9 .4byte _08079D36 @ case 10 .4byte _08079CE8 @ case 11 .4byte _08079CE8 @ case 12 .4byte _08079CE8 @ case 13 .4byte _08079CE8 @ case 14 .4byte _08079CE8 @ case 15 .4byte _08079CE8 @ case 16 .4byte _08079CE8 @ case 17 .4byte _08079CE8 @ case 18 .4byte _08079CE8 @ case 19 .4byte _08079CE8 @ case 20 .4byte _08079CE8 @ case 21 .4byte _08079CE8 @ case 22 .4byte _08079CE8 @ case 23 .4byte _08079CE8 @ case 24 .4byte _08079CE8 @ case 25 .4byte _08079CE8 @ case 26 .4byte _08079CE8 @ case 27 .4byte _08079CE8 @ case 28 .4byte _08079D36 @ case 29 _08079CE8: mov r8, r7 mov r0, r8 ldrb r4, [r0, #0x12] movs r2, #1 rsbs r2, r2, #0 adds r0, r6, #0 movs r1, #0 bl sub_080002B4 ldr r5, _08079D3C @ =gUnk_08007CAC adds r1, r5, #0 bl sub_08007DD6 cmp r4, r0 bne _08079D40 mov r0, r8 ldrb r4, [r0, #0x12] adds r0, r6, #0 movs r1, #2 movs r2, #0 bl sub_080002B4 adds r1, r5, #0 bl sub_08007DD6 cmp r4, r0 bne _08079D40 ldrb r4, [r7, #0x12] movs r1, #2 rsbs r1, r1, #0 adds r0, r6, #0 movs r2, #0 bl sub_080002B4 adds r1, r5, #0 bl sub_08007DD6 cmp r4, r0 bne _08079D40 _08079D36: movs r0, #1 b _08079D42 .align 2, 0 _08079D3C: .4byte gUnk_08007CAC _08079D40: movs r0, #0 _08079D42: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_08079D48 sub_08079D48: @ 0x08079D48 push {r4, lr} ldr r4, _08079D78 @ =gLinkEntity adds r0, r4, #0 bl sub_08079C30 cmp r0, #0 beq _08079D72 bl sub_08008B22 cmp r0, #0 bne _08079D80 adds r0, r4, #0 bl sub_080002B8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r1, _08079D7C @ =gUnk_0811C268 bl sub_08007DD6 cmp r0, #0 bne _08079D80 _08079D72: movs r0, #1 b _08079D82 .align 2, 0 _08079D78: .4byte gLinkEntity _08079D7C: .4byte gUnk_0811C268 _08079D80: movs r0, #0 _08079D82: pop {r4, pc} thumb_func_start sub_08079D84 sub_08079D84: @ 0x08079D84 push {lr} ldr r3, _08079DC0 @ =gLinkEntity ldrb r0, [r3, #0xc] cmp r0, #1 beq _08079D92 cmp r0, #0x18 bne _08079DBE _08079D92: ldr r2, _08079DC4 @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0x38 movs r0, #0x9c strb r0, [r1] adds r1, #1 movs r0, #2 strb r0, [r1] adds r1, #1 movs r0, #0x3c strb r0, [r1] movs r0, #0xe strb r0, [r2, #0xc] adds r1, r3, #0 adds r1, #0x3d movs r0, #0x7c strb r0, [r1] bl sub_08077B20 ldr r0, _08079DC8 @ =0x00000193 bl sub_080A3268 _08079DBE: pop {pc} .align 2, 0 _08079DC0: .4byte gLinkEntity _08079DC4: .4byte gUnk_03003F80 _08079DC8: .4byte 0x00000193 thumb_func_start sub_08079DCC sub_08079DCC: @ 0x08079DCC push {lr} ldr r0, _08079DFC @ =gLinkEntity ldrb r0, [r0, #0xc] cmp r0, #1 bne _08079DF8 ldr r3, _08079E00 @ =gUnk_03003F80 adds r1, r3, #0 adds r1, #0x38 movs r2, #0 movs r0, #0xa0 strb r0, [r1] adds r1, #1 movs r0, #3 strb r0, [r1] adds r0, r3, #0 adds r0, #0x3a strb r2, [r0] movs r0, #0xe strb r0, [r3, #0xc] ldr r0, _08079E04 @ =0x00000193 bl sub_080A3268 _08079DF8: pop {pc} .align 2, 0 _08079DFC: .4byte gLinkEntity _08079E00: .4byte gUnk_03003F80 _08079E04: .4byte 0x00000193 thumb_func_start sub_08079E08 sub_08079E08: @ 0x08079E08 push {r4, lr} ldr r0, _08079E50 @ =gLinkEntity ldrh r2, [r0, #0x24] movs r3, #0x24 ldrsh r1, [r0, r3] adds r4, r0, #0 cmp r1, #0 beq _08079E2E ldr r0, _08079E54 @ =gUnk_03003F80 adds r0, #0x80 ldrh r0, [r0] adds r0, r2, r0 strh r0, [r4, #0x24] lsls r0, r0, #0x10 asrs r0, r0, #0x10 cmp r0, #0x1f bgt _08079E2E movs r0, #0x20 strh r0, [r4, #0x24] _08079E2E: adds r2, r4, #0 ldrb r1, [r2, #0x15] movs r0, #4 ands r0, r1 cmp r0, #0 bne _08079E40 ldrb r0, [r2, #0x15] bl sub_08079E90 _08079E40: adds r0, r4, #0 bl sub_0800857C ldrb r0, [r4, #0x15] bl sub_0807A5B8 pop {r4, pc} .align 2, 0 _08079E50: .4byte gLinkEntity _08079E54: .4byte gUnk_03003F80 thumb_func_start sub_08079E58 sub_08079E58: @ 0x08079E58 push {r4, r5, r6, lr} adds r6, r0, #0 adds r4, r1, #0 ldr r5, _08079E8C @ =gLinkEntity ldrb r1, [r5, #0x15] movs r0, #4 ands r0, r1 cmp r0, #0 bne _08079E70 adds r0, r4, #0 bl sub_08079E90 _08079E70: adds r0, r5, #0 bl sub_080085B0 lsls r1, r6, #0x10 asrs r1, r1, #0x10 lsls r2, r4, #0x18 lsrs r2, r2, #0x18 adds r0, r5, #0 bl sub_080027EA adds r0, r4, #0 bl sub_0807A5B8 pop {r4, r5, r6, pc} .align 2, 0 _08079E8C: .4byte gLinkEntity thumb_func_start sub_08079E90 sub_08079E90: @ 0x08079E90 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov sb, r0 ldr r1, _08079EBC @ =gLinkEntity ldrb r2, [r1, #0x15] movs r0, #8 ands r0, r2 adds r7, r1, #0 cmp r0, #0 beq _08079ECA movs r0, #0x10 ands r0, r2 cmp r0, #0 beq _08079EC0 ldr r0, [r7, #0x48] ldrb r0, [r0, #2] rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 b _08079EC4 .align 2, 0 _08079EBC: .4byte gLinkEntity _08079EC0: ldr r0, [r7, #0x48] ldrb r5, [r0, #2] _08079EC4: ldr r0, [r7, #0x48] ldrb r4, [r0, #3] b _08079EDE _08079ECA: ldr r0, [r7, #0x48] ldrb r5, [r0, #4] cmp r2, #0 beq _08079ED6 ldrb r4, [r0, #5] b _08079EDE _08079ED6: ldrb r0, [r0, #5] rsbs r0, r0, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 _08079EDE: lsls r0, r5, #0x10 asrs r0, r0, #0x10 mov r8, r0 lsls r0, r4, #0x10 asrs r6, r0, #0x10 adds r0, r7, #0 mov r1, r8 adds r2, r6, #0 bl sub_080002CC adds r1, r0, #0 mov r0, sb bl sub_08079F48 cmp r0, #0 bne _08079F3C ldrb r1, [r7, #0x15] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _08079F10 rsbs r0, r6, #0 lsls r0, r0, #0x10 lsrs r4, r0, #0x10 b _08079F18 _08079F10: mov r1, r8 rsbs r0, r1, #0 lsls r0, r0, #0x10 lsrs r5, r0, #0x10 _08079F18: ldr r0, _08079F38 @ =gLinkEntity lsls r1, r5, #0x10 asrs r1, r1, #0x10 lsls r2, r4, #0x10 asrs r2, r2, #0x10 bl sub_080002CC adds r1, r0, #0 mov r0, sb bl sub_08079F48 cmp r0, #0 bne _08079F3C movs r0, #0 b _08079F3E .align 2, 0 _08079F38: .4byte gLinkEntity _08079F3C: movs r0, #1 _08079F3E: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_08079F48 sub_08079F48: @ 0x08079F48 push {lr} ldr r3, _08079F60 @ =gUnk_0811C118 lsrs r2, r0, #2 adds r0, r2, r3 ldrb r0, [r0] cmp r0, r1 bne _08079F68 ldr r0, _08079F64 @ =gLinkEntity ldrb r1, [r0, #0x15] adds r1, #4 b _08079F7C .align 2, 0 _08079F60: .4byte gUnk_0811C118 _08079F64: .4byte gLinkEntity _08079F68: adds r0, r2, #1 adds r0, r0, r3 ldrb r0, [r0] cmp r0, r1 beq _08079F76 movs r0, #0 b _08079F84 _08079F76: ldr r0, _08079F88 @ =gLinkEntity ldrb r1, [r0, #0x15] subs r1, #4 _08079F7C: movs r2, #0x1f ands r1, r2 strb r1, [r0, #0x15] movs r0, #1 _08079F84: pop {pc} .align 2, 0 _08079F88: .4byte gLinkEntity thumb_func_start sub_08079F8C sub_08079F8C: @ 0x08079F8C push {lr} ldr r2, _08079FB4 @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _08079FB8 @ =0x22189B75 ands r0, r1 cmp r0, #0 bne _08079FB0 adds r0, r2, #0 adds r0, #0x3c ldrb r0, [r0] cmp r0, #0 bne _08079FB0 ldr r0, _08079FBC @ =gLinkEntity ldrb r0, [r0, #0xc] cmp r0, #3 beq _08079FB0 cmp r0, #0xb bne _08079FC0 _08079FB0: movs r0, #0 b _08079FC2 .align 2, 0 _08079FB4: .4byte gUnk_03003F80 _08079FB8: .4byte 0x22189B75 _08079FBC: .4byte gLinkEntity _08079FC0: movs r0, #1 _08079FC2: pop {pc} thumb_func_start sub_08079FC4 sub_08079FC4: @ 0x08079FC4 push {lr} adds r1, r0, #0 ldr r0, _08079FD0 @ =gLinkEntity bl sub_08079FD4 pop {pc} .align 2, 0 _08079FD0: .4byte gLinkEntity thumb_func_start sub_08079FD4 sub_08079FD4: @ 0x08079FD4 push {r4, r5, r6, lr} sub sp, #4 adds r5, r0, #0 movs r0, #0x2e ldrsh r2, [r5, r0] ldr r3, _0807A008 @ =gUnk_03000BF0 ldrh r0, [r3, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r4, #0x3f ands r2, r4 movs r6, #0x32 ldrsh r0, [r5, r6] ldrh r3, [r3, #8] subs r0, r0, r3 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r2, r0 lsls r2, r2, #1 ldr r6, _0807A00C @ =gUnk_02027EB4 cmp r1, #2 bne _0807A004 ldr r6, _0807A010 @ =gUnk_0200D654 _0807A004: movs r4, #0 b _0807A028 .align 2, 0 _0807A008: .4byte gUnk_03000BF0 _0807A00C: .4byte gUnk_02027EB4 _0807A010: .4byte gUnk_0200D654 _0807A014: cmp r1, #0x23 beq _0807A028 cmp r1, #0x27 beq _0807A028 ldr r0, _0807A04C @ =gUnk_080082DC subs r1, #0x10 adds r1, r1, r0 ldrb r0, [r1] cmp r0, #0 beq _0807A046 _0807A028: adds r4, #1 adds r0, r5, #0 mov r1, sp bl sub_08004202 adds r2, r0, #0 lsrs r0, r2, #1 adds r0, r6, r0 ldrb r1, [r0] cmp r1, #0xe bls _0807A046 cmp r1, #0xf bls _0807A028 cmp r1, #0x1d bne _0807A014 _0807A046: adds r0, r4, #0 add sp, #4 pop {r4, r5, r6, pc} .align 2, 0 _0807A04C: .4byte gUnk_080082DC thumb_func_start sub_0807A050 sub_0807A050: @ 0x0807A050 push {lr} ldr r3, _0807A088 @ =gUnk_03003F80 ldrb r2, [r3, #0xf] cmp r2, #0 beq _0807A06A ldr r0, _0807A08C @ =gUnk_02000050 ldrb r1, [r0] movs r0, #0x7f ands r0, r1 cmp r0, #0 bne _0807A06A subs r0, r2, #1 strb r0, [r3, #0xf] _0807A06A: movs r0, #0 bl sub_0807A094 adds r1, r0, #0 ldr r0, _0807A088 @ =gUnk_03003F80 adds r0, #0x83 ldrb r2, [r0] cmp r1, r2 beq _0807A084 strb r1, [r0] ldr r0, _0807A090 @ =gLinkEntity bl sub_0801D2B4 _0807A084: pop {pc} .align 2, 0 _0807A088: .4byte gUnk_03003F80 _0807A08C: .4byte gUnk_02000050 _0807A090: .4byte gLinkEntity thumb_func_start sub_0807A094 sub_0807A094: @ 0x0807A094 push {r4, r5, lr} adds r3, r0, #0 movs r2, #0x16 ldr r0, _0807A0AC @ =gUnk_03003F80 ldrb r0, [r0, #0xf] cmp r0, #0 beq _0807A0B0 movs r2, #0x1b cmp r0, #0x78 bls _0807A104 movs r2, #0x1a b _0807A104 .align 2, 0 _0807A0AC: .4byte gUnk_03003F80 _0807A0B0: ldr r0, _0807A0F0 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xb2 ldrb r1, [r1] adds r5, r0, #0 cmp r1, #0 beq _0807A104 movs r4, #1 cmp r3, #0 bne _0807A0D6 adds r0, #0xc4 ldrh r1, [r0] cmp r1, #0xb3 bhi _0807A0D6 movs r0, #8 ands r0, r1 cmp r0, #0 beq _0807A0D6 movs r4, #0 _0807A0D6: cmp r4, #0 beq _0807A104 adds r0, r5, #0 adds r0, #0xb2 ldrb r0, [r0] cmp r0, #0x30 beq _0807A102 cmp r0, #0x30 bgt _0807A0F4 cmp r0, #0x2f beq _0807A0FA b _0807A102 .align 2, 0 _0807A0F0: .4byte gUnk_02002A40 _0807A0F4: cmp r0, #0x31 beq _0807A0FE b _0807A102 _0807A0FA: movs r2, #0x18 b _0807A104 _0807A0FE: movs r2, #0x17 b _0807A104 _0807A102: movs r2, #0x19 _0807A104: adds r0, r2, #0 pop {r4, r5, pc} thumb_func_start sub_0807A108 sub_0807A108: @ 0x0807A108 push {lr} ldr r1, _0807A148 @ =gUnk_03004040 movs r0, #0 str r0, [r1] str r0, [r1, #4] str r0, [r1, #8] ldr r2, _0807A14C @ =gUnk_03003F80 ldr r0, [r2, #0x30] ldr r1, _0807A150 @ =0xFFBFFFFF ands r0, r1 str r0, [r2, #0x30] ldr r0, _0807A154 @ =gLinkEntity ldrb r0, [r0, #0xc] cmp r0, #0x17 bne _0807A130 adds r0, r2, #0 adds r0, #0xa0 ldrb r0, [r0] cmp r0, #4 beq _0807A144 _0807A130: adds r1, r2, #0 adds r1, #0xa0 ldrb r0, [r1] subs r0, #4 lsls r0, r0, #0x18 lsrs r0, r0, #0x18 cmp r0, #1 bhi _0807A144 movs r0, #1 strb r0, [r1] _0807A144: pop {pc} .align 2, 0 _0807A148: .4byte gUnk_03004040 _0807A14C: .4byte gUnk_03003F80 _0807A150: .4byte 0xFFBFFFFF _0807A154: .4byte gLinkEntity thumb_func_start sub_0807A158 sub_0807A158: @ 0x0807A158 push {r4, lr} ldr r4, _0807A178 @ =gUnk_02002A40 adds r0, r4, #0 adds r0, #0xb4 ldrb r0, [r0] bl sub_0805449C cmp r0, #0 bne _0807A17C adds r0, r4, #0 adds r0, #0xb5 ldrb r0, [r0] bl sub_0805449C b _0807A17E .align 2, 0 _0807A178: .4byte gUnk_02002A40 _0807A17C: movs r0, #1 _0807A17E: pop {r4, pc} thumb_func_start sub_0807A180 sub_0807A180: @ 0x0807A180 push {r4, r5, r6, lr} mov r6, r8 push {r6} sub sp, #0x88 adds r4, r0, #0 adds r5, r1, #0 adds r6, r2, #0 mov r8, r3 ldr r3, _0807A1B4 @ =0xFFFC0000 mov r1, sp movs r2, #0 bl PositionRelative mov r1, sp ldrb r0, [r4, #0x14] strb r0, [r1, #0x14] mov r0, sp adds r1, r5, #0 adds r2, r6, #0 mov r3, r8 bl sub_08003FDE add sp, #0x88 pop {r3} mov r8, r3 pop {r4, r5, r6, pc} .align 2, 0 _0807A1B4: .4byte 0xFFFC0000 thumb_func_start sub_0807A1B8 sub_0807A1B8: @ 0x0807A1B8 push {r4, lr} ldr r4, _0807A1DC @ =gLinkEntity adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_0807A1E8 ldr r1, _0807A1E0 @ =gUnk_03003F80 strb r0, [r1, #0x12] ldr r2, _0807A1E4 @ =gUnk_0811C120 ldrb r0, [r1, #0x12] lsls r0, r0, #2 adds r0, r0, r2 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 pop {r4, pc} .align 2, 0 _0807A1DC: .4byte gLinkEntity _0807A1E0: .4byte gUnk_03003F80 _0807A1E4: .4byte gUnk_0811C120 thumb_func_start sub_0807A1E8 sub_0807A1E8: @ 0x0807A1E8 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r5, r0, #0 adds r6, r1, #0 mov r8, r2 movs r1, #0x2e ldrsh r0, [r5, r1] adds r0, r0, r6 ldr r2, _0807A288 @ =gUnk_03000BF0 ldrh r1, [r2, #6] subs r1, r0, r1 lsrs r4, r1, #4 movs r3, #0x3f ands r4, r3 movs r7, #0x32 ldrsh r1, [r5, r7] add r1, r8 ldrh r2, [r2, #8] subs r2, r1, r2 asrs r2, r2, #4 ands r2, r3 lsls r2, r2, #6 orrs r4, r2 ldr r2, _0807A28C @ =gLinkEntity adds r2, #0x38 ldrb r2, [r2] bl sub_080002A4 adds r2, r0, #0 ldr r1, _0807A290 @ =gUnk_03003F80 ldrh r0, [r1, #0x24] cmp r2, r0 beq _0807A23A adds r3, r1, #0 adds r3, #0x37 movs r0, #0 strb r0, [r3] ldrh r7, [r1, #0x24] cmp r2, r7 bne _0807A242 _0807A23A: adds r3, r1, #0 ldrh r0, [r3, #0x22] cmp r4, r0 beq _0807A24E _0807A242: ldr r0, _0807A290 @ =gUnk_03003F80 movs r1, #0 strh r4, [r0, #0x22] strh r2, [r0, #0x24] strb r1, [r0, #0x11] adds r3, r0, #0 _0807A24E: adds r2, r3, #0 ldrb r1, [r2, #0x11] adds r0, r1, #0 cmp r0, #0xff beq _0807A25C adds r0, r1, #1 strb r0, [r2, #0x11] _0807A25C: adds r2, #0x37 ldrb r1, [r2] adds r0, r1, #0 cmp r0, #0xff beq _0807A26A adds r0, r1, #1 strb r0, [r2] _0807A26A: ldrb r0, [r3, #0x12] strb r0, [r3, #0x13] adds r0, r5, #0 adds r1, r6, #0 mov r2, r8 bl sub_080002B4 adds r2, r0, #0 ldr r1, _0807A294 @ =gUnk_08007CAC bl sub_08007DD6 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807A288: .4byte gUnk_03000BF0 _0807A28C: .4byte gLinkEntity _0807A290: .4byte gUnk_03003F80 _0807A294: .4byte gUnk_08007CAC thumb_func_start sub_0807A298 sub_0807A298: @ 0x0807A298 movs r1, #0 strb r1, [r0, #0xb] ldrb r1, [r0, #0x18] movs r2, #3 orrs r1, r2 strb r1, [r0, #0x18] ldr r2, _0807A2B4 @ =gUnk_03003F80 ldr r0, [r2, #0x30] movs r1, #0x41 rsbs r1, r1, #0 ands r0, r1 str r0, [r2, #0x30] bx lr .align 2, 0 _0807A2B4: .4byte gUnk_03003F80 thumb_func_start sub_0807A2B8 sub_0807A2B8: @ 0x0807A2B8 push {lr} bl sub_08008B22 cmp r0, #0 beq _0807A2C6 movs r0, #1 b _0807A2EC _0807A2C6: ldr r0, _0807A2F0 @ =gUnk_03003F80 ldrb r1, [r0, #2] movs r0, #0xc8 ands r0, r1 cmp r0, #0 bne _0807A2EA ldr r1, _0807A2F4 @ =gLinkEntity adds r0, r1, #0 adds r0, #0x38 ldrb r0, [r0] cmp r0, #1 beq _0807A2EA adds r0, r1, #0 movs r1, #0x44 movs r2, #0 movs r3, #0 bl sub_080A2988 _0807A2EA: movs r0, #0 _0807A2EC: pop {pc} .align 2, 0 _0807A2F0: .4byte gUnk_03003F80 _0807A2F4: .4byte gLinkEntity thumb_func_start sub_0807A2F8 sub_0807A2F8: @ 0x0807A2F8 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #4 adds r4, r0, #0 ldr r0, _0807A364 @ =gUnk_03000BF0 mov r8, r0 ldrb r0, [r0, #4] cmp r0, #8 bne _0807A312 b _0807A4F2 _0807A312: bl sub_08079778 orrs r0, r4 cmp r0, #0 bne _0807A31E b _0807A4F2 _0807A31E: ldr r7, _0807A368 @ =gLinkEntity ldrb r1, [r7, #0x14] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0807A36C movs r1, #0x2e ldrsh r2, [r7, r1] mov r6, r8 ldrh r0, [r6, #6] subs r2, r2, r0 asrs r2, r2, #4 movs r3, #0x3f ands r2, r3 movs r0, #0x32 ldrsh r1, [r7, r0] ldr r0, [r7, #0x48] ldrb r5, [r0, #5] adds r0, r1, r5 ldrh r4, [r6, #8] subs r0, r0, r4 asrs r0, r0, #4 ands r0, r3 lsls r0, r0, #6 orrs r0, r2 lsls r7, r0, #1 subs r1, r1, r5 subs r1, r1, r4 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r2, r1 lsls r6, r2, #1 b _0807A3A2 .align 2, 0 _0807A364: .4byte gUnk_03000BF0 _0807A368: .4byte gLinkEntity _0807A36C: movs r1, #0x2e ldrsh r3, [r7, r1] ldr r0, [r7, #0x48] ldrb r6, [r0, #2] adds r1, r3, r6 mov r2, r8 ldrh r5, [r2, #6] subs r1, r1, r5 asrs r1, r1, #4 movs r4, #0x3f ands r1, r4 movs r2, #0x32 ldrsh r0, [r7, r2] mov r7, r8 ldrh r2, [r7, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r4 lsls r0, r0, #6 orrs r1, r0 lsls r7, r1, #1 subs r3, r3, r6 subs r3, r3, r5 asrs r3, r3, #4 ands r3, r4 orrs r3, r0 lsls r6, r3, #1 _0807A3A2: movs r0, #0 mov sb, r0 ldr r1, _0807A3F4 @ =gLinkEntity mov sl, r1 _0807A3AA: movs r2, #0 mov r8, r2 mov r0, sl mov r1, sp adds r2, r7, #0 bl sub_08004202 adds r7, r0, #0 lsrs r4, r7, #1 adds r0, r4, #0 movs r1, #1 bl sub_080002E0 cmp r0, #0 beq _0807A3FC lsls r0, r4, #0x10 lsrs r0, r0, #0x10 mov r1, sl adds r1, #0x38 ldrb r1, [r1] bl sub_080002C8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 mov r2, sl ldrb r1, [r2, #0x14] lsrs r1, r1, #1 lsls r1, r1, #2 ldr r2, _0807A3F8 @ =gUnk_0811C1D8 adds r1, r1, r2 ldr r1, [r1] bl sub_08007DD6 cmp r0, #0 beq _0807A468 b _0807A400 .align 2, 0 _0807A3F4: .4byte gLinkEntity _0807A3F8: .4byte gUnk_0811C1D8 _0807A3FC: movs r0, #1 mov r8, r0 _0807A400: ldr r5, _0807A444 @ =gLinkEntity adds r0, r5, #0 mov r1, sp adds r2, r6, #0 bl sub_08004202 adds r6, r0, #0 lsrs r4, r6, #1 adds r0, r4, #0 movs r1, #1 bl sub_080002E0 cmp r0, #0 beq _0807A44C lsls r0, r4, #0x10 lsrs r0, r0, #0x10 adds r1, r5, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002C8 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldrb r1, [r5, #0x14] lsrs r1, r1, #1 lsls r1, r1, #2 ldr r2, _0807A448 @ =gUnk_0811C1D8 adds r1, r1, r2 ldr r1, [r1] bl sub_08007DD6 cmp r0, #0 beq _0807A468 b _0807A450 .align 2, 0 _0807A444: .4byte gLinkEntity _0807A448: .4byte gUnk_0811C1D8 _0807A44C: movs r0, #1 add r8, r0 _0807A450: mov r1, r8 cmp r1, #2 bne _0807A45E mov r2, sb cmp r2, #0 bne _0807A46E b _0807A4F2 _0807A45E: movs r0, #1 add sb, r0 mov r1, sb cmp r1, #1 bls _0807A3AA _0807A468: mov r2, sb cmp r2, #0 beq _0807A4F2 _0807A46E: bl sub_08052660 cmp r0, #0 beq _0807A4B0 ldr r4, _0807A4AC @ =gLinkEntity adds r0, r4, #0 mov r1, sp adds r2, r7, #0 bl sub_08004202 adds r7, r0, #0 lsrs r0, r7, #1 movs r1, #2 bl sub_080002E0 cmp r0, #0 bne _0807A4F2 adds r0, r4, #0 mov r1, sp adds r2, r6, #0 bl sub_08004202 adds r6, r0, #0 lsrs r0, r6, #1 movs r1, #2 _0807A4A0: bl sub_080002E0 cmp r0, #0 beq _0807A4EC b _0807A4F2 .align 2, 0 _0807A4AC: .4byte gLinkEntity _0807A4B0: mov r0, sb cmp r0, #2 bne _0807A4C2 ldr r0, _0807A4E8 @ =gLinkEntity mov r1, sp adds r2, r7, #0 bl sub_08004202 adds r7, r0, #0 _0807A4C2: lsrs r0, r7, #1 movs r1, #1 bl sub_080002E0 cmp r0, #0 bne _0807A4F2 mov r1, sb cmp r1, #2 bne _0807A4E0 ldr r0, _0807A4E8 @ =gLinkEntity mov r1, sp adds r2, r6, #0 bl sub_08004202 adds r6, r0, #0 _0807A4E0: lsrs r0, r6, #1 movs r1, #1 b _0807A4A0 .align 2, 0 _0807A4E8: .4byte gLinkEntity _0807A4EC: mov r0, sb adds r0, #1 b _0807A4F4 _0807A4F2: movs r0, #0 _0807A4F4: add sp, #4 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807A500 sub_0807A500: @ 0x0807A500 push {r4, r5, r6, lr} ldr r6, _0807A518 @ =gLinkEntity ldrb r0, [r6, #0x14] lsrs r0, r0, #1 cmp r0, #1 beq _0807A574 cmp r0, #1 bgt _0807A51C cmp r0, #0 beq _0807A526 b _0807A5B4 .align 2, 0 _0807A518: .4byte gLinkEntity _0807A51C: cmp r0, #2 beq _0807A554 cmp r0, #3 beq _0807A580 b _0807A5B4 _0807A526: movs r1, #0x2e ldrsh r0, [r6, r1] ldr r5, _0807A550 @ =gUnk_03000BF0 ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r4, #0x3f ands r0, r4 movs r2, #0x32 ldrsh r1, [r6, r2] ldr r3, [r6, #0x48] ldrb r2, [r3, #5] subs r1, r1, r2 movs r2, #1 ldrsb r2, [r3, r2] adds r1, r1, r2 ldrh r2, [r5, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 b _0807A5AA .align 2, 0 _0807A550: .4byte gUnk_03000BF0 _0807A554: movs r5, #0x2e ldrsh r0, [r6, r5] ldr r4, _0807A570 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 ldr r2, [r6, #0x48] movs r5, #0x32 ldrsh r1, [r6, r5] ldrb r5, [r2, #5] adds r1, r1, r5 b _0807A59A .align 2, 0 _0807A570: .4byte gUnk_03000BF0 _0807A574: ldr r2, [r6, #0x48] movs r1, #0x2e ldrsh r0, [r6, r1] ldrb r5, [r2, #2] adds r0, r0, r5 b _0807A58A _0807A580: movs r1, #0x2e ldrsh r0, [r6, r1] ldr r2, [r6, #0x48] ldrb r1, [r2, #2] subs r0, r0, r1 _0807A58A: ldr r4, _0807A5B0 @ =gUnk_03000BF0 ldrh r1, [r4, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f ands r0, r3 movs r5, #0x32 ldrsh r1, [r6, r5] _0807A59A: ldrb r2, [r2, #1] lsls r2, r2, #0x18 asrs r2, r2, #0x18 adds r1, r1, r2 ldrh r2, [r4, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 _0807A5AA: lsls r1, r1, #6 orrs r0, r1 b _0807A5B6 .align 2, 0 _0807A5B0: .4byte gUnk_03000BF0 _0807A5B4: movs r0, #0 _0807A5B6: pop {r4, r5, r6, pc} thumb_func_start sub_0807A5B8 sub_0807A5B8: @ 0x0807A5B8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov sb, r0 ldr r2, _0807A5F8 @ =gUnk_03003F80 ldrb r3, [r2, #2] movs r4, #0x80 adds r0, r4, #0 ands r0, r3 cmp r0, #0 beq _0807A5D2 b _0807A736 _0807A5D2: ldr r1, [r2, #0x30] movs r0, #0x40 ands r0, r1 cmp r0, #0 beq _0807A5DE b _0807A736 _0807A5DE: adds r0, r2, #0 adds r0, #0x26 ldrb r0, [r0] cmp r0, #0 beq _0807A5EA b _0807A736 _0807A5EA: adds r0, r1, #0 ands r0, r4 cmp r0, #0 beq _0807A600 ldr r7, _0807A5FC @ =gUnk_0800833C b _0807A63A .align 2, 0 _0807A5F8: .4byte gUnk_03003F80 _0807A5FC: .4byte gUnk_0800833C _0807A600: movs r0, #0x80 lsls r0, r0, #0x11 ands r1, r0 cmp r1, #0 bne _0807A60E cmp r3, #0 beq _0807A618 _0807A60E: ldr r7, _0807A614 @ =gUnk_0800845C b _0807A63A .align 2, 0 _0807A614: .4byte gUnk_0800845C _0807A618: ldrb r0, [r2, #5] cmp r0, #0 bne _0807A624 ldrb r0, [r2, #0x1c] cmp r0, #0 beq _0807A62C _0807A624: ldr r7, _0807A628 @ =gUnk_080084BC b _0807A63A .align 2, 0 _0807A628: .4byte gUnk_080084BC _0807A62C: adds r0, r2, #0 adds r0, #0xaa ldrb r0, [r0] ldr r7, _0807A740 @ =gUnk_080082DC cmp r0, #0 beq _0807A63A ldr r7, _0807A744 @ =gUnk_0800851C _0807A63A: mov r0, sb cmp r0, #0 beq _0807A6B8 cmp r0, #0x10 beq _0807A6B8 ldr r6, _0807A748 @ =gLinkEntity ldr r2, [r6, #0x48] movs r1, #0x2e ldrsh r0, [r6, r1] ldrb r3, [r2, #2] adds r0, r0, r3 movs r1, #0 ldrsb r1, [r2, r1] adds r0, r0, r1 ldr r1, _0807A74C @ =gUnk_03000BF0 mov r8, r1 ldrh r1, [r1, #6] subs r5, r0, r1 movs r3, #0x32 ldrsh r0, [r6, r3] movs r1, #1 ldrsb r1, [r2, r1] adds r0, r0, r1 mov r2, r8 ldrh r1, [r2, #8] subs r4, r0, r1 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 bl sub_080086B4 cmp r0, #0 beq _0807A688 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 movs r3, #1 bl sub_0807A750 _0807A688: movs r3, #0x2e ldrsh r1, [r6, r3] ldr r2, [r6, #0x48] ldrb r0, [r2, #2] subs r1, r1, r0 movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 mov r2, r8 ldrh r0, [r2, #6] subs r5, r1, r0 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 bl sub_080086B4 cmp r0, #0 beq _0807A6B8 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 movs r3, #3 bl sub_0807A750 _0807A6B8: mov r3, sb cmp r3, #8 beq _0807A736 cmp r3, #0x18 beq _0807A736 ldr r6, _0807A748 @ =gLinkEntity movs r0, #0x2e ldrsh r1, [r6, r0] ldr r2, [r6, #0x48] movs r0, #0 ldrsb r0, [r2, r0] adds r1, r1, r0 ldr r3, _0807A74C @ =gUnk_03000BF0 mov r8, r3 ldrh r0, [r3, #6] subs r5, r1, r0 movs r1, #0x32 ldrsh r0, [r6, r1] ldrb r3, [r2, #5] adds r0, r0, r3 movs r1, #1 ldrsb r1, [r2, r1] adds r0, r0, r1 mov r2, r8 ldrh r1, [r2, #8] subs r4, r0, r1 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 bl sub_080086B4 cmp r0, #0 beq _0807A706 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 movs r3, #2 bl sub_0807A750 _0807A706: movs r3, #0x32 ldrsh r1, [r6, r3] ldr r2, [r6, #0x48] ldrb r0, [r2, #5] subs r1, r1, r0 movs r0, #1 ldrsb r0, [r2, r0] adds r1, r1, r0 mov r2, r8 ldrh r0, [r2, #8] subs r4, r1, r0 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 bl sub_080086B4 cmp r0, #0 beq _0807A736 adds r0, r5, #0 adds r1, r4, #0 adds r2, r7, #0 movs r3, #0 bl sub_0807A750 _0807A736: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807A740: .4byte gUnk_080082DC _0807A744: .4byte gUnk_0800851C _0807A748: .4byte gLinkEntity _0807A74C: .4byte gUnk_03000BF0 thumb_func_start sub_0807A750 sub_0807A750: @ 0x0807A750 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} adds r7, r0, #0 adds r6, r1, #0 mov r8, r2 adds r5, r3, #0 movs r0, #1 ands r0, r5 cmp r0, #0 bne _0807A76C movs r4, #0xf ands r4, r6 b _0807A770 _0807A76C: movs r4, #0xf ands r4, r7 _0807A770: cmp r4, #0 bne _0807A776 b _0807A88E _0807A776: cmp r4, #0xf bne _0807A77C b _0807A88E _0807A77C: lsrs r0, r7, #4 movs r2, #0x3f ands r0, r2 lsrs r1, r6, #4 ands r1, r2 lsls r1, r1, #6 orrs r0, r1 ldr r1, _0807A7A8 @ =gLinkEntity adds r1, #0x38 ldrb r1, [r1] bl sub_080002E0 adds r1, r0, #0 cmp r1, #0xf bls _0807A7AE cmp r1, #0xff beq _0807A7AC mov r2, r8 adds r0, r1, r2 subs r0, #0x10 ldrb r1, [r0] b _0807A7AE .align 2, 0 _0807A7A8: .4byte gLinkEntity _0807A7AC: movs r1, #0xf _0807A7AE: ldr r0, _0807A7D8 @ =gUnk_0800823C lsls r1, r1, #2 adds r1, r1, r0 ldr r1, [r1] movs r0, #1 ands r0, r5 cmp r0, #0 bne _0807A824 movs r0, #0xf ands r0, r7 movs r2, #0x80 lsls r2, r2, #8 asrs r2, r0 cmp r5, #0 bne _0807A7F4 ldr r3, _0807A7DC @ =gLinkEntity cmp r4, #0xe bgt _0807A7F0 lsls r0, r4, #1 adds r1, r0, r1 b _0807A7E8 .align 2, 0 _0807A7D8: .4byte gUnk_0800823C _0807A7DC: .4byte gLinkEntity _0807A7E0: adds r1, #2 adds r4, #1 cmp r4, #0xe bgt _0807A7F0 _0807A7E8: ldrh r0, [r1] ands r0, r2 cmp r0, #0 bne _0807A7E0 _0807A7F0: subs r4, #1 b _0807A816 _0807A7F4: ldr r3, _0807A800 @ =gLinkEntity cmp r4, #0 ble _0807A814 lsls r0, r4, #1 adds r1, r0, r1 b _0807A80C .align 2, 0 _0807A800: .4byte gLinkEntity _0807A804: subs r1, #2 subs r4, #1 cmp r4, #0 ble _0807A814 _0807A80C: ldrh r0, [r1] ands r0, r2 cmp r0, #0 bne _0807A804 _0807A814: adds r4, #1 _0807A816: movs r0, #0xf ands r0, r6 subs r0, r4, r0 ldrh r1, [r3, #0x32] adds r0, r0, r1 strh r0, [r3, #0x32] b _0807A88E _0807A824: movs r3, #0xf ands r6, r3 lsls r0, r6, #1 adds r0, r0, r1 ldrh r2, [r0] cmp r5, #1 bne _0807A85C subs r0, r3, r4 lsrs r2, r0 ldr r3, _0807A858 @ =gLinkEntity cmp r4, #0 ble _0807A854 ands r5, r2 cmp r5, #0 beq _0807A854 movs r1, #1 _0807A844: lsrs r2, r2, #1 subs r4, #1 cmp r4, #0 ble _0807A854 adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _0807A844 _0807A854: adds r4, #1 b _0807A882 .align 2, 0 _0807A858: .4byte gLinkEntity _0807A85C: lsls r2, r4 ldr r3, _0807A86C @ =gLinkEntity cmp r4, #0xe bgt _0807A880 movs r1, #0x80 lsls r1, r1, #8 b _0807A878 .align 2, 0 _0807A86C: .4byte gLinkEntity _0807A870: lsls r2, r2, #1 adds r4, #1 cmp r4, #0xe bgt _0807A880 _0807A878: adds r0, r2, #0 ands r0, r1 cmp r0, #0 bne _0807A870 _0807A880: subs r4, #1 _0807A882: movs r0, #0xf ands r0, r7 subs r0, r4, r0 ldrh r2, [r3, #0x2e] adds r0, r0, r2 strh r0, [r3, #0x2e] _0807A88E: pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807A894 sub_0807A894: @ 0x0807A894 push {lr} ldrb r1, [r0, #0x15] cmp r1, #8 beq _0807A8BA cmp r1, #8 bgt _0807A8A6 cmp r1, #0 beq _0807A8B0 b _0807A8C8 _0807A8A6: cmp r1, #0x10 beq _0807A8B6 cmp r1, #0x18 beq _0807A8C0 b _0807A8C8 _0807A8B0: movs r2, #8 rsbs r2, r2, #0 b _0807A8CA _0807A8B6: movs r2, #5 b _0807A8CA _0807A8BA: movs r2, #0 movs r1, #8 b _0807A8CC _0807A8C0: movs r2, #0 movs r1, #8 rsbs r1, r1, #0 b _0807A8CC _0807A8C8: movs r2, #0 _0807A8CA: movs r1, #0 _0807A8CC: bl sub_080002B4 pop {pc} .align 2, 0 thumb_func_start nullsub_505 nullsub_505: @ 0x0807A8D4 bx lr .align 2, 0 thumb_func_start sub_0807A8D8 sub_0807A8D8: @ 0x0807A8D8 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} adds r5, r0, #0 ldr r0, _0807AA5C @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x80 ands r0, r1 cmp r0, #0 beq _0807A8F0 b _0807A9F6 _0807A8F0: movs r1, #0x2e ldrsh r0, [r5, r1] ldr r7, _0807AA60 @ =gUnk_03000BF0 ldrh r1, [r7, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r6, #0x3f ands r0, r6 movs r2, #0x32 ldrsh r1, [r5, r2] ldrh r2, [r7, #8] adds r2, #1 subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 ldr r1, _0807AA64 @ =gLinkEntity adds r1, #0x38 mov sb, r1 ldrb r1, [r1] bl sub_080002EC adds r4, r0, #0 movs r0, #0x20 mov r8, r0 ands r4, r0 cmp r4, #0 beq _0807A94E movs r2, #0x2e ldrsh r1, [r5, r2] ldrh r0, [r7, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r5, r2] ldrh r2, [r7, #8] adds r2, #1 subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 bl sub_0807AAF8 _0807A94E: movs r1, #0x2e ldrsh r0, [r5, r1] ldrh r1, [r7, #6] subs r1, #2 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r6 movs r2, #0x32 ldrsh r1, [r5, r2] ldrh r2, [r7, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 mov r2, sb ldrb r1, [r2] bl sub_080002EC adds r4, r0, #0 mov r0, r8 ands r4, r0 cmp r4, #0 beq _0807A9A2 movs r2, #0x2e ldrsh r1, [r5, r2] ldrh r0, [r7, #6] subs r0, #2 subs r1, r1, r0 asrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r5, r2] ldrh r2, [r7, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 bl sub_0807AAF8 _0807A9A2: movs r1, #0x2e ldrsh r0, [r5, r1] ldrh r1, [r7, #6] adds r1, #2 subs r0, r0, r1 asrs r0, r0, #4 ands r0, r6 movs r2, #0x32 ldrsh r1, [r5, r2] ldrh r2, [r7, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 mov r2, sb ldrb r1, [r2] bl sub_080002EC adds r4, r0, #0 mov r0, r8 ands r4, r0 cmp r4, #0 beq _0807A9F6 movs r2, #0x2e ldrsh r1, [r5, r2] ldrh r0, [r7, #6] adds r0, #2 subs r1, r1, r0 asrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r5, r2] ldrh r2, [r7, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 bl sub_0807AAF8 _0807A9F6: movs r1, #0x2e ldrsh r0, [r5, r1] ldr r7, _0807AA60 @ =gUnk_03000BF0 ldrh r1, [r7, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r6, #0x3f ands r0, r6 movs r2, #0x32 ldrsh r1, [r5, r2] ldrh r2, [r7, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r6 lsls r1, r1, #6 orrs r0, r1 ldr r1, _0807AA64 @ =gLinkEntity adds r1, #0x38 ldrb r1, [r1] bl sub_080002EC adds r4, r0, #0 movs r0, #0x20 ands r0, r4 cmp r0, #0 beq _0807AA4C movs r0, #0x2e ldrsh r1, [r5, r0] ldrh r0, [r7, #6] subs r1, r1, r0 asrs r1, r1, #4 ands r1, r6 movs r2, #0x32 ldrsh r0, [r5, r2] ldrh r2, [r7, #8] subs r0, r0, r2 asrs r0, r0, #4 ands r0, r6 lsls r0, r0, #6 orrs r1, r0 adds r0, r5, #0 bl sub_0807AAF8 _0807AA4C: movs r0, #2 ands r0, r4 cmp r0, #0 beq _0807AA68 adds r0, r5, #0 bl sub_0807AABC b _0807AA76 .align 2, 0 _0807AA5C: .4byte gUnk_03003F80 _0807AA60: .4byte gUnk_03000BF0 _0807AA64: .4byte gLinkEntity _0807AA68: movs r0, #4 ands r0, r4 cmp r0, #0 beq _0807AA76 adds r0, r5, #0 bl sub_0807AA80 _0807AA76: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807AA80 sub_0807AA80: @ 0x0807AA80 push {lr} adds r3, r0, #0 ldr r0, _0807AAB8 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x40 ands r0, r1 cmp r0, #0 bne _0807AAB6 adds r0, r3, #0 adds r0, #0x38 movs r1, #2 strb r1, [r0] movs r1, #0x36 ldrsh r0, [r3, r1] cmp r0, #0 bne _0807AAB6 ldrb r2, [r3, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x40 orrs r0, r2 strb r0, [r3, #0x1b] ldrb r0, [r3, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r3, #0x19] _0807AAB6: pop {pc} .align 2, 0 _0807AAB8: .4byte gUnk_03003F80 thumb_func_start sub_0807AABC sub_0807AABC: @ 0x0807AABC push {lr} adds r3, r0, #0 ldr r0, _0807AAF4 @ =gUnk_03003F80 ldr r0, [r0, #0x30] movs r1, #0x40 ands r0, r1 cmp r0, #0 bne _0807AAF2 adds r0, r3, #0 adds r0, #0x38 movs r1, #1 strb r1, [r0] movs r1, #0x36 ldrsh r0, [r3, r1] cmp r0, #0 bne _0807AAF2 ldrb r2, [r3, #0x1b] movs r1, #0x3f adds r0, r1, #0 ands r0, r2 movs r2, #0x80 orrs r0, r2 strb r0, [r3, #0x1b] ldrb r0, [r3, #0x19] ands r1, r0 orrs r1, r2 strb r1, [r3, #0x19] _0807AAF2: pop {pc} .align 2, 0 _0807AAF4: .4byte gUnk_03003F80 thumb_func_start sub_0807AAF8 sub_0807AAF8: @ 0x0807AAF8 push {r4, lr} adds r3, r0, #0 adds r2, r1, #0 movs r1, #0x36 ldrsh r0, [r3, r1] cmp r0, #0 bne _0807AB3C adds r0, r3, #0 adds r0, #0x38 ldrb r0, [r0] lsls r0, r0, #0x1e orrs r2, r0 movs r3, #0 ldr r0, _0807AB40 @ =gUnk_03003F80 ldr r1, [r0, #0x40] adds r4, r0, #0 cmp r1, r2 beq _0807AB32 adds r1, r4, #0 adds r1, #0x40 _0807AB20: ldr r0, [r1] stm r1!, {r2} adds r2, r0, #0 adds r3, #1 cmp r3, #0xe bhi _0807AB32 ldr r0, [r1] cmp r0, r2 bne _0807AB20 _0807AB32: lsls r0, r3, #2 adds r1, r4, #0 adds r1, #0x40 adds r0, r0, r1 str r2, [r0] _0807AB3C: pop {r4, pc} .align 2, 0 _0807AB40: .4byte gUnk_03003F80 thumb_func_start sub_0807AB44 sub_0807AB44: @ 0x0807AB44 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r6, r0, #0 adds r7, r1, #0 mov r8, r2 movs r1, #0x2e ldrsh r0, [r6, r1] adds r0, r0, r7 ldr r2, _0807ABF0 @ =gUnk_03000BF0 mov sb, r2 ldrh r1, [r2, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r3, #0x3f mov sl, r3 ands r0, r3 movs r5, #0x32 ldrsh r1, [r6, r5] add r1, r8 ldrh r2, [r2, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r3 lsls r1, r1, #6 orrs r0, r1 adds r1, r6, #0 adds r1, #0x38 ldrb r1, [r1] bl sub_080002B0 movs r1, #0xb bl sub_0806FC50 adds r5, r0, #0 cmp r5, #0 beq _0807AC44 ldrh r0, [r5, #6] cmp r0, #0x76 bne _0807ABF4 movs r0, #0x2a movs r1, #1 movs r2, #0 bl CreateObject adds r4, r0, #0 cmp r4, #0 beq _0807AC44 lsls r2, r7, #0x10 mov r0, r8 lsls r3, r0, #0x10 adds r0, r6, #0 adds r1, r4, #0 bl PositionRelative adds r0, r4, #0 bl sub_08004168 ldrh r0, [r5, #6] movs r2, #0x2e ldrsh r1, [r4, r2] mov r3, sb ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 mov r5, sl ands r1, r5 movs r3, #0x32 ldrsh r2, [r4, r3] mov r5, sb ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 mov r3, sl ands r2, r3 lsls r2, r2, #6 orrs r1, r2 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0807B7D8 b _0807AC44 .align 2, 0 _0807ABF0: .4byte gUnk_03000BF0 _0807ABF4: movs r0, #0x2a movs r1, #2 movs r2, #0 bl CreateObject adds r4, r0, #0 cmp r4, #0 beq _0807AC44 lsls r2, r7, #0x10 mov r0, r8 lsls r3, r0, #0x10 adds r0, r6, #0 adds r1, r4, #0 bl PositionRelative str r5, [r4, #0x54] ldr r0, _0807AC50 @ =0x0000404F movs r2, #0x2e ldrsh r1, [r4, r2] mov r3, sb ldrh r2, [r3, #6] subs r1, r1, r2 asrs r1, r1, #4 mov r5, sl ands r1, r5 movs r3, #0x32 ldrsh r2, [r4, r3] mov r5, sb ldrh r3, [r5, #8] subs r2, r2, r3 asrs r2, r2, #4 mov r3, sl ands r2, r3 lsls r2, r2, #6 orrs r1, r2 adds r2, r4, #0 adds r2, #0x38 ldrb r2, [r2] bl sub_0800015E _0807AC44: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807AC50: .4byte 0x0000404F thumb_func_start sub_0807AC54 sub_0807AC54: @ 0x0807AC54 push {lr} adds r2, r0, #0 ldr r0, _0807AC74 @ =gUnk_03003F80 ldrb r1, [r0, #0x11] adds r3, r0, #0 cmp r1, #0 beq _0807ACC6 ldrb r0, [r3, #0x12] cmp r0, #0x2a beq _0807ACA8 cmp r0, #0x2a bgt _0807AC78 cmp r0, #0x1e beq _0807AC82 b _0807ACC6 .align 2, 0 _0807AC74: .4byte gUnk_03003F80 _0807AC78: cmp r0, #0x2b beq _0807AC90 cmp r0, #0x2c beq _0807ACB6 b _0807ACC6 _0807AC82: ldrh r0, [r2, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strh r1, [r2, #0x2e] _0807AC90: movs r0, #0 movs r1, #0x1d strb r1, [r2, #0xc] strb r0, [r2, #0xd] strh r0, [r2, #0x30] ldr r0, _0807ACA4 @ =0x000002CF strh r0, [r3, #8] movs r0, #1 b _0807ACC8 .align 2, 0 _0807ACA4: .4byte 0x000002CF _0807ACA8: ldrh r0, [r2, #0x2e] movs r1, #0x10 rsbs r1, r1, #0 ands r1, r0 movs r0, #8 orrs r1, r0 strh r1, [r2, #0x2e] _0807ACB6: movs r0, #0 movs r1, #0x1d strb r1, [r2, #0xc] movs r1, #1 strb r1, [r2, #0xd] strh r0, [r2, #0x30] movs r0, #1 b _0807ACC8 _0807ACC6: movs r0, #0 _0807ACC8: pop {pc} .align 2, 0 thumb_func_start sub_0807ACCC sub_0807ACCC: @ 0x0807ACCC push {r4, lr} adds r4, r0, #0 adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #0x39 rsbs r0, r0, #0 ands r0, r1 strb r0, [r2] adds r1, r4, #0 adds r1, #0x42 movs r0, #0 strb r0, [r1] movs r0, #0x72 bl GetInventoryValue movs r1, #0xc0 cmp r0, #1 bne _0807ACF4 adds r1, #0x40 _0807ACF4: movs r2, #0x24 ldrsh r0, [r4, r2] cmp r1, r0 ble _0807AD18 strh r1, [r4, #0x24] ldr r0, _0807AD14 @ =gUnk_03003F80 ldrb r1, [r0, #0xd] strb r1, [r4, #0x15] adds r0, #0x26 ldrb r1, [r0] movs r0, #0xf ands r0, r1 cmp r0, #1 bne _0807ADB4 b _0807AD1E .align 2, 0 _0807AD14: .4byte gUnk_03003F80 _0807AD18: ldrh r0, [r4, #0x24] subs r0, #4 strh r0, [r4, #0x24] _0807AD1E: ldr r2, _0807AD3C @ =gUnk_03003F80 adds r1, r2, #0 adds r1, #0x89 ldrb r0, [r1] cmp r0, #0 bne _0807AD40 adds r0, r4, #0 bl sub_0807ADB8 cmp r0, #0 bne _0807AD74 adds r0, r4, #0 bl sub_0807AE20 b _0807AD74 .align 2, 0 _0807AD3C: .4byte gUnk_03003F80 _0807AD40: subs r0, #1 strb r0, [r1] lsls r0, r0, #0x18 cmp r0, #0 beq _0807AD52 adds r0, r4, #0 bl sub_0807ADB8 b _0807AD74 _0807AD52: adds r2, #0x26 ldrb r1, [r2] movs r0, #0x7f ands r0, r1 strb r0, [r2] adds r2, r4, #0 adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] ldr r0, _0807ADA0 @ =0x00000163 bl sub_080A3268 _0807AD74: ldr r0, _0807ADA4 @ =gUnk_03003F80 adds r0, #0x26 ldrb r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807ADA8 adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #4 orrs r0, r1 strb r0, [r2] subs r2, #0x13 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 b _0807ADB2 .align 2, 0 _0807ADA0: .4byte 0x00000163 _0807ADA4: .4byte gUnk_03003F80 _0807ADA8: adds r2, r4, #0 adds r2, #0x3c ldrb r1, [r2] movs r0, #0xfb ands r0, r1 _0807ADB2: strb r0, [r2] _0807ADB4: pop {r4, pc} .align 2, 0 thumb_func_start sub_0807ADB8 sub_0807ADB8: @ 0x0807ADB8 push {r4, lr} adds r2, r0, #0 ldr r3, _0807ADF4 @ =gUnk_03003F80 adds r0, r3, #0 adds r0, #0x92 ldrh r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0807AE1C movs r0, #0x26 adds r0, r0, r3 mov ip, r0 ldrb r0, [r0] movs r1, #0x80 eors r0, r1 mov r1, ip strb r0, [r1] movs r1, #0x80 ands r0, r1 lsls r0, r0, #0x18 lsrs r4, r0, #0x18 cmp r4, #0 beq _0807ADF8 adds r1, r3, #0 adds r1, #0x89 movs r0, #0x78 strb r0, [r1] b _0807AE0E .align 2, 0 _0807ADF4: .4byte gUnk_03003F80 _0807ADF8: adds r2, #0x29 ldrb r1, [r2] movs r0, #8 rsbs r0, r0, #0 ands r0, r1 movs r1, #4 orrs r0, r1 strb r0, [r2] adds r0, r3, #0 adds r0, #0x89 strb r4, [r0] _0807AE0E: ldr r0, _0807AE18 @ =0x00000163 bl sub_080A3268 movs r0, #1 b _0807AE1E .align 2, 0 _0807AE18: .4byte 0x00000163 _0807AE1C: movs r0, #0 _0807AE1E: pop {r4, pc} thumb_func_start sub_0807AE20 sub_0807AE20: @ 0x0807AE20 push {r4, lr} adds r4, r0, #0 ldrb r0, [r4, #0xc] cmp r0, #0x17 bne _0807AE32 ldr r0, _0807AE58 @ =gUnk_03003F80 ldrb r0, [r0, #0xa] cmp r0, #0 bne _0807AE74 _0807AE32: ldr r0, _0807AE5C @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #0 bne _0807AE74 ldr r0, _0807AE58 @ =gUnk_03003F80 adds r0, #0x92 ldrh r1, [r0] movs r0, #8 ands r0, r1 cmp r0, #0 beq _0807AE74 movs r0, #0x72 bl GetInventoryValue cmp r0, #1 bne _0807AE60 movs r0, #0xe0 lsls r0, r0, #1 b _0807AE64 .align 2, 0 _0807AE58: .4byte gUnk_03003F80 _0807AE5C: .4byte gUnk_03000BF0 _0807AE60: movs r0, #0xc0 lsls r0, r0, #1 _0807AE64: strh r0, [r4, #0x24] adds r0, r4, #0 bl sub_08079520 movs r0, #0xb1 lsls r0, r0, #1 bl sub_080A3268 _0807AE74: movs r0, #0x10 bl sub_080793E4 cmp r0, #0 beq _0807AEA8 adds r1, r4, #0 adds r1, #0x3d movs r0, #0x14 strb r0, [r1] adds r1, #5 movs r0, #4 strb r0, [r1] ldrb r0, [r4, #0x14] lsls r0, r0, #2 movs r1, #0x10 eors r0, r1 adds r1, r4, #0 adds r1, #0x3e strb r0, [r1] movs r0, #2 rsbs r0, r0, #0 bl sub_080526A0 movs r0, #0x7a bl sub_080A3268 _0807AEA8: ldrb r1, [r4, #0x15] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807AECC ldr r0, _0807AEC8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #0xf ands r0, r1 cmp r0, #0 bne _0807AEDE adds r0, r4, #0 movs r1, #4 bl sub_080A2A84 b _0807AEDE .align 2, 0 _0807AEC8: .4byte gUnk_030010A0 _0807AECC: ldr r0, _0807AEE0 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0807AEDE adds r0, r4, #0 bl sub_080A2A64 _0807AEDE: pop {r4, pc} .align 2, 0 _0807AEE0: .4byte gUnk_030010A0 thumb_func_start sub_0807AEE4 sub_0807AEE4: @ 0x0807AEE4 push {r4, lr} ldr r0, _0807AFE4 @ =gUnk_03003F80 adds r4, r0, #0 adds r4, #0xac movs r0, #0 strh r0, [r4] movs r0, #0x48 bl GetInventoryValue cmp r0, #1 bne _0807AF02 ldrh r0, [r4] movs r1, #1 orrs r0, r1 strh r0, [r4] _0807AF02: movs r0, #0x49 bl GetInventoryValue cmp r0, #1 bne _0807AF14 ldrh r0, [r4] movs r1, #2 orrs r0, r1 strh r0, [r4] _0807AF14: movs r0, #0x4a bl GetInventoryValue cmp r0, #1 bne _0807AF26 ldrh r0, [r4] movs r1, #4 orrs r0, r1 strh r0, [r4] _0807AF26: movs r0, #0x4b bl GetInventoryValue cmp r0, #1 bne _0807AF38 ldrh r0, [r4] movs r1, #8 orrs r0, r1 strh r0, [r4] _0807AF38: movs r0, #0x4c bl GetInventoryValue cmp r0, #1 bne _0807AF4A ldrh r0, [r4] movs r1, #0x10 orrs r0, r1 strh r0, [r4] _0807AF4A: movs r0, #0x4d bl GetInventoryValue cmp r0, #1 bne _0807AF5C ldrh r0, [r4] movs r1, #0x20 orrs r0, r1 strh r0, [r4] _0807AF5C: movs r0, #0x4e bl GetInventoryValue cmp r0, #1 bne _0807AF6E ldrh r0, [r4] movs r1, #0x40 orrs r0, r1 strh r0, [r4] _0807AF6E: movs r0, #0x4f bl GetInventoryValue cmp r0, #1 bne _0807AF80 ldrh r0, [r4] movs r1, #0x80 orrs r0, r1 strh r0, [r4] _0807AF80: movs r0, #6 bl GetInventoryValue cmp r0, #1 bne _0807AF96 ldrh r0, [r4] movs r2, #0x80 lsls r2, r2, #1 adds r1, r2, #0 orrs r0, r1 strh r0, [r4] _0807AF96: movs r0, #0x73 bl GetInventoryValue cmp r0, #1 bne _0807AFAC ldrh r0, [r4] movs r3, #0x80 lsls r3, r3, #2 adds r1, r3, #0 orrs r0, r1 strh r0, [r4] _0807AFAC: movs r0, #0x74 bl GetInventoryValue cmp r0, #1 bne _0807AFC6 ldr r0, _0807AFE4 @ =gUnk_03003F80 adds r0, #0xac ldrh r2, [r0] movs r3, #0x80 lsls r3, r3, #3 adds r1, r3, #0 orrs r1, r2 strh r1, [r0] _0807AFC6: movs r0, #0x75 bl GetInventoryValue cmp r0, #1 bne _0807AFE0 ldr r0, _0807AFE4 @ =gUnk_03003F80 adds r0, #0xac ldrh r2, [r0] movs r3, #0x80 lsls r3, r3, #4 adds r1, r3, #0 orrs r1, r2 strh r1, [r0] _0807AFE0: pop {r4, pc} .align 2, 0 _0807AFE4: .4byte gUnk_03003F80 thumb_func_start sub_0807AFE8 sub_0807AFE8: @ 0x0807AFE8 push {lr} bl sub_08077B20 ldr r0, _0807B00C @ =gLinkEntity movs r1, #0x43 movs r2, #0 bl CreateFX adds r1, r0, #0 cmp r1, #0 beq _0807B004 ldrh r0, [r1, #0x32] adds r0, #1 strh r0, [r1, #0x32] _0807B004: ldr r1, _0807B010 @ =gUnk_03003F80 movs r0, #9 strb r0, [r1, #0xc] pop {pc} .align 2, 0 _0807B00C: .4byte gLinkEntity _0807B010: .4byte gUnk_03003F80 thumb_func_start sub_0807B014 sub_0807B014: @ 0x0807B014 push {lr} ldr r2, _0807B03C @ =gUnk_03003F80 adds r0, r2, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x10 ands r0, r1 cmp r0, #0 beq _0807B044 ldr r0, _0807B040 @ =gUnk_02002A40 adds r1, r0, #0 adds r1, #0xaa adds r0, #0xab ldrb r1, [r1] ldrb r0, [r0] cmp r1, r0 bne _0807B044 movs r0, #0xf b _0807B066 .align 2, 0 _0807B03C: .4byte gUnk_03003F80 _0807B040: .4byte gUnk_02002A40 _0807B044: adds r0, r2, #0 adds r0, #0xac ldrh r1, [r0] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807B064 ldr r0, _0807B060 @ =gUnk_02002A40 adds r0, #0xaa ldrb r0, [r0] cmp r0, #8 bhi _0807B064 movs r0, #0x16 b _0807B066 .align 2, 0 _0807B060: .4byte gUnk_02002A40 _0807B064: movs r0, #0 _0807B066: pop {pc} thumb_func_start sub_0807B068 sub_0807B068: @ 0x0807B068 push {lr} ldr r2, _0807B090 @ =gUnk_03003F80 ldrb r1, [r2, #0x1e] ldrb r0, [r2, #4] orrs r0, r1 cmp r0, #0 bne _0807B0C2 adds r0, r2, #0 adds r0, #0x26 ldrb r1, [r0] cmp r1, #0 beq _0807B0A4 movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807B098 ldr r0, _0807B094 @ =0x00000C1C strh r0, [r2, #8] b _0807B0C2 .align 2, 0 _0807B090: .4byte gUnk_03003F80 _0807B094: .4byte 0x00000C1C _0807B098: ldr r0, _0807B0A0 @ =0x00000C0C strh r0, [r2, #8] b _0807B0C2 .align 2, 0 _0807B0A0: .4byte 0x00000C0C _0807B0A4: ldrb r1, [r2, #0xd] movs r0, #0x80 ands r0, r1 cmp r0, #0 beq _0807B0B8 ldrh r0, [r2, #8] ldr r1, _0807B0B4 @ =0x00000C18 b _0807B0BC .align 2, 0 _0807B0B4: .4byte 0x00000C18 _0807B0B8: ldrh r0, [r2, #8] ldr r1, _0807B0C4 @ =0x00000C04 _0807B0BC: cmp r0, r1 beq _0807B0C2 strh r1, [r2, #8] _0807B0C2: pop {pc} .align 2, 0 _0807B0C4: .4byte 0x00000C04 thumb_func_start sub_0807B0C8 sub_0807B0C8: @ 0x0807B0C8 push {r4, lr} ldr r4, _0807B0F8 @ =gLinkEntity adds r0, r4, #0 movs r1, #0 movs r2, #0 bl sub_0806FEBC adds r0, r4, #0 movs r1, #1 movs r2, #0 bl sub_0806FEBC adds r0, r4, #0 movs r1, #2 adds r2, r4, #0 bl sub_0806FEBC adds r0, r4, #0 movs r1, #3 movs r2, #0 bl sub_0806FEBC pop {r4, pc} .align 2, 0 _0807B0F8: .4byte gLinkEntity thumb_func_start sub_0807B0FC sub_0807B0FC: @ 0x0807B0FC push {lr} ldr r2, _0807B110 @ =gUnk_0811C27C ldrb r1, [r0, #0xd] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807B110: .4byte gUnk_0811C27C thumb_func_start sub_0807B114 sub_0807B114: @ 0x0807B114 movs r1, #1 strb r1, [r0, #0xd] ldr r1, _0807B124 @ =gUnk_03003F80 adds r1, #0x38 ldrb r1, [r1] adds r0, #0x6c strb r1, [r0] bx lr .align 2, 0 _0807B124: .4byte gUnk_03003F80 thumb_func_start sub_0807B128 sub_0807B128: @ 0x0807B128 push {lr} ldr r2, _0807B140 @ =gUnk_0811C284 adds r1, r0, #0 adds r1, #0x6c ldrb r1, [r1] lsls r1, r1, #2 adds r1, r1, r2 ldr r1, [r1] bl _call_via_r1 pop {pc} .align 2, 0 _0807B140: .4byte gUnk_0811C284 thumb_func_start sub_0807B144 sub_0807B144: @ 0x0807B144 push {lr} ldrb r2, [r0, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] ldrb r1, [r0, #0x14] lsls r1, r1, #2 strb r1, [r0, #0x15] movs r1, #0xa0 strh r1, [r0, #0x24] movs r1, #0x80 lsls r1, r1, #0xb str r1, [r0, #0x20] ldr r1, _0807B170 @ =gUnk_03003F80 movs r0, #0x81 strb r0, [r1, #2] bl sub_080791BC pop {pc} .align 2, 0 _0807B170: .4byte gUnk_03003F80 thumb_func_start nullsub_506 nullsub_506: @ 0x0807B174 bx lr .align 2, 0 thumb_func_start sub_0807B178 sub_0807B178: @ 0x0807B178 push {lr} ldrb r2, [r0, #0x18] movs r1, #4 rsbs r1, r1, #0 ands r1, r2 movs r2, #1 orrs r1, r2 strb r1, [r0, #0x18] movs r2, #0 movs r1, #0x10 strb r1, [r0, #0x15] strh r2, [r0, #0x24] movs r1, #0x80 lsls r1, r1, #0xb str r1, [r0, #0x20] ldr r1, _0807B1A4 @ =gUnk_03003F80 movs r0, #0x81 strb r0, [r1, #2] bl sub_080791BC pop {pc} .align 2, 0 _0807B1A4: .4byte gUnk_03003F80 thumb_func_start sub_0807B1A8 sub_0807B1A8: @ 0x0807B1A8 push {r4, lr} adds r4, r0, #0 ldr r1, _0807B1D4 @ =gUnk_0811C298 adds r0, #0x6e ldrb r0, [r0] lsls r0, r0, #2 adds r0, r0, r1 ldr r1, [r0] adds r0, r4, #0 bl _call_via_r1 ldr r0, _0807B1D8 @ =gUnk_030010A0 ldr r0, [r0] movs r1, #7 ands r0, r1 cmp r0, #0 bne _0807B1D0 adds r0, r4, #0 bl sub_080A2B80 _0807B1D0: pop {r4, pc} .align 2, 0 _0807B1D4: .4byte gUnk_0811C298 _0807B1D8: .4byte gUnk_030010A0 thumb_func_start sub_0807B1DC sub_0807B1DC: @ 0x0807B1DC adds r2, r0, #0 adds r2, #0x6e ldrb r1, [r2] adds r1, #1 strb r1, [r2] movs r1, #0x1e strb r1, [r0, #0xe] bx lr thumb_func_start sub_0807B1EC sub_0807B1EC: @ 0x0807B1EC push {lr} adds r2, r0, #0 ldrb r0, [r2, #0xe] subs r0, #1 strb r0, [r2, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0807B212 adds r1, r2, #0 adds r1, #0x6e ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0x80 lsls r0, r0, #9 str r0, [r2, #0x20] ldr r1, _0807B214 @ =gUnk_03003F80 ldr r0, _0807B218 @ =0x000002C2 strh r0, [r1, #8] _0807B212: pop {pc} .align 2, 0 _0807B214: .4byte gUnk_03003F80 _0807B218: .4byte 0x000002C2 thumb_func_start sub_0807B21C sub_0807B21C: @ 0x0807B21C push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldr r0, [r4, #0x20] cmp r0, #0 bge _0807B236 movs r1, #0x80 lsls r1, r1, #3 adds r0, r4, #0 bl sub_08003FC4 b _0807B240 _0807B236: movs r1, #0x80 lsls r1, r1, #4 adds r0, r4, #0 bl sub_08003FC4 _0807B240: ldr r1, [r4, #0x20] ldr r0, _0807B260 @ =0xFFFF8000 cmp r1, r0 bge _0807B25E movs r1, #0 movs r0, #0x78 strb r0, [r4, #0xe] strb r1, [r4, #0xf] adds r1, r4, #0 adds r1, #0x6e ldrb r0, [r1] adds r0, #1 strb r0, [r1] ldr r0, [r4, #0x34] str r0, [r4, #0x68] _0807B25E: pop {r4, pc} .align 2, 0 _0807B260: .4byte 0xFFFF8000 thumb_func_start sub_0807B264 sub_0807B264: @ 0x0807B264 push {r4, lr} adds r4, r0, #0 bl sub_080042B8 ldrb r0, [r4, #0xf] adds r0, #2 strb r0, [r4, #0xf] ldr r1, _0807B2B4 @ =gUnk_080C9160 ldrb r0, [r4, #0xf] lsls r0, r0, #1 adds r0, r0, r1 movs r2, #0 ldrsh r1, [r0, r2] asrs r1, r1, #7 lsls r1, r1, #0x10 ldr r0, [r4, #0x68] adds r0, r0, r1 str r0, [r4, #0x34] ldrb r0, [r4, #0xe] subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0807B2B0 movs r0, #0x50 strb r0, [r4, #0xe] movs r0, #0x80 lsls r0, r0, #8 str r0, [r4, #0x20] adds r1, r4, #0 adds r1, #0x6e ldrb r0, [r1] adds r0, #1 strb r0, [r1] movs r0, #0xa9 lsls r0, r0, #1 bl sub_080A3268 _0807B2B0: pop {r4, pc} .align 2, 0 _0807B2B4: .4byte gUnk_080C9160 thumb_func_start sub_0807B2B8 sub_0807B2B8: @ 0x0807B2B8 push {r4, lr} adds r4, r0, #0 ldr r1, _0807B2F0 @ =0xFFFFE000 bl sub_08003FC4 adds r0, r4, #0 bl sub_080042B8 ldrb r0, [r4, #0xe] cmp r0, #0 beq _0807B2EC subs r0, #1 strb r0, [r4, #0xe] lsls r0, r0, #0x18 cmp r0, #0 bne _0807B2EC adds r0, r4, #0 adds r0, #0x6d ldrb r1, [r0] lsls r0, r1, #2 adds r0, r0, r1 lsls r0, r0, #2 ldr r1, _0807B2F4 @ =gUnk_0813AD88 adds r0, r0, r1 bl sub_08080840 _0807B2EC: pop {r4, pc} .align 2, 0 _0807B2F0: .4byte 0xFFFFE000 _0807B2F4: .4byte gUnk_0813AD88 thumb_func_start sub_0807B2F8 sub_0807B2F8: @ 0x0807B2F8 push {lr} adds r2, r0, #0 adds r1, r2, #0 adds r1, #0x6e ldrb r0, [r1] cmp r0, #0 bne _0807B310 adds r0, #1 strb r0, [r1] adds r0, r2, #0 bl sub_0809D738 _0807B310: pop {pc} .align 2, 0 thumb_func_start sub_0807B314 sub_0807B314: @ 0x0807B314 push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r4, r1, #0 adds r6, r2, #0 ldr r0, _0807B3A0 @ =0x000007FF cmp r5, r0 bhi _0807B410 adds r0, r4, #0 adds r1, r6, #0 bl sub_0801AF8C adds r0, r6, #0 bl sub_0808094C adds r2, r0, #0 lsls r1, r5, #1 ldr r3, _0807B3A4 @ =0x00006004 adds r0, r2, r3 adds r0, r0, r1 ldrh r0, [r0] mov ip, r0 lsls r1, r4, #1 adds r0, r2, #4 adds r0, r0, r1 mov r1, ip strh r1, [r0] ldr r0, _0807B3A8 @ =gUnk_080B3E80 adds r0, r5, r0 ldrb r3, [r0] ldr r1, _0807B3AC @ =0x00002004 adds r0, r2, r1 adds r0, r0, r4 strb r3, [r0] ldr r7, _0807B3B0 @ =gUnk_03000BF0 ldrb r1, [r7, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0807B36C ldr r0, _0807B3B4 @ =gUnk_02025EB0 ldr r1, _0807B3AC @ =0x00002004 adds r0, r0, r1 adds r0, r4, r0 strb r3, [r0] _0807B36C: ldr r3, _0807B3B8 @ =0x0000B004 adds r1, r2, r3 adds r1, r1, r4 ldr r0, _0807B3BC @ =gUnk_080B37A0 adds r0, r5, r0 ldrb r0, [r0] strb r0, [r1] ldrb r1, [r7, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0807B430 movs r1, #0x3f ands r1, r4 lsls r1, r1, #1 movs r0, #0xfc lsls r0, r0, #4 ands r0, r4 lsls r0, r0, #2 adds r1, r1, r0 cmp r6, #2 beq _0807B3C4 lsls r1, r1, #1 ldr r0, _0807B3C0 @ =gUnk_02019EE0 b _0807B3C8 .align 2, 0 _0807B3A0: .4byte 0x000007FF _0807B3A4: .4byte 0x00006004 _0807B3A8: .4byte gUnk_080B3E80 _0807B3AC: .4byte 0x00002004 _0807B3B0: .4byte gUnk_03000BF0 _0807B3B4: .4byte gUnk_02025EB0 _0807B3B8: .4byte 0x0000B004 _0807B3BC: .4byte gUnk_080B37A0 _0807B3C0: .4byte gUnk_02019EE0 _0807B3C4: lsls r1, r1, #1 ldr r0, _0807B400 @ =gUnk_02002F00 _0807B3C8: adds r3, r1, r0 mov r1, ip lsls r0, r1, #3 ldr r1, _0807B404 @ =0x00007004 adds r0, r0, r1 adds r0, r2, r0 ldrh r1, [r0] strh r1, [r3] ldrh r1, [r0, #2] strh r1, [r3, #2] movs r1, #0x80 lsls r1, r1, #1 adds r2, r3, r1 ldrh r1, [r0, #4] strh r1, [r2] movs r2, #0x81 lsls r2, r2, #1 adds r1, r3, r2 ldrh r0, [r0, #6] strh r0, [r1] ldr r0, _0807B408 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #1 beq _0807B430 ldr r1, _0807B40C @ =gUnk_02000070 movs r0, #1 strb r0, [r1] b _0807B430 .align 2, 0 _0807B400: .4byte gUnk_02002F00 _0807B404: .4byte 0x00007004 _0807B408: .4byte gUnk_03000BF0 _0807B40C: .4byte gUnk_02000070 _0807B410: ldr r0, _0807B424 @ =0x00003FFF cmp r5, r0 bls _0807B428 adds r0, r5, #0 adds r1, r4, #0 adds r2, r6, #0 bl sub_0800015E b _0807B430 .align 2, 0 _0807B424: .4byte 0x00003FFF _0807B428: adds r0, r4, #0 adds r1, r6, #0 bl sub_0807BA8C _0807B430: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807B434 sub_0807B434: @ 0x0807B434 push {r4, r5, lr} adds r4, r0, #0 adds r5, r1, #0 bl sub_080002B0 cmp r0, #0x37 bhi _0807B44A cmp r0, #0x36 blo _0807B44A movs r0, #0 b _0807B462 _0807B44A: lsls r0, r4, #0x10 lsrs r0, r0, #0x10 lsls r1, r5, #0x18 lsrs r1, r1, #0x18 bl sub_080002C8 adds r1, r0, #0 movs r0, #0xd eors r1, r0 rsbs r0, r1, #0 orrs r0, r1 lsrs r0, r0, #0x1f _0807B462: pop {r4, r5, pc} thumb_func_start sub_0807B464 sub_0807B464: @ 0x0807B464 push {lr} lsls r0, r0, #0x10 lsrs r0, r0, #0x10 lsls r1, r1, #0x18 lsrs r1, r1, #0x18 bl sub_080002C8 movs r1, #0 cmp r0, #0x56 bne _0807B47A movs r1, #1 _0807B47A: adds r0, r1, #0 pop {pc} .align 2, 0 thumb_func_start sub_0807B480 sub_0807B480: @ 0x0807B480 push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r7, r1, #0 movs r1, #2 bl sub_0807B464 cmp r0, #0 beq _0807B558 adds r0, r6, #0 subs r0, #0x40 movs r1, #2 bl sub_0807B464 adds r5, r0, #0 adds r0, r6, #1 movs r1, #2 bl sub_0807B464 lsls r0, r0, #1 orrs r5, r0 adds r4, r6, #0 adds r4, #0x40 adds r0, r4, #0 movs r1, #2 bl sub_0807B464 lsls r0, r0, #2 orrs r5, r0 subs r0, r6, #1 movs r1, #2 bl sub_0807B464 lsls r0, r0, #3 orrs r5, r0 adds r0, r6, #0 adds r0, #0x41 movs r1, #1 bl sub_0807B464 lsls r0, r0, #1 orrs r5, r0 adds r0, r6, #0 adds r0, #0x3f movs r1, #1 bl sub_0807B464 lsls r0, r0, #3 orrs r5, r0 adds r0, r4, #0 movs r1, #2 bl sub_080002B0 cmp r0, #0 beq _0807B4FA adds r0, r6, #0 adds r0, #0x80 movs r1, #1 bl sub_0807B464 lsls r0, r0, #2 orrs r5, r0 _0807B4FA: ldr r0, _0807B514 @ =gUnk_0811C2CC lsls r1, r5, #1 adds r1, r1, r0 ldrh r4, [r1] adds r0, r6, #0 movs r1, #2 bl sub_080002B0 lsls r0, r0, #0x10 lsrs r0, r0, #0x10 ldr r2, _0807B518 @ =gUnk_0811C2EC movs r3, #0 b _0807B51E .align 2, 0 _0807B514: .4byte gUnk_0811C2CC _0807B518: .4byte gUnk_0811C2EC _0807B51C: adds r2, #6 _0807B51E: ldrh r1, [r2] cmp r1, #0 beq _0807B52A cmp r0, r1 bne _0807B51C ldrh r3, [r2, #2] _0807B52A: movs r0, #1 lsls r0, r7 bics r3, r0 ldr r2, _0807B534 @ =gUnk_0811C2EC b _0807B53A .align 2, 0 _0807B534: .4byte gUnk_0811C2EC _0807B538: adds r2, #6 _0807B53A: ldrh r0, [r2] cmp r0, #0 beq _0807B54E ldrh r0, [r2, #2] cmp r3, r0 bne _0807B538 ldrh r0, [r2, #4] cmp r5, r0 bne _0807B538 ldrh r4, [r2] _0807B54E: adds r0, r4, #0 adds r1, r6, #0 movs r2, #2 bl sub_0807B314 _0807B558: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807B55C sub_0807B55C: @ 0x0807B55C push {r4, r5, r6, r7, lr} adds r5, r0, #0 adds r6, r1, #0 adds r7, r2, #0 bl sub_0807B464 cmp r0, #0 beq _0807B5AC adds r0, r5, #0 subs r0, #0x40 adds r1, r6, #0 bl sub_0807B464 adds r4, r0, #0 adds r0, r5, #1 adds r1, r6, #0 bl sub_0807B464 lsls r0, r0, #1 orrs r4, r0 adds r0, r5, #0 adds r0, #0x40 adds r1, r6, #0 bl sub_0807B464 lsls r0, r0, #2 orrs r4, r0 subs r0, r5, #1 adds r1, r6, #0 bl sub_0807B464 lsls r0, r0, #3 orrs r0, r4 lsls r0, r0, #1 adds r0, r0, r7 ldrh r0, [r0] adds r1, r5, #0 adds r2, r6, #0 bl sub_0807B314 _0807B5AC: pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807B5B0 sub_0807B5B0: @ 0x0807B5B0 push {r4, r5, r6, r7, lr} adds r3, r0, #0 movs r1, #0x2e ldrsh r0, [r3, r1] ldr r6, _0807B5F8 @ =gUnk_0811C456 ldrb r1, [r3, #0x14] movs r2, #6 ands r2, r1 lsls r1, r2, #1 adds r1, r1, r6 movs r4, #0 ldrsh r1, [r1, r4] adds r0, r0, r1 ldr r5, _0807B5FC @ =gUnk_03000BF0 ldrh r1, [r5, #6] subs r0, r0, r1 asrs r0, r0, #4 movs r4, #0x3f ands r0, r4 movs r7, #0x32 ldrsh r1, [r3, r7] adds r2, #1 lsls r2, r2, #1 adds r2, r2, r6 movs r3, #0 ldrsh r2, [r2, r3] adds r1, r1, r2 ldrh r2, [r5, #8] subs r1, r1, r2 asrs r1, r1, #4 ands r1, r4 lsls r1, r1, #6 orrs r0, r1 bl sub_0807B600 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807B5F8: .4byte gUnk_0811C456 _0807B5FC: .4byte gUnk_03000BF0 thumb_func_start sub_0807B600 sub_0807B600: @ 0x0807B600 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r5, #0 subs r6, #0x40 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 movs r1, #1 bl sub_080002C8 cmp r0, #0x56 beq _0807B61A movs r0, #0 b _0807B76E _0807B61A: adds r0, r5, #0 movs r1, #1 bl sub_080002B0 adds r1, r0, #0 ldr r0, _0807B634 @ =0x0000026A cmp r1, r0 bne _0807B638 adds r0, r5, #0 bl sub_0807B820 b _0807B76C .align 2, 0 _0807B634: .4byte 0x0000026A _0807B638: ldr r0, _0807B648 @ =0x00000267 cmp r1, r0 bne _0807B64C adds r0, r5, #0 adds r0, #0x40 bl sub_0807B820 b _0807B76C .align 2, 0 _0807B648: .4byte 0x00000267 _0807B64C: ldr r0, _0807B65C @ =0x0000027A cmp r1, r0 bne _0807B660 adds r0, r5, #0 bl sub_0807B8A8 b _0807B76C .align 2, 0 _0807B65C: .4byte 0x0000027A _0807B660: ldr r0, _0807B670 @ =0x00000277 cmp r1, r0 bne _0807B674 adds r0, r5, #0 adds r0, #0x40 bl sub_0807B8A8 b _0807B76C .align 2, 0 _0807B670: .4byte 0x00000277 _0807B674: ldr r0, _0807B684 @ =0x0000028A cmp r1, r0 bne _0807B688 adds r0, r5, #0 bl sub_0807B930 b _0807B76C .align 2, 0 _0807B684: .4byte 0x0000028A _0807B688: ldr r0, _0807B698 @ =0x00000287 cmp r1, r0 bne _0807B69C adds r0, r5, #0 adds r0, #0x40 bl sub_0807B930 b _0807B76C .align 2, 0 _0807B698: .4byte 0x00000287 _0807B69C: adds r0, r5, #0 movs r1, #2 bl sub_080002B0 cmp r0, #0 beq _0807B6EC ldr r0, _0807B6E8 @ =0x000002F2 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 adds r0, r6, #0 movs r1, #1 bl sub_080002E0 cmp r0, #3 bne _0807B6CA movs r0, #0xbd lsls r0, r0, #2 adds r1, r6, #0 movs r2, #1 bl sub_0807B314 _0807B6CA: adds r0, r5, #0 adds r0, #0x40 movs r1, #1 bl sub_080002E0 cmp r0, #3 bne _0807B6F8 movs r0, #0xbd lsls r0, r0, #2 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 b _0807B6F8 .align 2, 0 _0807B6E8: .4byte 0x000002F2 _0807B6EC: movs r0, #0xbd lsls r0, r0, #2 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 _0807B6F8: adds r0, r6, #0 movs r1, #2 bl sub_0807B464 cmp r0, #0 beq _0807B748 movs r0, #0 adds r1, r6, #0 movs r2, #2 bl sub_0807B314 adds r0, r6, #0 movs r1, #1 bl sub_080002B0 ldr r1, _0807B770 @ =0x000002F2 cmp r0, r1 bne _0807B728 movs r0, #0xbd lsls r0, r0, #2 adds r1, r6, #0 movs r2, #1 bl sub_0807B314 _0807B728: adds r0, r5, #1 ldr r4, _0807B774 @ =gUnk_0811C2AC movs r1, #1 adds r2, r4, #0 bl sub_0807B55C subs r0, r5, #1 movs r1, #1 adds r2, r4, #0 bl sub_0807B55C adds r0, r6, #0 movs r1, #1 adds r2, r4, #0 bl sub_0807B55C _0807B748: adds r0, r6, #1 movs r1, #3 bl sub_0807B480 subs r0, r6, #1 movs r1, #1 bl sub_0807B480 adds r0, r6, #0 adds r0, #0x40 movs r1, #0 bl sub_0807B480 adds r0, r6, #0 subs r0, #0x40 movs r1, #2 bl sub_0807B480 _0807B76C: movs r0, #1 _0807B76E: pop {r4, r5, r6, pc} .align 2, 0 _0807B770: .4byte 0x000002F2 _0807B774: .4byte gUnk_0811C2AC thumb_func_start sub_0807B778 sub_0807B778: @ 0x0807B778 push {r4, r5, r6, lr} adds r5, r0, #0 adds r6, r1, #0 lsls r0, r5, #0x10 lsrs r0, r0, #0x10 lsls r1, r6, #0x18 lsrs r1, r1, #0x18 bl sub_080002C8 cmp r0, #0xd bne _0807B7D0 adds r0, r5, #0 subs r0, #0x40 adds r1, r6, #0 bl sub_0807B434 adds r4, r0, #0 adds r0, r5, #1 adds r1, r6, #0 bl sub_0807B434 lsls r0, r0, #1 orrs r4, r0 adds r0, r5, #0 adds r0, #0x40 adds r1, r6, #0 bl sub_0807B434 lsls r0, r0, #2 orrs r4, r0 subs r0, r5, #1 adds r1, r6, #0 bl sub_0807B434 lsls r0, r0, #3 orrs r0, r4 ldr r1, _0807B7D4 @ =gUnk_0811C466 lsls r0, r0, #1 adds r0, r0, r1 ldrh r0, [r0] adds r1, r5, #0 adds r2, r6, #0 bl sub_0807B314 _0807B7D0: pop {r4, r5, r6, pc} .align 2, 0 _0807B7D4: .4byte gUnk_0811C466 thumb_func_start sub_0807B7D8 sub_0807B7D8: @ 0x0807B7D8 push {r4, r5, lr} adds r4, r1, #0 adds r5, r2, #0 cmp r0, #0x35 bne _0807B816 movs r0, #0x35 bl sub_08000152 adds r0, r4, #0 adds r1, r5, #0 bl sub_0807B778 adds r0, r4, #1 adds r1, r5, #0 bl sub_0807B778 subs r0, r4, #1 adds r1, r5, #0 bl sub_0807B778 adds r0, r4, #0 adds r0, #0x40 adds r1, r5, #0 bl sub_0807B778 adds r0, r4, #0 subs r0, #0x40 adds r1, r5, #0 bl sub_0807B778 b _0807B81E _0807B816: adds r1, r4, #0 adds r2, r5, #0 bl sub_0807B314 _0807B81E: pop {r4, r5, pc} thumb_func_start sub_0807B820 sub_0807B820: @ 0x0807B820 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x9b lsls r0, r0, #2 adds r5, r4, #0 subs r5, #0x41 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B890 @ =0x00000273 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B894 @ =0x0000026D adds r5, #1 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 movs r0, #0x9d lsls r0, r0, #2 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B898 @ =0x0000026E adds r5, #1 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B89C @ =0x00000275 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B8A0 @ =0x0000026F subs r1, r4, #1 movs r2, #1 bl sub_0807B314 movs r0, #0x9c lsls r0, r0, #2 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B8A4 @ =0x00000272 adds r4, #1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, r5, pc} .align 2, 0 _0807B890: .4byte 0x00000273 _0807B894: .4byte 0x0000026D _0807B898: .4byte 0x0000026E _0807B89C: .4byte 0x00000275 _0807B8A0: .4byte 0x0000026F _0807B8A4: .4byte 0x00000272 thumb_func_start sub_0807B8A8 sub_0807B8A8: @ 0x0807B8A8 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0x9f lsls r0, r0, #2 adds r5, r4, #0 subs r5, #0x41 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B918 @ =0x00000283 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B91C @ =0x0000027D adds r5, #1 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 movs r0, #0xa1 lsls r0, r0, #2 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B920 @ =0x0000027E adds r5, #1 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B924 @ =0x00000285 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B928 @ =0x0000027F subs r1, r4, #1 movs r2, #1 bl sub_0807B314 movs r0, #0xa0 lsls r0, r0, #2 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B92C @ =0x00000282 adds r4, #1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, r5, pc} .align 2, 0 _0807B918: .4byte 0x00000283 _0807B91C: .4byte 0x0000027D _0807B920: .4byte 0x0000027E _0807B924: .4byte 0x00000285 _0807B928: .4byte 0x0000027F _0807B92C: .4byte 0x00000282 thumb_func_start sub_0807B930 sub_0807B930: @ 0x0807B930 push {r4, r5, lr} adds r4, r0, #0 movs r0, #0xa3 lsls r0, r0, #2 adds r5, r4, #0 subs r5, #0x41 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B9A0 @ =0x00000293 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B9A4 @ =0x0000028D adds r5, #1 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 movs r0, #0xa5 lsls r0, r0, #2 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B9A8 @ =0x0000028E adds r5, #1 adds r1, r5, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B9AC @ =0x00000295 adds r1, r5, #0 movs r2, #2 bl sub_0807B314 ldr r0, _0807B9B0 @ =0x0000028F subs r1, r4, #1 movs r2, #1 bl sub_0807B314 movs r0, #0xa4 lsls r0, r0, #2 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 ldr r0, _0807B9B4 @ =0x00000292 adds r4, #1 adds r1, r4, #0 movs r2, #1 bl sub_0807B314 pop {r4, r5, pc} .align 2, 0 _0807B9A0: .4byte 0x00000293 _0807B9A4: .4byte 0x0000028D _0807B9A8: .4byte 0x0000028E _0807B9AC: .4byte 0x00000295 _0807B9B0: .4byte 0x0000028F _0807B9B4: .4byte 0x00000292 thumb_func_start sub_0807B9B8 sub_0807B9B8: @ 0x0807B9B8 push {r4, r5, r6, r7, lr} adds r7, r0, #0 adds r4, r1, #0 adds r6, r2, #0 adds r0, r4, #0 adds r1, r6, #0 bl sub_0801AF8C adds r0, r6, #0 bl sub_0808094C adds r5, r0, #0 lsls r1, r4, #1 adds r0, r5, #4 adds r0, r0, r1 strh r7, [r0] lsls r1, r7, #1 ldr r2, _0807BA24 @ =0x00005004 adds r0, r5, r2 adds r0, r0, r1 ldrh r2, [r0] ldr r0, _0807BA28 @ =0x00002004 adds r1, r5, r0 adds r1, r1, r4 ldr r0, _0807BA2C @ =gUnk_080B3E80 adds r0, r2, r0 ldrb r0, [r0] strb r0, [r1] ldr r0, _0807BA30 @ =0x0000B004 adds r1, r5, r0 adds r1, r1, r4 ldr r0, _0807BA34 @ =gUnk_080B37A0 adds r2, r2, r0 ldrb r0, [r2] strb r0, [r1] ldr r0, _0807BA38 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0807BA78 movs r1, #0x3f ands r1, r4 lsls r1, r1, #1 movs r0, #0xfc lsls r0, r0, #4 ands r0, r4 lsls r0, r0, #2 adds r1, r1, r0 cmp r6, #2 beq _0807BA40 lsls r1, r1, #1 ldr r0, _0807BA3C @ =gUnk_02019EE0 b _0807BA44 .align 2, 0 _0807BA24: .4byte 0x00005004 _0807BA28: .4byte 0x00002004 _0807BA2C: .4byte gUnk_080B3E80 _0807BA30: .4byte 0x0000B004 _0807BA34: .4byte gUnk_080B37A0 _0807BA38: .4byte gUnk_03000BF0 _0807BA3C: .4byte gUnk_02019EE0 _0807BA40: lsls r1, r1, #1 ldr r0, _0807BA7C @ =gUnk_02002F00 _0807BA44: adds r3, r1, r0 lsls r0, r7, #3 ldr r1, _0807BA80 @ =0x00007004 adds r0, r0, r1 adds r0, r5, r0 ldrh r1, [r0] strh r1, [r3] ldrh r1, [r0, #2] strh r1, [r3, #2] movs r1, #0x80 lsls r1, r1, #1 adds r2, r3, r1 ldrh r1, [r0, #4] strh r1, [r2] movs r2, #0x81 lsls r2, r2, #1 adds r1, r3, r2 ldrh r0, [r0, #6] strh r0, [r1] ldr r0, _0807BA84 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #1 beq _0807BA78 ldr r1, _0807BA88 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] _0807BA78: pop {r4, r5, r6, r7, pc} .align 2, 0 _0807BA7C: .4byte gUnk_02002F00 _0807BA80: .4byte 0x00007004 _0807BA84: .4byte gUnk_03000BF0 _0807BA88: .4byte gUnk_02000070 thumb_func_start sub_0807BA8C sub_0807BA8C: @ 0x0807BA8C push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r7, r1, #0 bl sub_0801AF8C adds r0, r7, #0 bl sub_0808094C adds r5, r0, #0 lsls r2, r4, #1 adds r1, r5, #4 adds r1, r1, r2 ldr r3, _0807BAFC @ =0x00003004 adds r0, r5, r3 adds r0, r0, r2 ldrh r6, [r0] strh r6, [r1] lsls r1, r6, #1 ldr r2, _0807BB00 @ =0x00005004 adds r0, r5, r2 adds r0, r0, r1 ldrh r2, [r0] ldr r3, _0807BB04 @ =0x00002004 adds r1, r5, r3 adds r1, r1, r4 ldr r0, _0807BB08 @ =gUnk_080B3E80 adds r0, r2, r0 ldrb r0, [r0] strb r0, [r1] ldr r0, _0807BB0C @ =0x0000B004 adds r1, r5, r0 adds r1, r1, r4 ldr r0, _0807BB10 @ =gUnk_080B37A0 adds r2, r2, r0 ldrb r0, [r2] strb r0, [r1] ldr r0, _0807BB14 @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #1 ands r0, r1 cmp r0, #0 bne _0807BB54 movs r1, #0x3f ands r1, r4 lsls r1, r1, #1 movs r0, #0xfc lsls r0, r0, #4 ands r0, r4 lsls r0, r0, #2 adds r1, r1, r0 cmp r7, #2 beq _0807BB1C lsls r1, r1, #1 ldr r0, _0807BB18 @ =gUnk_02019EE0 b _0807BB20 .align 2, 0 _0807BAFC: .4byte 0x00003004 _0807BB00: .4byte 0x00005004 _0807BB04: .4byte 0x00002004 _0807BB08: .4byte gUnk_080B3E80 _0807BB0C: .4byte 0x0000B004 _0807BB10: .4byte gUnk_080B37A0 _0807BB14: .4byte gUnk_03000BF0 _0807BB18: .4byte gUnk_02019EE0 _0807BB1C: lsls r1, r1, #1 ldr r0, _0807BB58 @ =gUnk_02002F00 _0807BB20: adds r3, r1, r0 lsls r0, r6, #3 ldr r1, _0807BB5C @ =0x00007004 adds r0, r0, r1 adds r0, r5, r0 ldrh r1, [r0] strh r1, [r3] ldrh r1, [r0, #2] strh r1, [r3, #2] movs r1, #0x80 lsls r1, r1, #1 adds r2, r3, r1 ldrh r1, [r0, #4] strh r1, [r2] movs r2, #0x81 lsls r2, r2, #1 adds r1, r3, r2 ldrh r0, [r0, #6] strh r0, [r1] ldr r0, _0807BB60 @ =gUnk_03000BF0 ldrh r0, [r0] cmp r0, #1 beq _0807BB54 ldr r1, _0807BB64 @ =gUnk_02000070 movs r0, #1 strb r0, [r1] _0807BB54: pop {r4, r5, r6, r7, pc} .align 2, 0 _0807BB58: .4byte gUnk_02002F00 _0807BB5C: .4byte 0x00007004 _0807BB60: .4byte gUnk_03000BF0 _0807BB64: .4byte gUnk_02000070 thumb_func_start sub_0807BB68 sub_0807BB68: @ 0x0807BB68 push {r4, r5, r6, r7, lr} adds r4, r0, #0 adds r6, r1, #0 adds r5, r2, #0 movs r1, #0 ldrsh r0, [r4, r1] movs r1, #1 rsbs r1, r1, #0 cmp r0, r1 beq _0807BB96 adds r7, r1, #0 _0807BB7E: ldrh r0, [r4] movs r2, #2 ldrsh r1, [r4, r2] adds r1, r6, r1 adds r2, r5, #0 bl sub_0807B314 adds r4, #4 movs r1, #0 ldrsh r0, [r4, r1] cmp r0, r7 bne _0807BB7E _0807BB96: pop {r4, r5, r6, r7, pc} thumb_func_start sub_0807BB98 sub_0807BB98: @ 0x0807BB98 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} adds r5, r0, #0 mov sl, r1 mov r8, r2 mov sb, r3 movs r0, #0 cmp r0, sb bhs _0807BBD4 _0807BBB0: movs r4, #0 adds r7, r5, #0 adds r7, #0x40 adds r6, r0, #1 cmp r4, r8 bhs _0807BBCC _0807BBBC: adds r1, r5, r4 ldr r0, _0807BBE0 @ =0x00004072 mov r2, sl bl sub_0800015E adds r4, #1 cmp r4, r8 blo _0807BBBC _0807BBCC: adds r5, r7, #0 adds r0, r6, #0 cmp r0, sb blo _0807BBB0 _0807BBD4: pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807BBE0: .4byte 0x00004072 thumb_func_start sub_0807BBE4 sub_0807BBE4: @ 0x0807BBE4 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} ldr r0, _0807BC28 @ =gUnk_0202AEB4 mov sl, r0 ldr r0, _0807BC2C @ =gUnk_02010654 mov sb, r0 ldr r5, _0807BC30 @ =0xFFFFB000 add r5, sl ldr r4, _0807BC30 @ =0xFFFFB000 add r4, sb ldr r2, _0807BC34 @ =0xFFFFD000 add r2, sl ldr r1, _0807BC34 @ =0xFFFFD000 add r1, sb movs r3, #0 ldr r0, _0807BC38 @ =0x00003FFF mov r8, r0 ldr r0, _0807BC3C @ =gUnk_080B3E80 mov ip, r0 ldr r7, _0807BC40 @ =gUnk_080B79A7 ldr r6, _0807BC44 @ =0xFFFFC000 _0807BC14: ldrh r0, [r5] adds r5, #2 cmp r0, r8 bhi _0807BC48 lsls r0, r0, #1 add r0, sl ldrh r0, [r0] add r0, ip b _0807BC4C .align 2, 0 _0807BC28: .4byte gUnk_0202AEB4 _0807BC2C: .4byte gUnk_02010654 _0807BC30: .4byte 0xFFFFB000 _0807BC34: .4byte 0xFFFFD000 _0807BC38: .4byte 0x00003FFF _0807BC3C: .4byte gUnk_080B3E80 _0807BC40: .4byte gUnk_080B79A7 _0807BC44: .4byte 0xFFFFC000 _0807BC48: adds r0, r0, r6 adds r0, r0, r7 _0807BC4C: ldrb r0, [r0] strb r0, [r2] adds r2, #1 ldrh r0, [r4] adds r4, #2 cmp r0, r8 bhi _0807BC64 lsls r0, r0, #1 add r0, sb ldrh r0, [r0] add r0, ip b _0807BC68 _0807BC64: adds r0, r0, r6 adds r0, r0, r7 _0807BC68: ldrb r0, [r0] strb r0, [r1] adds r1, #1 adds r3, #1 ldr r0, _0807BC80 @ =0x00000FFF cmp r3, r0 bls _0807BC14 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807BC80: .4byte 0x00000FFF thumb_func_start sub_0807BC84 sub_0807BC84: @ 0x0807BC84 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} ldr r1, _0807BD04 @ =gUnk_03000BF0 ldrh r0, [r1, #0x1e] lsrs r2, r0, #4 mov r8, r1 cmp r2, #0x40 bne _0807BC98 movs r2, #0x3f _0807BC98: ldr r1, _0807BD08 @ =gUnk_02027EB4 adds r3, r2, r1 adds r6, r1, #0 adds r6, #0x3f ldr r0, _0807BD0C @ =gUnk_0200D654 adds r2, r2, r0 adds r5, r0, #0 adds r5, #0x3f movs r4, #0 adds r7, r1, #0 mov ip, r0 movs r0, #0xff _0807BCB0: strb r0, [r3] strb r0, [r6] strb r0, [r2] strb r0, [r5] adds r3, #0x40 adds r6, #0x40 adds r2, #0x40 adds r5, #0x40 adds r4, #1 cmp r4, #0x3f bls _0807BCB0 mov r0, r8 ldrh r1, [r0, #0x20] ldr r0, _0807BD10 @ =0x0000FFF0 ands r0, r1 lsls r0, r0, #2 adds r3, r0, r7 movs r1, #0xfc lsls r1, r1, #4 adds r6, r7, r1 mov r1, ip adds r2, r0, r1 movs r5, #0xfc lsls r5, r5, #4 add r5, ip movs r4, #0 movs r0, #0xff _0807BCE6: strb r0, [r3] adds r3, #1 strb r0, [r6] adds r6, #1 strb r0, [r2] adds r2, #1 strb r0, [r5] adds r5, #1 adds r4, #1 cmp r4, #0x3f bls _0807BCE6 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807BD04: .4byte gUnk_03000BF0 _0807BD08: .4byte gUnk_02027EB4 _0807BD0C: .4byte gUnk_0200D654 _0807BD10: .4byte 0x0000FFF0 thumb_func_start sub_0807BD14 sub_0807BD14: @ 0x0807BD14 push {r4, r5, lr} adds r5, r1, #0 movs r1, #0x2e ldrsh r2, [r0, r1] movs r3, #0x32 ldrsh r1, [r0, r3] adds r0, r2, #0 adds r2, r5, #0 bl sub_0807BEEC adds r3, r0, #0 cmp r3, #0xff beq _0807BDB4 ldr r1, _0807BD68 @ =gUnk_03000BF0 movs r2, #0 movs r0, #2 strb r0, [r1, #2] strb r2, [r1, #3] movs r4, #1 strh r4, [r1] strb r3, [r1, #5] strb r5, [r1, #0x10] bl sub_08052E8C adds r2, r0, #0 ldr r1, _0807BD6C @ =gUnk_02033A90 ldr r3, _0807BD70 @ =0x0000085C adds r0, r1, r3 str r2, [r0] ldrb r0, [r1, #0xd] ands r4, r0 cmp r4, #0 beq _0807BD98 cmp r5, #1 beq _0807BD7E cmp r5, #1 blo _0807BD74 cmp r5, #2 beq _0807BD86 cmp r5, #3 beq _0807BD90 b _0807BD98 .align 2, 0 _0807BD68: .4byte gUnk_03000BF0 _0807BD6C: .4byte gUnk_02033A90 _0807BD70: .4byte 0x0000085C _0807BD74: ldrh r0, [r2, #6] ldrh r1, [r2, #2] subs r0, r0, r1 strh r0, [r2, #6] b _0807BD98 _0807BD7E: ldrh r0, [r2] ldrh r1, [r2, #4] adds r0, r0, r1 b _0807BD96 _0807BD86: ldrh r0, [r2, #2] ldrh r3, [r2, #6] adds r0, r0, r3 strh r0, [r2, #6] b _0807BD98 _0807BD90: ldrh r0, [r2, #4] ldrh r1, [r2] subs r0, r0, r1 _0807BD96: strh r0, [r2, #4] _0807BD98: ldr r2, _0807BDB0 @ =gLinkEntity ldrb r1, [r2, #0x11] movs r0, #0x10 rsbs r0, r0, #0 ands r0, r1 movs r1, #6 orrs r0, r1 strb r0, [r2, #0x11] bl sub_0805E5A8 movs r0, #1 b _0807BDB6 .align 2, 0 _0807BDB0: .4byte gLinkEntity _0807BDB4: movs r0, #0 _0807BDB6: pop {r4, r5, pc} thumb_func_start sub_0807BDB8 sub_0807BDB8: @ 0x0807BDB8 push {r4, r5, lr} adds r3, r0, #0 movs r5, #0xff movs r0, #7 ands r1, r0 cmp r1, #7 bls _0807BDC8 b _0807BEE2 _0807BDC8: lsls r0, r1, #2 ldr r1, _0807BDD4 @ =_0807BDD8 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807BDD4: .4byte _0807BDD8 _0807BDD8: @ jump table .4byte _0807BDF8 @ case 0 .4byte _0807BE10 @ case 1 .4byte _0807BE30 @ case 2 .4byte _0807BE4C @ case 3 .4byte _0807BE78 @ case 4 .4byte _0807BE94 @ case 5 .4byte _0807BEB4 @ case 6 .4byte _0807BEC4 @ case 7 _0807BDF8: movs r1, #0x32 ldrsh r0, [r3, r1] ldr r1, _0807BE0C @ =gUnk_03000BF0 ldrh r1, [r1, #8] subs r0, r0, r1 cmp r0, #9 bhi _0807BEE2 movs r5, #0 b _0807BEE2 .align 2, 0 _0807BE0C: .4byte gUnk_03000BF0 _0807BE10: movs r2, #0x32 ldrsh r0, [r3, r2] ldr r2, _0807BE2C @ =gUnk_03000BF0 ldrh r1, [r2, #8] subs r0, r0, r1 cmp r0, #9 bhi _0807BE20 movs r5, #0 _0807BE20: ldrh r0, [r2, #0x1e] subs r0, #0xa movs r4, #0x2e ldrsh r1, [r3, r4] ldrh r2, [r2, #6] b _0807BE6A .align 2, 0 _0807BE2C: .4byte gUnk_03000BF0 _0807BE30: ldr r1, _0807BE48 @ =gUnk_03000BF0 ldrh r2, [r1, #0x1e] subs r2, #0xa movs r4, #0x2e ldrsh r0, [r3, r4] ldrh r1, [r1, #6] subs r0, r0, r1 cmp r2, r0 bhs _0807BEE2 movs r5, #1 b _0807BEE2 .align 2, 0 _0807BE48: .4byte gUnk_03000BF0 _0807BE4C: ldr r4, _0807BE74 @ =gUnk_03000BF0 ldrh r0, [r4, #0x20] subs r0, #0xa movs r2, #0x32 ldrsh r1, [r3, r2] ldrh r2, [r4, #8] subs r1, r1, r2 cmp r0, r1 bhs _0807BE60 movs r5, #2 _0807BE60: ldrh r0, [r4, #0x1e] subs r0, #0xa movs r2, #0x2e ldrsh r1, [r3, r2] ldrh r2, [r4, #6] _0807BE6A: subs r1, r1, r2 cmp r0, r1 bhs _0807BEE2 movs r5, #1 b _0807BEE2 .align 2, 0 _0807BE74: .4byte gUnk_03000BF0 _0807BE78: ldr r1, _0807BE90 @ =gUnk_03000BF0 ldrh r2, [r1, #0x20] subs r2, #0xa movs r4, #0x32 ldrsh r0, [r3, r4] ldrh r1, [r1, #8] subs r0, r0, r1 cmp r2, r0 bhs _0807BEE2 movs r5, #2 b _0807BEE2 .align 2, 0 _0807BE90: .4byte gUnk_03000BF0 _0807BE94: ldr r4, _0807BEB0 @ =gUnk_03000BF0 ldrh r0, [r4, #0x20] subs r0, #0xa movs r2, #0x32 ldrsh r1, [r3, r2] ldrh r2, [r4, #8] subs r1, r1, r2 cmp r0, r1 bhs _0807BEA8 movs r5, #2 _0807BEA8: movs r1, #0x2e ldrsh r0, [r3, r1] ldrh r1, [r4, #6] b _0807BEDA .align 2, 0 _0807BEB0: .4byte gUnk_03000BF0 _0807BEB4: movs r2, #0x2e ldrsh r0, [r3, r2] ldr r1, _0807BEC0 @ =gUnk_03000BF0 ldrh r1, [r1, #6] b _0807BEDA .align 2, 0 _0807BEC0: .4byte gUnk_03000BF0 _0807BEC4: movs r4, #0x32 ldrsh r0, [r3, r4] ldr r2, _0807BEE8 @ =gUnk_03000BF0 ldrh r1, [r2, #8] subs r0, r0, r1 cmp r0, #9 bhi _0807BED4 movs r5, #0 _0807BED4: movs r1, #0x2e ldrsh r0, [r3, r1] ldrh r1, [r2, #6] _0807BEDA: subs r0, r0, r1 cmp r0, #9 bhi _0807BEE2 movs r5, #3 _0807BEE2: adds r0, r5, #0 pop {r4, r5, pc} .align 2, 0 _0807BEE8: .4byte gUnk_03000BF0 thumb_func_start sub_0807BEEC sub_0807BEEC: @ 0x0807BEEC push {r4, r5, r6, r7, lr} adds r6, r0, #0 adds r7, r1, #0 ldr r0, _0807BF04 @ =gUnk_02033A90 ldrb r1, [r0, #0xd] movs r0, #1 ands r0, r1 cmp r0, #0 beq _0807BF0C ldr r0, _0807BF08 @ =gUnk_03000BF0 ldrb r0, [r0, #5] b _0807BF7C .align 2, 0 _0807BF04: .4byte gUnk_02033A90 _0807BF08: .4byte gUnk_03000BF0 _0807BF0C: cmp r2, #1 beq _0807BF2C cmp r2, #1 blo _0807BF1E cmp r2, #2 beq _0807BF40 cmp r2, #3 beq _0807BF58 b _0807BF7A _0807BF1E: ldr r0, _0807BF28 @ =gUnk_03000BF0 ldrh r0, [r0, #8] adds r7, r0, #0 subs r7, #0x10 b _0807BF60 .align 2, 0 _0807BF28: .4byte gUnk_03000BF0 _0807BF2C: ldr r0, _0807BF3C @ =gUnk_03000BF0 ldrh r1, [r0, #6] ldrh r0, [r0, #0x1e] adds r1, r1, r0 adds r6, r1, #0 adds r6, #0x10 b _0807BF60 .align 2, 0 _0807BF3C: .4byte gUnk_03000BF0 _0807BF40: ldr r0, _0807BF50 @ =gUnk_03000BF0 ldrh r1, [r0, #8] ldrh r0, [r0, #0x20] adds r1, r1, r0 adds r7, r1, #0 adds r7, #0x10 b _0807BF60 .align 2, 0 _0807BF50: .4byte gUnk_03000BF0 _0807BF54: adds r0, r4, #0 b _0807BF7C _0807BF58: ldr r0, _0807BF80 @ =gUnk_03000BF0 ldrh r0, [r0, #6] adds r6, r0, #0 subs r6, #0x10 _0807BF60: ldr r5, _0807BF84 @ =gUnk_02033ACC movs r4, #0 _0807BF64: adds r0, r6, #0 adds r1, r7, #0 adds r2, r5, #0 bl sub_0807BF88 cmp r0, #0 bne _0807BF54 adds r4, #1 adds r5, #0x20 cmp r4, #0x3f bls _0807BF64 _0807BF7A: movs r0, #0xff _0807BF7C: pop {r4, r5, r6, r7, pc} .align 2, 0 _0807BF80: .4byte gUnk_03000BF0 _0807BF84: .4byte gUnk_02033ACC thumb_func_start sub_0807BF88 sub_0807BF88: @ 0x0807BF88 push {r4, lr} adds r3, r2, #0 ldrh r2, [r3, #4] subs r0, r0, r2 ldrh r2, [r3, #6] subs r1, r1, r2 movs r2, #0 ldrh r4, [r3] cmp r0, r4 bhs _0807BFA4 ldrh r3, [r3, #2] cmp r1, r3 bhs _0807BFA4 movs r2, #1 _0807BFA4: adds r0, r2, #0 pop {r4, pc} thumb_func_start sub_0807BFA8 sub_0807BFA8: @ 0x0807BFA8 ldr r2, _0807BFC4 @ =gUnk_03000BF0 ldr r0, _0807BFC8 @ =gUnk_02033A90 ldr r1, _0807BFCC @ =0x0000085C adds r0, r0, r1 ldr r1, [r0] ldrh r0, [r1, #4] strh r0, [r2, #6] ldrh r0, [r1, #6] strh r0, [r2, #8] ldrh r0, [r1] strh r0, [r2, #0x1e] ldrh r0, [r1, #2] strh r0, [r2, #0x20] bx lr .align 2, 0 _0807BFC4: .4byte gUnk_03000BF0 _0807BFC8: .4byte gUnk_02033A90 _0807BFCC: .4byte 0x0000085C thumb_func_start sub_0807BFD0 sub_0807BFD0: @ 0x0807BFD0 push {r4, r5, r6, r7, lr} mov r7, r8 push {r7} bl sub_0801B170 bl sub_0807BFA8 ldr r7, _0807C0B8 @ =0x0000FFFF ldr r6, _0807C0BC @ =gUnk_0202AEB4 movs r0, #0x80 lsls r0, r0, #5 mov r8, r0 adds r0, r7, #0 adds r1, r6, #0 mov r2, r8 bl sub_0801D5EC movs r5, #0 strh r5, [r6] ldr r4, _0807C0C0 @ =gUnk_02010654 adds r0, r7, #0 adds r1, r4, #0 mov r2, r8 bl sub_0801D5EC strh r5, [r4] ldr r2, _0807C0C4 @ =gUnk_03000BF0 ldr r0, _0807C0C8 @ =gUnk_02033A90 ldr r1, _0807C0CC @ =0x0000085C adds r4, r0, r1 ldr r0, [r4] ldr r1, [r2, #0x34] ldr r0, [r0, #8] cmp r1, r0 beq _0807C01C str r0, [r2, #0x34] bl sub_080197D4 _0807C01C: ldr r0, [r4] ldr r0, [r0, #0x10] bl sub_080197D4 ldr r1, _0807C0D0 @ =gUnk_020176A0 adds r0, r1, #0 adds r0, #0x60 movs r2, #0xa8 lsls r2, r2, #2 adds r1, r1, r2 movs r2, #0x20 bl sub_0801D66C ldr r2, _0807C0D4 @ =gUnk_0200B644 ldr r0, [r2] movs r1, #0x80 lsls r1, r1, #0xe orrs r0, r1 str r0, [r2] ldr r0, [r4] ldr r0, [r0, #0x14] cmp r0, #0 beq _0807C04E bl sub_0801B130 _0807C04E: adds r5, r6, #0 movs r0, #0x80 lsls r0, r0, #5 adds r6, r5, r0 adds r0, r7, #0 adds r1, r6, #0 mov r2, r8 bl sub_0801D5EC movs r2, #0 ldr r3, _0807C0D8 @ =0x000007FF adds r4, r7, #0 _0807C066: ldrh r0, [r5] cmp r0, r3 bhi _0807C078 lsls r0, r0, #1 adds r1, r0, r6 ldrh r0, [r1] cmp r0, r4 bne _0807C078 strh r2, [r1] _0807C078: adds r2, #1 adds r5, #2 cmp r2, r3 ble _0807C066 movs r2, #0x80 lsls r2, r2, #5 ldr r5, _0807C0C0 @ =gUnk_02010654 adds r6, r5, r2 ldr r4, _0807C0B8 @ =0x0000FFFF adds r0, r4, #0 adds r1, r6, #0 bl sub_0801D5EC movs r2, #0 ldr r3, _0807C0D8 @ =0x000007FF _0807C096: ldrh r0, [r5] cmp r0, r3 bhi _0807C0A8 lsls r0, r0, #1 adds r1, r0, r6 ldrh r0, [r1] cmp r0, r4 bne _0807C0A8 strh r2, [r1] _0807C0A8: adds r2, #1 adds r5, #2 cmp r2, r3 ble _0807C096 pop {r3} mov r8, r3 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807C0B8: .4byte 0x0000FFFF _0807C0BC: .4byte gUnk_0202AEB4 _0807C0C0: .4byte gUnk_02010654 _0807C0C4: .4byte gUnk_03000BF0 _0807C0C8: .4byte gUnk_02033A90 _0807C0CC: .4byte 0x0000085C _0807C0D0: .4byte gUnk_020176A0 _0807C0D4: .4byte gUnk_0200B644 _0807C0D8: .4byte 0x000007FF thumb_func_start sub_0807C0DC sub_0807C0DC: @ 0x0807C0DC push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} bl sub_0807BFA8 ldr r7, _0807C158 @ =gUnk_03000BF0 ldrb r1, [r7, #0xf] movs r0, #0xfc ands r0, r1 strb r0, [r7, #0xf] ldr r5, _0807C15C @ =gUnk_0200B654 movs r6, #0x80 lsls r6, r6, #6 adds r0, r5, #0 adds r1, r6, #0 bl sub_0801D630 adds r0, r5, r6 movs r1, #0x80 lsls r1, r1, #5 bl sub_0801D630 ldr r0, _0807C160 @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 bl sub_0801D630 ldr r0, _0807C164 @ =gUnk_02002F00 adds r1, r4, #0 bl sub_0801D630 ldr r0, _0807C168 @ =gUnk_02033A90 ldr r1, _0807C16C @ =0x0000085C adds r0, r0, r1 ldr r0, [r0] ldr r0, [r0, #0xc] bl sub_080197D4 ldr r2, _0807C170 @ =gUnk_02025EB0 ldrh r1, [r2, #4] ldr r0, _0807C174 @ =0x0000FFFF cmp r1, r0 beq _0807C178 adds r0, r2, #4 ldrh r1, [r7, #0x1e] lsrs r1, r1, #4 ldrh r2, [r7, #0x20] lsrs r2, r2, #4 bl sub_0807C8B0 ldrh r1, [r7, #0x1e] lsrs r1, r1, #4 ldrh r2, [r7, #0x20] lsrs r2, r2, #4 adds r0, r5, #0 bl sub_0807C8B0 movs r2, #0 mov sb, r2 b _0807C184 .align 2, 0 _0807C158: .4byte gUnk_03000BF0 _0807C15C: .4byte gUnk_0200B654 _0807C160: .4byte gUnk_02019EE0 _0807C164: .4byte gUnk_02002F00 _0807C168: .4byte gUnk_02033A90 _0807C16C: .4byte 0x0000085C _0807C170: .4byte gUnk_02025EB0 _0807C174: .4byte 0x0000FFFF _0807C178: adds r0, r2, #4 adds r1, r6, #0 bl sub_0801D630 movs r3, #1 mov sb, r3 _0807C184: ldr r0, _0807C1B0 @ =gUnk_030010A0 adds r0, #0x2d ldrb r0, [r0] cmp r0, #0 bne _0807C1BC ldr r0, _0807C1B4 @ =gUnk_02025EB4 movs r2, #0xc0 lsls r2, r2, #6 adds r1, r0, r2 movs r4, #0x80 lsls r4, r4, #6 adds r2, r4, #0 bl sub_0801D66C ldr r0, _0807C1B8 @ =gUnk_0200B654 movs r3, #0xc0 lsls r3, r3, #6 adds r1, r0, r3 adds r2, r4, #0 bl sub_0801D66C b _0807C26C .align 2, 0 _0807C1B0: .4byte gUnk_030010A0 _0807C1B4: .4byte gUnk_02025EB4 _0807C1B8: .4byte gUnk_0200B654 _0807C1BC: cmp r0, #2 bne _0807C26C ldr r4, _0807C278 @ =gUnk_02025EB4 movs r0, #0xb0 lsls r0, r0, #8 adds r0, r0, r4 mov r8, r0 movs r5, #0x80 lsls r5, r5, #5 adds r0, r4, #0 mov r1, r8 adds r2, r5, #0 bl sub_0801D66C movs r1, #0xc0 lsls r1, r1, #6 adds r6, r4, r1 adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_0801D66C mov r0, r8 adds r1, r6, #0 adds r2, r5, #0 bl sub_0801D66C adds r6, r4, r5 adds r0, r6, #0 mov r1, r8 adds r2, r5, #0 bl sub_0801D66C movs r2, #0x80 lsls r2, r2, #7 adds r4, r4, r2 adds r0, r4, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_0801D66C mov r0, r8 adds r1, r4, #0 adds r2, r5, #0 bl sub_0801D66C ldr r4, _0807C27C @ =gUnk_0200B654 movs r3, #0xb0 lsls r3, r3, #8 adds r3, r3, r4 mov r8, r3 adds r0, r4, #0 mov r1, r8 adds r2, r5, #0 bl sub_0801D66C movs r0, #0xc0 lsls r0, r0, #6 adds r6, r4, r0 adds r0, r6, #0 adds r1, r4, #0 adds r2, r5, #0 bl sub_0801D66C mov r0, r8 adds r1, r6, #0 adds r2, r5, #0 bl sub_0801D66C adds r6, r4, r5 adds r0, r6, #0 mov r1, r8 adds r2, r5, #0 bl sub_0801D66C movs r1, #0x80 lsls r1, r1, #7 adds r4, r4, r1 adds r0, r4, #0 adds r1, r6, #0 adds r2, r5, #0 bl sub_0801D66C mov r0, r8 adds r1, r4, #0 adds r2, r5, #0 bl sub_0801D66C _0807C26C: mov r2, sb cmp r2, #0 bne _0807C280 bl sub_0807BBE4 b _0807C2A0 .align 2, 0 _0807C278: .4byte gUnk_02025EB4 _0807C27C: .4byte gUnk_0200B654 _0807C280: ldr r0, _0807C2CC @ =gUnk_02027EB4 ldrh r1, [r7, #0x1e] lsrs r1, r1, #4 ldrh r2, [r7, #0x20] lsrs r2, r2, #4 bl sub_0807C69C ldr r0, _0807C2D0 @ =gUnk_0200D654 ldrh r1, [r7, #0x1e] lsrs r1, r1, #4 ldrh r2, [r7, #0x20] lsrs r2, r2, #4 bl sub_0807C69C bl sub_0807C460 _0807C2A0: bl sub_0807BC84 ldr r4, _0807C2D4 @ =gUnk_02025EB0 adds r0, r4, #0 bl sub_08080B60 ldr r5, _0807C2D8 @ =gUnk_0200B650 adds r0, r5, #0 bl sub_08080B60 mov r3, sb cmp r3, #0 bne _0807C2E4 ldr r0, _0807C2DC @ =gUnk_02019EE0 adds r1, r4, #0 bl sub_0801AB08 ldr r0, _0807C2E0 @ =gUnk_02002F00 adds r1, r5, #0 bl sub_0801AB08 b _0807C326 .align 2, 0 _0807C2CC: .4byte gUnk_02027EB4 _0807C2D0: .4byte gUnk_0200D654 _0807C2D4: .4byte gUnk_02025EB0 _0807C2D8: .4byte gUnk_0200B650 _0807C2DC: .4byte gUnk_02019EE0 _0807C2E0: .4byte gUnk_02002F00 _0807C2E4: ldr r4, _0807C34C @ =gUnk_02019EE0 movs r0, #0x80 lsls r0, r0, #7 adds r5, r4, r0 adds r6, r0, #0 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0801D66C adds r0, r4, #0 adds r1, r5, #0 bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 bl sub_0801D630 ldr r4, _0807C350 @ =gUnk_02002F00 adds r5, r4, r6 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0801D66C adds r0, r4, #0 adds r1, r5, #0 bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 bl sub_0801D630 _0807C326: mov r1, sb cmp r1, #0 bne _0807C332 ldrb r0, [r7, #4] cmp r0, #0x71 bne _0807C33A _0807C332: ldrb r1, [r7, #0xf] movs r0, #1 orrs r0, r1 strb r0, [r7, #0xf] _0807C33A: ldrb r0, [r7, #4] subs r0, #0x20 cmp r0, #0x18 bhi _0807C400 lsls r0, r0, #2 ldr r1, _0807C354 @ =_0807C358 adds r0, r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0807C34C: .4byte gUnk_02019EE0 _0807C350: .4byte gUnk_02002F00 _0807C354: .4byte _0807C358 _0807C358: @ jump table .4byte _0807C3BC @ case 0 .4byte _0807C3E4 @ case 1 .4byte _0807C3E4 @ case 2 .4byte _0807C3E4 @ case 3 .4byte _0807C3E4 @ case 4 .4byte _0807C3E4 @ case 5 .4byte _0807C400 @ case 6 .4byte _0807C3E4 @ case 7 .4byte _0807C3E4 @ case 8 .4byte _0807C400 @ case 9 .4byte _0807C400 @ case 10 .4byte _0807C400 @ case 11 .4byte _0807C400 @ case 12 .4byte _0807C3BC @ case 13 .4byte _0807C400 @ case 14 .4byte _0807C400 @ case 15 .4byte _0807C3E4 @ case 16 .4byte _0807C400 @ case 17 .4byte _0807C400 @ case 18 .4byte _0807C400 @ case 19 .4byte _0807C400 @ case 20 .4byte _0807C400 @ case 21 .4byte _0807C400 @ case 22 .4byte _0807C400 @ case 23 .4byte _0807C3E4 @ case 24 _0807C3BC: ldr r0, _0807C3D8 @ =gUnk_02025EB0 ldr r2, [r0] cmp r2, #0 beq _0807C3CC ldrh r1, [r2] movs r0, #0x80 orrs r0, r1 strh r0, [r2] _0807C3CC: ldr r2, _0807C3DC @ =gUnk_03000F50 ldrh r1, [r2] ldr r0, _0807C3E0 @ =0x0000FDFF ands r0, r1 strh r0, [r2] b _0807C444 .align 2, 0 _0807C3D8: .4byte gUnk_02025EB0 _0807C3DC: .4byte gUnk_03000F50 _0807C3E0: .4byte 0x0000FDFF _0807C3E4: ldr r0, _0807C3F8 @ =gUnk_0200B650 ldr r1, [r0] cmp r1, #0 beq _0807C3F2 ldr r0, _0807C3FC @ =gUnk_080B77C0 ldrh r0, [r0, #4] strh r0, [r1] _0807C3F2: bl sub_0807C5B0 b _0807C444 .align 2, 0 _0807C3F8: .4byte gUnk_0200B650 _0807C3FC: .4byte gUnk_080B77C0 _0807C400: ldr r0, _0807C44C @ =gUnk_02025EB0 ldr r1, [r0] cmp r1, #0 beq _0807C40E ldr r0, _0807C450 @ =gUnk_080B77C0 ldrh r0, [r0] strh r0, [r1] _0807C40E: ldr r0, _0807C454 @ =gUnk_0200B650 ldr r1, [r0] cmp r1, #0 beq _0807C41C ldr r0, _0807C450 @ =gUnk_080B77C0 ldrh r0, [r0, #2] strh r0, [r1] _0807C41C: ldr r2, _0807C458 @ =gUnk_03000F50 ldrh r0, [r2] movs r1, #0x80 lsls r1, r1, #4 ands r1, r0 movs r3, #0xba lsls r3, r3, #5 adds r0, r3, #0 movs r3, #0 orrs r1, r0 strh r1, [r2] ldr r0, _0807C45C @ =gUnk_02033A90 ldrb r0, [r0, #0xc] cmp r0, #0 beq _0807C444 movs r3, #0xa0 lsls r3, r3, #8 adds r0, r3, #0 orrs r1, r0 strh r1, [r2] _0807C444: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807C44C: .4byte gUnk_02025EB0 _0807C450: .4byte gUnk_080B77C0 _0807C454: .4byte gUnk_0200B650 _0807C458: .4byte gUnk_03000F50 _0807C45C: .4byte gUnk_02033A90 thumb_func_start sub_0807C460 sub_0807C460: @ 0x0807C460 push {r4, r5, r6, r7, lr} mov r7, sl mov r6, sb mov r5, r8 push {r5, r6, r7} sub sp, #8 ldr r7, _0807C4E8 @ =gUnk_02025EB4 ldr r6, _0807C4EC @ =gUnk_0200B654 ldr r0, _0807C4F0 @ =gUnk_03000BF0 ldrh r1, [r0, #0x1e] lsrs r3, r1, #4 ldrh r0, [r0, #0x20] lsrs r0, r0, #4 str r0, [sp] movs r4, #0 movs r1, #0 cmp r1, r0 bhs _0807C4DC movs r0, #0x40 subs r0, r0, r3 lsls r0, r0, #1 mov sb, r0 _0807C48C: movs r5, #0 adds r1, #1 mov sl, r1 cmp r5, r3 bhs _0807C4CA ldr r0, _0807C4F4 @ =0x00003FFF mov r8, r0 _0807C49A: ldrh r0, [r7] cmp r0, r8 bls _0807C4AC adds r1, r4, #0 movs r2, #1 str r3, [sp, #4] bl sub_0800015E ldr r3, [sp, #4] _0807C4AC: ldrh r0, [r6] cmp r0, r8 bls _0807C4BE adds r1, r4, #0 movs r2, #2 str r3, [sp, #4] bl sub_0800015E ldr r3, [sp, #4] _0807C4BE: adds r7, #2 adds r6, #2 adds r4, #1 adds r5, #1 cmp r5, r3 blo _0807C49A _0807C4CA: add r7, sb add r6, sb adds r0, r4, #0 adds r0, #0x40 subs r4, r0, r3 mov r1, sl ldr r0, [sp] cmp r1, r0 blo _0807C48C _0807C4DC: add sp, #8 pop {r3, r4, r5} mov r8, r3 mov sb, r4 mov sl, r5 pop {r4, r5, r6, r7, pc} .align 2, 0 _0807C4E8: .4byte gUnk_02025EB4 _0807C4EC: .4byte gUnk_0200B654 _0807C4F0: .4byte gUnk_03000BF0 _0807C4F4: .4byte 0x00003FFF thumb_func_start sub_0807C4F8 sub_0807C4F8: @ 0x0807C4F8 push {r4, r5, r6, lr} ldr r0, _0807C594 @ =gUnk_03000BF0 ldrb r0, [r0, #4] cmp r0, #0x71 beq _0807C592 ldr r0, _0807C598 @ =gUnk_02019EE0 movs r4, #0x80 lsls r4, r4, #8 adds r1, r4, #0 bl sub_0801D630 ldr r0, _0807C59C @ =gUnk_02002F00 adds r1, r4, #0 bl sub_0801D630 ldr r5, _0807C5A0 @ =gUnk_02022830 ldr r0, _0807C5A4 @ =gUnk_02033A90 ldr r1, _0807C5A8 @ =0x0000085C adds r0, r0, r1 ldr r0, [r0] ldr r4, [r0, #0xc] subs r4, #0xc _0807C524: adds r4, #0xc ldr r1, [r4, #4] ldr r0, _0807C598 @ =gUnk_02019EE0 cmp r1, r0 beq _0807C534 ldr r0, _0807C59C @ =gUnk_02002F00 cmp r1, r0 bne _0807C54A _0807C534: ldr r0, [r4] ldr r1, _0807C5AC @ =0x7FFFFFFF ands r0, r1 str r0, [r5] ldr r0, [r4, #4] str r0, [r5, #4] ldr r0, [r4, #8] str r0, [r5, #8] adds r0, r5, #0 bl sub_080197D4 _0807C54A: ldr r0, [r4] cmp r0, #0 blt _0807C524 ldr r4, _0807C598 @ =gUnk_02019EE0 movs r0, #0x80 lsls r0, r0, #7 adds r5, r4, r0 adds r6, r0, #0 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0801D66C adds r0, r4, #0 adds r1, r5, #0 bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 bl sub_0801D630 ldr r4, _0807C59C @ =gUnk_02002F00 adds r5, r4, r6 adds r0, r4, #0 adds r1, r5, #0 adds r2, r6, #0 bl sub_0801D66C adds r0, r4, #0 adds r1, r5, #0 bl sub_0807C5F4 adds r0, r5, #0 adds r1, r6, #0 bl sub_0801D630 _0807C592: pop {r4, r5, r6, pc} .align 2, 0 _0807C594: .4byte gUnk_03000BF0 _0807C598: .4byte gUnk_02019EE0 _0807C59C: .4byte gUnk_02002F00 _0807C5A0: .4byte gUnk_02022830 _0807C5A4: .4byte gUnk_02033A90 _0807C5A8: .4byte 0x0000085C _0807C5AC: .4byte 0x7FFFFFFF thumb_func_start sub_0807C5B0 sub_0807C5B0: @ 0x0807C5B0 push {r4, r5, r6, lr} ldr r5, _0807C5E8 @ =gUnk_0200D654 movs r4, #0x80 lsls r4, r4, #5 movs r3, #0 ldr r6, _0807C5EC @ =gUnk_03000BF0 ldr r2, _0807C5F0 @ =gUnk_02027EB4 _0807C5BE: adds r0, r5, r3 ldrb r0, [r0] cmp r0, #0 beq _0807C5D4 cmp r0, #0xf bhi _0807C5D2 ldrb r1, [r2] cmp r1, #0xf bhi _0807C5D4 orrs r0, r1 _0807C5D2: strb r0, [r2] _0807C5D4: adds r2, #1 adds r3, #1 cmp r3, r4 blo _0807C5BE ldrb r1, [r6, #0xf] movs r0, #2 orrs r0, r1 strb r0, [r6, #0xf] pop {r4, r5, r6, pc} .align 2, 0 _0807C5E8: .4byte gUnk_0200D654 _0807C5EC: .4byte gUnk_03000BF0 _0807C5F0: .4byte gUnk_02027EB4 thumb_func_start sub_0807C5F4 sub_0807C5F4: @ 0x0807C5F4 push {r4, r5, r6, lr} adds r5, r0, #0 adds r2, r5, #0 movs r0, #0x20 ldr r6, _0807C698 @ =gUnk_03000BF0 _0807C5FE: movs r3, #0 subs r4, r0, #1 _0807C602: ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 adds r3, #1 cmp r3, #0x1f bls _0807C602 adds r2, #0xc0 adds r0, r4, #0 cmp r0, #0 bne _0807C5FE ldrh r0, [r6, #0x1e] cmp r0, #0xff bls _0807C63E adds r2, r5, #0 adds r2, #0x40 movs r0, #0x20 _0807C624: movs r3, #0 subs r4, r0, #1 _0807C628: ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 adds r3, #1 cmp r3, #0x1f bls _0807C628 adds r2, #0xc0 adds r0, r4, #0 cmp r0, #0 bne _0807C624 _0807C63E: ldrh r0, [r6, #0x20] cmp r0, #0xff bls _0807C666 movs r0, #0x80 lsls r0, r0, #6 adds r2, r5, r0 movs r0, #0x20 _0807C64C: movs r3, #0 subs r4, r0, #1 _0807C650: ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 adds r3, #1 cmp r3, #0x1f bls _0807C650 adds r2, #0xc0 adds r0, r4, #0 cmp r0, #0 bne _0807C64C _0807C666: ldrh r0, [r6, #0x1e] cmp r0, #0xff bls _0807C694 ldrh r0, [r6, #0x20] cmp r0, #0xff bls _0807C694 movs r0, #0x81 lsls r0, r0, #6 adds r2, r5, r0 movs r0, #0x20 _0807C67A: movs r3, #0 subs r4, r0, #1 _0807C67E: ldrh r0, [r1] strh r0, [r2] adds r1, #2 adds r2, #2 adds r3, #1 cmp r3, #0x1f bls _0807C67E adds r2, #0xc0 adds r0, r4, #0 cmp r0, #0 bne _0807C67A _0807C694: pop {r4, r5, r6, pc} .align 2, 0 _0807C698: .4byte gUnk_03000BF0 thumb_func_start sub_0807C69C sub_0807C69C: @ 0x0807C69C push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov sb, r0 adds r6, r1, #0 mov r8, r2 mov r0, r8 muls r0, r6, r0 add r0, sb subs r2, r0, #1 mov r0, r8 subs r0, #1 lsls r0, r0, #6 add r0, sb subs r1, r6, #1 adds r4, r0, r1 movs r5, #0 cmp r5, r8 bhs _0807C6EA _0807C6C4: movs r3, #0 adds r7, r4, #0 subs r7, #0x40 subs r0, r2, r6 mov ip, r0 cmp r3, r6 bhs _0807C6E0 _0807C6D2: subs r0, r4, r3 subs r1, r2, r3 ldrb r1, [r1] strb r1, [r0] adds r3, #1 cmp r3, r6 blo _0807C6D2 _0807C6E0: adds r4, r7, #0 mov r2, ip adds r5, #1 cmp r5, r8 blo _0807C6C4 _0807C6EA: movs r0, #0x40 subs r7, r0, r6 movs r5, #0 mov r1, r8 lsls r2, r1, #6 mov r0, sb adds r1, r0, r6 _0807C6F8: lsls r0, r5, #6 adds r4, r1, r0 movs r3, #0 adds r6, r5, #1 cmp r3, r7 bhs _0807C710 movs r5, #0 _0807C706: adds r0, r4, r3 strb r5, [r0] adds r3, #1 cmp r3, r7 blo _0807C706 _0807C710: adds r5, r6, #0 cmp r5, #0x3f bls _0807C6F8 movs r0, #0x40 mov r1, r8 subs r7, r0, r1 mov r0, sb adds r4, r0, r2 movs r5, #0 cmp r5, r7 bhs _0807C736 _0807C726: adds r0, r4, #0 movs r1, #0x40 bl sub_0801D630 adds r4, #0x40 adds r5, #1 cmp r5, r7 blo _0807C726 _0807C736: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807C740 sub_0807C740: @ 0x0807C740 push {r4, r5, lr} bl sub_0807BFD0 bl sub_0807C0DC ldr r4, _0807C780 @ =gUnk_03000BF0 ldr r2, [r4, #0x30] cmp r2, #0 beq _0807C788 ldrh r1, [r2, #0x2e] lsls r0, r1, #0x10 cmp r0, #0 bge _0807C764 ldr r0, _0807C784 @ =0x00007FFF ands r0, r1 ldrh r1, [r4, #6] subs r0, r0, r1 strh r0, [r2, #0x2e] _0807C764: movs r0, #0x2e ldrsh r3, [r2, r0] ldrh r1, [r2, #0x32] lsls r0, r1, #0x10 cmp r0, #0 bge _0807C77A ldr r0, _0807C784 @ =0x00007FFF ands r0, r1 ldrh r1, [r4, #8] subs r0, r0, r1 strh r0, [r2, #0x32] _0807C77A: movs r0, #0x32 ldrsh r5, [r2, r0] b _0807C78C .align 2, 0 _0807C780: .4byte gUnk_03000BF0 _0807C784: .4byte 0x00007FFF _0807C788: movs r3, #0 movs r5, #0 _0807C78C: cmp r3, #0x77 bgt _0807C794 movs r0, #0 b _0807C7A2 _0807C794: ldrh r1, [r4, #0x1e] adds r0, r1, #0 subs r0, #0x78 cmp r0, r3 blt _0807C7A0 adds r0, r3, #0 _0807C7A0: subs r0, #0x78 _0807C7A2: strh r0, [r4, #0xa] ldrh r1, [r4, #6] ldrh r2, [r4, #0xa] adds r0, r1, r2 strh r0, [r4, #0xa] cmp r5, #0x4f bgt _0807C7B4 movs r0, #0 b _0807C7C2 _0807C7B4: ldrh r2, [r4, #0x20] adds r0, r2, #0 subs r0, #0x50 cmp r0, r5 blt _0807C7C0 adds r0, r5, #0 _0807C7C0: subs r0, #0x50 _0807C7C2: strh r0, [r4, #0xc] ldrh r0, [r4, #8] ldrh r3, [r4, #0xc] adds r0, r0, r3 strh r0, [r4, #0xc] ldr r2, [r4, #0x30] cmp r2, #0 beq _0807C7FC ldrh r3, [r2, #0x2e] adds r0, r1, r3 strh r0, [r2, #0x2e] ldr r1, [r4, #0x30] ldrh r0, [r4, #8] ldrh r2, [r1, #0x32] adds r0, r0, r2 strh r0, [r1, #0x32] ldr r0, _0807C80C @ =gUnk_03000BF0 ldrb r1, [r0, #0xf] movs r0, #2 ands r0, r1 cmp r0, #0 beq _0807C7FC ldr r0, [r4, #0x30] adds r0, #0x38 movs r1, #1 strb r1, [r0] ldr r0, [r4, #0x30] bl sub_08016A04 _0807C7FC: ldrb r1, [r4, #0xf] movs r0, #0xfb ands r0, r1 strb r0, [r4, #0xf] bl sub_08080BC4 pop {r4, r5, pc} .align 2, 0 _0807C80C: .4byte gUnk_03000BF0 thumb_func_start sub_0807C810 sub_0807C810: @ 0x0807C810 push {r4, r5, r6, lr} bl sub_0807BFD0 ldr r2, _0807C850 @ =gUnk_03004030 ldr r6, _0807C854 @ =gLinkEntity ldr r4, _0807C858 @ =gUnk_03000BF0 ldr r3, [r2] ldrh r1, [r3, #6] movs r0, #0x3f ands r0, r1 lsls r0, r0, #4 ldrh r1, [r4, #6] adds r0, r0, r1 ldrh r1, [r2, #4] adds r1, r1, r0 movs r5, #0 strh r1, [r6, #0x2e] ldrh r1, [r3, #6] movs r0, #0xfc lsls r0, r0, #4 ands r0, r1 lsrs r0, r0, #2 ldrh r4, [r4, #8] adds r0, r0, r4 ldrh r1, [r2, #6] adds r1, r1, r0 strh r1, [r6, #0x32] bl sub_080809D4 ldr r0, _0807C85C @ =gUnk_02000070 strb r5, [r0] pop {r4, r5, r6, pc} .align 2, 0 _0807C850: .4byte gUnk_03004030 _0807C854: .4byte gLinkEntity _0807C858: .4byte gUnk_03000BF0 _0807C85C: .4byte gUnk_02000070 thumb_func_start sub_0807C860 sub_0807C860: @ 0x0807C860 push {r4, lr} ldr r0, _0807C88C @ =gUnk_030010A0 adds r0, #0x2d movs r1, #1 strb r1, [r0] ldr r0, _0807C890 @ =gUnk_02025EB4 movs r2, #0xc0 lsls r2, r2, #6 adds r1, r0, r2 movs r4, #0x80 lsls r4, r4, #6 adds r2, r4, #0 bl sub_0801D66C ldr r0, _0807C894 @ =gUnk_0200B654 movs r2, #0xc0 lsls r2, r2, #6 adds r1, r0, r2 adds r2, r4, #0 bl sub_0801D66C pop {r4, pc} .align 2, 0 _0807C88C: .4byte gUnk_030010A0 _0807C890: .4byte gUnk_02025EB4 _0807C894: .4byte gUnk_0200B654 thumb_func_start sub_0807C898 sub_0807C898: @ 0x0807C898 push {r4, r5, lr} ldr r4, _0807C8AC @ =gUnk_030010A0 adds r4, #0x2d movs r5, #0 movs r0, #2 strb r0, [r4] bl sub_0807C0DC strb r5, [r4] pop {r4, r5, pc} .align 2, 0 _0807C8AC: .4byte gUnk_030010A0 thumb_func_start sub_0807C8B0 sub_0807C8B0: @ 0x0807C8B0 push {r4, r5, r6, r7, lr} mov r7, sb mov r6, r8 push {r6, r7} mov r8, r0 adds r4, r1, #0 mov ip, r2 mov r0, ip muls r0, r4, r0 lsls r0, r0, #1 add r0, r8 subs r7, r0, #2 mov r0, ip subs r0, #1 lsls r0, r0, #7 add r0, r8 lsls r3, r4, #1 subs r1, r3, #2 adds r0, r0, r1 movs r5, #0 cmp r5, ip bhs _0807C906 mov sb, r3 _0807C8DE: movs r2, #0 adds r6, r0, #0 subs r6, #0x80 cmp r2, r4 bhs _0807C8FA adds r1, r7, #0 adds r3, r0, #0 _0807C8EC: ldrh r0, [r1] strh r0, [r3] subs r1, #2 subs r3, #2 adds r2, #1 cmp r2, r4 blo _0807C8EC _0807C8FA: adds r0, r6, #0 mov r1, sb subs r7, r7, r1 adds r5, #1 cmp r5, ip blo _0807C8DE _0807C906: movs r0, #0x40 subs r6, r0, r4 movs r5, #0 lsls r0, r4, #1 mov r2, ip lsls r7, r2, #7 mov r2, r8 adds r1, r2, r0 _0807C916: lsls r0, r5, #7 adds r0, r1, r0 movs r2, #0 adds r3, r5, #1 cmp r2, r6 bhs _0807C92E movs r4, #0 _0807C924: strh r4, [r0] adds r0, #2 adds r2, #1 cmp r2, r6 blo _0807C924 _0807C92E: adds r5, r3, #0 cmp r5, #0x3f bls _0807C916 movs r0, #0x40 mov r1, ip subs r6, r0, r1 mov r2, r8 adds r0, r2, r7 movs r5, #0 cmp r5, r6 bhs _0807C956 adds r4, r0, #0 _0807C946: adds r0, r4, #0 movs r1, #0x80 bl sub_0801D630 adds r4, #0x80 adds r5, #1 cmp r5, r6 blo _0807C946 _0807C956: pop {r3, r4} mov r8, r3 mov sb, r4 pop {r4, r5, r6, r7, pc} .align 2, 0 thumb_func_start sub_0807C960 sub_0807C960: @ 0x0807C960 push {lr} adds r2, r0, #0 movs r0, #1 rsbs r0, r0, #0 cmp r1, r0 beq _0807C994 ldr r0, _0807C984 @ =0x7FFFFFFF ands r0, r1 ldr r1, _0807C988 @ =gUnk_08324AE4 adds r1, r0, r1 lsrs r0, r2, #0x18 cmp r0, #6 bne _0807C98C adds r0, r1, #0 adds r1, r2, #0 bl LZ77UnCompVram b _0807C994 .align 2, 0 _0807C984: .4byte 0x7FFFFFFF _0807C988: .4byte gUnk_08324AE4 _0807C98C: adds r0, r1, #0 adds r1, r2, #0 bl LZ77UnCompWram _0807C994: pop {pc} .align 2, 0 thumb_func_start sub_0807C998 sub_0807C998: @ 0x0807C998 push {r4, r5, lr} adds r5, r0, #0 ldr r4, _0807C9CC @ =gUnk_0202CEB4 ldr r1, [r5] adds r0, r4, #0 bl sub_0807C960 ldr r0, _0807C9D0 @ =0xFFFFE000 adds r4, r4, r0 ldr r1, [r5, #4] adds r0, r4, #0 bl sub_0807C960 ldr r4, _0807C9D4 @ =gUnk_02012654 ldr r1, [r5, #8] adds r0, r4, #0 bl sub_0807C960 ldr r0, _0807C9D0 @ =0xFFFFE000 adds r4, r4, r0 ldr r1, [r5, #0xc] adds r0, r4, #0 bl sub_0807C960 pop {r4, r5, pc} .align 2, 0 _0807C9CC: .4byte gUnk_0202CEB4 _0807C9D0: .4byte 0xFFFFE000 _0807C9D4: .4byte gUnk_02012654 thumb_func_start sub_0807C9D8 sub_0807C9D8: @ 0x0807C9D8 push {r4, r5, lr} adds r5, r0, #0 ldr r0, _0807CA0C @ =0x06004000 ldr r1, [r5] bl sub_0807C960 movs r0, #0xc0 lsls r0, r0, #0x13 ldr r1, [r5, #4] bl sub_0807C960 ldr r0, _0807CA10 @ =0x06008000 ldr r1, [r5, #8] bl sub_0807C960 ldr r4, _0807CA14 @ =gUnk_020176E0 ldr r1, [r5, #0xc] adds r0, r4, #0 bl sub_0807C960 adds r0, r4, #0 movs r1, #2 movs r2, #0xd bl sub_0801D754 pop {r4, r5, pc} .align 2, 0 _0807CA0C: .4byte 0x06004000 _0807CA10: .4byte 0x06008000 _0807CA14: .4byte gUnk_020176E0 thumb_func_start sub_0807CA18 sub_0807CA18: @ 0x0807CA18 push {lr} ldr r0, _0807CA7C @ =gUnk_02002A40 mov ip, r0 ldrh r1, [r0] movs r0, #0x80 lsls r0, r0, #1 cmp r1, r0 beq _0807CA66 movs r2, #0 mov r0, ip strb r2, [r0] movs r3, #1 strb r3, [r0, #1] strb r3, [r0, #8] mov r1, ip adds r1, #0xaa movs r0, #0x18 strb r0, [r1] adds r1, #1 strb r0, [r1] subs r1, #0x23 movs r0, #0x22 strb r0, [r1] adds r1, #1 movs r0, #0x15 strb r0, [r1] mov r0, ip adds r0, #0x8a strb r2, [r0] adds r0, #1 strb r2, [r0] adds r0, #5 strb r3, [r0] adds r1, #3 movs r0, #0x90 strh r0, [r1] adds r1, #2 movs r0, #0x38 strh r0, [r1] _0807CA66: mov r1, ip adds r1, #0x80 ldrb r0, [r1] cmp r0, #0 bne _0807CA78 ldr r0, _0807CA80 @ =gUnk_0811E470 movs r2, #5 bl sub_0801D66C _0807CA78: movs r0, #1 pop {pc} .align 2, 0 _0807CA7C: .4byte gUnk_02002A40 _0807CA80: .4byte gUnk_0811E470