.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start sub_812B520 sub_812B520: @ 812B520 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} adds r6, r0, 0 adds r5, r1, 0 movs r4, 0 movs r3, 0 ldr r0, _0812B598 @ =gUnknown_845C4B0 mov r9, r0 ldr r1, _0812B59C @ =gUnknown_203B0EC mov r8, r1 ldr r0, _0812B5A0 @ =gUnknown_845C4B6 mov r12, r0 ldr r7, _0812B5A4 @ =gUnknown_845B080 _0812B53E: mov r1, r9 adds r0, r3, r1 ldrb r2, [r0] mov r0, r8 ldrh r1, [r0] lsls r0, r1, 1 adds r0, r1 lsls r0, 1 adds r0, r2, r0 add r0, r12 ldrb r0, [r0] cmp r0, 0x1 bne _0812B56C lsls r1, r4, 3 adds r1, r5 lsls r0, r2, 2 adds r0, r7 ldr r0, [r0] str r0, [r1] str r2, [r1, 0x4] adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 _0812B56C: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x5 bls _0812B53E lsls r0, r4, 3 adds r0, r5 subs r0, 0x8 movs r1, 0x2 negs r1, r1 str r1, [r0, 0x4] movs r0, 0 strh r4, [r6, 0x4] strh r4, [r6, 0x6] strb r0, [r6, 0x8] pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812B598: .4byte gUnknown_845C4B0 _0812B59C: .4byte gUnknown_203B0EC _0812B5A0: .4byte gUnknown_845C4B6 _0812B5A4: .4byte gUnknown_845B080 thumb_func_end sub_812B520 thumb_func_start sub_812B5A8 sub_812B5A8: @ 812B5A8 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0 bl sub_813BDE8 movs r0, 0 bl sub_813BFC0 movs r0, 0x1 bl sub_813BE78 adds r0, r4, 0 adds r1, r5, 0 bl sub_812B4C4 adds r0, r4, 0 adds r1, r5, 0 bl sub_812B614 ldr r0, _0812B608 @ =gUnknown_841DFC9 bl sub_812BF74 ldrb r1, [r4, 0xC] ldrb r2, [r4, 0xD] adds r0, r4, 0 bl sub_813C64C ldr r1, _0812B60C @ =gUnknown_845B080 ldr r0, _0812B610 @ =gUnknown_3005E9C ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0 bl sub_813C4CC movs r0, 0x1 bl sub_813BDA4 movs r0, 0x1 bl sub_813BD5C pop {r4,r5} pop {r0} bx r0 .align 2, 0 _0812B608: .4byte gUnknown_841DFC9 _0812B60C: .4byte gUnknown_845B080 _0812B610: .4byte gUnknown_3005E9C thumb_func_end sub_812B5A8 thumb_func_start sub_812B614 sub_812B614: @ 812B614 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r8, r0 adds r5, r1, 0 movs r6, 0 ldr r3, _0812B664 @ =gUnknown_845B9E0 ldr r0, _0812B668 @ =gUnknown_203B0EC ldrh r1, [r0] lsls r0, r1, 2 ldr r2, _0812B66C @ =gUnknown_3005E9C adds r0, r1 ldrb r2, [r2, 0x1] adds r0, r2 lsls r0, 2 adds r0, r3 ldr r3, [r0] movs r7, 0 ldrb r0, [r3] cmp r0, 0xFF beq _0812B6D0 _0812B640: adds r4, r3, r7 ldrb r0, [r4] str r3, [sp] bl sub_812B780 lsls r0, 24 lsrs r0, 24 ldr r3, [sp] cmp r0, 0x1 bne _0812B6C2 ldr r0, _0812B66C @ =gUnknown_3005E9C ldrb r0, [r0, 0x1] cmp r0, 0 bne _0812B674 lsls r1, r6, 3 adds r1, r5 ldr r2, _0812B670 @ =gUnknown_845B0B0 b _0812B6AA .align 2, 0 _0812B664: .4byte gUnknown_845B9E0 _0812B668: .4byte gUnknown_203B0EC _0812B66C: .4byte gUnknown_3005E9C _0812B670: .4byte gUnknown_845B0B0 _0812B674: cmp r0, 0x1 bne _0812B684 lsls r1, r6, 3 adds r1, r5 ldr r2, _0812B680 @ =gUnknown_845B218 b _0812B6AA .align 2, 0 _0812B680: .4byte gUnknown_845B218 _0812B684: cmp r0, 0x2 bne _0812B694 lsls r1, r6, 3 adds r1, r5 ldr r2, _0812B690 @ =gUnknown_845B3A0 b _0812B6AA .align 2, 0 _0812B690: .4byte gUnknown_845B3A0 _0812B694: cmp r0, 0x3 bne _0812B6A4 lsls r1, r6, 3 adds r1, r5 ldr r2, _0812B6A0 @ =gUnknown_845B500 b _0812B6AA .align 2, 0 _0812B6A0: .4byte gUnknown_845B500 _0812B6A4: lsls r1, r6, 3 adds r1, r5 ldr r2, _0812B744 @ =gUnknown_845B540 _0812B6AA: ldrb r0, [r4] lsls r0, 2 adds r0, r2 ldr r0, [r0] str r0, [r1] lsls r0, r6, 3 adds r0, r5 ldrb r1, [r4] str r1, [r0, 0x4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 _0812B6C2: adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r3, r7 ldrb r0, [r0] cmp r0, 0xFF bne _0812B640 _0812B6D0: bl sub_812B754 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812B710 movs r7, 0 ldr r3, _0812B748 @ =gUnknown_845B9BE ldrb r0, [r3] cmp r0, 0xFF beq _0812B710 ldr r4, _0812B74C @ =gUnknown_845B3A0 _0812B6E8: lsls r1, r6, 3 adds r1, r5 adds r2, r3, r7 ldrb r0, [r2] lsls r0, 2 adds r0, r4 ldr r0, [r0] str r0, [r1] ldrb r0, [r2] str r0, [r1, 0x4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 adds r0, r7, 0x1 lsls r0, 24 lsrs r7, r0, 24 adds r0, r3, r7 ldrb r0, [r0] cmp r0, 0xFF bne _0812B6E8 _0812B710: lsls r0, r6, 3 adds r0, r5 ldr r1, _0812B750 @ =gUnknown_81B2E6F str r1, [r0] movs r1, 0x2 negs r1, r1 str r1, [r0, 0x4] adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 movs r1, 0 mov r0, r8 strh r6, [r0, 0x4] movs r0, 0x7 mov r2, r8 strh r0, [r2, 0x6] strb r1, [r2, 0x8] movs r0, 0x15 strb r0, [r2, 0x9] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _0812B744: .4byte gUnknown_845B540 _0812B748: .4byte gUnknown_845B9BE _0812B74C: .4byte gUnknown_845B3A0 _0812B750: .4byte gUnknown_81B2E6F thumb_func_end sub_812B614 thumb_func_start sub_812B754 sub_812B754: @ 812B754 push {lr} movs r0, 0x96 lsls r0, 3 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812B778 ldr r0, _0812B774 @ =gUnknown_3005E9C ldrb r0, [r0, 0x1] cmp r0, 0x2 bne _0812B778 movs r0, 0x1 b _0812B77A .align 2, 0 _0812B774: .4byte gUnknown_3005E9C _0812B778: movs r0, 0 _0812B77A: pop {r1} bx r1 thumb_func_end sub_812B754 thumb_func_start sub_812B780 sub_812B780: @ 812B780 push {r4,r5,lr} lsls r0, 24 lsrs r1, r0, 24 adds r5, r1, 0 movs r4, 0 ldr r0, _0812B7A8 @ =gUnknown_3005E9C ldrb r0, [r0, 0x1] cmp r0, 0 beq _0812B794 b _0812B8AC _0812B794: subs r0, r1, 0x1 cmp r0, 0x2B bls _0812B79C b _0812BB04 _0812B79C: lsls r0, 2 ldr r1, _0812B7AC @ =_0812B7B0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812B7A8: .4byte gUnknown_3005E9C _0812B7AC: .4byte _0812B7B0 .align 2, 0 _0812B7B0: .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812B860 .4byte _0812BB08 .4byte _0812B868 .4byte _0812B870 .4byte _0812BB08 .4byte _0812B880 .4byte _0812B868 .4byte _0812B878 .4byte _0812B890 .4byte _0812B880 .4byte _0812B880 .4byte _0812B880 .4byte _0812B868 .4byte _0812B880 .4byte _0812B880 .4byte _0812B868 .4byte _0812B880 .4byte _0812B888 .4byte _0812B868 .4byte _0812B888 .4byte _0812B878 .4byte _0812B890 .4byte _0812B880 .4byte _0812B890 .4byte _0812B896 .4byte _0812B880 .4byte _0812B890 .4byte _0812B880 .4byte _0812B890 .4byte _0812B890 .4byte _0812BB08 .4byte _0812B868 .4byte _0812B868 .4byte _0812B880 .4byte _0812BB08 .4byte _0812B89C .4byte _0812B896 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812B8A4 _0812B860: ldr r0, _0812B864 @ =0x000002cf b _0812BAF2 .align 2, 0 _0812B864: .4byte 0x000002cf _0812B868: ldr r0, _0812B86C @ =0x00000891 b _0812BAF2 .align 2, 0 _0812B86C: .4byte 0x00000891 _0812B870: ldr r0, _0812B874 @ =0x00000895 b _0812BAF2 .align 2, 0 _0812B874: .4byte 0x00000895 _0812B878: ldr r0, _0812B87C @ =0x000008a4 b _0812BAF2 .align 2, 0 _0812B87C: .4byte 0x000008a4 _0812B880: ldr r0, _0812B884 @ =0x00000828 b _0812BAF2 .align 2, 0 _0812B884: .4byte 0x00000828 _0812B888: ldr r0, _0812B88C @ =0x00000829 b _0812BAF2 .align 2, 0 _0812B88C: .4byte 0x00000829 _0812B890: movs r0, 0x82 lsls r0, 4 b _0812BAF2 _0812B896: bl sub_812BB10 b _0812BAF6 _0812B89C: ldr r0, _0812B8A0 @ =0x0000029b b _0812BAF2 .align 2, 0 _0812B8A0: .4byte 0x0000029b _0812B8A4: ldr r0, _0812B8A8 @ =0x00000892 b _0812BAF2 .align 2, 0 _0812B8A8: .4byte 0x00000892 _0812B8AC: cmp r0, 0x1 beq _0812B8B2 b _0812B9D8 _0812B8B2: subs r0, r1, 0x1 cmp r0, 0x2F bls _0812B8BA b _0812BB04 _0812B8BA: lsls r0, 2 ldr r1, _0812B8C4 @ =_0812B8C8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812B8C4: .4byte _0812B8C8 .align 2, 0 _0812B8C8: .4byte _0812B988 .4byte _0812B9A0 .4byte _0812B9A0 .4byte _0812B9A8 .4byte _0812B9A0 .4byte _0812BB08 .4byte _0812B9A0 .4byte _0812B9A0 .4byte _0812B9A0 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812B9A0 .4byte _0812B990 .4byte _0812B9BA .4byte _0812B9C0 .4byte _0812B9C0 .4byte _0812B9C6 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812B988 .4byte _0812BB08 .4byte _0812B9A0 .4byte _0812B9A0 .4byte _0812B9A8 .4byte _0812B9A0 .4byte _0812BB08 .4byte _0812B988 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812B9A0 .4byte _0812B9A0 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812B9D0 _0812B988: ldr r0, _0812B98C @ =0x00000829 b _0812BAF2 .align 2, 0 _0812B98C: .4byte 0x00000829 _0812B990: ldr r0, _0812B99C @ =0x00000169 movs r1, 0x1 bl CheckBagHasItem b _0812BAF6 .align 2, 0 _0812B99C: .4byte 0x00000169 _0812B9A0: ldr r0, _0812B9A4 @ =0x00000828 b _0812BAF2 .align 2, 0 _0812B9A4: .4byte 0x00000828 _0812B9A8: movs r0, 0x1 bl sub_8088EDC lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bls _0812B9B8 b _0812BB08 _0812B9B8: b _0812BB04 _0812B9BA: movs r0, 0x82 lsls r0, 4 b _0812BAF2 _0812B9C0: bl sub_812BB10 b _0812BAF6 _0812B9C6: ldr r0, _0812B9CC @ =0x00000271 b _0812BAF2 .align 2, 0 _0812B9CC: .4byte 0x00000271 _0812B9D0: ldr r0, _0812B9D4 @ =0x0000082c b _0812BAF2 .align 2, 0 _0812B9D4: .4byte 0x0000082c _0812B9D8: cmp r0, 0x2 beq _0812B9DE b _0812BADC _0812B9DE: bl sub_812B754 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _0812BA0E ldr r0, _0812BA20 @ =gUnknown_845B9BE ldrb r1, [r0] adds r2, r0, 0 cmp r1, 0xFF beq _0812BA0E adds r1, r2, 0 _0812B9F6: adds r0, r4, r1 ldrb r0, [r0] cmp r0, r5 bne _0812BA00 b _0812BB04 _0812BA00: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, r2 ldrb r0, [r0] cmp r0, 0xFF bne _0812B9F6 _0812BA0E: subs r0, r5, 0x1 cmp r0, 0x26 bls _0812BA16 b _0812BB08 _0812BA16: lsls r0, 2 ldr r1, _0812BA24 @ =_0812BA28 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812BA20: .4byte gUnknown_845B9BE _0812BA24: .4byte _0812BA28 .align 2, 0 _0812BA28: .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAD2 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BB08 .4byte _0812BAD2 .4byte _0812BAC4 .4byte _0812BB08 .4byte _0812BAD2 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BAC4 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BB08 .4byte _0812BACC .4byte _0812BACC .4byte _0812BB08 .4byte _0812BAD2 _0812BAC4: ldr r0, _0812BAC8 @ =0x00000828 b _0812BAF2 .align 2, 0 _0812BAC8: .4byte 0x00000828 _0812BACC: bl sub_812BB10 b _0812BAF6 _0812BAD2: ldr r0, _0812BAD8 @ =0x000008a4 b _0812BAF2 .align 2, 0 _0812BAD8: .4byte 0x000008a4 _0812BADC: cmp r0, 0x3 bne _0812BB00 cmp r5, 0x5 beq _0812BAEA cmp r5, 0x6 beq _0812BAF0 b _0812BB08 _0812BAEA: movs r0, 0x82 lsls r0, 4 b _0812BAF2 _0812BAF0: ldr r0, _0812BAFC @ =0x00000821 _0812BAF2: bl FlagGet _0812BAF6: lsls r0, 24 lsrs r0, 24 b _0812BB0A .align 2, 0 _0812BAFC: .4byte 0x00000821 _0812BB00: cmp r0, 0x4 beq _0812BB08 _0812BB04: movs r0, 0 b _0812BB0A _0812BB08: movs r0, 0x1 _0812BB0A: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_812B780 thumb_func_start sub_812BB10 sub_812BB10: @ 812BB10 push {lr} ldr r0, _0812BB7C @ =0x00000237 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0812BB94 movs r0, 0x8E lsls r0, 2 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0812BB94 ldr r0, _0812BB80 @ =0x00000239 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0812BB94 ldr r0, _0812BB84 @ =0x0000023a bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0812BB94 ldr r0, _0812BB88 @ =0x0000023b bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0812BB94 ldr r0, _0812BB8C @ =0x000002ef bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0812BB94 ldr r0, _0812BB90 @ =0x000001f1 bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _0812BB94 movs r0, 0 b _0812BB96 .align 2, 0 _0812BB7C: .4byte 0x00000237 _0812BB80: .4byte 0x00000239 _0812BB84: .4byte 0x0000023a _0812BB88: .4byte 0x0000023b _0812BB8C: .4byte 0x000002ef _0812BB90: .4byte 0x000001f1 _0812BB94: movs r0, 0x1 _0812BB96: pop {r1} bx r1 thumb_func_end sub_812BB10 thumb_func_start sub_812BB9C sub_812BB9C: @ 812BB9C push {lr} adds r2, r0, 0 adds r3, r1, 0 ldrb r0, [r2, 0xE] cmp r0, 0xA bhi _0812BC4C lsls r0, 2 ldr r1, _0812BBB4 @ =_0812BBB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812BBB4: .4byte _0812BBB8 .align 2, 0 _0812BBB8: .4byte _0812BC02 .4byte _0812BC0C .4byte _0812BC16 .4byte _0812BC20 .4byte _0812BC2A .4byte _0812BC34 .4byte _0812BC3E .4byte _0812BC4C .4byte _0812BBE4 .4byte _0812BBEE .4byte _0812BBF8 _0812BBE4: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BC54 b _0812BC46 _0812BBEE: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BC80 b _0812BC46 _0812BBF8: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BCA8 b _0812BC46 _0812BC02: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BCD0 b _0812BC46 _0812BC0C: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BD2C b _0812BC46 _0812BC16: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BD64 b _0812BC46 _0812BC20: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BD98 b _0812BC46 _0812BC2A: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BE10 b _0812BC46 _0812BC34: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BEEC b _0812BC46 _0812BC3E: adds r0, r2, 0 adds r1, r3, 0 bl sub_812BF18 _0812BC46: lsls r0, 24 lsrs r0, 24 b _0812BC4E _0812BC4C: movs r0, 0 _0812BC4E: pop {r1} bx r1 thumb_func_end sub_812BB9C thumb_func_start sub_812BC54 sub_812BC54: @ 812BC54 push {r4,lr} adds r4, r0, 0 ldr r0, _0812BC7C @ =gUnknown_841DFA5 bl sub_812BF74 bl sub_812BF5C movs r0, 0x1 bl sub_813BDA4 movs r0, 0x1 bl sub_813BD5C movs r0, 0x9 strb r0, [r4, 0xE] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0812BC7C: .4byte gUnknown_841DFA5 thumb_func_end sub_812BC54 thumb_func_start sub_812BC80 sub_812BC80: @ 812BC80 push {r4,lr} adds r4, r0, 0 ldr r0, _0812BCA4 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812BC9A movs r0, 0x5 bl PlaySE movs r0, 0xA strb r0, [r4, 0xE] _0812BC9A: movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0812BCA4: .4byte gMain thumb_func_end sub_812BC80 thumb_func_start sub_812BCA8 sub_812BCA8: @ 812BCA8 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 ldr r0, _0812BCCC @ =gUnknown_3005E9C movs r5, 0 strb r5, [r0, 0x2] adds r0, r4, 0 bl sub_812BF94 adds r0, r4, 0 adds r1, r6, 0 bl sub_812B4D8 strb r5, [r4, 0xE] movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0812BCCC: .4byte gUnknown_3005E9C thumb_func_end sub_812BCA8 thumb_func_start sub_812BCD0 sub_812BCD0: @ 812BCD0 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 bl sub_813C690 adds r1, r0, 0 adds r0, r1, 0x6 cmp r0, 0x5 bhi _0812BD16 lsls r0, 2 ldr r1, _0812BCEC @ =_0812BCF0 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812BCEC: .4byte _0812BCF0 .align 2, 0 _0812BCF0: .4byte _0812BD08 .4byte _0812BD0C .4byte _0812BD0C .4byte _0812BD1E .4byte _0812BD08 .4byte _0812BD1E _0812BD08: movs r0, 0 b _0812BD20 _0812BD0C: adds r0, r4, 0 adds r1, r5, 0 bl sub_812BF9C b _0812BD1E _0812BD16: ldr r0, _0812BD28 @ =gUnknown_3005E9C strb r1, [r0, 0x1] movs r0, 0x1 strb r0, [r4, 0xE] _0812BD1E: movs r0, 0x1 _0812BD20: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0812BD28: .4byte gUnknown_3005E9C thumb_func_end sub_812BCD0 thumb_func_start sub_812BD2C sub_812BD2C: @ 812BD2C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 ldr r1, _0812BD60 @ =gUnknown_3005E9C movs r0, 0x1 strb r0, [r1] ldrb r0, [r4, 0xD] strb r0, [r1, 0x2] adds r0, r4, 0 bl sub_812BF94 adds r0, r4, 0 adds r1, r5, 0 bl sub_812B5A8 bl sub_813C75C movs r0, 0x2 bl sub_813C684 movs r0, 0x3 strb r0, [r4, 0xE] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0812BD60: .4byte gUnknown_3005E9C thumb_func_end sub_812BD2C thumb_func_start sub_812BD64 sub_812BD64: @ 812BD64 push {r4-r6,lr} adds r5, r0, 0 adds r6, r1, 0 movs r0, 0 movs r1, 0 bl sub_813C004 movs r0, 0x1 movs r1, 0 bl sub_813C004 ldr r0, _0812BD94 @ =gUnknown_3005E9C movs r4, 0 strb r4, [r0] adds r0, r5, 0 adds r1, r6, 0 bl sub_812B4D8 strb r4, [r5, 0xE] movs r0, 0x1 pop {r4-r6} pop {r1} bx r1 .align 2, 0 _0812BD94: .4byte gUnknown_3005E9C thumb_func_end sub_812BD64 thumb_func_start sub_812BD98 sub_812BD98: @ 812BD98 push {r4,lr} adds r4, r0, 0 bl sub_813C690 adds r1, r0, 0 adds r0, r1, 0x6 cmp r0, 0x5 bhi _0812BDD8 lsls r0, 2 ldr r1, _0812BDB4 @ =_0812BDB8 adds r0, r1 ldr r0, [r0] mov pc, r0 .align 2, 0 _0812BDB4: .4byte _0812BDB8 .align 2, 0 _0812BDB8: .4byte _0812BDD0 .4byte _0812BDE0 .4byte _0812BDE0 .4byte _0812BDE0 .4byte _0812BDD4 .4byte _0812BDE0 _0812BDD0: movs r0, 0 b _0812BDE2 _0812BDD4: movs r0, 0x2 b _0812BDDE _0812BDD8: ldr r0, _0812BDE8 @ =gUnknown_3005E9C strb r1, [r0, 0x3] movs r0, 0x4 _0812BDDE: strb r0, [r4, 0xE] _0812BDE0: movs r0, 0x1 _0812BDE2: pop {r4} pop {r1} bx r1 .align 2, 0 _0812BDE8: .4byte gUnknown_3005E9C thumb_func_end sub_812BD98 thumb_func_start sub_812BDEC sub_812BDEC: @ 812BDEC push {lr} ldr r1, _0812BE08 @ =gUnknown_845B080 ldr r0, _0812BE0C @ =gUnknown_3005E9C ldrb r0, [r0, 0x1] lsls r0, 2 adds r0, r1 ldr r0, [r0] movs r1, 0 movs r2, 0 bl sub_813C4CC pop {r0} bx r0 .align 2, 0 _0812BE08: .4byte gUnknown_845B080 _0812BE0C: .4byte gUnknown_3005E9C thumb_func_end sub_812BDEC thumb_func_start sub_812BE10 sub_812BE10: @ 812BE10 push {r4,r5,lr} adds r5, r0, 0 ldr r4, _0812BE4C @ =gUnknown_3005E9C movs r0, 0x2 strb r0, [r4] movs r0, 0 bl sub_813BDA4 bl sub_813C624 ldr r0, _0812BE50 @ =gUnknown_841DFBE bl sub_812BF74 movs r0, 0x1 bl sub_813BDE8 movs r0, 0x1 bl sub_813BEE4 ldrb r0, [r4, 0x1] cmp r0, 0 bne _0812BE5C ldr r0, _0812BE54 @ =gUnknown_845B0B0 ldrb r1, [r4, 0x3] lsls r1, 2 adds r0, r1, r0 ldr r0, [r0] ldr r2, _0812BE58 @ =gUnknown_845B164 b _0812BEA4 .align 2, 0 _0812BE4C: .4byte gUnknown_3005E9C _0812BE50: .4byte gUnknown_841DFBE _0812BE54: .4byte gUnknown_845B0B0 _0812BE58: .4byte gUnknown_845B164 _0812BE5C: cmp r0, 0x1 bne _0812BE78 ldr r0, _0812BE70 @ =gUnknown_845B218 ldrb r1, [r4, 0x3] lsls r1, 2 adds r0, r1, r0 ldr r0, [r0] ldr r2, _0812BE74 @ =gUnknown_845B2DC b _0812BEA4 .align 2, 0 _0812BE70: .4byte gUnknown_845B218 _0812BE74: .4byte gUnknown_845B2DC _0812BE78: cmp r0, 0x2 bne _0812BE94 ldr r0, _0812BE8C @ =gUnknown_845B3A0 ldrb r1, [r4, 0x3] lsls r1, 2 adds r0, r1, r0 ldr r0, [r0] ldr r2, _0812BE90 @ =gUnknown_845B450 b _0812BEA4 .align 2, 0 _0812BE8C: .4byte gUnknown_845B3A0 _0812BE90: .4byte gUnknown_845B450 _0812BE94: cmp r0, 0x3 bne _0812BEB8 ldr r0, _0812BEB0 @ =gUnknown_845B500 ldrb r1, [r4, 0x3] lsls r1, 2 adds r0, r1, r0 ldr r0, [r0] ldr r2, _0812BEB4 @ =gUnknown_845B520 _0812BEA4: adds r1, r2 ldr r1, [r1] bl sub_813C50C b _0812BECC .align 2, 0 _0812BEB0: .4byte gUnknown_845B500 _0812BEB4: .4byte gUnknown_845B520 _0812BEB8: ldr r0, _0812BEE4 @ =gUnknown_845B540 ldrb r1, [r4, 0x3] lsls r1, 2 adds r0, r1, r0 ldr r0, [r0] ldr r2, _0812BEE8 @ =gUnknown_845B5D0 adds r1, r2 ldr r1, [r1] bl sub_813C50C _0812BECC: movs r0, 0x1 bl sub_813BDA4 movs r0, 0x1 bl sub_813BD5C movs r0, 0x6 strb r0, [r5, 0xE] movs r0, 0x1 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _0812BEE4: .4byte gUnknown_845B540 _0812BEE8: .4byte gUnknown_845B5D0 thumb_func_end sub_812BE10 thumb_func_start sub_812BEEC sub_812BEEC: @ 812BEEC push {r4,lr} adds r4, r0, 0 ldr r2, _0812BF14 @ =gUnknown_3005E9C movs r0, 0x1 strb r0, [r2] adds r0, r4, 0 bl sub_812B5A8 bl sub_813C75C movs r0, 0x2 bl sub_813C684 movs r0, 0x3 strb r0, [r4, 0xE] movs r0, 0x1 pop {r4} pop {r1} bx r1 .align 2, 0 _0812BF14: .4byte gUnknown_3005E9C thumb_func_end sub_812BEEC thumb_func_start sub_812BF18 sub_812BF18: @ 812BF18 push {r4,lr} adds r4, r0, 0 ldr r0, _0812BF40 @ =gMain ldrh r1, [r0, 0x2E] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _0812BF30 movs r0, 0x1 ands r0, r1 cmp r0, 0 beq _0812BF44 _0812BF30: movs r0, 0x5 bl PlaySE movs r0, 0x5 strb r0, [r4, 0xE] movs r0, 0x1 b _0812BF54 .align 2, 0 _0812BF40: .4byte gMain _0812BF44: movs r0, 0xC0 lsls r0, 2 ands r0, r1 cmp r0, 0 bne _0812BF52 movs r0, 0x1 b _0812BF54 _0812BF52: movs r0, 0 _0812BF54: pop {r4} pop {r1} bx r1 thumb_func_end sub_812BF18 thumb_func_start sub_812BF5C sub_812BF5C: @ 812BF5C push {lr} bl sub_813C624 ldr r0, _0812BF70 @ =gUnknown_81B2FC9 movs r1, 0 movs r2, 0 bl sub_813C4CC pop {r0} bx r0 .align 2, 0 _0812BF70: .4byte gUnknown_81B2FC9 thumb_func_end sub_812BF5C thumb_func_start sub_812BF74 sub_812BF74: @ 812BF74 push {r4,lr} adds r4, r0, 0 bl sub_813C5FC adds r0, r4, 0 bl sub_813C488 pop {r4} pop {r0} bx r0 thumb_func_end sub_812BF74 thumb_func_start sub_812BF88 sub_812BF88: @ 812BF88 ldr r0, _0812BF90 @ =gUnknown_3005E9C ldrb r0, [r0] bx lr .align 2, 0 _0812BF90: .4byte gUnknown_3005E9C thumb_func_end sub_812BF88 thumb_func_start sub_812BF94 sub_812BF94: @ 812BF94 movs r1, 0 strb r1, [r0, 0xC] strb r1, [r0, 0xD] bx lr thumb_func_end sub_812BF94 thumb_func_start sub_812BF9C sub_812BF9C: @ 812BF9C push {lr} ldrb r2, [r0, 0xC] ldrb r0, [r0, 0xD] adds r2, r0 lsls r2, 3 adds r2, r1 ldr r1, [r2, 0x4] movs r0, 0x2 negs r0, r0 cmp r1, r0 bne _0812BFC0 ldr r0, _0812BFBC @ =gUnknown_845B098 ldr r0, [r0, 0x14] bl sub_813C584 b _0812BFCC .align 2, 0 _0812BFBC: .4byte gUnknown_845B098 _0812BFC0: ldr r0, _0812BFD8 @ =gUnknown_845B098 lsls r1, 2 adds r1, r0 ldr r0, [r1] bl sub_813C584 _0812BFCC: movs r0, 0x1 bl sub_813BE30 pop {r0} bx r0 .align 2, 0 _0812BFD8: .4byte gUnknown_845B098 thumb_func_end sub_812BF9C .align 2, 0 @ Don't pad with nop.